agentleFS
bwkwbwkw/dotagents/skills/da-investigate/SKILL.md

da-investigate

Skill0 starsChanged 20 days agoMITView on GitHub

変更が何に波及するかを洗い出す、または実際の動き方を追う。どこにあるか、何が依存しているか、何が壊れるかを聞かれた時に使う。決まった探索予算の中で file:line の根拠つきで答え、確かめられなかったことも明示する。読み取り専用。

The file

Files
SKILL.md

/da-investigate — 問いに答えて止まる

調査の失敗は 2 つある。もっともらしい推測で早く止まることと、境界なく読み続けて作業前にコンテキストを埋めることである。 前者は読む前に宣言するスコープ契約で、後者は答えが揃わなくても探索を終わらせる数値の予算で防ぐ。

このスキルは何も変更しない。読み取り専用で、読んで報告するだけ。

実行条件

条件満たさない場合
答えるべき具体的な問いがある止まる。「認証モジュールを調べて」は問いではない。答えが何の判断に使われるかを聞く(それが止めどきを決める)

ワークフロー上の位置

上流このスキル下流
問い、または計画の開始/da-investigate/grilling, /writing-plans, /da-design-review

読むファイル

常に読む

ファイル理由
${CLAUDE_SKILL_DIR}/reference/evidence-rules.md見つけたこと・見なかったことの報告の仕方

条件つきで読む

ファイル条件
CLAUDE.md, AGENTS.md問いが仕組みではなくプロジェクトの規約に関わる時

レポートはユーザーが書いている言語で書く(不明なら日本語)。パス・識別子・コマンド・コード片・ログは原文のまま残す。

Step 1. スコープ契約を宣言する(何か読む前に)

次をユーザーに示す。

  • 問いを正確に言い直したもの
  • 答えが使われる判断。これが「十分」の基準になる。「テナントの絞り込みはどこで掛かるか」は、セキュリティレビューなら全箇所、概観なら代表 1 箇所でよい
  • 答えるために読むものと、おおよその量
  • 意図して読まないもの

問いが実は複数なら、そう言ってどれが重要かを聞く。黙って全部に答えない。

Step 2. 広く安いものから探す

段を順に上げる。最も高い段から始めない。

段道具答えること
1完全一致の文字列・シンボル・識別子を rgこの文字列はどこにあるか
2構造パターンの rg、あれば ast-grepこの形のコードはどこにあるか
3LSP / 定義ジャンプ(環境にあれば)本当に誰が呼び、誰が実装しているか
4ファイル全体を読む実際どう動くか

たいていの問いは 1〜2 段で答えが出る。ファイルを読むのは最後の段。「X はどこか」のために 5 つ目のファイルを開いているなら、悪いのは予算ではなく検索語である。

独立した部分を持つ広い問いは、部分ごとに x-codebase-explorer サブエージェントを並列で起動し(1 メッセージで同時に)、結果を統合する。各サブエージェントに予算を割り振る。読んだ中身はサブエージェント側に残り結論だけが戻るので、調査はサブエージェントの最良の使い道である。x-codebase-explorer はこのツールキットがグローバルに入れており、読み取り専用の制約と「確認済み / 推論 / 未確認」の区別を自分の定義に持つ。

否定を報告する前に、反証を試みる

「これに依存するものは無い」「呼び出し元はここだけ」「この値はどこでも使われていない」。否定は最も間違えやすく、それを根拠に変更が入るので害も最も大きい。断言する前に、別の語彙でもう一度探す。

  • シンボルの別名 — エイリアス、再エクスポート、改名された import
  • 間接的な到達 — 動的ディスパッチ、リフレクション、レジストリ、文字列キー、DI
  • 文字列から組み立てる参照 — 連結、テンプレートリテラル、実行時に組み立てる名前
  • コード以外の呼び出し元 — 設定、マイグレーション、シード、CI ワークフロー、IaC テンプレート

そのうえで試した語彙を書く。書かなければ「証拠が無い」を「無いことの証拠」として報告したことになる。追加 1 ラウンドで済み、予算の中で最も価値の高い使い方である。

Step 3. 予算を守る

ファイル読み 25 回、検索の絞り込み 3 ラウンド。サブエージェントを含めた 1 調査あたり。

使い切ったら止まって報告する。黙って続けない。未検証のものと、次の 25 回で何を読むべきかを書く。境界が分かっている部分回答は使えるが、黙って途切れた回答は使えない。

予算を上げるのはユーザーが求めた時だけで、上げたことを明示する。

Step 4. 報告する

${CLAUDE_SKILL_DIR}/reference/evidence-rules.md に従う。

## <問い>

### 答え
最初に、直接。2〜5 文。探した経緯の説明ではない。

### 根拠
| 主張 | 場所 | 確認 |
|---|---|---|
| テナントの絞り込みは Repository 層で掛かっている | `src/foo/bar.repository.ts:L42` | 直接読んだ |
| バッチの経路も同じ絞り込みを通る | `src/batch/sync.ts:L88` | 直接読んだ |
| 管理画面の経路も同じ | — | **未確認** —— 予算に達した |

### 確認していないこと
- 暗に済ませず、名前を挙げる。「X は見ていない」は情報で、黙っていることは情報にならない。

### 確度
何が事実で、何が推論か。残りを確かめるには何が要るか。

完了条件

  • 答えが最初にあり、聞かれた問いに答えている
  • すべての主張に file:line があるか、未確認と明示されている
  • 調べていない範囲が名指しされている
  • 事実と推論が見て分かる形で分かれている
  • すべての否定の主張に、断言前に試した語彙が書かれている

アンチパターン

網羅した気になるために読む。そのファイルがどの主張を支えるか言えないなら開かない。

聞かれたより大きな問いに答える。1 行の変更に波及範囲の地図は無駄。スコープ契約はこれを防ぐためにあるので、正直に書く。

穴をぼかした文で隠す。「絞り込みはおそらく掛かっているようだ」は「未確認: 管理画面の経路は読んでいない」より悪い。ぼかしは答えに見えて答えではない。

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.