Claim builder — constructs claims from evidence, builds argument tree, detects overclaims, triggers debate for rival explanations
Propose claim nodes grounded in evidence units, link claims to supporting and opposing evidence, assign hedge levels, detect overclaims, build an argument tree, and surface contested claims for debate. Produce the argument structure for Gate 4 human approval.
This skill implements PRD Stage 5 (Section 17.6) — argument building, and PRD Agents 12.10 + 12.11.
$ARGUMENTS[0]: workspace path (e.g., workspaces/ar-2026-03-22-a1b2c3d4)Read from the workspace:
{workspace}/analysis/evidence/evidence_index.json — evidence groupings and contradictions{workspace}/analysis/evidence/ev-*.json — individual evidence units{workspace}/analysis/method_cards/method_card.json — approved method and contribution type{workspace}/analysis/literature_map/literature_map.json — thematic clusters{workspace}/analysis/scoping/scoping_report.json — research question, sub-questionsRead the evidence index and all evidence units. Understand:
For each sub-question and each major theme, propose ClaimNode objects:
Generate a claim ID: .venv/bin/python3 utils/schemas.py id cl
Populate the ClaimNode fields:
claim_id: the generated IDclaim_text: a clear, specific claim statementclaim_type: descriptive / causal / interpretive / comparative / normativesection_target: which paper section this claim belongs in (intro / related_work / methods / findings / discussion / limitations / conclusion)support_evidence_ids: evidence units that support this claimopposing_evidence_ids: evidence units that contradict or weaken this claimstatus: draft / weakly_supported / supported / contestedhedge_level: high / medium / lowreviewer_flags: any concerns about this claimFor each claim:
Flag any claim where:
For each overclaim, add a reviewer_flag explaining the concern.
Construct a hierarchical argument structure:
Map parent-child relationships between claims.
If any claim is contested with strong evidence on both sides, or if rival explanations exist for key findings, flag for debate:
debate_needed: truedebate_type (rival_explanations or claim_adjudication)Write each claim to {workspace}/analysis/claims/cl-{id}.json.
Write {workspace}/analysis/claims/argument_tree.json:
{
"thesis": "The main argument of the paper",
"claim_ids": ["cl-xxx", "cl-yyy"],
"sub_claim_map": {
"cl-xxx": ["cl-aaa", "cl-bbb"],
"cl-yyy": ["cl-ccc"]
},
"contested_claims": ["cl-zzz"],
"weak_claims": ["cl-www"],
"debate_needed": false,
"debate_claims": []
}
Write {workspace}/analysis/claims/argument_summary.md:
A human-readable summary (800 words max) that includes:
This summary is presented at Gate 4 for human approval.