Cross-Source Synthesis
Create a cross-source synthesis across multiple source analyses and claims. Use after checking multiple sources or when producing a higher-level, decision-oriented view.
Usage
<topic> [source-ids/claim-ids in prompt]
Create a cross-source synthesis across multiple source analyses and existing claims.
Use this after running $check on multiple sources (or when you already have relevant source analyses and want a higher-level conclusion).
Note: For multi-source prompts, $check should typically produce the synthesis automatically; $rc-synthesize is the standalone/iterative version of that workflow.
Prerequisites
Environment
Set REALITYCHECK_DATA to point to your data repository:
export REALITYCHECK_DATA=/path/to/realitycheck-data/data/realitycheck.lance
The PROJECT_ROOT is derived from this path - all analysis files go there.
CLI Commands
Reality Check provides CLI tools (rc-db, rc-validate, rc-export, rc-embed).
Check availability:
which rc-db # Should show path if pip-installed
If commands are not found, either:
- Install:
pip install realitycheck(recommended) - Use
uv runfrom framework directory:uv run python scripts/db.py ... - Add framework as submodule and use:
.framework/scripts/db.py ...
Red Flags: Wrong Repository
IMPORTANT: Always write to the DATA repository, never to the framework repository.
If you see these directories, you're in the framework repo (wrong place for data):
scripts/tests/integrations/methodology/
Stop and verify REALITYCHECK_DATA is set correctly.
Data Source of Truth
LanceDB is the source of truth, not YAML files.
- Query sources:
rc-db source get <id>orrc-db source list - Query claims:
rc-db claim get <id>orrc-db claim list - Search:
rc-db search "query"
Ignore YAML files like claims/registry.yaml or reference/sources.yaml - these are exports/legacy format.
When to Use
Run synthesis when the task is inherently multi-source:
- compare/contrast competing approaches
- reconcile conflicting claims
- summarize the overall state of evidence on a topic
- produce a decision-oriented “what should we believe?” output
Output Contract
Write a synthesis document to:
PROJECT_ROOT/analysis/syntheses/<synth-id>.md
Required elements:
- Synthesis metadata (topic, date, synthesis ID)
- Claims referenced (claim IDs)
- Source analysis links for relevant sources (prefer linking
analysis/sources/<source-id>.md) - Agreement/disagreement with explanations
- Synthesis conclusions with calibrated credence and key uncertainties
Corner case: If you have claims/evidence but no analyzable sources, explicitly say so and explain why (e.g., internal notes, private sources, offline materials). Still reference claim IDs and any evidence artifacts available.
Workflow
- Start Tracking - Begin token usage capture with synthesis attribution
- Define the question - What is this synthesis trying to answer?
- Collect inputs
- Prefer existing source analyses in
analysis/sources/ - If a relevant source has no analysis yet, run
$checkfirst (or document the gap)
- Prefer existing source analyses in
- Build a cross-source map
- Points of agreement (which claims converge?)
- Points of disagreement (where do they conflict, and why?)
- Write the synthesis
- Link each major claim back to source analyses (when available)
- Resolve conflicts where possible; otherwise record open questions + what would resolve them
- (Optional) Register an argument chain
- Use
rc-db chain add ... --analysis-file "analysis/syntheses/<synth-id>.md" --claims "ID1,ID2,..."for the central claim chain
- Use
- Complete Tracking - Finalize token usage with synthesis attribution
- Update README
- Add the synthesis to the "Syntheses" table (kept above "Source Analyses")
- Commit and push
- Commit changes to
analysis/andREADME.md(and any generated exports), then push
- Commit changes to
Token Usage Tracking (Synthesis Mode)
For syntheses, use the lifecycle commands with attribution flags to track which source analyses feed into the synthesis:
# 1. At workflow START
ANALYSIS_ID=$(rc-db analysis start \
--source-id "SYNTH-[YYYY]-[NNN]" \
--tool claude-code \
--model "claude-sonnet-4" \
--cmd synthesize)
# 2. At workflow END (after writing synthesis)
# Include --inputs-source-ids and --inputs-analysis-ids for cost attribution
rc-db analysis complete \
--id "$ANALYSIS_ID" \
--analysis-file "analysis/syntheses/[synth-id].md" \
--inputs-source-ids "source-id-1,source-id-2" \
--inputs-analysis-ids "ANALYSIS-2026-001,ANALYSIS-2026-002" \
--estimate-cost \
--notes "Cross-source synthesis"
The inputs_source_ids and inputs_analysis_ids fields enable end-to-end cost tracking: you can trace a synthesis back to its constituent analyses and sum their costs.
Minimal Template Snippet
# Synthesis: [Topic]
## Synthesis Metadata
- **Synthesis ID**: `SYNTH-[YYYY]-[NNN]`
- **Topic**: [question or topic]
- **Date**: YYYY-MM-DD
- **Source Analyses**:
- [source-id](../sources/source-id.md)
- ...
- **Claims Referenced**: TECH-2026-001, ...
Related Skills
checkrc-searchrc-validaterc-exportrc-stats
Source: lhl/realitycheck — distributed by TomeVault.