Communityコーディング&開発github.com

コードレビュー

プルリクエスト(PR)に対して、原則に基づいた質問駆動分析により深いレビューを実施し、具体的なコメントを生成します。

コードレビュー とは?

このスキルは、コードレビューを「質問の生成と回答」というプロセスとして体系的に実行します。レビュー原則から導き出された全ての質問を生成し、それぞれに明示的な回答(または「作成者への確認が必要」というマーク)を付与することで、検証可能な成果物を作成します。これは、単なる指摘の列挙ではなく、各指摘の根拠を明確にすることを目的としています。スキルは、PRのスカウティング、質問の洗練、Q&Aドキュメントの作成、コミットごとのレビュー、総合評価(前後)という複数のフェーズで構成され、各フェーズは専用のサブエージェントが担当します。対応プラットフォームはGitHubであり、`gh pr checkout` でローカルにチェックアウトしたコードを解析します。重要なのは、このスキルがPRに自動コメントを投稿するのではなく、最終的なレビュー成果物(REVIEW.md)をユーザーに提供する点です。ユーザーはその内容に基づいて手動でGitHub上にコメントを投稿します。また、FACT、RESEARCH、DESIGN、CORRECTNESS、INTENTといった質問タイプごとに異なるハンドラー(スキル)を使い分け、深い分析を実現します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cbgbt/bottlerocket-forest/tree/main/skills/review-code

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

コードレビュースキル

PRをレビューするには、レビュー原則から導き出されたすべての質問を生成し、回答します。最終的には、具体的なPRコメントと推論の成果物への参照を含むドキュメントを作成します。

仕組み

コードレビューは尋問です。質問を生成し、すべてに回答し、不明瞭または懸念事項を明らかにします。

このスキルが生成するもの:

  • レビュー原則から導き出された質問
  • すべての質問への回答(または明示的な「作成者確認が必要」)
  • 回答から導き出された含意
  • カテゴリ別に整理された顕在化した懸念事項

このスキルが生成しないもの:

  • 重大度のランク付け(致命的/重大/軽微)
  • ブロッキング/非ブロッキングの分類
  • 承認の推奨

プロセス: 0. セットアップ - PRブランチをローカルにチェックアウト

  1. スカウト - PRの領域をマッピングし、初期質問を生成(浅い場合あり)
  2. 質問の洗練 - 知識のギャップを埋め、本当の質問バックログを生成し、タイプ別に分類
  3. 質問への回答 - 各質問を適切なハンドラーにルーティングし、Q&Aドキュメントを作成
  4. 全体事前評価 - Q&Aを使用してアプローチを評価(ステップ5と並行)
  5. コミットごとのレビュー - Q&Aを使用して各コミットをレビュー(並行) 5.5. 含意のフィルタリング - 二値の顕在化判断 + カテゴリ分類
  6. 全体事後評価 - 再評価、要件充足の確認
  7. 統合 - カテゴリ別に整理された懸念事項に結合

質問タイプとハンドラー:

  • FACT → fact-findスキル(引用付き回答)
  • RESEARCH → deep-researchスキル(教育用ドキュメント)
  • DESIGN → 設計評価(代替案の提案、原則に照らした評価)
  • CORRECTNESS → 正当性分析(コードのトレース、動作の検証)
  • INTENT → 作成者確認が必要としてマーク(自己回答不可)

重要な洞察: すべての質問には明示的で文書化された回答(または明示的な「作成者確認が必要」)が与えられます。これにより検証可能な成果物が作成されます。

入力

  • PR参照(URL、番号、またはブランチ)
  • オプション: ユーザーが特定した重要な問題やドキュメント

セットアップ

開始前に、オーケストレーターがPRをチェックアウトします:

# ターゲットリポジトリディレクトリ内で
glh pr checkout <PR-number>

前提条件:

  • 作業ディレクトリはPRを含むリポジトリであること
  • 未コミットの変更がないこと(ダーティな場合は早期に失敗)
  • GitHub CLIが認証済みであること

チェックアウト後、すべてのサブエージェントは gh CLIの差分ではなく、ローカルファイルシステムからコードを読み取ります。

ワークスペース

すべての成果物のために planning/<pr-slug>/ を作成します。これらの成果物はコミットしないでください — これらは作業ドキュメントであり、成果物ではありません。

planning/<pr-slug>/
├── 00-scout.md           # 初期領域マップ
├── 01-questions.md       # 洗練され、分類された質問バックログ
├── 02-answers.md         # 統合Q&Aドキュメント
├── answers/              # 個別の回答成果物
│   ├── fact-Q1.md
│   ├── design-Q2.md
│   └── ...
├── 03-commit-NN.md       # コミットごとのレビュー
├── 04-holistic-pre.md
├── filtered-implications.md  # 顕在化するカテゴリ別含意
├── 05-holistic-post.md
└── REVIEW.md             # 最終出力

サブエージェントプロトコル

渡すファイル: PRINCIPLES.md、エージェント指示ファイル、以前のフェーズの成果物

渡すデータ: workspace パス、フェーズ固有データ

応答:

OUTPUT: <ファイル名>
STATUS: ok | problems
NOTES: <問題がある場合>

STATUS: ok を信頼してください。problems の場合はメモを読み、判断してください。

リポジトリへのアクセス

レビュー開始前にPRはローカルにチェックアウトされます。サブエージェントは以下を受け取ります:

  • repo_path: PRがチェックアウトされたリポジトリへのパス
  • base_ref: ベースブランチ(例: main)
  • head_ref: PRブランチ(チェックアウト済み)

サブエージェントは repo_path からファイルを直接読み取ります。差分には git diff {base_ref}...HEAD を使用します。

フェーズ

0. セットアップ

分析前にローカルでPRをチェックアウトします:

glh pr checkout <PR-number>

差分コマンドのためにPRメタデータから base_ref を取得します。

1. スカウト

エージェント: agents/01-scout.md ファイル: PRINCIPLES.md、エージェントファイル データ: workspace、repo_path、base_ref、pr_number、ユーザーコンテキスト 出力: 00-scout.md

2. 質問の洗練

エージェント: agents/02-refine-questions.md ファイル: PRINCIPLES.md、エージェントファイル、00-scout.md データ: workspace、repo_path、base_ref、関連Issue/ドキュメント 出力: 01-questions.md

このフェーズでは、fact-findを使用して知識のギャップを埋め、分類された質問バックログを生成します。

3. 質問への回答

01-questions.md の各質問に対して、適切な回答エージェントを起動します:

タイプエージェント出力
FACTagents/03-answer-fact.mdanswers/fact-{id}.md
RESEARCHagents/04-answer-research.mdanswers/research-{id}.md
DESIGNagents/05-answer-design.mdanswers/design-{id}.md
CORRECTNESSagents/06-answer-correctness.mdanswers/correctness-{id}.md
INTENT(スキップ—作成者確認が必要としてマーク)

可能な限り、回答エージェントを並行して実行します。

すべて完了後、02-answers.md に統合します:

# 回答済みの質問

| ID | タイプ | 質問 | 回答サマリー | 詳細 |
|----|------|----------|----------------|--------|
| Q1 | FACT | ... | ... | [answers/fact-Q1.md] |

## 作成者確認が必要
| ID | 質問 | 回答できない理由 |

4. 全体事前評価

エージェント: agents/07-holistic-pre.md ファイル: PRINCIPLES.md、エージェントファイル、01-questions.md、02-answers.md データ: workspace、PR説明、コミットメッセージ 出力: 04-holistic-pre.md

フェーズ5と並行して実行できます。

5. コミットごとのレビュー

エージェント: agents/08-commit-review.md(コミットごとに1つ、並行) ファイル: PRINCIPLES.md、エージェントファイル、01-questions.md、02-answers.md データ: workspace、repo_path、base_ref、commit_sha、commit_message、commit_number、total_commits、all_commit_messages 出力: 03-commit-NN.md

for each commit in PR:
    spawn commit_reviewer(
        commit_diff=commit.diff,
        commit_number=N,
        ...
    ) → 03-commit-{N}.md
# コミットごとに1エージェント - バッチ処理しない

5.5. 含意のフィルタリング

エージェント: agents/085-filter-implications.md ファイル: PRINCIPLES.md、エージェントファイル、すべての 03-commit-*.md データ: workspace 出力: filtered-implications.md

エージェントはコミットレビューファイルから含意と作成者への質問を直接解析します。

二値の顕在化判断(顕在化する/しない)とカテゴリ分類:

  • correctness - 論理エラー、バグ、不正な動作
  • assumption - 成り立たない可能性のある暗黙の前提
  • type-system - 型安全性の問題、制約の欠落
  • intent - 作成者の意図について明確化が必要な質問
spawn implication_filter(workspace=workspace) → filtered-implications.md
# エージェントは 03-commit-*.md ファイルから含意を抽出

6. 全体事後評価

エージェント: agents/09-holistic-post.md ファイル: PRINCIPLES.md、エージェントファイル、01-questions.md、02-answers.md、04-holistic-pre.md、すべての 03-commit-*.md、filtered-implications.md データ: workspace 出力: 05-holistic-post.md

7. 統合

エージェント: agents/10-synthesize.md ファイル: PRINCIPLES.md、エージェントファイル、すべての成果物 データ: workspace 出力: REVIEW.md

顕在化した懸念事項をカテゴリ(correctness、assumption、type-system、intent)ごとに整理します。重要度ではありません。

8. 納品

REVIEW.md をユーザーに提示します。

⚠️ ローカル限定: このスキルはローカルの成果物のみを生成します。最初の gh pr checkout 以外で、GitHubにコメントを投稿したり、何らかの形でGitHubとやり取りしたりすることはしないでください。レビュー出力はユーザーが手動でアクションを起こすためのものです。

トークン節約

あなたはオーケストレーションを行い、サブエージェントが分析します。ステータス応答を信頼してください。

中間成果物は読まないでください。ただし、以下は例外:

  • STATUS: problems → メモを読む
  • ユーザーが質問する
  • 障害のデバッグ

常に読むもの: ステータス応答、REVIEW.mdの最終出力。

スキルファイル

skills/review-code/
├── SKILL.md
├── PRINCIPLES.md
└── agents/
    ├── 01-scout.md
    ├── 02-refine-questions.md
    ├── 03-answer-fact.md
    ├── 04-answer-research.md
    ├── 05-answer-design.md
    ├── 06-answer-correctness.md
    ├── 07-holistic-pre.md
    ├── 08-commit-review.md
    ├── 085-filter-implications.md
    ├── 09-holistic-post.md
    └── 10-synthesize.md

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

ad-hoc-implementation-plan

Transform a rough plan into implement-commit ready artifacts. Allows rigorous review while implementing.

build-kit-locally

Build a kit and publish it to a locally hosted registry for development testing

build-variant-from-local-kits

Build a variant using locally published kits for development validation

deep-research

Create educational documents that build understanding progressively with citations

edit-spec-file

Edit Bottlerocket RPM spec files following project style conventions

fact-find

Quick lookup of specific facts about Bottlerocket with citations

idea-honing

Clarify feature ideas through iterative Q&A, recording insights to guide concept development

implement-commit

Implement commits from an implementation plan using a TDD pipeline

local-registry

Start and manage a local OCI registry for Bottlerocket kit development

prepare-core-kit-release

Prepare bottlerocket-core-kit for release by bumping version and updating changelog

propose-feature-concept

Create a new feature concept document to pitch the idea and explain the problem/solution

propose-feature-design

Create or update feature technical design document with architecture and implementation guidance

propose-feature-requirements

Create or update feature requirements specification using EARS notation with examples and appendices

propose-feature-test-plan

Create a test plan mapping EARS requirements and Critical Constraints to specific tests

propose-implementation-plan

Create an implementation plan with atomic commits that build toward a complete feature

review-scope

Verify code changes match intended scope and requirements without exceeding boundaries

review-style

Verify code follows project style guides without providing improvement suggestions

test-local-twoliter

Build and test local changes to twoliter before releasing

update-twoliter

Update all Bottlerocket repositories to a new Twoliter version

関連スキル