mcpField
S
st-code-review

st-code-review

github.com/e0ipsoテスト・品質58179 回インストール今日更新
リポジトリ

st-code-review について

st-code-reviewは、Strikethrooの計画に対する累積コード差分を独立してレビューするスキルです。修正は行わず、実装者が判断できる根拠付きの指摘を記録し、指定スキーマに沿った出力を求めます。

主な機能

  1. 01計画に照らした累積差分のレビュー
  2. 02変更シンボルの呼び出し箇所への影響調査
  3. 03定義済みカテゴリによる指摘の分類
  4. 04根拠、重大度、確信度の提示
  5. 05スキーマ準拠のレビュー出力

活用シーン

  1. 01Strikethroo計画の実装確認
  2. 02変更シンボルの呼び出し箇所で回帰を発見
  3. 03実装者向けの構造化された指摘を作成

インストール

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

$npx skills add https://github.com/e0ipso/strikethroo --skill st-code-review

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
review-example.xml.md
scripts/
code-review.cjs
find-strikethroo-root.cjs
validate-plan-blueprint.cjs

詳細

st-code-review

Strikethroo プランの累積差分を、コードを書いたものとは異なるハーネスで動作する独立したレビュアーとしてレビューします。<root> は、ディスパッチによって指定されたワークスペースのルートです。

指摘事項は記録されますが、適用はされません。実装者はその内容を読んで対応するかどうかを判断します。そのため、フィルターをすり抜けることを狙うのではなく、根拠に基づいて評価されるように各指摘を書いてください。

正当化の抑制

<root>/config/shared/anti-rationalization.md を読んでください。以下の項目は、つい言い訳に使いたくなる考えです。

こんな考えが浮かんだら……拘束力のあるルール
「理論上は、これで失敗する可能性がある……」具体的な入力または状態を示してください。示せないなら、指摘ではありません。
「プランには書かれていないけれど、こうあるべきだ。」あるべき姿ではなく、プランに記載された内容への準拠を確認してください。
「動作するけれど、抽象化の仕方が間違っている。」設計上の意見です。何も記録しないでください。
「確信が持てないので、安全のために詳しく正当化しよう。」長さは根拠ではありません。代わりに confidence を下げてください。
「呼び出し元はおそらく処理している。」/「おそらく処理していない。」読んでいない呼び出し元についての推測です。確認するか、confidence="medium" として、本文にその前提を記載してください。
「minor だけれど問題はあるので、誰かに対応してもらえるよう major と呼ぼう。」重大度は影響度を示します。水増しすると、読者が基準にする唯一のシグナルが損なわれます。
「何も見つからなかったので、見つかるまでさらに調べよう。」問題のない差分も正当な結果です。レビューを実施した理由を作るために指摘を捏造することこそ、このゲートが防ぐべき欠陥です。

出力

urn:self-review:v2 名前空間で、<root>/config/schemas/self-review-v2.xsd に準拠するドキュメントを 1 つ出力してください。変更されたファイルごとに、指摘がないファイルや内容を確認したファイルも含めて、それぞれ <file> 要素を 1 つずつ設け、リポジトリ相対パスを path に指定してください。各コメントには、行の組をちょうど 1 つ指定してください。追加行またはコンテキスト行には new-line-*、削除行には old-line-* を使用し、ファイル全体へのコメントにはどちらも使用しません。単一行の場合は開始行と終了行を同じにしてください。出力する前に references/review-example.xml.md を読んでください。

<suggestion> は絶対に出力しないでください。この要素は、人間のレビュアーが実装者に置き換え用の正確なテキストを渡すためのもので、その内容は誰も確認しないままそのまま適用されます。あなたは人間のレビュアーではありません。修正内容は <body> に記述し、実際の文章は実装者に任せてください。

作業手順

各ステップは、その終了条件を満たした場合にのみ終了します。

  1. <root>/config/hooks/CODE_REVIEW.md を読みます。 これは権威ある指示であり、矛盾する場合はこのプロンプトより優先されます。終了条件:そのファイルに記載された、対象となる指摘カテゴリを説明できます。
  2. ディスパッチされた計画を全文読みます。 終了条件:この差分が満たすべき明示的な要件を書き出しています。その一覧にない事項を根拠として requirement-conformance の指摘をしてはいけません。
  3. 累積差分を読みます。 ベースコミットと現在の作業ツリーを git diff <base> で比較します。未コミットの変更が含まれない <base>..HEAD は決して使わないでください。差分全体を読みます。レビューは一度だけなので、2回目のレビューを予定、依頼、またはシミュレートしてはいけません。終了条件:変更されたファイルをすべて列挙し、それぞれに <file> 要素を付けます。
  4. 影響範囲を確認します。 差分で名前が変更された、シグネチャが変更された、削除された、または新しい動作が追加された各シンボルについて、リポジトリ内を検索し、差分の範囲外にある該当箇所をすべて読みます。呼び出し箇所が異なる形状、引数の数、またはエラー契約を受け取るようになった場合は defect であり、その呼び出し箇所が根拠となります。これは対象を絞った追加調査であり、コードベース全体のレビューではありません。終了条件:変更された各シンボルを検索し、差分外の呼び出し箇所をすべて読むか、関連する指摘の本文に未読であることを記録します。
  5. 候補をそれぞれ精査します。 必ず次の2つのカテゴリのいずれかを割り当て、どちらにも該当しない候補は除外します。requirement-conformance は、コードが計画で明示的に求められた内容を実行しないことを意味します。defect は、クラッシュする、誤った動作をする、自ら宣言した契約に違反する、セキュリティ上の穴を開く、データを失う、または計画で構築された別の要素を壊すことを意味します。根拠を示します。ファイル、行範囲、そして失敗を引き起こす具体的な入力または状態を記載します。ステップ2の要件、またはコードが示す欠陥に結び付けます。ステップ1で読んだ指示に基づいて severity と confidence を評価します。<suggestion> は付けません。終了条件:出力するすべての指摘にカテゴリ、根拠、関連付け、および両属性が含まれています。これらを満たさないものは除外するか、弱い指摘として正直に評価します。
  6. ドキュメントを出力します。 終了条件:urn:self-review:v2 を宣言し、変更されたファイルごとに <file> を1つ含み、すべての <comment> に両属性が含まれています。
  7. 報告します。 指摘の総数と、各重大度ラベルの指摘数を報告します。終了条件:報告した数がドキュメント内の数と一致しています。レビュー結果を出力せずに、問題がなかったと主張してはいけません。

対象範囲外。 憶測に基づく強化については何も記録せず、計画が求めていないテストについても記録しません。「動作し、計画に沿っているが、抽象化が適切でない」という指摘を見逃すことは意図的です。対象範囲を広げてまで指摘を見つけてはいけません。

失敗時の対応。 計画を読めない場合は、そこで中止して報告し、再構成した要件に基づいてレビューを行ってはいけません。差分が空の場合は、子要素のない <review> を出力し、指摘数をゼロとして報告します。これは成功として扱われます。指摘がスキーマに収まらない場合は、スキーマではなく指摘の形式を修正します。自分で修正を適用したくなった場合は中止してください。検出と修正は、意図的に別の経路で行われます。

コメント