Evidence Synthesizer — The Assembler
Take the evidence bundles from source-triangulator and weave them into a single research brief that is both scannable and auditable. Every finding gets a confidence tag. Every gap gets named. The user should be able to read the Key Findings in 30 seconds or trace any claim back to its source chain in 3 minutes.
How to Run
Input
From the Spelunker orchestrator:
- All evidence bundles from source-triangulator (one per atomic claim)
- The original question and claim decomposition from claim-decomposer
- The depth mode used for this investigation (quick / standard / deep) — required for overall confidence assessment
- The confidence framework (read
../spelunker/references/confidence-framework.md)
Steps
Step 1 — Finalize Confidence Tags
Review each evidence bundle's preliminary confidence tag against the confidence framework criteria:
- Verify tag criteria are strictly met. The triangulator assigns preliminary tags — the synthesizer is the quality gate.
- Respect confidence ceilings. If the triangulator flagged a ceiling (from upstream dependencies), enforce it. A claim's final tag cannot exceed its ceiling.
- Apply aggregation rules. If the overall conclusion depends on multiple claims, the conclusion's confidence cannot exceed the weakest critical claim. Use the decomposer's priority field to identify which claims are critical (load-bearing) vs. supporting vs. contextual.
- Check for cross-claim interactions. Does evidence from one claim affect the confidence of another? (e.g., if a premise is downgraded, conclusions depending on it must also be downgraded)
- Document the reasoning. Every tag gets a because-clause: "Tagged [level] because [specific criteria met/not met, with evidence counts]."
Post-adversarial re-assessment: The synthesizer may be called a second time after Phase 5 (adversarial pass) downgrades claims. When re-invoked:
- Accept the updated confidence tags
- Re-run the overall confidence assessment (Step 4)
- Update the evidence map to reflect adversarial findings
- Add a "Post-Adversarial Changes" note documenting what changed and why
Step 2 — Build the Evidence Map
Construct the provenance chain for each finding:
Finding → Atomic Claim → Evidence → Source
Example:
"Creatine is safe for long-term use in healthy adults"
← Claim #2: Creatine monohydrate is safe at 5g/day for 1+ years
← Evidence: 3 independent sources agree
← Source A: [Study, Tier 1, 2019]
← Source B: [Meta-analysis, Tier 1, 2021]
← Source C: [Institutional review, Tier 1, 2023]
← Independence verified: Different research groups, different methodologies
← Adversarial check: No credible contradicting evidence found
→ Confidence: Confirmed
The evidence map must be traceable — any reader should be able to follow from the finding back to the original source.
Step 3 — Compile Gaps and Limitations
Aggregate all limitations from the evidence bundles into a single section:
Categories of gaps:
- Unanswered claims — atomic claims that could not be verified (tagged Unverifiable)
- Access limitations — paywalled sources, inaccessible databases, rate-limited tools
- Evidence quality gaps — claims where only low-tier sources were available
- Scope limitations — aspects of the original question that fell outside available evidence
- Temporal limitations — evidence that may be outdated, or rapidly evolving areas where currency is uncertain
- Tool limitations — specific capabilities that were unavailable (e.g., no access to specialized databases)
For each gap, state:
- What is missing
- Why it matters (how would it change the conclusion if the gap were filled?)
- What would resolve it (a specific database, study type, or expert consultation)
Step 4 — Assess Overall Confidence
Synthesize a meta-assessment of the investigation quality:
- How many claims were Confirmed vs. Likely vs. Speculative vs. Contested vs. Unverifiable?
- Did the adversarial self-check find significant counterevidence?
- Were there significant access or tool limitations?
- What depth mode was used? (This caps the overall confidence — see below)
- How confident should the user be in acting on these findings?
Overall confidence levels:
- High confidence: Majority of critical claims are Confirmed, no Contested claims, adversarial check passed. Requires standard or deep mode. Quick mode cannot achieve High confidence regardless of claim tags.
- Moderate confidence: Mix of Confirmed and Likely, no unresolved Contested claims, minor gaps. This is the ceiling for quick-mode investigations.
- Low confidence: Critical claims are Speculative or Contested, significant gaps, limited source access
- Insufficient evidence: Too many Unverifiable claims to draw a conclusion — state this clearly rather than forcing an answer
Depth-mode qualifier: Include the depth-mode qualifier from the confidence framework in the brief header. The user must always know whether adversarial verification was performed.
Step 5 — Format the Research Brief
Read references/synthesis-templates.md for the exact output format.
Assemble the final output with these sections in order:
- Header — Question, depth mode, date
- Key Findings — The scannable summary (30-second read)
- Detailed Findings — Each claim with full evidence chain (3-minute deep dive)
- Evidence Map — Visual provenance chains
- Gaps & Limitations — What wasn't found and why it matters
- Confidence Summary — Aggregate assessment
- Sources — Numbered, ranked by relevance and authority
- Next Steps — What to investigate further if the user needs more
Step 5b — Citation Audit (REQUIRED before delivery)
Before returning the brief to Spelunker Phase 6, run a citation audit. The brief is incomplete if any of the following fail:
- Every empirical claim has an inline
[N]citation marker. Walk every paragraph of Key Findings and Detailed Findings. For each sentence that asserts a fact, statistic, attribution, or named entity, verify that an[N]marker is attached. If a claim has no defensible source, downgrade it to Speculative and append[no source]rather than silently dropping the marker. - Every confidence tag is paired with a because-clause. "Confirmed" alone is not acceptable.
- The SOURCES section is a numbered list with full identifiers. Each entry contains number, title, URL or DOI, publication date, tier, and which findings it was used for. Bullet-formatted sources are not acceptable.
- Inaccessible sources are still cited. If a source was paywalled or unretrievable, cite it with the best available identifier (DOI, archive link, author/title) and mark
[paywalled]or[archived]. Never silently drop a citation because the URL didn't load. - Citation numbers match between body and SOURCES. No orphaned
[N]markers and no SOURCES entries that aren't cited in the body (the latter become "Background reading" if you want to retain them).
If audit fails, return the brief to Step 5 and complete the citations before re-attempting delivery. This is the discipline that makes Spelunker briefs auditable rather than authoritative-sounding.
Step 6 — Persistence (optional)
If the user wants this output persisted to their Obsidian vault, call vault-writer (infrastructure/vault-writer) with the brief as a type: note artifact and the relevant target_domain, slug, and tags. Pass companion_source_path if the full output should also be archived to Raw/. The vault-writer integrity report will list any unresolved wikilinks the caller should address (either by linking to existing notes or by leaving as known skill-library refs). When invoked standalone (not from spelunker), the synthesizer can call vault-writer directly.
Output
A complete research brief formatted per references/synthesis-templates.md. The brief is self-contained — a reader should be able to understand the findings, assess their reliability, and identify what remains unknown without needing any additional context.
Error Handling
All claims are Unverifiable: Do not produce a research brief with false conclusions. State clearly that the available tools and sources are insufficient to answer the question. Suggest alternative approaches (specific databases, expert consultation, primary research).
Evidence bundles are inconsistent: If the triangulator's evidence bundles contain internal contradictions (supporting the claim in one search, contradicting it in another), flag this as Contested rather than silently resolving it.
Original question cannot be answered from the evidence: State this explicitly. The evidence may answer a related but different question — present what CAN be concluded, clearly distinguish it from the original question, and identify the gap.
Depth mode was insufficient: If synthesis reveals the topic is more complex than the selected depth mode can handle, recommend the user re-run at a deeper level. Note which specific claims need more investigation.