Patrones de Orquestación
9.1 El rol del orquestador
En Claude Code, la orquestación no es un componente especial — es una responsabilidad. El orquestador es la parte de tu sistema que toma las decisiones de enrutamiento: la conversación principal dirigida por CLAUDE.md, un Skill que coordina un workflow de múltiples pasos, o un agente orquestador dedicado para sistemas complejos.
Tres cosas definen la orquestación:
- Recibe el objetivo — no tareas individuales, sino el objetivo de alto nivel
- Decide qué contexto fluye hacia dónde — qué subagente recibe qué información, en qué orden
- Ensambla el resultado — los subagentes reportan al padre; no pueden coordinarse entre sí directamente
Qué orquesta en Claude Code
| Tipo de orquestador | Cómo funciona | Mejor para |
|---|---|---|
| Reglas en CLAUDE.md | Reglas de delegación en CLAUDE.md indican a Claude cuándo invocar qué agente. No se necesita archivo adicional. | Flujos simples, 2-3 agentes, pasos secuenciales |
Workflow (wor-) | Una entidad dedicada en .claude/commands/wor-*.md que coordina todo el pipeline — invoca agentes, gestiona handoffs, ensambla resultados | Pipelines nombrados y repetibles de múltiples pasos con pasos definidos |
| Skill orquestador | Un Skill con context: fork coordina un workflow, invocando agentes y pasando contexto | Orquestación reutilizable que los agentes también pueden disparar |
9.2 Cinco patrones de orquestación
Patrón 1 — Lineal
Cada agente completa su trabajo y pasa el output completo al siguiente. El patrón más simple. Úsalo cuando las etapas son secuenciales y cada una depende completamente de la anterior.
Input
│
▼
Agent A (Researcher)
│ writes output to /work/research.md
▼
Agent B (Writer) ← reads /work/research.md
│ writes output to /work/draft.md
▼
Agent C (Editor) ← reads /work/draft.md
│
▼
Final Output Orquestación con CLAUDE.md para flujos lineales:
## Orchestration Rules
When asked to produce an article on any topic:
1. Invoke @researcher — pass the topic, ask it to write to /work/research.md
2. After researcher completes, invoke @writer — tell it to read /work/research.md
3. After writer completes, invoke @editor — tell it to read /work/draft.md
4. Return the editor's final output to the user Patrón 2 — Con checkpoints (Human-in-the-Loop)
Una puerta de revisión humana se sitúa entre etapas. El orquestador pausa y presenta el resultado intermedio antes de continuar. Úsalo para decisiones de alto impacto o contenido que necesita juicio humano antes de avanzar.
Input
│
▼
Agent A (Researcher)
│
▼
┌─────────────────────────────────────┐
│ 👤 CHECKPOINT │
│ "Here's the research. Proceed with │
│ this framing? [Y / adjust / skip]" │
└─────────────────────────────────────┘
│ (only if approved)
▼
Agent B (Writer)
│
▼
Output Codifica checkpoints en CLAUDE.md haciendo la puerta explícita:
## Orchestration Rules
For article production:
1. Run @researcher and present the research summary to the user
2. PAUSE — ask: "Does this research direction look right? Continue?"
3. Only proceed to @writer after explicit user confirmation
4. Present the draft before running @editor — same approval gate Patrón 3 — Con decisiones (Routing)
Un agente clasificador lee el input y lo enruta al especialista apropiado. Úsalo cuando el mismo trigger puede llevar a workflows fundamentalmente diferentes según lo que contenga el input.
Input
│
▼
Classifier Agent
│
├─ "technical question" ──→ Technical Support Agent
├─ "billing issue" ──→ Billing Agent
├─ "feature request" ──→ Product Feedback Agent
└─ "complaint" ──→ Escalation Agent ──→ Human Frontmatter del agente clasificador:
---
name: classifier
description: Classifies incoming support requests by type and routes them
to the appropriate specialist. Use for any new support ticket or
customer message that needs to be triaged.
model: haiku
tools: Read
permissionMode: default
---
Classify the incoming message into exactly one category:
- technical: software bugs, error messages, how-to questions
- billing: payment issues, subscription changes, refunds
- feature: product feedback, feature suggestions
- complaint: expressions of dissatisfaction requiring escalation
Output only the category label. Nothing else. Patrón 4 — Con integraciones
Un agente interactúa con un sistema externo (vía MCP o herramientas Bash) y pasa los resultados al siguiente agente del flujo. Úsalo cuando tu workflow depende de datos en tiempo real fuera de tu proyecto.
Input: "Analyze our GitHub PRs from last week"
│
▼
GitHub Fetch Agent (uses MCP github tools)
│ writes PR data to /work/prs-raw.json
▼
Analysis Agent (reads /work/prs-raw.json)
│ writes summary to /work/analysis.md
▼
Report Agent (reads /work/analysis.md)
│
▼
Weekly engineering report Patrón 5 — Paralelo con consolidación
Múltiples agentes trabajan sobre el mismo input simultáneamente. Un agente consolidador ensambla sus outputs en un resultado unificado. Úsalo cuando especialistas independientes pueden trabajar en paralelo y los outputs necesitan ser sintetizados.
Input: article draft to review
│
├──→ Fact Checker ──→ /work/fact-review.md ─┐
├──→ Style Reviewer ──→ /work/style-review.md ─┤→ Editor (consolidator)
└──→ SEO Analyst ──→ /work/seo-review.md ─┘ │
▼
Final structured feedback 9.3 Transferencia de contexto entre agentes
Cada subagente comienza con una ventana de contexto vacía. No hereda automáticamente el historial de conversación ni sabe qué produjeron agentes anteriores. Pasar el contexto correcto a cada agente es el trabajo más importante del orquestador.
Cuatro mecanismos de transferencia de contexto
| Mecanismo | Cómo funciona | Mejor para | Compromiso |
|---|---|---|---|
| Prompt de invocación | El orquestador incluye contexto relevante en el texto que usa para invocar al subagente | Contexto breve, datos clave, instrucciones específicas | Tamaño de contexto limitado por longitud del prompt |
| Handoff basado en archivos | El Agente A escribe su output en un archivo; el orquestador indica al Agente B que lea ese archivo | Outputs largos, datos estructurados, contenido rico | Requiere acceso de escritura; añade I/O de archivos |
| Resumen del orquestador | El orquestador destila el output del Agente A y pasa solo las partes relevantes al Agente B | Cuando el Agente B necesita un subconjunto del trabajo del Agente A | Requiere juicio del orquestador; puede perder detalle |
| Context Ledger | Un archivo de sesión estructurado (context-ledger/) donde cada paso escribe su estado. Los pasos siguientes lo leen para trazabilidad completa. | Workflows multi-sesión, pipelines complejos que necesitan auditoría | Más infraestructura; mejor para sistemas de producción |
Context Ledger para sistemas de producción
Para workflows complejos que abarcan múltiples sesiones o necesitan trazabilidad completa, usa un Context Ledger — un archivo estructurado en la raíz del proyecto donde cada paso escribe sus outputs, decisiones y estado.
context-ledger/
└── 2026-04-10-14-30-content-pipeline.md ← un archivo por sesión Cada agente añade sus resultados al ledger. Si la sesión se interrumpe, el workflow puede reanudarse leyendo el archivo del ledger y retomando desde el último paso completado. Así es como los sistemas agénticos de producción mantienen continuidad entre sesiones — el ledger es la memoria del workflow.
Combínalo con un snapshot de memoria ligero (memory/) para arranque rápido: un resumen de ~1-2 KB que indica al workflow dónde se quedó sin leer el ledger completo.
Handoff basado en archivos en la práctica
Este es el mecanismo más confiable para flujos secuenciales. Establece una convención de directorio /work/ y haz que cada agente escriba su output allí:
## Orchestration Rules
### File Handoff Convention
- Researcher writes to: /work/research-{topic}.md
- Writer reads from: /work/research-{topic}.md
- Writer writes to: /work/draft-{topic}.md
- Editor reads from: /work/draft-{topic}.md
- Editor writes to: /work/final-{topic}.md
### Invoking with Context
When spawning the writer, tell it explicitly:
"Read /work/research-{topic}.md for context. The topic is {topic}.
Write your draft to /work/draft-{topic}.md." 9.4 El pipeline Explorar → Planificar → Ejecutar
Este es el patrón de orquestación más confiable para tareas complejas. Obliga al sistema a comprender antes de actuar, y te da una puerta de revisión antes de que ocurra algo consecuente.
| Fase | Tipo de agente | Herramientas | Output |
|---|---|---|---|
| Explorar | Explorador de solo lectura | Read, Grep, Glob | Mapa de archivos relevantes, estado actual, alcance |
| Planificar | Planificador (sin escrituras) | Read | Plan paso a paso presentado al usuario para aprobación |
| Ejecutar | Implementador | Read, Write, Edit, Bash | Cambios reales, solo después de que el plan sea aprobado |
La puerta de revisión humana entre Planificar y Ejecutar es el mecanismo de seguridad clave. El sistema comprende el alcance completo antes de tocar nada, y el usuario aprueba el plan antes de que cualquier archivo sea modificado.
Codificación en CLAUDE.md
## Agent Delegation Rules
For ANY task that touches more than 3 files or involves refactoring:
1. First invoke @explorer to map the relevant files and summarize current state
2. Use the explorer's output to invoke @planner with specific scope
3. Present the plan to the user: "Here's what I'll do: [plan]. Proceed?"
4. Only after explicit approval, invoke @implementer with the approved plan
For simple, single-file tasks: proceed directly without the pipeline. Los tres agentes
<!-- .claude/agents/explorer.md -->
---
name: explorer
description: Maps files, reads code, and produces a concise summary of
current state and scope. Use as the first phase of any complex task
before planning or implementing.
model: sonnet
tools: Read, Grep, Glob, Bash
permissionMode: default
---
You are an exploration specialist. Your only job is to understand, never to change.
When invoked with a task description:
1. Identify which files are relevant to this task
2. Read and summarize the current state of those files
3. Identify dependencies, risks, and scope
4. Output a concise map: file list + key observations + recommended approach
Never write files. Never suggest implementation. Only observe and report. <!-- .claude/agents/planner.md -->
---
name: planner
description: Designs a step-by-step implementation plan from an exploration
report. Use after @explorer completes. Produces a human-reviewable plan
before any code is written.
model: opus
tools: Read
permissionMode: plan
---
You are a planning specialist. Your job is design, never implementation.
Given an exploration report and task description:
1. Design a complete, numbered implementation plan
2. For each step: state what changes, which file, what the change does
3. Flag any risks or irreversible operations
4. Output the plan clearly — it will be shown to a human for approval
Be specific enough that someone else could execute your plan exactly.
Never write code. Never implement. Only plan. Agent Teams
code.claude.com/docs antes de construir sistemas de producción.10.1 Subagentes vs. Agent Teams
Los subagentes (Capítulos 6-9) y los Agent Teams resuelven problemas de coordinación diferentes. La elección entre ellos es directa:
| Subagentes | Agent Teams | |
|---|---|---|
| Qué son | Workers que se ejecutan dentro de tu sesión y reportan de vuelta | Sesiones completas y separadas de Claude Code ejecutándose simultáneamente |
| Comunicación | Unidireccional: el padre invoca, el subagente reporta | Bidireccional: los teammates pueden enviarse mensajes entre sí y al líder |
| Contexto | Comparte el contexto de la sesión padre (al invocar) | Cada teammate tiene una ventana de contexto completamente independiente |
| Paralelismo | Secuencial dentro de una sesión | Paralelismo real — múltiples sesiones ejecutándose simultáneamente |
| Modelo requerido | Cualquier modelo | Opus 4.6 (líder) |
| Costo | Una ventana de contexto | Múltiples ventanas de contexto completas en paralelo |
Regla de decisión: Si los agentes solo necesitan reportar de vuelta, usa subagentes. Si los agentes necesitan coordinarse entre sí durante la ejecución, usa teams.
10.2 Cómo funcionan los Agent Teams
Un Agent Team consiste en una sesión de team lead y múltiples sesiones de teammates. El lead coordina; los teammates se especializan.
┌─────────────────────────────────────────────────────────────────┐
│ Agent Team │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ TEAM LEAD (tu sesión) │ │
│ │ Opus 4.6 · Recibe objetivo · Delega · Ensambla │ │
│ └───────┬──────────────┬──────────────┬───────────────────┘ │
│ │ │ │ │
│ Lista de tareas compartida: pendiente → asignada → en progreso → completada │
│ │ │ │ │
│ ┌───────▼────┐ ┌──────▼──────┐ ┌───▼────────────┐ │
│ │ Teammate A │ │ Teammate B │ │ Teammate C │ │
│ │ (Frontend) │ │ (Backend) │ │ (Tests) │ │
│ │ Contexto │ │ Contexto │ │ Contexto │ │
│ │ propio │ │ propio │ │ propio │ │
│ └────────────┘ └─────────────┘ └────────────────┘ │
│ │
│ Comunicación: mensajes directos · broadcasts · alertas de inactividad │
└─────────────────────────────────────────────────────────────────┘ Cada teammate carga CLAUDE.md de forma independiente — su ventana de contexto empieza desde cero. No heredan nada del lead excepto lo que se pasa explícitamente a través de tareas y mensajes.
Ciclo de vida de una tarea:
El lead crea la tarea (pendiente)
│
▼
El teammate toma la tarea (asignada → en progreso)
│
▼
El teammate completa el trabajo (completada)
│
▼
El lead recibe notificación de completado
│
▼
El lead asigna la siguiente tarea o ensambla resultados 10.3 Configuración de Agent Teams
Habilitar en settings.json
{
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": true
} Iniciar una sesión de equipo
Abre la pestaña Claude Desktop Code en tu proyecto. El modo Agent Teams se activa automáticamente cuando la configuración está habilitada. Para crear teammates, indica al lead qué roles necesitas en lenguaje natural:
I need to refactor our authentication module. Spawn a backend specialist
for the server-side code and a test specialist to update the test suite.
Work on these in parallel. El lead creará sesiones de teammates usando tus definiciones de subagentes como plantillas si existen, o levantará sesiones de propósito general si no. Usar archivos de subagentes existentes te da más control sobre el comportamiento y acceso a herramientas de cada teammate.
Usar definiciones de subagentes existentes como plantillas
Si tienes .claude/agents/backend-engineer.md y .claude/agents/test-writer.md, menciónalos explícitamente:
Spawn a teammate using the backend-engineer agent definition for the
server changes, and a teammate using the test-writer definition for tests. Monitoreo con tmux (CLI)
En el CLI, ejecuta cada sesión de teammate en un panel tmux separado para poder observarlos todos simultáneamente:
tmux new-session -d -s lead 'claude'
tmux split-window -h 'claude --teammate'
tmux split-window -v 'claude --teammate'
tmux attach -t lead 10.4 Mejores prácticas
| Práctica | Por qué importa |
|---|---|
| Planifica primero, luego crea el equipo | Usa Plan Mode para diseñar el enfoque completo antes de crear teammates. Un plan claro evita que los teammates trabajen con propósitos cruzados. |
| Usa el modo delegado | Indica explícitamente al lead: "No implementes — solo coordina." Los leads tienden a acaparar trabajo de implementación, lo que anula el propósito del equipo. |
| Define límites de módulo en CLAUDE.md | Cada teammate carga CLAUDE.md desde cero. La propiedad clara de módulos (@backend owns /src/api/, @frontend owns /src/ui/) previene conflictos de archivos. |
| Empieza con 2-3 teammates | Más teammates = más ventanas de contexto = más costo y complejidad. Empieza pequeño. Agrega teammates solo cuando tengas una tarea concreta para cada uno. |
| Un módulo por teammate | Los teammates que tocan archivos superpuestos crearán conflictos de merge. Asigna por propiedad de archivos, no por función. |
10.5 Cuándo NO usar Agent Teams
| Situación | Por qué los teams no son adecuados aquí | Usar en su lugar |
|---|---|---|
| Tareas simples de un solo paso | La sobrecarga de crear múltiples sesiones supera con creces cualquier beneficio | Ejecución directa en la sesión principal |
| Los agentes necesitan editar los mismos archivos | Las escrituras concurrentes crearán conflictos de merge | Subagentes secuenciales con handoffs de archivos |
| Workflow secuencial (A debe terminar antes de que B empiece) | Sin beneficio de paralelismo — estás pagando por ventanas de contexto paralelas que no necesitas | Patrón lineal de subagentes (Capítulo 9) |
| Trabajo sensible al presupuesto | Cada teammate es una ventana de contexto Opus completa — los costos se acumulan rápido | Subagentes (más económicos, una ventana de contexto) |
| Tareas experimentales / exploratorias | Difícil de depurar cuando múltiples sesiones se ejecutan simultáneamente | Sesión única con Plan Mode |
Caso Practico
11.1 El Escenario
Vamos a construir un pipeline de produccion de contenido desde cero: un sistema que recibe un tema, lo investiga, redacta un borrador, lo revisa y produce un articulo pulido listo para publicar.
Es un buen primer sistema porque tiene limites claros entre fases, responsabilidades obvias para cada agente y una salida concreta y evaluable. Los mismos principios de diseno aplican a workflows de investigacion, pipelines operativos y cualquier proceso multi-paso con fases diferenciadas.
Lo que vamos a construir:
content-pipeline/
├── CLAUDE.md ← reglas de orquestacion + limites entre modulos
└── .claude/
├── commands/
│ └── wor-content-pipeline.md ← orquestacion del workflow (opcional)
├── agents/
│ ├── age-spe-researcher.md ← Fase 1: investigacion y recopilacion de fuentes
│ ├── age-spe-writer.md ← Fase 2: creacion del borrador
│ └── age-sup-reviewer.md ← Fase 3: revision de calidad (supervisor)
├── skills/
│ └── ski-format-article/
│ └── SKILL.md ← Fase 4: formato final y exportacion
├── rules/
│ └── rul-citation-standards.md ← reglas detalladas de citacion
└── settings.json ← hook: notificacion al completar 11.2 Paso 1 — Descomponer en Responsabilidades
Antes de escribir un solo archivo, mapea el workflow a tipos de componentes usando el arbol de decision del Capitulo 4.
| Tarea a realizar | Tipo de componente | Por que |
|---|---|---|
| Buscar en la web, recopilar fuentes, sintetizar investigacion | Specialist (age-spe-) | Dominio especializado unico, salida acotada, herramientas de solo lectura |
| Escribir borrador a partir del brief de investigacion | Specialist (age-spe-) | Dominio especializado unico, necesita acceso de escritura, responsabilidad diferenciada |
| Revisar el borrador en calidad y precision | Supervisor (age-sup-) | Valida la salida de los specialists — puerta de calidad, no un ejecutor |
| Formatear y exportar el articulo final | Skill (ski-) | Procedimiento reutilizable, se invoca por nombre, basado en plantilla |
| Conteo de palabras, tono, reglas de citacion | Reglas en CLAUDE.md | Aplican a cada sesion, restringen a todos los agentes por igual |
| Notificar cuando el pipeline termine | Hook | Dirigido por eventos, se dispara en un evento del sistema (Stop), no por comando |
11.3 Paso 2 — Disenar la Arquitectura
El flujo es lineal con handoffs basados en archivos. Cada agente escribe en un directorio dedicado; el siguiente agente lee de ahi.
El usuario proporciona el tema
│
▼
@age-spe-researcher ──escribe──→ /work/research-{topic}.md
│
▼ (el orquestador pasa la ruta del archivo)
@age-spe-writer ──lee──→ /work/research-{topic}.md
──escribe──→ /work/draft-{topic}.md
│
▼
@age-sup-reviewer ──lee──→ /work/draft-{topic}.md
──escribe──→ /work/review-{topic}.md
│
▼ (si se aprueba)
/ski-format-article skill ──lee──→ /work/draft-{topic}.md + /work/review-{topic}.md
──escribe──→ /output/{topic}.md
│
▼
Se dispara el hook de finalizacion → notificacion de escritorio Decisiones de seleccion de modelo:
- Researcher: Opus — necesita razonamiento profundo para evaluar fuentes y sintetizar con precision
- Writer: Sonnet — suficientemente rapido para redactar, bueno siguiendo instrucciones de estilo
- Reviewer: Sonnet — la revision requiere lectura y evaluacion, no razonamiento profundo
11.4 Paso 3 — Implementar los Archivos
CLAUDE.md
---
# Content Production Pipeline
## Purpose
Automated system for producing high-quality articles on any topic.
Research → Draft → Review → Publish.
## Module Boundaries
| Agent | Owns | Never touches |
|---|---|---|
| @age-spe-researcher | /work/research-*.md | /work/draft-*, /output/ |
| @age-spe-writer | /work/draft-*.md | /work/research-*, /output/ |
| @age-sup-reviewer | /work/review-*.md | /work/draft-*, /output/ |
| ski-format-article | /output/ | /work/ |
## Orchestration Rules
When asked to produce an article on any topic:
1. Invoke @age-spe-researcher — provide the topic. Ask it to write to /work/research-{topic}.md
2. After completion, invoke @age-spe-writer — tell it to read /work/research-{topic}.md
and write the draft to /work/draft-{topic}.md
3. After completion, invoke @age-sup-reviewer — tell it to read /work/draft-{topic}.md
and write its report to /work/review-{topic}.md
4. If reviewer approves: invoke /ski-format-article {topic}
5. If reviewer requests changes: inform the user and ask whether to revise or proceed
## Content Rules
- Articles: 800–1,200 words unless user specifies otherwise
- Tone: professional but conversational — no academic jargon
- Every factual claim must have a cited source (URL)
- Instead of using vague phrases like "many experts say", name the source
- Structure: Introduction → 3-4 main sections → Conclusion
--- .claude/agents/age-spe-researcher.md
---
name: age-spe-researcher
description: Researches a topic using web search, evaluates sources for
credibility, and produces a structured research brief. Use as the first
step in article production or for any information gathering task. Invoke
with the topic as input.
model: opus
tools: WebSearch, Read
permissionMode: default
memory: project
---
You are a research specialist. Your output fuels the writing stage —
quality here determines quality throughout the pipeline.
## Research Process
1. Search for 5-8 high-quality sources on the topic
2. Prioritize: peer-reviewed content, official sources, established publications
3. Avoid: opinion pieces without data, anonymous sources, content older than 3 years
4. For each source: verify credibility, extract key facts and quotes
5. Synthesize across sources — identify consensus and disagreements
## Output Format
Write your output to the file path provided. Structure:
# Research Brief: [Topic]
## Key Findings
[3-5 bullet points summarizing the most important facts]
## Main Arguments / Perspectives
[2-3 paragraphs covering the main angles on this topic]
## Statistics and Data
| Stat | Value | Source |
|---|---|---|
## Sources
| Title | URL | Credibility | Key Contribution |
|---|---|---|---|
## Recommended Article Angle
[One paragraph suggesting the most compelling angle for the article,
based on what's most interesting/underreported in the research]
## Rules
- Every fact must trace to a specific source — no generalities
- Flag any conflicting information across sources
- If a topic has insufficient quality sources, report this rather than
using low-quality ones .claude/agents/age-spe-writer.md
---
name: age-spe-writer
description: Writes article drafts from research briefs. Invoked after
the researcher agent completes. Applies the content pipeline style guide
automatically. Input: path to research brief. Output: draft article.
model: sonnet
tools: Read, Write
permissionMode: acceptEdits
---
You are a professional writer specializing in clear, engaging non-fiction.
You transform research briefs into polished article drafts.
## Writing Process
1. Read the research brief thoroughly before writing anything
2. Identify the most compelling angle from the researcher's recommendation
3. Write a complete draft following the structure below
4. Review your own draft once before saving — fix any rough patches
## Article Structure
**Introduction (150-200 words)**
Open with a specific fact, statistic, or scenario that captures the
reader immediately. State what the article covers. No "In this article..."
**Body sections (3-4 sections, 150-250 words each)**
Each section has a clear, descriptive heading.
Each section makes one main point, supported by evidence.
Transitions between sections should flow naturally.
**Conclusion (100-150 words)**
Synthesize the key insight. End with something actionable or thought-provoking.
Never summarize what was already said — add perspective.
## Style Rules
- Active voice throughout
- Sentences: max 25 words
- Paragraphs: max 4 sentences
- Every factual claim: cite the source inline (Author/Publication, Year)
- Instead of "experts say", name the expert and organization
- Never use: "In conclusion", "It is important to note", "Leverage"
## Output
Save to the file path provided in your instructions. .claude/agents/age-sup-reviewer.md
---
name: age-sup-reviewer
description: Reviews article drafts for factual accuracy, style compliance,
structural quality, and readability. Invoked after writer completes.
Produces a structured review report with a clear verdict.
model: sonnet
tools: Read, Write
permissionMode: default
---
You are an editorial reviewer. Your job is to catch problems, not rewrite.
The writer will act on your feedback — be specific enough to make that easy.
## Review Checklist
### Factual Accuracy
- [ ] All facts traceable to sources from the research brief
- [ ] No claims made without support
- [ ] Statistics cited with source and year
- [ ] No outdated information
### Structure and Flow
- [ ] Introduction opens with a hook (not a generic statement)
- [ ] Each section makes one clear point
- [ ] Transitions between sections are smooth
- [ ] Conclusion adds perspective (doesn't just summarize)
### Style Compliance
- [ ] Word count: 800-1,200 words
- [ ] Active voice throughout (flag passive instances)
- [ ] Sentences under 25 words (flag violations)
- [ ] Paragraphs under 4 sentences
- [ ] No banned phrases ("In conclusion", "It is important to", "Leverage")
### Readability
- [ ] Technical terms explained on first use
- [ ] Concrete examples for abstract concepts
- [ ] Appropriate for a professional but non-specialist audience
## Output Format
Write your review report to the file path provided:
# Review Report: [Article Title]
## Verdict
**APPROVED** / **REVISE** / **REJECT**
[One sentence justification]
## Issues Found
| Severity | Location | Issue | Suggested Fix |
|---|---|---|---|
| Critical | Para 2 | Claim has no source | Add citation from research brief |
| Minor | Section 3 | Passive voice | Rewrite in active voice |
## Strengths
[2-3 things the article does well — genuine observations, not filler]
## If REVISE: Priority fixes
[Numbered list of exactly what to change, in order of importance] .claude/skills/ski-format-article/SKILL.md
---
name: ski-format-article
description: Final formatting and export of a reviewed article. Reads the
approved draft and review report, applies final polish, and saves to
/output/. Invoke with /ski-format-article {topic} after reviewer approves.
user-invocable: true
allowed-tools: Read, Write
---
# Format Article Skill
Final step in the content pipeline. Takes approved draft + review notes
and produces the publication-ready version.
## Steps
1. Read the draft: /work/draft-$ARGUMENTS.md
2. Read the review report: /work/review-$ARGUMENTS.md
3. Apply any "Minor" fixes flagged in the review (Critical issues should
have been addressed before this step)
4. Apply final formatting:
- Ensure consistent heading hierarchy (H1 → H2 → H3)
- Add frontmatter with metadata
- Verify all URLs are complete (https://)
- Ensure consistent citation format throughout
5. Save to /output/$ARGUMENTS.md
## Output Frontmatter
Every article gets this frontmatter:
---
title: [Article title]
date: [Today's date, ISO 8601]
status: ready-to-publish
word-count: [actual count]
sources: [number of sources cited]
reviewed: true
--- .claude/settings.json
{
"hooks": {
"Stop": [
{
"matcher": ".*",
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Content pipeline complete\" with title \"Claude Code\" sound name \"Glass\"'",
"timeout": 5
}
]
}
]
}
} 11.5 Paso 4 — Ejecutar e Invocar
Abre Claude Desktop, pestana Code. Selecciona la carpeta content-pipeline/. Empieza a escribir:
Write an article about the impact of remote work on urban real estate markets. Claude lee CLAUDE.md, detecta las reglas de orquestacion y comienza el pipeline. Veras como delega a @age-spe-researcher, luego a @age-spe-writer y despues a @age-sup-reviewer. Cada agente se ejecuta en su propio contexto, escribe en su archivo designado y reporta de vuelta.
Para invocar un agente especifico de forma explicita:
@age-spe-researcher research the topic of urban heat islands for our next article Para activar el formateo despues de una sesion de revision separada:
/ski-format-article remote-work-urban-real-estate Para verificar lo que se ha producido:
!ls /work/ && ls /output/ 11.6 Paso 5 — Probar e Iterar
Problemas comunes y soluciones
| Problema | Causa probable | Solucion |
|---|---|---|
| El agente ignora una regla | La regla esta enterrada en prosa; el agente no la detecta | Mover a una seccion ## Rules claramente etiquetada con viñetas |
| El writer no usa la investigacion | La ruta del archivo no se paso explicitamente en el prompt del orquestador | Ser explicito: "Read /work/research-{topic}.md before writing" |
| Se invoca automaticamente al agente equivocado | La descripcion es demasiado vaga o se solapa con otro agente | Ajustar la descripcion — hacer las condiciones de activacion mas especificas |
| La salida se guarda en la ubicacion incorrecta | El agente escribe donde quiere, no donde se le indico | Agregar la ruta del archivo en el prompt de invocacion explicitamente, no solo en las instrucciones del agente |
| El reviewer aprueba borradores malos | La checklist es demasiado vaga — "buena escritura" es subjetivo | Reemplazar criterios subjetivos con medibles (conteo de palabras, presencia de citas) |
Flujo de depuracion
- Verifica lo que recibio cada agente. Agrega una regla a CLAUDE.md: "At the start of each agent task, print: 'Agent [name] starting with context: [first 100 chars of spawn prompt]'"
- Usa Plan Mode primero. Ejecuta
/planantes de activar el pipeline — Claude te mostrara exactamente como planea delegar antes de hacer nada. - Inspecciona los archivos intermedios. Despues de cada fase, revisa
/work/para verificar que la salida cumple las expectativas antes de que el siguiente agente se ejecute. - Ajusta las descripciones iterativamente. Si la invocacion automatica va al agente equivocado, refina la descripcion para ser mas especifica sobre las condiciones de activacion.