Deep Research Synthesizer
Use this skill when you have five sub-agent research results and need to produce a single high-quality Markdown report that:
- •answers the user’s question directly
- •preserves evidence + citations
- •removes duplication
- •flags contradictions and gaps
- •never “silently fails” when one agent output is missing or malformed
This skill is designed to fix a common anti-pattern: a coordinator prompts 5 agents, then tries to “just synthesize” without a contract, validation, or observability.
Inputs expected (minimum)
- •
user_question— the user’s original question (verbatim) - •
agent_outputs[5]— one output per agent.
Each output MUST follow the Research Packet Contract (seereferences/AGENT_PACKET_CONTRACT.md).
If you cannot guarantee the contract, run scripts/validate_packets.py and repair nonconforming outputs before synthesis.
The 5-agent pattern that works
Step 1 — Partition the work (pick ONE strategy)
Strategy A: Time slicing (good for “what happened” / “how it evolved”)
- •Agent 1: earliest timeframe
- •Agent 2: next window
- •…
- •Agent 5: most recent window + “what changed recently”
Strategy B: Source slicing (good for broad topics)
- •Agent 1: primary sources / official docs
- •Agent 2: academic papers / standards
- •Agent 3: practitioner writeups
- •Agent 4: competing viewpoints / critiques
- •Agent 5: synthesis + “what you should do” recommendations
Strategy C: Sub-question slicing
- •Agent 1: definitions / scope
- •Agent 2: current state
- •Agent 3: failure modes / risks
- •Agent 4: options + tradeoffs
- •Agent 5: recommendations + decision framework
Step 2 — Enforce the Research Packet Contract
Every agent must output:
- •a machine-parseable JSON “packet header”
- •a short narrative
- •a “Run Log” with searches + errors
Contract details: references/AGENT_PACKET_CONTRACT.md.
Step 3 — Validate before you synthesize
Run:
python scripts/validate_packets.py --in packets/
Fix failures immediately:
- •missing sources
- •missing claims/evidence mapping
- •missing run logs
- •malformed JSON
Step 4 — Normalize + deduplicate
Use:
python scripts/merge_packets.py --in packets/ --out merged.json
Then synthesize using the report template:
- •
references/REPORT_TEMPLATE.md - •include contradictions + gaps explicitly
Step 5 — Synthesize the final report (Markdown)
Write the report in this order:
- •Executive Summary (5–10 bullets)
- •Direct Answer (2–6 paragraphs)
- •Key Findings (grouped, deduped)
- •Evidence & Citations (trace claims → sources)
- •Contradictions / Uncertainties (what doesn’t match)
- •Recommendations (actionable, prioritized)
- •Appendix
- •per-agent “Run Log”
- •per-agent “Raw Findings” (optional)
Step 6 — QA checklist (do not skip)
Use references/QA_CHECKLIST.md.
If you can’t pass the checklist due to missing info, output a partial report and explicitly list:
- •which agents failed
- •what is missing
- •what follow-up tasks would resolve it
Failure-handling requirements (what stops “constant failures”)
1) Never hide missing agent outputs
If any agent output is missing/empty:
- •produce the report anyway
- •mark the missing agent as “NO DATA”
- •do not invent what it “would have found”
2) Surface tool errors verbatim
If an agent hit a tool error (HTTP, MCP, API):
- •carry the raw error into the appendix
- •summarize the impact in “Limitations”
3) Preserve traceability
Every major claim must have:
- •source id(s)
- •agent id
- •confidence
This avoids “big report looks plausible but can’t be debugged.”
Files in this skill
References
- •
references/AGENT_PACKET_CONTRACT.md— required output format for sub-agents - •
references/REPORT_TEMPLATE.md— Markdown structure + guidance - •
references/QA_CHECKLIST.md— deterministic quality gates - •
references/FAILURE_MODES.md— common causes of synthesis failure + mitigations
Scripts
- •
scripts/validate_packets.py— validates packet conformance and prints actionable errors - •
scripts/merge_packets.py— merges packets into a single normalized JSON file - •
scripts/render_report_skeleton.py— generates a Markdown skeleton from merged JSON