| name | source-synthesis |
| description | Extract structured claims, facts, contradictions, and narrative-ready insights from research documents. Use this skill whenever the user has uploaded research reports, literature reviews, scholarly notes, or compiled source materials and wants to turn them into a structured knowledge base for content creation. Trigger on phrases like "extract facts," "find contradictions," "synthesize research," "what do the sources say," "interesting facts from these," "build a content plan from research," or when the user has multiple research documents and needs to cross-reference them. Also trigger when the user asks to compare claims across sources, grade evidence quality, separate verified facts from legends and speculation, or generate visual briefs and illustration references for physical objects described in research. |
Source synthesis
Turn research documents into a structured, cross-referenced knowledge base. The output is not a paraphrase — it is a queryable inventory of claims, each tagged with evidence quality, source, and content potential.
When to use this
The user has gathered research (uploaded markdown, PDFs, notes from other chats, literature reviews) and needs to:
- extract individual factual claims with evidence grades
- find where sources contradict each other
- separate primary evidence from interpretation, and interpretation from popular retelling
- identify facts that make compelling content for a general audience
- build a structured foundation for writing articles, website content, presentations, or product/UX decisions
Setup (run before extracting)
Before touching the corpus, lock down four parameters and state them at the top of the output. Each one has caused real failures when left implicit.
Output language
If the corpus language and the conversation language differ, ask which language the user wants the output in. Options to offer:
- match the corpus language (preserves quotations cleanly)
- match the user's language (cheaper to read)
- split — structured tables stay in the corpus language; narrative wrappers go in the user's language. Concretely:
- Corpus language: per-claim tables (§2), issue tables (§3, §3b), facts inventory (§4), object map (§4b), content seeds (§5), gaps (§6), visual briefs (§7)
- User's language: introductory paragraphs, methodological notes, SITE NOTE fields, RESOLUTION fields, executive summary, the final synthesis prose
Do not guess. A one-sentence question saves a full re-run later.
Corpus-size mode
Pick a mode based on document count and total volume. The mode determines how much atomic detail vs. structured synthesis you produce — these are not the same activity at different scales.
| Corpus size | Mode | Output |
|---|
| 1–2 documents | Full atomic extraction | Every claim, all fields, no compression. The default template below is used as-is. |
| 3–6 documents | Batched thematic extraction | Group claims into themes first. Dense claim tables per theme. Cross-references between themes. Atomic detail kept for high-stakes claims; routine claims summarized at the theme level with source keys. |
| 7+ documents | Synthesis-with-cross-references | Thematic clusters as the primary deliverable. Contradictions, formulation variants, and gaps are the headline output. Atomic extraction reserved for the most loaded or contested claims. |
State the chosen mode and the reason at the top of the output. If the user disagrees, switch modes — do not silently mix.
Evidence grading preset
Read references/evidence-grades.md for the universal framework, then pick a domain preset:
- Archaeology, history, material culture →
references/grading/archaeology-history.md
- Medical, biomedical, clinical, scientific research →
references/grading/medical-scientific.md
- Any other domain (social science, policy, design research, internal company research, business analysis, etc.) → ask the user. Propose the closest preset as a starting point, confirm or adapt the A–G mapping, and record the adopted mapping at the top of the output. Do not silently re-interpret a shipped preset for a different domain.
Artifact mode (on / off)
Default is off. Turn on only when the corpus describes physical objects that may need illustration briefs (museum artifacts, archaeological finds, historical material culture, weapons, garments, etc.).
When artifact mode is on, the per-claim template adds the OBJECT STATUS / MUSEUM / INVENTORY / DIMENSIONS / MATERIALS / PHOTO ACCESS block, and Step 7 (visual briefs) is available. When off, ignore those fields entirely and skip Step 7.
Core workflow
1. Inventory the sources
List every source document with a short label. Use these labels as citation keys throughout.
| Key | Document | Period/scope covered | Source type |
Source types (cross-domain):
primary-empirical — raw data, original measurements, excavation report, RCT data, original survey
primary-textual — original historical document, ancient author, interview transcript, founding contract
academic-synthesis — peer-reviewed review, meta-analysis, scholarly book
catalogue — museum catalogue, database, registry, structured reference
working-notes — unpublished drafts, internal notes, conversation summaries
popular-secondary — journalism, popular book, web article, marketing material
Meta-synthesis rule. When a document in the corpus is itself a synthesis of other documents in the same corpus (a review-of-reviews, an integrative summary, a digest), treat it as academic-synthesis for grading, but build an echo-map alongside the inventory: which other corpus documents it draws from, and whether it adds new evidence, repackages existing claims, or amplifies them. Without the echo-map, single-source claims can travel through the meta-synthesis document and look corroborated when they are not — the same fact is just being repeated.
The echo-map operates at the document level (which corpus documents repackage which), not the claim level. Claim-level "is this corroborated in the corpus?" is the job of §3 Pass C. Practically: the echo-map tells you which two documents to compare when running Pass B (formulation variants) and Pass C (single-source claims); it is not a substitute for either.
2. Extract claims
Process each document section by section, in order, at the depth the chosen mode permits. Section = the document's top-level structural unit — typically markdown ##; if the document uses a different heading convention, use the equivalent top-level unit. Example: a source with ## 1. Executive Summary / ## 2. Setup / ## 3. Themes / ## 4. Evidence / ## 5. Conclusion has five sections, and you report coverage of those five.
After finishing a document, log any sections you skipped and why. The goal is auditable coverage, not a highlight reel — interesting-vs-mundane is decided later at the content seed stage. Sections that do not need a skip-log entry: bibliography / references / table of contents / cross-reference index / executive summary if it merely duplicates body content. The skip log is for semantic gaps, not for boilerplate.
A claim is one atomic assertion that can be true, false, or contested. If a single sentence contains both a fact and an interpretation, split it into two claims. Do not extract opinions or interpretive frameworks unless they are themselves the subject of debate.
What counts as a "loaded" claim (used in batched and synthesis modes to decide which claims get the full atomic template vs. a one-liner). A claim is loaded if it is at least one of:
- artifact — a specific dated object with measurements, inventory number, or other catalogue data
- contested — the corpus contains a contradicting variant, or the claim is on a known inflation-prone topic identified in the cluster intro
- evaluative — a judgment that downstream content might amplify ("most celebrated", "the oldest", "the best documented")
- quotable — a numerical or statistical claim a non-specialist reader would lift verbatim
- variant — the same fact is stated differently across sources (formulation matters for cross-reference passes)
All other claims are routine — recorded as one-liners under a theme heading with source key. Routine ≠ unimportant: it means the formulation is uncontested and the grade is unambiguous, so an atomic template would add ceremony without information. The point of this split is auditability at scale; without an explicit criterion, parallel extractors drift by 2× in atomic-claim count on comparable corpora.
Default per-claim template (used at every scale; in batched/synthesis modes, group these under themes):
CLAIM: [one sentence]
PERIOD: [date range or "cross-period" or "n/a"]
TOPIC: [what this claim is about — entity, intervention, concept, event]
SOURCE: [citation key + section reference]
EVIDENCE GRADE: [letter from chosen preset; record subtype if applicable]
CONTRADICTS: [citation key if another source disagrees, or "none"]
CONTENT FLAG: [yes/no — would a general reader find this interesting?]
CONTENT HOOK: [if yes, one sentence explaining why it's interesting]
Artifact-mode addendum (only if artifact mode is on AND the claim describes a physical object):
OBJECT STATUS: [extant-with-inventory / extant-described / lost / not-located / hypothetical]
MUSEUM: [institution name, or "unknown"]
INVENTORY: [number, or "not published"]
DIMENSIONS: [if given in source]
MATERIALS: [if given in source]
PHOTO ACCESS: [open / restricted / none / unknown]
These fields exist to track what can be shown (photographed, illustrated) vs. what can only be described.
3. Cross-reference
After extracting claims from all sources, run three passes. This is the skill's strongest contribution — do not skip it even in synthesis mode.
Pass A — Contradictions and tensions. Look for:
- Direct contradictions: two sources assert incompatible facts (different dates, different attributions, different measurements, different effect sizes).
- Tension: two sources frame the same evidence differently (one says "transmitted from Hittites," another says "part of a regional corridor"; one says "clinically significant," another says "statistically significant but below MCID").
- Inflation: a secondary source makes a stronger claim than the primary it cites ("one of the oldest" becomes "the oldest"; "37% lower hazard in a cohort" becomes "GLP-1 prevents dementia").
Pass B — Formulation variants. For each claim, check how other sources in the corpus describe the same fact. Record differences even when they don't amount to contradiction. Variants matter because they reveal where multiple independent sources agree on detail (strong evidence) vs. where a single source's phrasing has been copied unchecked.
Examples of meaningful variants:
- (archaeology) "purveyor to the imperial court" vs. "sold five items to the tsar in 1861" vs. "appears in court purchase registries"
- (medical) "improved cognition" vs. "improved ADAS-Cog score by 1.4 points" vs. "did not meet pre-specified primary endpoint of MMSE change"
- (market / UX research) "users love the feature" vs. "8 of 12 interviewees mentioned it positively" vs. "NPS rose from 32 to 41 after launch"
In each triple, the third version is the most auditable; the first is the most rhetorically convenient. Flag where the corpus relies on the first.
Pass C — Single-source claims. Flag individual claims asserted by only one source with no corroboration in the corpus. These go into the ISSUE TYPE table below as gap entries — claim-level negative findings. Do not conflate with §6 Gaps: that section records topical or structural holes in the source base (questions no source addresses), which is a corpus-level finding. Same word, different scope; Pass C feeds the issue table, §6 produces its own list.
For each issue found:
ISSUE TYPE: [contradiction / tension / inflation / formulation-variant / gap]
CLAIM A: [source key + claim]
CLAIM B: [source key + claim, or "not addressed"]
RESOLUTION: [which is better supported and why, or "unresolved — do not guess"]
SITE NOTE: [how to handle when this lands in downstream content]
The resolution field must never convert speculation into assertion. "May be father and son" is not a resolution — it is an open question. Write it as one.
3b. Cross-cluster pass (synthesis-with-cross-references mode only)
After every thematic cluster has been extracted and run through the three passes above, repeat the same passes between cluster outputs. On corpora of 7+ documents the most consequential findings often live across clusters, not within them, and skipping this step reduces synthesis-mode to "several batched extractions stapled together."
- Pass A (cross-cluster) — contradictions and tensions between clusters: one cluster's synthesis contradicts another's primary evidence; two clusters apply different evidence grades to the same artifact; one cluster's resolution undermines another's premise.
- Pass B (cross-cluster) — inflation chains: a claim that strengthens at each hop through the corpus, e.g. a cautious C-stat number in one document becoming an unqualified assertion in another's introductory paragraph.
- Pass C (cross-cluster) — structural cross-gaps: topics that multiple clusters touch but none resolves, indicating a hole the whole corpus shares.
Use the same ISSUE TYPE / CLAIM A / CLAIM B / RESOLUTION / SITE NOTE schema as §3. Tag entries with stable prefixes for downstream content reference:
CX-N for cross-cluster contradictions/tensions
IC-N for inflation chains
XG-N for cross-gaps
Output as a single cross-cluster section (or file, depending on delivery format). This section, together with §4b object map below, is typically the headline deliverable in synthesis mode — more so than any single cluster output.
4. Build the facts inventory
Produce a structured table of all extracted claims, sorted by period (or by theme, in batched/synthesis modes), then by evidence grade (strongest first).
| # | Claim | Period/theme | Evidence grade | Source(s) | Issue? | Content flag |
In synthesis mode (7+), the inventory may be a per-theme summary table with atomic detail kept only for flagged or contested claims.
4b. Object map (artifact mode + synthesis mode)
When artifact mode is on and the corpus produces claims about the same physical objects across multiple clusters, produce a cross-cluster object map. The same artifact often shows up as primary evidence in one cluster and as expected-but-absent in another (gap); without a single table, that linkage is invisible.
| Object / inventory # | Primary cluster | Other clusters that reference it | Reference type (corroboration / contradiction / gap / amplification) |
One row per uniquely identifiable object (museum inventory, named specimen, or stable type label). This table is the schema downstream CMS or catalogue work will start from — producing it during synthesis is far cheaper than reconstructing it later from cluster outputs.
5. Extract content seeds
From the flagged claims, produce content seeds — facts, stories, or details that would engage a general reader.
Rank every seed by narrative strength:
- anchor: can open an article or a section — has human drama, surprise, a vivid scene, or a counterintuitive finding.
- supporting: reinforces an anchor — adds scale, context, or a second example.
- sidebar: a number, detail, or comparison that works as a callout box, infographic, or image caption but not as a standalone story.
SEED: [the fact or story]
NARRATIVE STRENGTH: [anchor / supporting / sidebar]
WHY IT WORKS: [what makes it interesting — surprise, scale, human detail, visual potential, counterintuitive finding, connection to something familiar]
EVIDENCE GRADE: [from the claim]
NEEDS: [what additional research or verification would strengthen it]
COULD PAIR WITH: [other seeds that create a narrative together]
Present anchors first, then supporting, then sidebars.
Synthesis-mode meta-rank. After ranking seeds within each cluster, run a second pass across clusters to identify editorial keystones: framing pieces that operate one level above the corpus's natural divisions — a methodology piece, an anti-inflation explainer, a synthesizing frame that opens the whole content series rather than a single article. An editorial keystone is an anchor that earns extra weight by spanning clusters. Present these before per-cluster anchors. Skip this pass in batched or full-atomic modes — it only earns its keep when the corpus is large enough that several strong anchors compete for the opening slot.
6. Identify research gaps
List topics where the source base is thin and additional research would improve coverage.
GAP: [topic]
WHAT WE HAVE: [brief]
WHAT WE NEED: [specific — a museum catalogue number, a particular trial, a specific archival record]
WHERE TO LOOK: [suggested research path]
7. Visual briefs (artifact mode only, on request)
Skip this entire section unless artifact mode is on AND the user has asked for illustration briefs, visual references, or "what does this object look like."
Only generate visual briefs for claims with OBJECT STATUS = extant-with-inventory or extant-described. A brief can be scoped at three levels — the template fields below fit all three; only the meaning of MUSEUM / INVENTORY / SOURCES AGGREGATED shifts:
- single-object — one extant catalogued specimen is the subject
- assemblage-level — an excavation yielded a coherent group described as a whole (e.g., 15 helmets + 16 shields recovered together)
- type-level — a category aggregated across multiple specimens or comparanda (e.g., "Urartian bimetallic sword type")
Pick the scope before filling the template: it determines whether you're describing one object, a group, or a class. See references/visual-brief-guide.md for full guidance on choosing scope and aggregating descriptions across sources.
For each:
VISUAL BRIEF: [object name or type name]
TYPE: [category]
PERIOD: [dating]
OVERALL DIMENSIONS: [length × width × thickness, weight — all from sources, mark gaps]
CONSTRUCTION: [casting method / forging / bimetallic / etc.]
CROSS-SECTION: [lenticular / rhomboid / central ridge / wedge / etc.]
BLADE/SURFACE GEOMETRY: [edge count, fullers, taper, tip shape, or equivalent]
HILT/HANDLE: [tang type, grip material, pommel form, crossguard form, or equivalent]
SCABBARD/CASE: [if described — material, fittings, decoration]
DECORATIVE ELEMENTS: [motifs, technique, placement]
MATERIALS: [primary metal, fitting metal, organic materials]
COMPARABLE PUBLISHED DRAWINGS: [which sources in the catalogue contain drawings of this type]
SOURCES AGGREGATED: [list every source key + section used]
DO NOT COPY: [specific copyrighted photographs to avoid reproducing]
ILLUSTRATION NOTE: [always state that this is a generalized type based on multiple textual descriptions and published measurements, not a reproduction of any single photograph]
Read references/visual-brief-guide.md for rules on aggregating descriptions and avoiding derivative work.
Output format
Deliver results as a structured markdown document with clear headers for each section. Open with the four setup decisions (language, mode, grading preset, artifact toggle) so the reader knows the rules in force.
When the user asks for a specific slice ("just the contradictions" or "just the interesting facts about the 19th century"), deliver only that slice — the setup header still applies.
Delegation pattern
When running this skill at scale — typically synthesis-with-cross-references mode with each thematic cluster handed off to a parallel subagent — the orchestrating agent must inline the skill's invariants into each subagent's prompt, because subagents often cannot read the skill files themselves (file permissions in subagent contexts are not guaranteed).
For each subagent, the prompt must carry:
- The four setup parameters as fixed for this corpus run (output language, corpus-size mode, grading preset, artifact mode on/off)
- The per-claim template — including the artifact-mode addendum if artifact mode is on
- The chosen grading preset's letter scale: each letter with a one-line definition, plus any subtypes in use (e.g., C-doc / C-stat / C-trans for archaeology-history)
- The required output sections for whatever step the subagent is executing (e.g., §2 + §3 if it's running per-cluster extraction)
- The "loaded vs routine" criterion from §2
This is the difference between eight subagents producing one coherent synthesis and eight subagents producing eight slightly different synthesis frameworks. The cost of inlining ~60 lines per subagent prompt is trivial compared to the cost of re-running the corpus after silent drift.
If the orchestrator notices that subagents are producing structurally inconsistent outputs (different field names, different grade interpretations, different "loaded" thresholds), the first hypothesis should be that the invariants were not inlined and the subagents fell back to their own interpretation.
What this skill is NOT
- Not a lossy summarizer. At every scale, every claim — atomic or themed — must trace back to a source key. Mode shifts the granularity of the output, never the auditability.
- Not a fact-checker against external sources. It cross-references within the provided corpus only.
- Not a content writer. It produces raw material for content, not finished articles.
Reference files
references/evidence-grades.md — universal grading principles and how to pick a preset. Read first.
references/grading/archaeology-history.md — A–G grades tuned for archaeology, history, material culture.
references/grading/medical-scientific.md — A–G grades tuned for clinical and scientific corpora.
references/visual-brief-guide.md — rules for aggregating physical descriptions into illustration briefs and avoiding derivative work. Only relevant in artifact mode.