MCP HubMCP Hub
스킬 목록으로 돌아가기

cross-review-project

pjt222
업데이트됨 Yesterday
17
2
17
GitHub에서 보기
개발aimcp

정보

이 스킬은 전용 MCP 브로커를 통해 두 개의 Claude Code 인스턴스가 구조화된 상호 코드 리뷰를 수행할 수 있도록 합니다. 최소 피드백 항목과 단계적 진행을 요구하는 QSG 스케일링 법칙을 통해 리뷰 품질을 강제합니다. 자동화된 품질 관리가 적용된 엄격하고 증거 기반의 교차 프로젝트 코드 리뷰에 사용하세요.

빠른 설치

Claude Code

추천
기본
npx skills add pjt222/agent-almanac -a claude-code
플러그인 명령대체
/plugin add https://github.com/pjt222/agent-almanac
Git 클론대체
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/cross-review-project

Claude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요

문서

Cross-Review Project

2 つの Claude Code インスタンスが、cross-review-mcp ブローカーを介した構造化された成果物交換を通じて互いのプロジェクトをレビューする。ブローカーは Quantized Simplex Gossip (QSG) スケーリング則を強制する — レビューバンドルは選択領域(Γ_h ≈ 1.67)に留まるため最低 5 つの所見を含まなければならず、これにより浅いコンセンサスが合意として通るのを防ぐ。

使用タイミング

  • 2 つのプロジェクトがアーキテクチャ上の関心を共有し、互いに学べるとき
  • 単独のレビュアーが見るものを超えた独立コードレビューが欲しいとき
  • クロスポリネーション(相互受粉)が目的: あるプロジェクトに存在し他方に欠けているパターンを見つけること
  • 受け入れ/拒否/議論の判定を持つ、構造化された証拠裏付けのレビューが必要なとき

入力

  • 必須: 2 つの Claude Code インスタンスからアクセス可能な 2 つのプロジェクトパス
  • 必須: cross-review-mcp ブローカーが起動し、両インスタンスで MCP サーバーとして設定されている
  • 任意: 焦点領域 — 優先する特定のディレクトリ、パターン、関心事
  • 任意: エージェント ID — 各インスタンスの識別子(既定: プロジェクトディレクトリ名)

手順

ステップ1: 前提条件を検証する

ブローカーが起動し両インスタンスから到達可能であることを確認する。

  1. ブローカーが MCP サーバーとして設定されているか確認:
    claude mcp list | grep cross-review
    
  2. get_status を呼んでブローカーが応答的で古いエージェントが登録されていないことを検証
  3. cross-review://protocol のプロトコルリソースを読む — レビュー次元と QSG 制約を記述した markdown ドキュメント

期待結果: ブローカーが get_status に空のエージェントリストで応答する。プロトコルリソースが markdown として読める。

失敗時: ブローカーが設定されていなければ追加する: claude mcp add cross-review-mcp -- npx cross-review-mcp。前セッションからの古いエージェントがあれば、進む前に各々について deregister を呼ぶ。

ステップ2: 登録する

このエージェントをブローカーに登録する。

  1. 次の引数で register を呼ぶ:
    • agentId: 短く一意な識別子(例: プロジェクトディレクトリ名)
    • project: プロジェクト名
    • capabilities: ["review", "suggest"]
  2. get_status を呼んで登録を検証 — エージェントが phase "registered" で現れるはず
  3. ピアエージェントの登録を待つ: ピアのエージェント ID と phase "registered"wait_for_phase を呼ぶ

期待結果: 両エージェントがブローカーに登録された。get_status は phase "registered" の 2 エージェントを示す。

失敗時: register が "already registered" で失敗するなら、エージェント ID は前セッションから取られている。先に deregister を呼んでから再登録する。

ステップ3: ブリーフィングフェーズ

自分のコードベースを読み、構造化されたブリーフィングをピアに送る。

  1. 体系的に読む:
    • エントリポイント(メインファイル、index、CLI コマンド)
    • 依存グラフ(package.json、DESCRIPTION、go.mod)
    • アーキテクチャパターン(ディレクトリ構造、モジュール境界)
    • 既知の問題(TODO コメント、オープンな issue、技術的負債)
    • テストカバレッジ(テストディレクトリ、CI 設定)
  2. ピアがあなたのコードベースを効率よく辿るために使える、構造化された要約 Briefing 成果物を構成する
  3. 次の引数で send_task を呼ぶ:
    • from: 自分のエージェント ID
    • to: ピアのエージェント ID
    • type: "briefing"
    • payload: JSON エンコードされたブリーフィング
  4. phase "briefing"signal_phase を呼ぶ

期待結果: ブリーフィングが送られフェーズが信号された。ブローカーはレビューに進む前にブリーフィング送信を強制する。

失敗時: send_task がブリーフィングを拒否する場合、from フィールドが登録済みエージェント ID と一致するか確認する。自分宛は拒否される。

ステップ4: レビューフェーズ

ピアのブリーフィングを待ち、彼らのコードをレビューして所見を送る。

  1. ピアの ID と phase "briefing"wait_for_phase を呼ぶ
  2. poll_tasks を呼んでピアのブリーフィングを取得する
  3. 受け取ったタスク ID で ack_tasks を呼ぶ — これは必須(peek-then-ack パターン)
  4. ブリーフィングに導かれてピアの実際のソースコードを読む
  5. 6 カテゴリにわたる所見を作成する:
    • pattern_transfer — ピアが採用しうる、自分のプロジェクトにあるパターン
    • missing_practice — ピアに欠けている実践(テスト、検証、エラー処理)
    • inconsistency — ピアのコードベース内の内部矛盾
    • simplification — 削減可能な不要な複雑性
    • bug_risk — 潜在的ランタイム失敗またはエッジケース
    • documentation_gap — 欠落または誤解を招くドキュメント
  6. 各所見は次を含まねばならない:
    • id: 一意な識別子(例: "F-001"
    • category: 上記 6 カテゴリのいずれか
    • targetFile: ピアのプロジェクト内のパス
    • description: 何を見つけたか
    • evidence: なぜこれが有効な所見か(コード参照、パターン)
    • sourceAnalog(推奨): 自分のプロジェクトでそのパターンを示す等価物 — 真のクロスポリネーションの唯一の機構
  7. 最低 5 つの所見 をバンドルする(QSG 制約: m ≥ 5 が Γ_h ≈ 1.67 を選択領域に保つ)
  8. type "review_bundle" と JSON エンコードされた所見配列で send_task を呼ぶ
  9. phase "review"signal_phase を呼ぶ

期待結果: レビューバンドルがブローカーに受け入れられる。所見が 5 未満なら拒否される。

失敗時: バンドルが所見不足で拒否されたなら、より深くレビューする。制約は浅いレビューが支配するのを防ぐために存在する。本当に 5 つの問題を見つけられないなら、このプロジェクトペアにクロスレビューが正しい道具か再考する。

ステップ5: 対話フェーズ

自分のプロジェクトに関する所見を受け取り、証拠裏付けの判定で応答する。

  1. ピアの ID と phase "review"wait_for_phase を呼ぶ
  2. poll_tasks を呼んで自分のプロジェクトに関する所見を取得する
  3. 受け取ったタスク ID で ack_tasks を呼ぶ
  4. 各所見について FindingResponse を作る:
    • findingId: 所見の ID と一致
    • verdict: "accept"(有効、対応する)、"reject"(無効、反証付き)、"discuss"(明確化が必要)
    • evidence: なぜ受け入れる/拒否するか — 空であってはならない
    • counterEvidence(任意): 所見と矛盾する具体的なコード参照
  5. type "response" ですべての応答を send_task で送る
  6. phase "dialogue"signal_phase を呼ぶ

注: "discuss" 判定はプロトコルでゲートされていない — 自動サブ交換ではなく、手動フォローアップ用のフラグとして扱う。

期待結果: すべての所見に証拠付き判定で応答した。空応答はブローカーに拒否される。

失敗時: 所見について意見が形成できない場合、追加で必要な文脈を説明する証拠付き "discuss" を既定とする。

ステップ6: 統合フェーズ

受け入れた所見と計画した行動をまとめる統合成果物を作る。

  1. ピアの ID と phase "dialogue"wait_for_phase を呼ぶ
  2. 残るタスクをポールして承認する
  3. Synthesis 成果物をコンパイル:
    • 計画した行動付きの受け入れ所見(何を変えるか、なぜか)
    • 拒否所見と理由(将来のレビューのために推論を保存)
  4. type "synthesis" と JSON エンコードされた統合で send_task を呼ぶ
  5. phase "synthesis"signal_phase を呼ぶ
  6. 任意: 受け入れた所見について GitHub issue を作成
  7. phase "complete"signal_phase を呼ぶ
  8. クリーンアップのため deregister を呼ぶ

期待結果: 両エージェントが "complete" に到達。ブローカーは complete に進むのに最低 2 つの登録エージェントを要求する。

失敗時: ピアが既に登録解除されていても、ローカルで完了できる。受け取った所見から統合をコンパイルする。

バリデーション

  • 両エージェントが登録され "complete" フェーズに到達した
  • レビュー開始前にブリーフィングが交換された(フェーズ強制)
  • レビューバンドルが各々最低 5 つの所見を含んだ
  • すべての所見が証拠付き判定(accept/reject/discuss)を受けた
  • poll_tasks の後で ack_tasks が呼ばれた
  • 受け入れ所見が行動にマップされた統合が作成された
  • 完了後にエージェントが登録解除された

よくある落とし穴

  • 5 未満の所見: ブローカーは m < 5 のバンドルを拒否する。これは恣意的ではない — N=2 エージェントと 6 カテゴリでは、m < 5 は Γ_h を、コンセンサスがノイズと区別不能になる臨界境界以下に置く。より深くレビューする; 5 つの所見が本当に見つからないなら、プロジェクトはクロスレビューの恩恵を受けないかもしれない。
  • ack_tasks を忘れる: ブローカーは peek-then-ack 配信を使う。タスクは承認まで queue に残る。ack を忘れると次のポールで重複処理を引き起こす。
  • from パラメータを忘れる: send_task は自分のエージェント ID と一致する明示的な from フィールドを要求する。自分宛は拒否される。
  • 同モデルの認識相関: 2 つの Claude インスタンスは訓練バイアスを共有する。時間順序はレビュー中に互いの出力を読まないことを保証するが、事前確率は相関する。真の認識的独立性のためには、異なるモデルファミリーをインスタンス間で使う。
  • sourceAnalog をスキップ: sourceAnalog フィールドは任意だが、真のクロスポリネーションの唯一の機構 — 推奨しているパターンの 自分の 実装を示す。ソース類似物が存在するなら常に埋める。
  • discuss をブロッキングとして扱う: プロトコルには未解決議論の解決を complete の条件とするものはない。discuss 判定はセッション後の手動フォローアップ用のフラグとして扱う。
  • テレメトリをレビューしない: ブローカーはすべてのイベントを JSONL にログする。セッション後、ログをレビューして QSG 仮定を検証する — α を経験的に推定(α ≈ 1 - reject_rate)し、カテゴリごとの受け入れ率を確認する。

関連スキル

  • scaffold-mcp-server — ブローカー自体を構築または拡張する
  • implement-a2a-server — ブローカーが引き継ぐ A2A プロトコルパターン
  • review-codebase — 単独エージェントレビュー(このスキルはそれをクロスエージェント構造化交換へ拡張する)
  • build-consensus — スワームコンセンサスパターン(QSG が理論基盤)
  • configure-mcp-server — Claude Code でブローカーを MCP サーバーとして設定する
  • unleash-the-agents — ブローカー自体を解析するために使える(バトルテスト済: 40 エージェント、10 仮説ファミリー)

GitHub 저장소

pjt222/agent-almanac
경로: i18n/ja/skills/cross-review-project
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

연관 스킬

qmd

개발

qmd는 BM25, 벡터 임베딩, 재순위화를 결합한 하이브리드 검색을 통해 로컬 파일을 색인화하고 검색할 수 있는 로컬 검색 및 색인화 CLI 도구입니다. 명령줄 사용과 Claude 통합을 위한 MCP(Model Context Protocol) 모드를 모두 지원합니다. 이 도구는 임베딩에 Ollama를 사용하고 색인을 로컬에 저장하여 터미널에서 직접 문서나 코드베이스를 검색하는 데 이상적입니다.

스킬 보기

subagent-driven-development

개발

이 스킬은 각 독립적인 작업마다 새로운 하위 에이전트를 배치하고 작업 사이에 코드 리뷰를 진행하여 구현 계획을 실행합니다. 이 리뷰 프로세스를 통해 품질 게이트를 유지하면서 빠른 반복 작업을 가능하게 합니다. 동일한 세션 내에서 대부분 독립적인 작업을 진행할 때 내장된 품질 검증과 함께 지속적인 진행을 보장하기 위해 사용하세요.

스킬 보기

mcporter

개발

mcporter 스킬은 개발자가 Claude에서 직접 Model Context Protocol(MCP) 서버를 관리하고 호출할 수 있도록 합니다. 이 스킬은 사용 가능한 서버를 나열하고, 인수를 사용해 해당 서버의 도구를 호출하며, 인증 및 데몬 생명주기를 처리하는 명령어를 제공합니다. 개발 워크플로우에서 MCP 서버 기능을 통합하고 테스트할 때 이 스킬을 사용하세요.

스킬 보기

adk-deployment-specialist

개발

이 스킬은 A2A 프로토콜을 사용하여 Vertex AI ADK 에이전트를 배포하고 오케스트레이션하며, AgentCard 검색, 작업 제출, 코드 실행 샌드박스 및 메모리 뱅크와 같은 지원 도구를 관리합니다. Python, Java 또는 Go 언어로 순차, 병렬 또는 루프 오케스트레이션 패턴을 갖춘 다중 에이전트 시스템 구축을 가능하게 합니다. Google Cloud에서 ADK 에이전트 배포 또는 에이전트 워크플로우 오케스트레이션을 요청받았을 때 사용하세요.

스킬 보기