cross-review-project
정보
이 스킬은 전용 MCP 브로커를 통해 두 개의 Claude Code 인스턴스가 구조화된 상호 코드 리뷰를 수행할 수 있게 합니다. QSG 스케일링 법칙을 적용하여 최소 증거 기준과 단계별 대화 진행을 의무화함으로써 리뷰 품질을 보장합니다. 두 코드베이스 간 자동화된 증거 기반 교차 프로젝트 분석에 사용하세요.
빠른 설치
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-projectClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
Cross-Review Project
Two Claude Code instances review each other's projects through structured artifact exchange via the cross-review-mcp broker. The broker enforces Quantized Simplex Gossip (QSG) scaling laws — review bundles must contain at least 5 findings to stay in the selection regime (Γ_h ≈ 1.67), preventing shallow consensus from passing as agreement.
When to Use
- Two projects share architectural concerns and could learn from each other
- You want independent code review that goes beyond what a single reviewer sees
- Cross-pollination is the goal: finding patterns in one project that are missing in the other
- You need structured, evidence-backed review with accept/reject/discuss verdicts
Inputs
- Required: Two project paths accessible to two Claude Code instances
- Required:
cross-review-mcpbroker running and configured as an MCP server in both instances - Optional: Focus areas — specific directories, patterns, or concerns to prioritize
- Optional: Agent IDs — identifiers for each instance (default: project directory name)
Procedure
Step 1: Verify Prerequisites
Confirm the broker is running and both instances can reach it.
- Check the broker is configured as an MCP server:
claude mcp list | grep cross-review - Call
get_statusto verify the broker is responsive and no stale agents are registered - Read the protocol resource at
cross-review://protocol— this is a markdown document describing the review dimensions and QSG constraints
Got: The broker responds to get_status with an empty agent list. The protocol resource is readable as markdown.
If fail: If the broker is not configured, add it: claude mcp add cross-review-mcp -- npx cross-review-mcp. If stale agents exist from a previous session, call deregister for each before proceeding.
Step 2: Register
Register this agent with the broker.
- Call
registerwith:agentId: a short, unique identifier (e.g., project directory name)project: the project namecapabilities:["review", "suggest"]
- Verify registration by calling
get_status— your agent should appear with phase"registered" - Wait for the peer agent to register: call
wait_for_phasewith the peer's agent ID and phase"registered"
Got: Both agents registered with the broker. get_status shows 2 agents at phase "registered".
If fail: If register fails with "already registered", the agent ID is taken from a previous session. Call deregister first, then re-register.
Step 3: Briefing Phase
Read your own codebase and send a structured briefing to the peer.
- Read systematically:
- Entry points (main files, index, CLI commands)
- Dependency graph (package.json, DESCRIPTION, go.mod)
- Architectural patterns (directory structure, module boundaries)
- Known issues (TODO comments, open issues, tech debt)
- Test coverage (test directories, CI configuration)
- Compose a
Briefingartifact — a structured summary the peer can use to navigate your codebase efficiently - Call
send_taskwith:from: your agent IDto: peer agent IDtype:"briefing"payload: JSON-encoded briefing
- Call
signal_phasewith phase"briefing"
Got: Briefing sent and phase signaled. The broker enforces that you must send a briefing before advancing to review.
If fail: If send_task rejects the briefing, check that the from field matches your registered agent ID. Self-sends are rejected.
Step 4: Review Phase
Wait for the peer's briefing, then review their code and send findings.
- Call
wait_for_phasewith the peer's ID and phase"briefing" - Call
poll_tasksto retrieve the peer's briefing - Call
ack_taskswith the received task IDs — this is required (peek-then-ack pattern) - Read the peer's actual source code, informed by their briefing
- Produce findings across 6 categories:
pattern_transfer— a pattern in your project that the peer could adoptmissing_practice— a practice the peer lacks (testing, validation, error handling)inconsistency— internal contradiction within the peer's codebasesimplification— unnecessary complexity that could be reducedbug_risk— potential runtime failure or edge casedocumentation_gap— missing or misleading documentation
- Each finding must include:
id: unique identifier (e.g.,"F-001")category: one of the 6 categories abovetargetFile: path in the peer's projectdescription: what you foundevidence: why this is a valid finding (code references, patterns)sourceAnalog(recommended): the equivalent in your own project that demonstrates the pattern — this is the single mechanism for genuine cross-pollination
- Bundle at least 5 findings (QSG constraint: m ≥ 5 keeps Γ_h ≈ 1.67 in selection regime)
- Call
send_taskwith type"review_bundle"and the JSON-encoded findings array - Call
signal_phasewith phase"review"
Got: Review bundle accepted by the broker. Fewer than 5 findings will be rejected.
If fail: If the bundle is rejected for insufficient findings, review more deeply. The constraint exists to prevent shallow reviews from dominating. If you genuinely cannot find 5 issues, reconsider whether cross-review is the right tool for this project pair.
Step 5: Dialogue Phase
Receive findings about your own project and respond with evidence-backed verdicts.
- Call
wait_for_phasewith the peer's ID and phase"review" - Call
poll_tasksto retrieve findings about your project - Call
ack_taskswith the received task IDs - For each finding, produce a
FindingResponse:findingId: matches the finding's IDverdict:"accept"(valid, will act on it),"reject"(invalid, with counter-evidence), or"discuss"(needs clarification)evidence: why you accept or reject — must be non-emptycounterEvidence(optional): specific code references that contradict the finding
- Send all responses via
send_taskwith type"response" - Call
signal_phasewith phase"dialogue"
Note: the "discuss" verdict is not gated by the protocol — treat it as a flag for manual follow-up, not an automated sub-exchange.
Got: All findings responded to with verdicts. Empty responses are rejected by the broker.
If fail: If you cannot form an opinion on a finding, default to "discuss" with evidence explaining what additional context you need.
Step 6: Synthesis Phase
Produce a synthesis artifact summarizing accepted findings and planned actions.
- Call
wait_for_phasewith the peer's ID and phase"dialogue" - Poll any remaining tasks and acknowledge them
- Compile a
Synthesisartifact:- Accepted findings with planned actions (what you will change and why)
- Rejected findings with reasons (preserves the reasoning for future review)
- Call
send_taskwith type"synthesis"and the JSON-encoded synthesis - Call
signal_phasewith phase"synthesis" - Optionally create GitHub issues for accepted findings
- Call
signal_phasewith phase"complete" - Call
deregisterto clean up
Got: Both agents reach "complete". The broker requires at least 2 registered agents to advance to complete.
If fail: If the peer has already deregistered, you can still complete locally. Compile your synthesis from the findings you received.
Validation
- Both agents registered and reached
"complete"phase - Briefings exchanged before reviews began (phase enforcement)
- Review bundles contained at least 5 findings each
- All findings received a verdict (accept/reject/discuss) with evidence
-
ack_taskscalled after everypoll_tasks - Synthesis produced with accepted findings mapped to actions
- Agents deregistered after completion
Pitfalls
- Fewer than 5 findings: The broker rejects bundles with m < 5. This is not arbitrary — with N=2 agents and 6 categories, m < 5 puts Γ_h at or below the critical boundary where consensus is indistinguishable from noise. Review more deeply; if 5 findings genuinely cannot be found, the projects may not benefit from cross-review.
- Forgetting
ack_tasks: The broker uses peek-then-ack delivery. Tasks remain in queue until acknowledged. Forgetting to ack causes duplicate processing on the next poll. - Forgetting the
fromparameter:send_taskrequires an explicitfromfield matching your agent ID. Self-sends are rejected. - Same-model epistemic correlation: Two Claude instances share training biases. Temporal ordering ensures they don't read each other's output during review, but their priors are correlated. For genuine epistemic independence, use different model families across instances.
- Skipping
sourceAnalog: ThesourceAnalogfield is optional but is the single mechanism for genuine cross-pollination — it shows your implementation of the pattern you're recommending. Always populate it when a source analog exists. - Treating
discussas blocking: Nothing in the protocol gatescompleteon pending discussions being resolved. Treatdiscussverdicts as flags for manual follow-up after the session. - Not reviewing telemetry: The broker logs all events to JSONL. After a session, review the log to validate QSG assumptions — estimate α empirically (
α ≈ 1 - reject_rate) and check per-category accept rates.
Related Skills
scaffold-mcp-server— for building or extending the broker itselfimplement-a2a-server— A2A protocol patterns the broker draws fromreview-codebase— single-agent review (this skill extends it to cross-agent structured exchange)build-consensus— swarm consensus patterns (QSG is the theoretical foundation)configure-mcp-server— configuring the broker as an MCP server in Claude Codeunleash-the-agents— can be used to analyze the broker itself (battle-tested: 40 agents, 10 hypothesis families)
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 에이전트 배포 또는 에이전트 워크플로우 오케스트레이션을 요청받았을 때 사용하세요.
