Agent skill

deep-research-synthesizer

Given outputs from 5 research sub-agents (time-sliced or partitioned), validate and synthesize them into a coherent, citation-backed Markdown deep research report with deduplication, contradiction handling, and explicit debug visibility when inputs are missing or malformed.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/deep-research-synthesizer

Metadata

Additional technical details for this skill

author
github.com/anthony-maio
version
1.0

SKILL.md

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)

  1. user_question — the user’s original question (verbatim)

  2. agent_outputs[5] — one output per agent.
    Each output MUST follow the Research Packet Contract (see references/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:

bash
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:

bash
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:

  1. Executive Summary (5–10 bullets)
  2. Direct Answer (2–6 paragraphs)
  3. Key Findings (grouped, deduped)
  4. Evidence & Citations (trace claims → sources)
  5. Contradictions / Uncertainties (what doesn’t match)
  6. Recommendations (actionable, prioritized)
  7. 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

Didn't find tool you were looking for?

Be as detailed as possible for better results