cross-review-project
について
このスキルは、構造化されたMCPブローカーを通じて2つのClaude Codeインスタンスが相互コードレビューを実行できるようにします。QSGスケーリング則を用いて最小帯域幅要件とフェーズゲート進行を適用し、レビュー品質を保証します。AIエージェント間での体系的な証拠に基づくクロスプロジェクトコード分析にご利用ください。
クイックインストール
Claude Code
推奨npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/cross-review-projectこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
Projekt-Cross-Review
Zwei Claude-Code-Instanzen pruefen die Projekte des jeweils anderen durch strukturierten Artefakt-Austausch via den cross-review-mcp-Broker. Der Broker erzwingt Quantized-Simplex-Gossip-(QSG)-Skalengesetze — Review-Buendel muessen mindestens 5 Befunde enthalten um im Selektionsregime zu bleiben (Γ_h ≈ 1,67), was verhindert dass oberflaechlicher Konsens als Uebereinstimmung durchgeht.
Wann verwenden
- Zwei Projekte teilen architektonische Anliegen und koennten voneinander lernen
- Unabhaengiges Code-Review erwuenscht das ueber das hinausgeht was ein einzelner Reviewer sieht
- Cross-Pollination ist das Ziel: Muster in einem Projekt finden die im anderen fehlen
- Strukturiertes, evidenzbasiertes Review mit accept/reject/discuss-Verdicts noetig
Eingaben
- Erforderlich: Zwei Projektpfade die zwei Claude-Code-Instanzen zugaenglich sind
- Erforderlich:
cross-review-mcp-Broker laeuft und ist als MCP-Server in beiden Instanzen konfiguriert - Optional: Fokusbereiche — spezifische Verzeichnisse, Muster oder Anliegen zu priorisieren
- Optional: Agent-IDs — Identifikatoren fuer jede Instanz (Standard: Projektverzeichnisname)
Vorgehensweise
Schritt 1: Voraussetzungen verifizieren
Bestaetigen dass der Broker laeuft und beide Instanzen ihn erreichen koennen.
- Pruefen dass der Broker als MCP-Server konfiguriert ist:
claude mcp list | grep cross-review get_statusaufrufen um zu verifizieren dass der Broker antwortet und keine veralteten Agents registriert sind- Die Protokoll-Resource bei
cross-review://protocollesen — dies ist ein Markdown-Dokument das die Review-Dimensionen und QSG-Beschraenkungen beschreibt
Erwartet: Der Broker antwortet auf get_status mit einer leeren Agent-Liste. Die Protokoll-Resource ist als Markdown lesbar.
Bei Fehler: Wenn der Broker nicht konfiguriert ist, hinzufuegen: claude mcp add cross-review-mcp -- npx cross-review-mcp. Wenn veraltete Agents aus einer vorigen Session existieren, fuer jeden deregister aufrufen bevor fortgefahren wird.
Schritt 2: Registrieren
Diesen Agent beim Broker registrieren.
registeraufrufen mit:agentId: ein kurzer, einzigartiger Identifikator (z.B. Projektverzeichnisname)project: der Projektnamecapabilities:["review", "suggest"]
- Registrierung verifizieren mit
get_status— der Agent sollte mit Phase"registered"erscheinen - Auf Registrierung des Peer-Agents warten:
wait_for_phasemit der Agent-ID des Peers und Phase"registered"aufrufen
Erwartet: Beide Agents beim Broker registriert. get_status zeigt 2 Agents in Phase "registered".
Bei Fehler: Wenn register mit "already registered" scheitert, ist die Agent-ID aus einer vorigen Session belegt. Zuerst deregister aufrufen, dann erneut registrieren.
Schritt 3: Briefing-Phase
Eigene Codebasis lesen und ein strukturiertes Briefing an den Peer senden.
- Systematisch lesen:
- Einstiegspunkte (Hauptdateien, Index, CLI-Befehle)
- Abhaengigkeitsgraph (package.json, DESCRIPTION, go.mod)
- Architektonische Muster (Verzeichnisstruktur, Modulgrenzen)
- Bekannte Probleme (TODO-Kommentare, offene Issues, Tech Debt)
- Test-Coverage (Test-Verzeichnisse, CI-Konfiguration)
- Ein
Briefing-Artefakt komponieren — eine strukturierte Zusammenfassung die der Peer nutzen kann um deine Codebasis effizient zu navigieren send_taskaufrufen mit:from: deine Agent-IDto: Peer-Agent-IDtype:"briefing"payload: JSON-kodiertes Briefing
signal_phasemit Phase"briefing"aufrufen
Erwartet: Briefing gesendet und Phase signalisiert. Der Broker erzwingt dass ein Briefing gesendet werden muss bevor zu Review uebergegangen werden kann.
Bei Fehler: Wenn send_task das Briefing ablehnt, pruefen dass das from-Feld mit deiner registrierten Agent-ID uebereinstimmt. Self-Sends werden abgelehnt.
Schritt 4: Review-Phase
Auf das Briefing des Peers warten, dann seinen Code pruefen und Befunde senden.
wait_for_phasemit der Peer-ID und Phase"briefing"aufrufenpoll_tasksaufrufen um das Briefing des Peers abzurufenack_tasksmit den empfangenen Task-IDs aufrufen — dies ist erforderlich (Peek-then-Ack-Muster)- Den tatsaechlichen Quellcode des Peers lesen, informiert durch sein Briefing
- Befunde ueber 6 Kategorien produzieren:
pattern_transfer— ein Muster in deinem Projekt das der Peer uebernehmen koenntemissing_practice— eine Praxis die dem Peer fehlt (Testing, Validierung, Fehlerbehandlung)inconsistency— interner Widerspruch innerhalb der Codebasis des Peerssimplification— unnoetige Komplexitaet die reduziert werden koenntebug_risk— potenzieller Laufzeitfehler oder Grenzfalldocumentation_gap— fehlende oder irrefuehrende Dokumentation
- Jeder Befund muss enthalten:
id: einzigartiger Identifikator (z.B."F-001")category: eine der 6 Kategorien obentargetFile: Pfad im Projekt des Peersdescription: was du gefunden hastevidence: warum dies ein gueltiger Befund ist (Code-Referenzen, Muster)sourceAnalog(empfohlen): das Aequivalent in deinem eigenen Projekt das das Muster demonstriert — dies ist der einzige Mechanismus fuer genuine Cross-Pollination
- Mindestens 5 Befunde buendeln (QSG-Beschraenkung: m ≥ 5 haelt Γ_h ≈ 1,67 im Selektionsregime)
send_taskmit Type"review_bundle"und dem JSON-kodierten Findings-Array aufrufensignal_phasemit Phase"review"aufrufen
Erwartet: Review-Bundle vom Broker akzeptiert. Weniger als 5 Befunde werden abgelehnt.
Bei Fehler: Wenn das Bundle wegen unzureichender Befunde abgelehnt wird, tiefer pruefen. Die Beschraenkung existiert um zu verhindern dass oberflaechliche Reviews dominieren. Wenn genuein keine 5 Probleme gefunden werden koennen, neu pruefen ob Cross-Review das richtige Werkzeug fuer dieses Projektpaar ist.
Schritt 5: Dialog-Phase
Befunde ueber das eigene Projekt empfangen und mit evidenzbasierten Verdicts antworten.
wait_for_phasemit der Peer-ID und Phase"review"aufrufenpoll_tasksaufrufen um Befunde zum eigenen Projekt abzurufenack_tasksmit den empfangenen Task-IDs aufrufen- Fuer jeden Befund eine
FindingResponseproduzieren:findingId: entspricht der Befund-IDverdict:"accept"(gueltig, wird gehandelt),"reject"(ungueltig, mit Gegenevidenz) oder"discuss"(braucht Klaerung)evidence: warum du akzeptierst oder ablehnst — muss nicht-leer seincounterEvidence(optional): spezifische Code-Referenzen die dem Befund widersprechen
- Alle Antworten via
send_taskmit Type"response"senden signal_phasemit Phase"dialogue"aufrufen
Hinweis: das "discuss"-Verdict ist nicht durch das Protokoll gesperrt — als Flag fuer manuelle Nachverfolgung behandeln, nicht als automatisierten Sub-Austausch.
Erwartet: Auf alle Befunde wurde mit Verdicts geantwortet. Leere Antworten werden vom Broker abgelehnt.
Bei Fehler: Wenn keine Meinung zu einem Befund gebildet werden kann, auf "discuss" defaulten mit Evidenz die erklaert welcher zusaetzliche Kontext gebraucht wird.
Schritt 6: Synthese-Phase
Ein Synthese-Artefakt produzieren das akzeptierte Befunde und geplante Aktionen zusammenfasst.
wait_for_phasemit der Peer-ID und Phase"dialogue"aufrufen- Verbleibende Tasks pollen und bestaetigen
- Ein
Synthesis-Artefakt zusammenstellen:- Akzeptierte Befunde mit geplanten Aktionen (was du aendern wirst und warum)
- Abgelehnte Befunde mit Gruenden (bewahrt das Reasoning fuer zukuenftige Reviews)
send_taskmit Type"synthesis"und der JSON-kodierten Synthese aufrufensignal_phasemit Phase"synthesis"aufrufen- Optional GitHub-Issues fuer akzeptierte Befunde erstellen
signal_phasemit Phase"complete"aufrufenderegisteraufrufen zum Aufraeumen
Erwartet: Beide Agents erreichen "complete". Der Broker verlangt mindestens 2 registrierte Agents um zu complete vorzurueacken.
Bei Fehler: Wenn der Peer bereits deregistriert hat, kann lokal trotzdem komplettiert werden. Die Synthese aus den empfangenen Befunden zusammenstellen.
Validierung
- Beide Agents registriert und Phase
"complete"erreicht - Briefings ausgetauscht bevor Reviews begannen (Phasen-Erzwingung)
- Review-Bundles enthielten jeweils mindestens 5 Befunde
- Alle Befunde erhielten ein Verdict (accept/reject/discuss) mit Evidenz
-
ack_tasksnach jedempoll_tasksaufgerufen - Synthese produziert mit akzeptierten Befunden auf Aktionen abgebildet
- Agents nach Komplettierung deregistriert
Haeufige Stolperfallen
- Weniger als 5 Befunde: Der Broker lehnt Bundles mit m < 5 ab. Dies ist nicht willkuerlich — mit N=2 Agents und 6 Kategorien setzt m < 5 Γ_h auf oder unter die kritische Grenze wo Konsens nicht von Rauschen unterscheidbar ist. Tiefer pruefen; wenn 5 Befunde genuein nicht gefunden werden koennen, profitieren die Projekte moeglicherweise nicht vom Cross-Review.
ack_tasksvergessen: Der Broker nutzt Peek-then-Ack-Delivery. Tasks bleiben in der Queue bis sie bestaetigt sind. Vergessenes Ack verursacht doppelte Verarbeitung beim naechsten Poll.- Den
from-Parameter vergessen:send_taskerfordert ein explizitesfrom-Feld das mit der Agent-ID uebereinstimmt. Self-Sends werden abgelehnt. - Selbe-Modell epistemische Korrelation: Zwei Claude-Instanzen teilen Training-Biases. Zeitliche Ordnung stellt sicher dass sie waehrend Review nicht die Ausgabe des anderen lesen, aber ihre Priors sind korreliert. Fuer genuine epistemische Unabhaengigkeit unterschiedliche Modellfamilien ueber Instanzen nutzen.
sourceAnalogueberspringen: DassourceAnalog-Feld ist optional aber der einzige Mechanismus fuer genuine Cross-Pollination — es zeigt deine Implementation des Musters das du empfiehlst. Immer befuellen wenn ein Source-Analog existiert.discussals blockierend behandeln: Nichts im Protokoll sperrtcompletedarauf dass anhaengende Diskussionen geloest werden.discuss-Verdicts als Flags fuer manuelle Nachverfolgung nach der Session behandeln.- Telemetrie nicht reviewen: Der Broker loggt alle Events nach JSONL. Nach einer Session das Log pruefen um QSG-Annahmen zu validieren — α empirisch schaetzen (
α ≈ 1 - reject_rate) und Per-Kategorie-Akzeptanzraten pruefen.
Verwandte Skills
scaffold-mcp-server— fuer Bauen oder Erweitern des Brokers selbstimplement-a2a-server— A2A-Protokoll-Muster aus denen der Broker schoepftreview-codebase— Single-Agent-Review (dieser Skill erweitert es zu Cross-Agent-strukturiertem Austausch)build-consensus— Schwarm-Konsens-Muster (QSG ist die theoretische Grundlage)configure-mcp-server— den Broker als MCP-Server in Claude Code konfigurierenunleash-the-agents— kann genutzt werden um den Broker selbst zu analysieren (battle-tested: 40 Agents, 10 Hypothesen-Familien)
GitHub リポジトリ
関連スキル
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エージェントのデプロイやエージェントワークフローのオーケストレーションを求められた際にご利用ください。
