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
Dos instancias de Claude Code revisan los proyectos de la otra a través del intercambio estructurado de artefactos vía el broker cross-review-mcp. El broker hace cumplir las leyes de escalado Quantized Simplex Gossip (QSG) — los bundles de revisión deben contener al menos 5 hallazgos para mantenerse en el régimen de selección (Γ_h ≈ 1.67), evitando que el consenso superficial pase como acuerdo.
Cuándo Usar
- Dos proyectos comparten preocupaciones arquitectónicas y podrían aprender el uno del otro
- Quieres una revisión de código independiente que vaya más allá de lo que ve un solo revisor
- La polinización cruzada es el objetivo: encontrar patrones en un proyecto que faltan en el otro
- Necesitas una revisión estructurada respaldada por evidencia con veredictos accept/reject/discuss
Entradas
- Requerido: Dos rutas de proyecto accesibles a dos instancias de Claude Code
- Requerido: Broker
cross-review-mcpejecutándose y configurado como servidor MCP en ambas instancias - Opcional: Áreas de enfoque — directorios, patrones o preocupaciones específicas a priorizar
- Opcional: IDs de agente — identificadores para cada instancia (predeterminado: nombre del directorio del proyecto)
Procedimiento
Paso 1: Verificar Prerrequisitos
Confirmar que el broker está ejecutándose y ambas instancias pueden alcanzarlo.
- Verificar que el broker está configurado como servidor MCP:
claude mcp list | grep cross-review - Llamar
get_statuspara verificar que el broker responde y no hay agentes obsoletos registrados - Leer el recurso de protocolo en
cross-review://protocol— este es un documento markdown que describe las dimensiones de revisión y las restricciones QSG
Esperado: El broker responde a get_status con una lista de agentes vacía. El recurso de protocolo es legible como markdown.
En caso de fallo: Si el broker no está configurado, añadirlo: claude mcp add cross-review-mcp -- npx cross-review-mcp. Si existen agentes obsoletos de una sesión anterior, llamar deregister para cada uno antes de proceder.
Paso 2: Registrar
Registrar este agente con el broker.
- Llamar
registercon:agentId: un identificador corto y único (p. ej., nombre del directorio del proyecto)project: el nombre del proyectocapabilities:["review", "suggest"]
- Verificar el registro llamando
get_status— tu agente debe aparecer con fase"registered" - Esperar a que el agente par se registre: llamar
wait_for_phasecon el ID del agente par y la fase"registered"
Esperado: Ambos agentes registrados con el broker. get_status muestra 2 agentes en fase "registered".
En caso de fallo: Si register falla con "already registered", el ID de agente está tomado de una sesión anterior. Llamar deregister primero, luego re-registrar.
Paso 3: Fase de Briefing
Leer tu propia base de código y enviar un briefing estructurado al par.
- Leer sistemáticamente:
- Puntos de entrada (archivos main, index, comandos CLI)
- Grafo de dependencias (package.json, DESCRIPTION, go.mod)
- Patrones arquitectónicos (estructura de directorios, límites de módulos)
- Problemas conocidos (comentarios TODO, issues abiertos, deuda técnica)
- Cobertura de pruebas (directorios de pruebas, configuración CI)
- Componer un artefacto
Briefing— un resumen estructurado que el par puede usar para navegar tu base de código eficientemente - Llamar
send_taskcon:from: tu ID de agenteto: ID de agente partype:"briefing"payload: briefing codificado en JSON
- Llamar
signal_phasecon fase"briefing"
Esperado: Briefing enviado y fase señalizada. El broker hace cumplir que debes enviar un briefing antes de avanzar a la revisión.
En caso de fallo: Si send_task rechaza el briefing, verificar que el campo from coincida con tu ID de agente registrado. Los auto-envíos son rechazados.
Paso 4: Fase de Revisión
Esperar el briefing del par, luego revisar su código y enviar hallazgos.
- Llamar
wait_for_phasecon el ID del par y fase"briefing" - Llamar
poll_taskspara recuperar el briefing del par - Llamar
ack_taskscon los IDs de tarea recibidos — esto es requerido (patrón peek-then-ack) - Leer el código fuente real del par, informado por su briefing
- Producir hallazgos en 6 categorías:
pattern_transfer— un patrón en tu proyecto que el par podría adoptarmissing_practice— una práctica que le falta al par (testing, validación, manejo de errores)inconsistency— contradicción interna dentro de la base de código del parsimplification— complejidad innecesaria que podría reducirsebug_risk— fallo potencial en runtime o caso límitedocumentation_gap— documentación faltante o engañosa
- Cada hallazgo debe incluir:
id: identificador único (p. ej.,"F-001")category: una de las 6 categorías de arribatargetFile: ruta en el proyecto del pardescription: lo que encontrasteevidence: por qué este es un hallazgo válido (referencias de código, patrones)sourceAnalog(recomendado): el equivalente en tu propio proyecto que demuestra el patrón — este es el único mecanismo para una polinización cruzada genuina
- Empaquetar al menos 5 hallazgos (restricción QSG: m ≥ 5 mantiene Γ_h ≈ 1.67 en régimen de selección)
- Llamar
send_taskcon tipo"review_bundle"y el array de hallazgos codificado en JSON - Llamar
signal_phasecon fase"review"
Esperado: Bundle de revisión aceptado por el broker. Menos de 5 hallazgos serán rechazados.
En caso de fallo: Si el bundle es rechazado por hallazgos insuficientes, revisar más a fondo. La restricción existe para evitar que las revisiones superficiales dominen. Si genuinamente no puedes encontrar 5 problemas, reconsiderar si la cross-review es la herramienta correcta para este par de proyectos.
Paso 5: Fase de Diálogo
Recibir hallazgos sobre tu propio proyecto y responder con veredictos respaldados por evidencia.
- Llamar
wait_for_phasecon el ID del par y fase"review" - Llamar
poll_taskspara recuperar hallazgos sobre tu proyecto - Llamar
ack_taskscon los IDs de tarea recibidos - Para cada hallazgo, producir un
FindingResponse:findingId: coincide con el ID del hallazgoverdict:"accept"(válido, actuarás sobre él),"reject"(inválido, con contra-evidencia), o"discuss"(necesita aclaración)evidence: por qué aceptas o rechazas — debe ser no-vacíocounterEvidence(opcional): referencias de código específicas que contradicen el hallazgo
- Enviar todas las respuestas vía
send_taskcon tipo"response" - Llamar
signal_phasecon fase"dialogue"
Nota: el veredicto "discuss" no está controlado por el protocolo — tratarlo como una bandera para seguimiento manual, no un sub-intercambio automatizado.
Esperado: Todos los hallazgos respondidos con veredictos. Las respuestas vacías son rechazadas por el broker.
En caso de fallo: Si no puedes formar una opinión sobre un hallazgo, por defecto a "discuss" con evidencia explicando qué contexto adicional necesitas.
Paso 6: Fase de Síntesis
Producir un artefacto de síntesis resumiendo los hallazgos aceptados y las acciones planificadas.
- Llamar
wait_for_phasecon el ID del par y fase"dialogue" - Hacer poll de cualquier tarea restante y reconocerlas
- Compilar un artefacto
Synthesis:- Hallazgos aceptados con acciones planificadas (qué cambiarás y por qué)
- Hallazgos rechazados con razones (preserva el razonamiento para futura revisión)
- Llamar
send_taskcon tipo"synthesis"y la síntesis codificada en JSON - Llamar
signal_phasecon fase"synthesis" - Opcionalmente crear issues de GitHub para hallazgos aceptados
- Llamar
signal_phasecon fase"complete" - Llamar
deregisterpara limpiar
Esperado: Ambos agentes alcanzan "complete". El broker requiere al menos 2 agentes registrados para avanzar a complete.
En caso de fallo: Si el par ya se ha desregistrado, aún puedes completar localmente. Compilar tu síntesis a partir de los hallazgos que recibiste.
Validación
- Ambos agentes registrados y alcanzaron la fase
"complete" - Briefings intercambiados antes de que comenzaran las revisiones (cumplimiento de fase)
- Los bundles de revisión contenían al menos 5 hallazgos cada uno
- Todos los hallazgos recibieron un veredicto (accept/reject/discuss) con evidencia
-
ack_tasksllamado después de cadapoll_tasks - Síntesis producida con hallazgos aceptados mapeados a acciones
- Agentes desregistrados después de completar
Errores Comunes
- Menos de 5 hallazgos: El broker rechaza bundles con m < 5. Esto no es arbitrario — con N=2 agentes y 6 categorías, m < 5 pone a Γ_h en o por debajo del límite crítico donde el consenso es indistinguible del ruido. Revisar más a fondo; si 5 hallazgos genuinamente no pueden encontrarse, los proyectos pueden no beneficiarse de cross-review.
- Olvidar
ack_tasks: El broker usa entrega peek-then-ack. Las tareas permanecen en cola hasta ser reconocidas. Olvidar hacer ack causa procesamiento duplicado en el siguiente poll. - Olvidar el parámetro
from:send_taskrequiere un campofromexplícito que coincida con tu ID de agente. Los auto-envíos son rechazados. - Correlación epistémica del mismo modelo: Dos instancias de Claude comparten sesgos de entrenamiento. El ordenamiento temporal asegura que no leen la salida de la otra durante la revisión, pero sus priors están correlacionados. Para independencia epistémica genuina, usar diferentes familias de modelos entre instancias.
- Saltar
sourceAnalog: El camposourceAnaloges opcional pero es el único mecanismo para una polinización cruzada genuina — muestra tu implementación del patrón que estás recomendando. Siempre poblarlo cuando exista un análogo de origen. - Tratar
discusscomo bloqueante: Nada en el protocolo controlacompleteen discusiones pendientes que estén resolviéndose. Tratar veredictosdiscusscomo banderas para seguimiento manual después de la sesión. - No revisar la telemetría: El broker registra todos los eventos a JSONL. Después de una sesión, revisar el log para validar las suposiciones QSG — estimar α empíricamente (
α ≈ 1 - reject_rate) y verificar las tasas de aceptación por categoría.
Habilidades Relacionadas
scaffold-mcp-server— para construir o extender el broker mismoimplement-a2a-server— patrones del protocolo A2A de los que el broker se nutrereview-codebase— revisión de un solo agente (esta habilidad la extiende a intercambio estructurado entre agentes)build-consensus— patrones de consenso de enjambre (QSG es la base teórica)configure-mcp-server— configurar el broker como servidor MCP en Claude Codeunleash-the-agents— puede usarse para analizar el broker mismo (probado en batalla: 40 agentes, 10 familias de hipótesis)
GitHub 저장소
연관 스킬
subagent-driven-development
개발이 스킬은 각 독립적인 작업마다 새로운 하위 에이전트를 배치하고 작업 사이에 코드 리뷰를 진행하여 구현 계획을 실행합니다. 이 리뷰 프로세스를 통해 품질 게이트를 유지하면서 빠른 반복 작업을 가능하게 합니다. 동일한 세션 내에서 대부분 독립적인 작업을 진행할 때 내장된 품질 검증과 함께 지속적인 진행을 보장하기 위해 사용하세요.
qmd
개발qmd는 BM25, 벡터 임베딩, 재순위화를 결합한 하이브리드 검색을 통해 로컬 파일을 색인화하고 검색할 수 있는 로컬 검색 및 색인화 CLI 도구입니다. 명령줄 사용과 Claude 통합을 위한 MCP(Model Context Protocol) 모드를 모두 지원합니다. 이 도구는 임베딩에 Ollama를 사용하고 색인을 로컬에 저장하여 터미널에서 직접 문서나 코드베이스를 검색하는 데 이상적입니다.
mcporter
개발mcporter 스킬은 개발자가 Claude에서 직접 Model Context Protocol(MCP) 서버를 관리하고 호출할 수 있도록 합니다. 이 스킬은 사용 가능한 서버를 나열하고, 인수를 사용해 해당 서버의 도구를 호출하며, 인증 및 데몬 생명주기를 처리하는 명령어를 제공합니다. 개발 워크플로우에서 MCP 서버 기능을 통합하고 테스트할 때 이 스킬을 사용하세요.
adk-deployment-specialist
개발이 스킬은 A2A 프로토콜을 사용하여 Vertex AI ADK 에이전트를 배포하고 오케스트레이션하며, AgentCard 검색, 작업 제출, 코드 실행 샌드박스 및 메모리 뱅크와 같은 지원 도구를 관리합니다. Python, Java 또는 Go 언어로 순차, 병렬 또는 루프 오케스트레이션 패턴을 갖춘 다중 에이전트 시스템 구축을 가능하게 합니다. Google Cloud에서 ADK 에이전트 배포 또는 에이전트 워크플로우 오케스트레이션을 요청받았을 때 사용하세요.
