ask-matt について
ask-matt は Matt Pocock の開発スキルを案内するスキルです。要件整理から実装、レビューまでの手順を選び、つなぐための主経路や別の開始点、単独タスク、フェーズ境界を示します。
主な機能
- 01スキルを開発フローに整理
- 02構想から実装までの手順を案内
- 03トリアージとバグ診断を網羅
- 04仕様とチケット作成の流れを説明
- 05コンテキストとフェーズ境界を記載
活用シーン
- 01新機能に適したフローの選択
- 02構想を仕様やチケットに整理
- 03届いたバグや要望への対応
- 04複数セッションにまたがる作業の計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ timschoch/ mattpocock-skills --skill ask-mattインストール後、Claude Code で/ask-mattを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yamlPHASE-BOUNDARIES.md
詳細
Matt に尋ねる
すべてのスキルを覚えているわけではないので、尋ねてください。
スキルの機能を説明したり、手順を省略するよう勧めたりする前に、そのスキルの SKILL.md を読んでください。ここにある概要は、あくまで全体を把握するためのものです。
フローとは、スキルをたどる経路です。ほとんどの経路は、1 つのメインフローに沿って進み、2 つの導入経路がそこに合流します。それ以外はすべて単独で機能するか、下層で動作する語彙レイヤーです。
メインフロー:アイデア → リリース
多くの作業がたどる道筋です。アイデアを形にしたいときに進みます。
-
/grill-with-docsでは、インタビューを通じてアイデアを具体化します。作業ディレクトリで作業しているときは、ここから始めてください。状態を保持し、学んだことをGLOSSARY.mdと ADR に記録します。(作業ディレクトリがない場合は、代わりに/grill-meを使ってください。スタンドアロンの項で説明しています。どちらも同じ/grillingプリミティブを実行します。grill-with-docsは経緯を記録に残すため、記録を残せるリポジトリがある場合はこちらのほうが適しています。) -
分岐:会話だけですべての疑問を解決できますか? 実行して答えを確かめる必要がある疑問(状態、ビジネスロジック、実際に見る必要のある UI)がある場合は、プロトタイプを経由します。両方向の橋渡しには
/handoffを使います(プロトタイプは独立したディレクトリに置くため、まさにそのためのコマンドが/handoffです。「フェーズの境界」を参照してください)。/handoffで引き継いでから、そのファイルを対象に新しいセッションを開始します。/prototypeで使い捨てのコードを書き、疑問に答えます。/handoffで学んだことを戻し、元のアイデアのスレッドから参照します。
-
分岐:複数セッションにまたがる構築ですか?
- はい →
/to-specでスレッドを仕様書にまとめ、次に/to-ticketsで作業をトレーサーバレットチケットに分割します。各チケットでは、ブロッキング関係を明示します。その後、次の3つの方法のいずれかでチケットに取り組みます。- チケットごとに
/implementを実行し、各チケットの間に/clearでコンテキストをクリアします。ローカルトラッカーでは、.scratch/<feature>/issues/にチケットごとのファイルを作成し、手作業でブロッカーから順に取り組みます。実際のトラッカーでは、依存関係がネイティブのブロッキングリンクになるため、ブロッカーが完了したチケットならどれでも着手できます。各チケットは自己完結しているので、最後のチケットのコンテキストは破棄できます。 - 仕様書全体に対して
/implement-specを一度実行します。チケットを タスクグラフとして読み込み、準備ができた フロンティアに対して実装サブエージェントを並行して実行し、すべてを1つの 統合ブランチに反映します。チケットごとに自分で進めるより、構築の指揮を執りたい場合に使います。 /orchestrate(別途インストール)を使い、実際に独立しているサブイシューを持つ親イシューに対応します。サブイシューごとに、独自のワークツリー上で/implementエージェントを1つ起動し、順序付け、引き継ぎ、マージ順、クリーンアップといった機械的な後処理を担当します。ただし、作業の再分割は行いません。/to-ticketsで公開したサブイシュー自体がパッケージとなります。ネイティブのサブイシューが必要なため、ローカルファイルではなく GitHub が必要です。
- チケットごとに
- いいえ → このまま同じコンテキストウィンドウ内で
/implementを実行します。
どちらの場合も、
/tddを進めながら(1回に1つのレッド・グリーンのスライスで)コードを構築し、最後に差分を2つの軸(標準+仕様)でレビューする/code-reviewを実行します。/implementはチケットごとに両方を実行します。/implement-specでは各実装担当が/tddを進め、統合ブランチ全体に対して/code-reviewを1回実行します。仕様書全体を作ることなく、具体的な振る舞いをテストファーストで実装したい場合は/tdd単独で使い、固定された基準に照らしてブランチや PR をレビューしたい場合はいつでも/code-review単独で使います。作業をプルリクエストとして提出するときは、
/prで本文を整えます。変更がわかる最小限のビジュアル、動作を示す変更前後の証拠、そして一方向または双方向のドアの判断を盛り込みます。モデルから呼び出されるため、エージェントは PR を作成するときにこれを使います。 - はい →
-
/retroで一連の流れを締めくくります。構築の後、特にうまくいかなかった場合は、セッションを振り返り、コードではなくエージェントの 環境に対する変更を提案します。ナビゲーションの手がかり、自動チェック、/code-reviewが適用するコーディング規約、ステアリングファイル、ツールなどが対象です。機械的なミスは決定論的なチェックに、判断が必要な点はコーディング規約にします。次の構築は、改善された環境から始められます。
コンテキストの衛生管理
手順1〜3は途切れない1つのコンテキストウィンドウで進めます(/to-ticketsが終わるまで、圧縮したりクリアしたりしないでください)。そうすることで、掘り下げ、仕様、チケットがすべて同じ思考の流れを引き継ぎます。各/implementはチケットをもとに、新しいセッションで開始します。振り返る対象のセッション内で、クリアする前に/retroを実行してください。クリアした後に実行する場合は、そのセッションのログを指定してください。
この制限の目安は**スマートゾーン**です。これは、モデルが鋭い推論を保てるウィンドウ(最先端モデルで約15万トークン)を指します。/to-ticketsの前にセッションがこの上限に近づいた場合は、推論が鈍ったまま進めず、最も近いフェーズの境界で/compactを実行して続けてください(「フェーズの境界」を参照)。
導入経路
作業が発生する状況から始まり、メインフローに合流する経路です。
-
バグやリクエストが積み上がっている →
/triage。トリアージの各役割を通して課題を処理し、エージェントが対応できる課題を作成します。これを後から**/implement**が取り込みます。トリアージの対象は、自分で作成していない課題に限ります。バグ報告、寄せられた機能リクエストなど、未加工のまま届いたものが対象です。
/to-ticketsが作成したチケットはすでにエージェントが対応できる状態なので、トリアージしないでください。 -
何かが壊れている →
/diagnosing-bugs。一筋縄ではいかないバグに使います。ひと目では原因がわからないバグ、断続的に発生する不安定な問題、正常な状態の間に紛れ込んだリグレッションなどが対象です。まず短いフィードバックループ(そのバグで実際に失敗するコマンド1つ)を確立するまでは、原因を推測しません。その後、リグレッションテストを追加して修正します。修正が入ったら、同じセッション内で**/retroを実行し、バグを未然に防ぐには何ができたかを振り返ります。根本的な発見が、問題を確実に防ぐための適切な接点がないことなら、/improve-codebase-architecture**の出番です。 -
見通しの立たない大規模な取り組み:新規プロジェクトや、1つのセッションでは大きすぎる大規模な機能開発 →
/wayfinder。ここで最も認知負荷の高いフローです。現在地から目的地までの道筋がまだ見えない場合は、イシュートラッカー上に意思決定チケットの共有マップを作成し、1つずつ解決していきます。霧が晴れて道筋が明らかになるまでは、成果物ではなく意思決定を生み出します。**/grill-with-docs**が1つのセッション内で扱えるアイデアを明確にするのに対し、Wayfinderは1つのセッションでは扱えないアイデアのためのものです。また、時間がかかり情報量も多いため、スコープが明確な機能には使わず、まさにこのような大規模な取り組みに限って使ってください。マップが明確になったら、実装はせず、引き継ぎます。メインフローの**
/to-spec**に合流し、マップ上で関連付けられた意思決定を実装可能な計画にまとめてから、通常どおり/to-ticketsと/implementに進みます。マップから直接/implementに進むと、この整理を飛ばして関連する詳細が失われるため、取り組みが本当に小規模だとわかった場合に限り、そのまま/implementに進んでください。
コードベースの健全性
機能開発ではなく、保守作業です。
/improve-codebase-architectureは、エージェントが扱いやすいコードベースを保つため、空き時間にいつでも実行できます。ここから改善の機会が見つかり、その中から1つ選ぶと、メインフローの/grill-with-docsに持ち込めるアイデアが生まれます。候補を見つけるのが調査であり、選んだ候補を設計する作業台が、以下の**/codebase-design**です。
下位にある語彙
ほかのスキルの下位で動作し、それぞれが語彙の唯一の信頼できる情報源となる、モデルから呼び出される2つのリファレンスです。プロセスではなく言葉が問題なら、直接参照してください。または、上位のスキルから参照させてください。
/domain-modeling:プロジェクトのドメイン言語を磨きます。曖昧な用語に異議を唱えたり、複数の意味を持つ単語(「account」が3つの役割を担っている場合など)を整理したり、変更が難しい決定をADRとして記録したりします。これは、GLOSSARY.mdを明確な用語集に保つために/grill-with-docsが推進する実践です。- **
/codebase-design**は、モジュールの形を設計するためのディープモジュールの語彙(モジュール、インターフェース、深さ、継ぎ目、アダプター、レバレッジ、局所性)です。明確な継ぎ目の背後に、多くの振る舞いを小さなインターフェースで隠します。/tddと/improve-codebase-architectureはいずれもこの語彙を使います。
フェーズの境界
フェーズとは、セッション内の作業のまとまりです。たとえば、質問を重ねる工程、実装、QAなどです。その2つのフェーズの境界では、5つの選択肢があります。このマップ全体で最も判断が曖昧なのは、どれを選ぶかです。
- 続行:そのまま続けます。コストも損失もありません。
/clear:次の作業に必要な情報がここに何もない場合、ウィンドウを空にします。/handoffは、持ち運び可能なMarkdownファイルを作成します。対象は限定的で、新しいハーネス、新しいディレクトリ、同僚への引き継ぎ、またはフェーズの途中でのサイドタスクの分岐に限ります。得られるのは持ち運びやすさです。- サブエージェント:範囲を明確に限定したタスクを別のウィンドウに送り、レポートを受け取ります。
/compactは、このコンテキストを圧縮して、新しいセッションに引き継ぎます。ツリーの最初ではなく、最下部にあるデフォルトの選択肢です。
PHASE-BOUNDARIES.mdを読んで、順序立てられたツリーを確認してください。5つの質問、それぞれの分岐の根拠、そして一次情報を参照するコストを考えると、まず続行を候補から外すべき理由が説明されています。判断は境界で行ってください。フェーズの途中なら、続行するか、残りをサブエージェントに分割します。
単独で使うもの
メインフローから完全に独立しています。
/grill-me:/grill-with-docsと同じく徹底的に質問しますが、ステートレスです。ローカルには何も保存せず、GLOSSARY.mdも作成しません。作業ディレクトリで作業していないとき(計画を練る、設計する、文章を書くなど、配下にリポジトリがない場合)に使います。作業ディレクトリで作業しているなら、代わりに/grill-with-docsを使ってください。同じインタビューを行い、記録も残すため、こちらのほうが明らかに優れています。/grillingはインタビューの基本機能そのものです。ラウンド、最前線、事実の確認はエージェントの役割で、判断するのはあなたです。/grill-meと/grill-with-docsは名前の付いた2つの入り口で、/triage、/wayfinder、/improve-codebase-architectureは内部でこれを実行します。ラッパーなしでインタビューだけを行いたい場合に限り、直接使ってください。/prototypeは、1つの設計上の問いに答えるための、小規模で使い捨てのプログラムです。この状態モデルはしっくりくるか、このUIはどのような見た目にすべきか、といった問いに答えます。「使い捨て」はコードの書き方に関する制約であり、破棄する約束ではありません。答えは実際のコードに取り込まれ、プロトタイプ自体は、実装イシューから参照された、main から分岐したprototype/<name>ブランチ上の一次資料として保持されます。これはメインフローのステップ2での寄り道ですが、設計上の問いを紙上で決着させにくいときはいつでも使ってください。/research:調査作業をバックグラウンドエージェントに委任します。エージェントは一次資料をもとに問いを調査し、引用元を記載した Markdown ファイルをリポジトリに残します。調査中も作業を続けられます。生成されたファイルはメインフローの/grill-with-docsに持ち込むためのものです。調査は考える作業を支えるものであり、置き換えるものではありません。/to-questionnaireは、障害となっているものがあなたの頭の中やコードベースではなく、ほかの誰かの中にあるときに使います。相手に記入してもらうアンケートを作成します。これは/grill-meの逆です。題材についてあなたに質問する代わりに、送信(誰に送るのか、何を回答してもらう必要があるのか)についてあなたに質問し、情報の不足部分に焦点を当てます。返ってきた内容は/grill-with-docsまたは/to-specの材料になります。/wizardは、人間にしかできない手順のためのものです。インフラのプロビジョニング、認証情報や CI シークレットの設定、使い慣れていないサードパーティのダッシュボードでの操作、単発の移行や切り替えなどが該当します。各 URL を開き、値を取得して.envと GitHub シークレットに書き込む、対話型の bash スクリプトを生成するため、その手順を毎回エージェントに説明し直す必要がなくなります。モデルから呼び出されるため、エージェントはあなたしか越えられない壁にぶつかると、すぐにこれを使います。エージェントが自力でできるなら、そうするべきです。これは人間が本当に手順に関わる必要がある場面のためのものです。/wait-whatは、メッセージが伝わらなかったときに使う修正手段です。他のスキルを使っている最中でも、会話の途中で使えます。エージェントは、あなたに不足していた文脈を補い、GLOSSARY.mdの用語を使って、今述べた内容を平易な英語で言い直します。これは事後に使うものです。事前に解決するのが/grill-with-docsです。早い段階で共通言語に合意しておくことで、専門用語がそもそも出てこないようにします。/step-by-step(別途インストール)は、あなた自身がクリック操作する必要があり、まだ一度も経験したことのない手順のためのものです。PAT の作成、ドメインの向き先の設定、CI シークレットの接続などが該当します。ターミナルで行う作業はこのスキルが実行し、その後、番号付きのブロックを1つ渡して待機します(すべてのフィールドに実際の値を記入し、すべてのリンクを詳細 URL にし、引っかかりやすい点は該当するステップで明示します)。/wizardが手順を再実行できる bash スクリプトにまとめるのに対し、こちらは一度だけ手順を案内します。毎週これを行う人には自明でも、あなたには分かりにくい手順で使ってください。/teach:現在のディレクトリを状態を保持する作業スペースとして使い、複数回のセッションにわたって概念を学びます。/writing-for-agentsは、エージェントが利用するドキュメント(スキル、AGENTS.md、参照先として指定されたドキュメント)の書き方に関するリファレンスです。
前提条件
/setup-matt-pocock-skills:最初のエンジニアリングフローを実行する前に、このコマンドを実行して、他のスキルが前提とする課題トラッカー、トリアージ用ラベル、ドキュメントのレイアウトを設定します。カスタムの課題トラッカーも使用できます。