cheese について
cheese は、機能案、バグ、コードレビュー、調査、プルリクエストなどの依頼を振り分けるワークフロールーターです。意図を分類して適切なスキルに引き渡し、必要に応じて確認や質問を行いますが、自身ではファイル編集、テスト実行、プルリクエスト作成を行いません。
主な機能
- 01多様な依頼の意図を分類
- 02専門スキルへ作業を振り分け
- 03不明確な意図の確認
- 04引き渡し前の確認に対応
- 05引き継ぎからワークフローを再開
活用シーン
- 01機能依頼を仕様作成や実装へ振り分け
- 02バグ報告を診断へ引き渡し
- 03調査の依頼を調査ワークフローへ送る
- 04進行中のワークフローを再開
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ paulnsorensen/ easy-cheese --skill cheeseインストール後、Claude Code で/cheeseを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/agent-resolution.mdask-user-question-sources.mdask-user-question.mdclassification.mdcode-intelligence-routing.mdcoherence-check.mdcontinue-resume.mddiagram-templates.mddiagrams.mdescalation.mdformatting.mdhandback-contract.mdhandoff-gate.mdharness-portability.mdoptional-plugins.mdrouting-policy.mdrouting-receipt.mdschema-intertwine.mdsliced-bread.md詳細
/cheese
入力
ユーザーが $ARGUMENTS として渡す内容は何でも受け付けます。
- 自然言語による機能の説明、アイデア、または質問。
- 仕様へのパス(
.cheese/specs/<slug>.md)または貼り付けられた仕様の内容。 - バグ報告、スタックトレース、失敗したテストの出力、または再現手順。
- ファイルパス、glob、またはディレクトリ。
- PR または issue の参照(
PR#142、#87、GitHub URL)。 - 外部ライブラリ、API、またはパターンに関する調査の質問。
- 空またはほぼ空のプロンプト — 「次は何をしますか?」と解釈して確認します。
任意のフラグ:
--safe— 確認プロンプトを挟んでディスパッチします。--open-pr— 実装チェーンを通じて/cureに引き継ぎます。/cureがこのフラグを受け取り、公開の意図を最終段階の/plateに伝えます。/plate自体は--open-prフラグを受け付けません。 新しい PR は、/plateの明示的な選択とレビュー形式のポリシーに従います。--continue <slug-or-note-path>— ハンドオフの slug またはノートから、進行中のパイプラインを再開します。--hard—/plateに引き継ぎます。/plateは/hard-cheeseと公開の前に、最終成果物の書き込みゲートを実行します。--reground—--continueと併用する場合のみ使用します。フェーズをディスパッチする前に、ハンドオフの主張を敵対的に再確認します。
$ARGUMENTS がない場合は、ホストのルーティングガイドを通じて確認の質問を 1 つ尋ねてください。
references/handoff-gate.md を使用してください。
フロー
$ARGUMENTSだけでなく、ユーザーのメッセージ全体を読んでください。 ユーザーのその他の文章はすべて指示の一覧として扱います。 矛盾するデフォルト設定や引き継ぎプロトコルではなく、現在の指示に従ってください。 引き継ぎファイルは状態を復元します。 ユーザーの現在のメッセージがそれを上書きします。 例外:現在の指示によって、再開時の整合性ゲートが免除されることはありません。 あいまいさ、未解決の系譜、整合性に関する検出事項、status: gated:がある場合は、ディスパッチを停止します。 現在の指示が答えるのは、クリーンなレガシー結果に対する情報提供済みの信頼ゲートだけです。 これらのゲートはreferences/continue-resume.mdが管理します。- まず考えます(非表示)。
skills/culture/SKILL.mdに従って問題を内部で整理します。依頼を言い換え、候補となる対象を列挙し、判断を左右するシグナルを特定します。ステップ 2 に進む分類を出力します。 - 分類します —
$ARGUMENTSをreferences/classification.mdの意図の形状と照合します。最も確信度の高い形状を選びます。しきい値を下回る場合はclarifyに振り分けます(ステップ 4 の Tier 3 エスカレーションで処理します)。 - 明確さを確認します(
cookの意図のみ)。cookの意図に対して Cook のファストパスチェックを実行します。moldの意図は/moldのユーザーモードにディスパッチします。 直接のplateの意図はこのチェックを省略します。 - 必要に応じてエスカレーションします。 Tier 1 では選択した対象にディスパッチします。
/cook --autoで仕様が必要な場合は、/moldのエージェントモードを使用します。 Tier 2 では/cultureまたは/briesearchを内部で呼び出し、その後、明確さを再確認します。 Tier 3 では、ホストを介してルーティングされる、対象を絞った質問を 1 つだけ行い、回答を待ちます。 回答を再分類します。## Escalationを参照してください。 - hallouminate が含まれ、ルートがエスカレーションされている場合は、Wiki に基づいて情報を補強します。 入力からクエリを導き出します。
ファストパスではこのステップを省略します。
ファストルートでは情報の補強を行わず、プローブも消費しません。
Wiki コーパスに対する情報補強の呼び出しは最大 1 回までです。
まずコーパス一覧ツールでコーパスを特定します。
両方のツール名を
references/optional-plugins.mdで特定します。 各ホストで名前に異なる接頭辞が付くため、このリファレンスで機能を照合します。skills/mold/references/grounding.mdのプローブ形式を使用します。 最適なヒットをhandoff_context.wiki_hitsに[{page, line, why}]の形式で追加します。references/handoff-gate.mdの「Context payloads」セクションを参照してください。 Wiki コーパスがない場合は、references/optional-plugins.mdを使用します。 - 告知します —
## Outputの形式に従い、短いブロック(Intent / Reason / Target、および該当する場合は wiki hits)を出力します。 ルーティングの判断を左右したシグナルを明記します。 - 自己チェックします —
references/coherence-check.mdの整合性確認の質問を実行します。いずれかに失敗した場合は、clarify(Tier 3)またはresearchに格下げします。 - ディスパッチします。
--safeが指定されていない場合は、告知の後、選択したスキルとそのコンテキストパケットを実行します。--safeが指定されている場合は、references/handoff-gate.mdに従って引き継ぎゲートを提示します。 推奨対象をあらかじめ選択し、代替案も含め、最後にStopを置きます。 ディスパッチする前に、ユーザーの選択を待ちます。
/cheese はルーターであり、ワーカーではありません。
ファイルの編集、テストの実行、プルリクエストの作成は行いません。
ホストの読み取り、検索、ディスパッチ機能のみを使用します。
Tier 1 では /mold のエージェントモードを呼び出せます。この書き込みは /mold のスコープ内にとどまります。
ヘルパーの解決、エージェントのディスパッチ、GitHub の操作、引き継ぎの遷移については、references/harness-portability.md を参照してください。
バンドル済みまたはリポジトリ内のヘルパーを優先してください。
呼び出しパスに ${CLAUDE_SKILL_DIR} を使用しないでください。
以下の引き継ぎブロックが移植可能な契約です。スラッシュコマンドはホストごとの表記であり、制御モデルではありません。
意図の形状
すべての意図の形状、シグナル、曖昧さの解消ルール、エッジケースを含む分類表は、references/classification.md にあります。
エスカレーション
cook インテントのみ、Cook のファストパスチェックと3段階のエスカレーションを実行します。
mold インテントは、ユーザーモードの /mold にディスパッチします。
--safe が適用されるのは、最後のディスパッチのみです。
段階ごとのルールと仕様の検出チェックは、references/escalation.md に従います。
それ以外のインテントは、このエスカレーションをすべてバイパスします。 エスカレーションは、各インテントの対象スキルが独自に管理します。
拒否された方向性の確認
mold をディスパッチする前に、.cheese/.out-of-scope/*.md を確認し、該当する拒否記録がないか調べます。
受信したリクエストと、記録の ## Direction 行を比較します。
一致する場合は、拒否された方向性とその理由を1行で示します。
その後、その方向性で進めるか、別の切り口にするかをユーザーに尋ねます。
拒否された方向性を黙って伏せたり、再提案したりしてはいけません。
ディレクトリが存在しない場合、またはインテントが mold ではない場合は、この確認を黙ってスキップします。
--continue
新しいコンテキストから手動で再開するには、/cheese --continue <slug-or-note-path> を使用します。
会話が圧縮された後、/cook のファンパスが停止した後、または手動での再開を求められた場合に使用します。
/wheypoint resolve --ref <absolute-path | work-id | slug> を使って引数を解決します。
検証済みの正式な最新リビジョンのみをディスパッチします。
決定論的なレガシーノートへのフォールバックは、ランタイムが提供します。
更新日時、セッション、スラッグの新しさを基準にノートを選択してはいけません。
再開させるために、Git へコミットしたり公開したりしてはいけません。
曖昧さ、未解決の系譜、整合性エラー、status: gated: がある場合、自動ディスパッチを停止します。
ディスパッチする前に、references/continue-resume.md を読みます。
next: リストがある場合は、同じリファレンスに従って必須の order: を解析します。
--continue は --auto を引き継ぎません。
--safe がなくても、/<next> <slug> をデフォルトの対話モードでディスパッチします。
ユーザーは /cheese --continue <slug> --auto のように、明示的に --auto を追加できます。
永続的なパイプラインは culture -> mold -> cook -> press -> age -> cure -> plate です。
承認済みの Mold の引き継ぎ先は /cook です。
ユーザーが明示的に auto を指定した場合に限り、引き継ぎ先は /cook --auto になります。
Full または planned の引き継ぎでは、まず /mold finalize を再実行します。
型付きの spec_ref フィールドに、永続的な仕様ポインターを格納します。
継続時は spec_ref を変更せずに渡します。
artifact: も変更せずに渡します。これは常に、以前に消費したレポートを指します。
継続時は、検証済みの任意の mode: 値を保持します。
スコープ内の --hard、--open-pr、--safe フラグも保持します。
--auto は引き続きオプトインであり、推測によって有効にしてはいけません。
Press の調査結果は、修正の引き継ぎ(next: cook)として Cook に届きます。
信頼度と確認ゲート
信頼度は low | medium | high です。medium 以上の場合は直接ルーティングします。
それ未満の場合は、tier 3(clarify)にルーティングします。
references/handoff-gate.mdにあるホストのルーティングガイドに従い、質問を1つだけ尋ねます。- 最有力の候補を2つ提示して選択肢とし、加えて
Stopを提示します。 - 回答を受けて
/cheeseに戻ります。
medium 以上の場合は、直接ディスパッチします。
cook インテントでは、Cook のファストパス明確性チェックが第2段階として加わります。
「## エスカレーション」を参照してください。
優先するツールとフォールバック
入力がパスまたはスラッグの場合は、選択したソースコードバックエンドを直接呼び出します。
references/code-intelligence-routing.md で、読み取りまたは検索に使用するバックエンドを選択します。
| 必要な情報 | 優先するもの | フォールバック |
|---|---|---|
| PR/issue のコンテキスト | gh | ユーザーが指定した URL または番号 |
--safe または clarify の場合に限り、ルーティング先をユーザーに確認する | references/handoff-gate.md に従った、ホスト経由の構造化された質問 | 明示的なディスパッチコマンドを含む番号付きリスト |
エビデンスプローブ 1 回分は、ファイルの読み取り 1 回、検索の呼び出し 1 回、gh の呼び出し 1 回、または ## Flow に記載された wiki の根拠確認プローブです。
ルーターが使えるプローブは最大 3 回です。
高速パスではプローブを 0 回使用します。
ルーターにそれ以上のプローブが必要な場合は、内部モードで /culture または /briesearch にエスカレーションします。
予算、高速パス、レシートのフィールドについては、references/routing-receipt.md を参照してください。
出力
常に次の順序で出力します。
-
検出されたインテント — 1 行で記載します。例:
Intent: cook (clear single-file fix)。 -
理由 — シグナルを引用して 1 行で記載します(
reason: spec path .cheese/specs/foo.md)。 -
ターゲット — 選択したスキルを記載します。例:
Target: /cook .cheese/specs/foo.md。 -
Wiki のヒット —
handoff_context.wiki_hitsの各エントリを 1 行ずつ出力します。wiki: <page>:<line> — <why>の形式を使用します。 これらの行はレシートより前に記載します。 この順序により、ユーザーは古くなった wiki 情報を特定できます。 hallouminate がない場合、これらの行は省略します。 -
ルーティングレシート — ディスパッチ前の最後の行として、必ず次を出力します。
route: intent=<intent> target=<skill> path=<fast|escalated> probes=<n>この行がルーティングの最終境界です。所要時間やタイムスタンプをここに記載してはいけません。タイムスタンプはホストが付与します。フィールドとルールの詳細については、
references/routing-receipt.mdを参照してください。
続けて、同じターン内にディスパッチします。
--safe の場合は、ハンドオフゲートを使用します。
clarify の場合は、ディスパッチの代わりに確認の質問を 1 つだけ出します。
レシートは引き続き出力し、target=clarify と実際のプローブ数を記載します。
引き継ぎ
--safe を指定しない場合、--auto は文書化された自律チェーンに沿ってのみ引き継ぎます。
--continue は、引き継ぎに含まれている場合、またはユーザーが後から追加した場合にのみ転送します。
--open-pr は、ユーザーが指定した場合にのみ転送します。
ユーザーが許可していないディスパッチに --open-pr を追加してはいけません。
--hard を受け付けるすべてのルートで、廃止された /ultracook のリダイレクトも含めて、--hard を転送します。
--safe の場合、ディスパッチはユーザーがゲートを選択するまで待機します。
auto バリアントは、あらかじめ選択された推奨ターゲットのままにします。
インテントごとのデフォルトターゲット:
- clarify — 対象を絞った質問を 1 つします。回答が届くまでスキルは実行しません。
- research —
/briesearch(推奨)。autoバリアントはありません。 - rubber-duck —
/culture(推奨)。ユーザーが書き込みをしない選択をした場合、または問題について一緒に考えるよう求めた場合にのみ到達します。autoバリアントはありません。 - mold —
/mold(推奨)。セーフモードの代替:外部の根拠が不足している場合は/briesearch first。 - cook — デフォルト:
/cook --auto <slug-or-path>。 セーフモードの代替:/cook <slug-or-path>および/mold first。 スコープの判断が微妙な場合は/mold firstを使用します。 大規模な仕様、または分解可能な仕様の場合、cook の fan 経路が自動的に開始します。 - prototype —
/cook --prototype <idea>(推奨)。autoバリアントはありません。 - ultracook (廃止) —
/ultracook <slug-or-path>は/cook <slug-or-path>に解決され、--open-pr/--resume/--auto/--hardが引き継がれます。 - plate —
/plateはコミット、通常のプルリクエスト、プルリクエストのスタックを処理します。 新しいプルリクエストのトポロジーは、問い合わせずに/plateが決定します。topology.mdを参照してください。 - debug — デフォルト:
/pasteurize --auto <input>。セーフモードの代替:/pasteurize <input>(autoなし)、書き込みを伴わない診断をユーザーが希望する場合、または修正前に問題について一緒に考えるよう求めた場合に限り/culture。 - affinage —
/affinage <pr>(推奨)。 入力にプルリクエストが指定されていない場合は、引数なしの/affinageを使用します。--autoは、--stake <floor>の値が明示されている場合にのみ送信します。 セーフモードの代替:ユーザーが新たなレビューを希望する場合は/age <pr>。 - age —
/age <ref>(推奨)。セーフモードの代替:ユーザーがパスの glob を指定した場合は/age --scope <path>。 - age-then-cure —
/age <slug>(推奨)。セーフモードの代替:新しいレポートがすでに存在する場合は/cure <slug>。
最も確度の高いターゲットのみを事前選択します。
--safe を指定しない場合は、ターゲットを判断結果として示し、そのままディスパッチします。
--safe を指定した場合は、ユーザーの選択を待ちます。
停止しない選択がなされたら、取得済みのディスパッチパケットを直ちに実行します。
ルール
- 下流スキルの出力を言い換えたり要約したりしてはいけません。それは下流スキルの役割です。
- 質問ゲートでの辞退は回答として扱います。再度問いかけず、未解決事項を 1 行で示して、自由形式の入力を待ちます。
ベースラインを考慮したルーティング
記録済みの各 baseline: ブロックを確定した状態として扱います。同一の失敗について再度質問してはいけません。
../cook/references/quality-gates.md を参照してください。
参考資料
references/classification.md— インテントの形、シグナル、曖昧さの解消ルール。references/coherence-check.md— 誤ったルートを格下げする、ディスパッチ前のセルフチェック。references/handoff-gate.md— 選択後のディスパッチに関する、ハーネス間で共有される契約(ワークフロースキル共通)。references/handback-contract.md— すべてのフェーズで使用する、唯一の前置き、ステータス用語、ディスパッチ/引き継ぎ境界の一覧。references/escalation.md— エスカレーションの各段階の仕組みと、仕様の発見チェックの全容。references/continue-resume.md—--continueによる再開フローと、--regroundによる再確認。references/routing-receipt.md— 最終ルーティングレシート、プローブ予算、ファストパス。