agentleFS
bwkwbwkw/dotagents/skills/da-review-all/SKILL.md

da-review-all

Skill0 starsChanged 21 days agoMITView on GitHub

すべてのコードレビューの入口(1 層でも複数層でも)。PR レビュー、差分のレビュー、出す前の確認をする時に使う。1 層だけの変更でもこれを使う。変更を層に分類して各層をレビューし、層の間に落ちる不可逆なリスク(契約と利用側のリリース順のずれなど)を見つける。読み取り専用。

The file

Files
SKILL.md

/da-review-all — 層をまたぐレビューのディスパッチャ

変更が触る層を割り出し、該当する層のレビューだけを走らせ、どの層の中からも見えない層またぎの不可逆リスクを拾う。

読み取り専用。コードも設定も変更しない。 Step 5 の概要ページはレビューの成果物で、ソースの変更ではない。

返すものは誰の変更かで変わる(Step 1)。

実行条件

条件満たさない場合
対象を PR URL またはローカルリポジトリから特定できるStep 1 で解決し、不明なら対象を尋ねる
PR 差分・ローカル差分・パス・all が 1 つ以上のファイルに解決する空なら「変更なし」と報告し、path/ か all を提案。取得失敗は理由を報告

上流: 実装完了、または PR が開いている。下流: /da-fix-plan が所見を順序付きの計画にし、次に /da-verify。

委譲先

層のスキル担当
x-review-backendサーバー側のソース、マイグレーションとスキーマ、契約と DTO、キューとジョブ、依存関係
x-review-frontendコンポーネント、ルート、フック、ストア、スタイル、フロントエンドの i18n
x-review-infraTerraform、CDK、CloudFormation、k8s、IAM、ネットワーク、パイプライン、CI の権限

読むファイルとタイミング

最初には何も読まない。 各ファイルは適用するステップで開く。

ファイル(注記が無ければ ${CLAUDE_SKILL_DIR}/reference/ 配下)タイミング
profiles/review-voice.md — reference/ ではなくツールキットのルートStep 1、他人の変更と分かった時点で
fan-out.mdStep 3、範囲が 1,000 行超のとき
cross-layer.mdStep 4、常に — 10 のチェックと骨組み
silent-failure-patterns.mdStep 4、2 層以上
llm-authored-code.mdStep 4、2 層以上でエージェントが書いた変更
decisions-sweep.mdStep 4b、他人の PR
overview-artifact.mdStep 5 — 6 つの節と、このホストでの入れ物
../_shared/pr-comments.mdStep 6。PR との対応付けの部分は Step 1

1 層だけなら、Step 4 の行は cross-layer.md だけ読み、層横断の影響なし と書いてそのまま通す。Step 1 / 4b / 5 / 6 は変わらない。1 層の PR でも概要ページと下書きを作る。


Step 1. スコープを決め、次に持ち主を決める

cwd が git 内かは問わない。 PR URL は共通手順の PR 経路で解決する。

$ARGUMENTS: PR URL ならその PR、空なら作業中の差分、ブランチならそれとの差分、パスならそのパスの監査、all ならリポジトリ全体。

base とファイル一覧は ../_shared/review-process.md の Step 1 と同じ方法で決め、決められなかった時はその旨を書く。

複数 PR の対応付けも共通手順の Step 1 で行う。

誰の変更か

gh pr view <PR_URL> --json author -q .author.login    # or: git log -1 --format=%ae
git config user.email

review-process.md の Step 1 のとおり、持ち主は何を仮定してよいかを決める。返すものも決める。

自分の作業 / PR 無し他人の PR
成果物層のレポート概要ページ + ユーザーの口調のコメント下書き
層のレポート出力する作業材料で、出力しない。 🔎 と 🔬 はページへ移し、残りはページと下書きの材料にする
Step 1 で読む—profiles/review-voice.md(ツールキットのルート)
追加のステップ—Step 4b、決まっていないことの洗い出し

曖昧なら(共有ブランチ、ペアで書いた変更)聞く。 取り違えると成果物がまるごと違う形になる。

Step 2. 各ファイルを層に分類する

1 つのファイルが複数の層に属してよい。

層手がかり
infra*.tf、cdk.json、lib/** 配下の construct、template.ya?ml(CFn/SAM)、serverless.yml、k8s マニフェスト、プラットフォームやランナーの Dockerfile、*.snap(IaC スナップショット)、IAM / ネットワーク / パイプラインの定義
backendサーバー側のソース(NestJS、Express など)、*.prisma とマイグレーション、API 契約と DTO、ドメイン / ユースケース / リポジトリのコード、Lambda ハンドラ
frontend*.tsx、*.jsx、*.vue、*.svelte、ルート定義、コンポーネント、フック、ストア、CSS とスタイル、フロントエンドの i18n リソース
build / deps / CIpackage.json、*-lock.*、Renovate と依存の設定、.github/workflows/**、アプリの Dockerfile。依存とサプライチェーンは backend へ、CI の権限やシークレットの変更は infra へ回す

モノレポや複数リポジトリでは、リポジトリ・ディレクトリごとに分類する。置き場の分からないファイルは中身で分類し、それでも不明なら unclassified として列挙する。黙って落とさない。

分類を表示し、確認を待たずに進む。 誤分類は層を 1 つ丸ごと失うので見える必要はあるが、承認は要らない。止まるのは unclassified のファイルがある時だけ(進めると推測になる)。

Step 3. 層のレビューを走らせる — inline か fan-out か

Step 1b で測った範囲(生成物を除く)の行数で段を決める。

範囲段
1,000 行以下inline。 何も起動せず、層のスキルをこの文脈で名前で呼ぶ。🔎 に「inline, no subagents」と書く
1,000 行超、または PR ごと・所見ごとの検証を頼まれたfan-out。 fan-out.md に従う。PR(大きければ領域)ごとのレビュー役と、PR が複数なら突き合わせ役を並列に起動して担当を全部開かせ、所見には 1 件ずつ x-review-verifier を当てる

Use the x-review-<layer> skill and follow it exactly. Scope: <the list>. Do not re-derive the full diff.

層の指示をここに書き直さない。 fan-out の役にも層のスキル名を渡す。層のスキルに disable-model-invocation を付けない(Skill 呼び出しが黙って空振りする。lint が検査)。

分ける理由は独立性ではなく量(決定 41)。役のモデルは固定しない。サブエージェントの無いホストでは inline に戻り、サンプルだと書く。

各層が Step 2b の適合スイープ(アーキテクチャ、依存の向き、不可逆な面、テナント、新しい入口)を、ファイル一覧全体に行ごとの判定付きで報告したか確かめる。差分の大きさは関係ない。アーキテクチャを形だけで済ませた層は差し戻す。

unclassified のファイル: 中身で最も近い層に入れる。どうしても置けないものは Step 4 で明示的にレビューし、「未レビュー / 要確認」と付ける。

Step 4. 層をまたぐ統合 — このスキルにしかできないこと

すべての層のレポートが揃うまで待ち、cross-layer.md を読んで 10 のチェックすべてを当てる(構造上の 4 つの形、層をまたぐ形の 5 パターン、境界にしか無い 6 つ目)。どれも原因と結果が別の層にあり、どの層のレビューも届かない。

すべての層の 🧭 と 👤 を先頭に集め、重複をまとめる。2 つの層に出た同じ根本原因は、両方を名指す 1 つの所見にして 1 回だけ数える。層ごとの件数を足し合わせない。

Step 4b. 決まっていないことの洗い出し — 他人の PR のみ

decisions-sweep.md を読む。差分全体のマーカー探索と、レビューで浮かんだマーカーの無い判断の 2 つを見る。

未決だと言うのではなく、答えによって何が変わるかを書く。

Step 5. 1 枚の概要ページ

overview-artifact.md を読み、6 つの節と入れ物を決める。Claude Code では Artifact、Cursor では Canvas、どちらも無い場合は HTML ファイルを書く。 節はどの入れ物でも同じ。

ページはレビューではなく変更についてのもの。 所見は下書きに置き、ページには 🔎 / 🔬 の正直さの行と未決事項を載せる。

自分の作業の場合は、頼まれずに作らず、1 行で申し出る。

Step 6. コメントの下書きとターミナルの索引 — 他人の PR のみ

pr-comments.md に最初から最後まで従う。規則で選び、Step 1 で読んだ口調で下書きし、すべてのアンカーを PR の head で確かめ、下書きを見せ、文字どおりの Go を待つ。

ターミナルに出すのはレポートではなく索引。 下書きごとに対象・重大度・1 行。続けてページへのリンク。ページや下書きの内容をここで繰り返さない。

完了条件

  • 何かを作る前に持ち主が決まり、成果物がそれに合っている
  • どのレビューより先に分類が表示され、すべてのファイルが層に入っている(unclassified があれば止まっている)
  • すべての層が Step 2b のスイープを行ごとの判定付きで報告した(抜き取りで済ませていない)
  • ファイルのある層がすべてスキル名で呼ばれた(中身無しに「扱った」と報告された層が無い)
  • 🔎 に段(「inline, no subagents」か「fan-out: レビュー役 N、反証役 M」)を書き、届かなかったものと形だけのクラスタを名指し、問題なしの結果が承認ではないと述べている
  • cross-layer.md の 10 のチェックをすべて当てた。 すべての 🔗 が両方の層を名指し、各側に 📍 がある。まとめた重複は 1 回だけ数える。1 層の変更では 層横断の影響なし と書く
  • このホストの入れ物で概要ページが 1 枚あり、リンクされ、ページ上の所見をターミナルや下書きで繰り返していない
  • 他人の PR: 口調プロファイルを読んだ後に下書きを書き、投稿前に全アンカーを PR の head で確かめ、Step 4b を実行した

ガードレール

  • コードも設定も変更しない。読み取り専用。
  • 投稿は Go か明示の投稿指示があった時だけ。APPROVE / REQUEST_CHANGES は、ユーザーがその返信でそう言った時だけ。
  • 変更が触らない層のレビューは走らせない。
  • 層をまたぐ所見にも、他と同じく追跡した経路が要る(finding-discipline.md)。実際に使われる経路、設定のロールアウト順、両側が一緒にリリースされるか。

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.