cross-review-project
About
This skill enables two Claude Code instances to perform reciprocal code reviews through a structured MCP broker. It enforces review quality using QSG scaling laws with minimum bandwidth requirements and phase-gated progression. Use this for systematic, evidence-based cross-project code analysis between AI agents.
Quick Install
Claude Code
Recommendednpx 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-projectCopy and paste this command in Claude Code to install this skill
Documentation
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 Repository
Related Skills
qmd
Developmentqmd is a local search and indexing CLI tool that enables developers to index and search through local files using hybrid search combining BM25, vector embeddings, and reranking. It supports both command-line usage and MCP (Model Context Protocol) mode for integration with Claude. The tool uses Ollama for embeddings and stores indexes locally, making it ideal for searching documentation or codebases directly from the terminal.
subagent-driven-development
DevelopmentThis skill executes implementation plans by dispatching a fresh subagent for each independent task, with code review between tasks. It enables fast iteration while maintaining quality gates through this review process. Use it when working on mostly independent tasks within the same session to ensure continuous progress with built-in quality checks.
mcporter
DevelopmentThe mcporter skill enables developers to manage and call Model Context Protocol (MCP) servers directly from Claude. It provides commands to list available servers, call their tools with arguments, and handle authentication and daemon lifecycle. Use this skill for integrating and testing MCP server functionality in your development workflow.
adk-deployment-specialist
DevelopmentThis skill deploys and orchestrates Vertex AI ADK agents using A2A protocol, managing AgentCard discovery, task submission, and supporting tools like Code Execution Sandbox and Memory Bank. It enables building multi-agent systems with sequential, parallel, or loop orchestration patterns in Python, Java, or Go. Use it when asked to deploy ADK agents or orchestrate agent workflows on Google Cloud.
