mcpField
A
ask-matt

ask-matt

github.com/mattpocockエージェントワークフロー305.7k785.7k 回インストール1 日前に更新
リポジトリ

ask-matt について

ask-matt は、多数のスキルから適切なものを選ぶためのガイドスキルです。アイデアから出荷までの主要フロー、バグや大規模作業の入口、コードベースの保守を整理しています。次に実行するスキルに迷う利用者に向いています。

主な機能

  1. 01アイデアから出荷までの主要フローを整理
  2. 02トリアージとバグ診断の入口を提示
  3. 03複数セッションにまたがる大規模作業の進め方を説明
  4. 04フェーズ境界でのコンテキスト処理を助言
  5. 05単独で使うスキルと語彙リファレンスを説明

活用シーン

  1. 01現在のタスクに合うスキルの選択
  2. 02要件から実装までの複数セッション作業の計画
  3. 03コンテキストをクリアまたは圧縮する時期の判断

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mattpocock/skills --skill ask-matt

インストール後、Claude Code で/ask-mattを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yamlPHASE-BOUNDARIES.md

詳細

Ask Matt

すべてのスキルを覚えているわけではないので、聞いてください。

スキルの内容を説明したり、手順を省略するよう勧めたりする前に、そのスキルの SKILL.md を読んでください。ここにある概要は、全体を把握するためのものにすぎません。

フローとは、スキルをたどる経路です。ほとんどの経路は1つのメインフローに沿って進み、2つの導入経路がそこに合流します。それ以外は単独で使うか、その下で動く語彙レイヤーです。

メインフロー:アイデア → リリース

ほとんどの作業がたどる経路です。アイデアを形にしたいときに使います。

  1. /grill-with-docs は、対話形式のヒアリングでアイデアを明確にします。作業ディレクトリで作業している場合は、必ずここから始めてください。状態を保持し、学んだ内容を GLOSSARY.md と ADR に記録します。(作業ディレクトリがない場合は、代わりに /grill-me を使ってください。こちらは「単独で使うスキル」で説明しています。どちらも同じ /grilling プリミティブを使いますが、grill-with-docs は記録を残すため、記録を残せるリポジトリがある場合はこちらのほうが適しています。)

  2. 分岐:すべての疑問を会話で解決できますか? 実行可能な回答が必要な疑問(状態、ビジネスロジック、実際に確認する必要がある UI など)の場合は、プロトタイプを作って検証します。その際、/handoff を使って両方向に引き継ぎます(プロトタイプは専用のディレクトリに置きます。それこそが /handoff の用途です。「フェーズの境界」を参照してください)。

    • /handoff で引き継いだ後、そのファイルを使って新しいセッションを開始します。
    • /prototype で使い捨てのコードを作成し、疑問に答えます。
    • 学んだ内容を /handoff で元に戻し、元のアイデアのスレッドから参照します。
  3. 分岐:複数セッションにまたがるビルドですか?

    • はい → /to-spec でスレッドを仕様にまとめ、次に /to-tickets でトレーサーバレットチケットに分割します。各チケットには、ブロックする依存関係を明記します。その後、次のいずれかの方法でチケットに取り組みます。
      • チケットごとに /implement を実行し、各チケットの間でコンテキストを /clear で消去します。ローカルトラッカーでは、.scratch/<feature>/issues/ にチケットごとのファイルを1つずつ作成し、手作業でブロッカーから順に進めます。実際のトラッカーでは、依存関係がネイティブのブロックリンクになるため、ブロッカーが完了したチケットに着手できます。各チケットは自己完結しているため、最後のチケットを進めるときには、それまでのコンテキストを破棄できます。
      • 仕様全体に対して /implement-spec を実行します。チケットをタスクグラフとして読み込み、準備ができたフロンティア上で実装サブエージェントを並行して実行し、すべてを1つの統合ブランチに反映します。チケットごとの作業を自分で進めるより、ビルド全体を調整したい場合に使ってください。
    • いいえ → 同じコンテキストウィンドウ内で、その場で /implement を実行します。

    どちらの方法でも、コードは /tdd(一度に1つのレッド・グリーン・スライス)を進めながら構築し、変更差分を「標準」と「仕様」の2つの軸でレビューする /code-review で締めくくります。/implement はチケットごとに両方を実行します。/implement-spec では各実装担当が /tdd を進め、統合ブランチ全体に対して1回 /code-review を実行します。仕様全体を作らず、具体的な動作をテストファーストで構築したい場合は /tdd を単独で使ってください。また、確定した基準に照らしてブランチや PR をレビューしたい場合は、いつでも /code-review を単独で使えます。

    作業をプルリクエストとして公開するときは、/pr で本文を整えます。変更を示す最小限のビジュアル、動作を示す変更前後の証拠、そして片方向または双方向のドア判定を含めます。これはモデルから呼び出されるため、エージェントは PR を作成する際に自動的にこれを使います。

  4. /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 は、インタビューを始めるための名前付きの方法です。また、/triage、/wayfinder、/improve-codebase-architecture はすべて内部でこれを実行します。ラッパーなしでインタビューだけを行いたい場合に限り、直接使ってください。
  • /prototype は、設計上の疑問に答えるための小規模な使い捨てプログラムです。この状態モデルでよさそうか、あるいはこの UI はどのように見えるべきか、といった問いに答えます。「使い捨て」とはコードの書き方に関する制約であり、破棄するという約束ではありません。得られた答えは実際のコードに反映し、プロトタイプ自体はメインブランチから分岐した 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 です。早い段階で共通の言葉を取り決めておけば、専門用語が最初から出てこなくなります。
  • /teach:現在のディレクトリを状態を保持するワークスペースとして使い、複数のセッションを通じて概念を学びます。
  • /writing-for-agents は、エージェントが利用するドキュメント(スキル、AGENTS.md、参照先が指定されたドキュメント)を書く際のリファレンスです。

前提条件

/setup-matt-pocock-skills:最初のエンジニアリングフローを開始する前に実行し、他のスキルが前提とするイシュートラッカー、トリアージ用ラベル、ドキュメントのレイアウトを設定します。カスタムのイシュートラッカーも利用できます。

コメント