Evidence agent — extracts evidence units from reading notes, groups by theme, identifies contradictions
Transform reading notes into structured evidence units. Group evidence by theme and sub-question, identify contradictory evidence pairs, and build an evidence index for downstream claim construction.
This skill implements PRD Stage 4 (Section 17.5) — evidence extraction, and PRD Agent 12.9.
$ARGUMENTS[0]: workspace path (e.g., workspaces/ar-2026-03-22-a1b2c3d4)Read from the workspace:
{workspace}/analysis/evidence/reading_notes/*.json — all reading notes from ar-reader{workspace}/analysis/scoping/scoping_report.json — sub-questions for grouping{workspace}/analysis/literature_map/literature_map.json — thematic clusters for taggingRead every reading note file from analysis/evidence/reading_notes/.
For each notable finding, quote, data point, or argument across all reading notes, create an EvidenceUnit:
Generate an evidence ID: .venv/bin/python3 utils/schemas.py id ev
Populate the EvidenceUnit fields:
evidence_id: the generated IDsource_id: which source this came fromevidence_type: classify as quote / fact / statistic / event / interpretationquote_text: the exact text (for quotes) or a precise description (for facts/events)span_start / span_end: character offsets if available (0 if not)page_or_section: where in the source this evidence appearsinterpretation_note: what this evidence means for the research questionconfidence: 0.0-1.0 based on source reliability and directness of evidencetags: thematic tags linking to literature map clusters and sub-questionsWrite each evidence unit to {workspace}/analysis/evidence/ev-{id}.json
Organise evidence units into groups:
Find pairs of evidence units that support opposing conclusions:
For each contradiction pair, record:
Write {workspace}/analysis/evidence/evidence_index.json:
{
"total_evidence_units": 0,
"by_sub_question": {
"sub_q_1": ["ev-xxx", "ev-yyy"],
"sub_q_2": ["ev-zzz"]
},
"by_theme": {
"cluster_name": ["ev-xxx", "ev-yyy"]
},
"by_type": {
"quote": ["ev-xxx"],
"fact": ["ev-yyy"],
"statistic": [],
"event": [],
"interpretation": ["ev-zzz"]
},
"contradictions": [
{
"evidence_a": "ev-xxx",
"evidence_b": "ev-yyy",
"topic": "what they disagree about",
"stronger_source": "ev-xxx"
}
]
}
Update {workspace}/status.json:
EVIDENCE_BUILDING if not already"evidence" to stages_completed