Use when resolving [REF] placeholders, adding citations to thesis prose, or doing any citation-related work. Orchestrates 6 literature agents (lit-find, lit-read, lit-review, lit-paper, lit-confirm, lit-references) to find, verify, and register citations.
Orchestrate the 6 literature agents to find, verify, and register citations for thesis claims.
Process ONE citation at a time. Complete the full pipeline (find → read → paper → confirm → register → insert) for one claim before moving to the next. Accuracy over speed.
Work autonomously. Do not ask the user for input unless you hit an escalation trigger (see below). The user expects you to resolve citations on your own, reporting progress as you go.
lit-confirm returns DOES_NOT_SUPPORT or PARTIALLY_SUPPORTS, OR 2 rounds of Scenario B yield nothing. The claim in the thesis may need rewording, hedging, or removal.Everything else (citation selection, which paper to use, registering refs, inserting in-text) you handle autonomously. Report what you did after each citation so the user can see progress.
[REF ...] placeholders in thesis chapters| Agent | Purpose | Tools |
|---|---|---|
lit-find | Search indexes for sources | Read, Grep |
lit-read | Extract evidence from one file | Read |
lit-review | Generate new review via API | Read, Write, Bash |
lit-paper | Download fulltext paper | Read, Write, Bash |
lit-confirm | Verify paper supports claim | Read |
lit-references | Register citation | Read, Write |
Extract claims from the thesis text that need citations. Each claim is a single assertive statement. Classify each:
MANUAL: "{claim}" requires a citation outside lit database scope. User provides the reference.[CROSSREF X.Y] with the target section hint. Do NOT enter references.yaml.Dispatch ONE lit-find agent for the current claim:
Agent(subagent_type="lit-find", prompt="Find literature discussing: {claim}")
Wait for the result before proceeding.
| Result | Action |
|---|---|
ALREADY_CITED: ref_id=N, intext=X | Done — insert ({intext} [ref_id]) into thesis text. Move to next claim. |
FOUND_IN_REVIEWS: {file}, sections: {X, Y} | → Step 4 (lit-read) |
FOUND_IN_PAPERS: {file}, summary: {X} | → Step 4 (lit-read) |
NOT_FOUND | → Scenario B |
For each source identified in Step 3, dispatch lit-read (can run multiple lit-reads in parallel for the SAME claim if multiple sources were found):
Agent(subagent_type="lit-read", prompt="Read {path}, focusing on sections {X, Y}. Report discussion about: {claim}")
A.1 Select the best paper to cite. Apply citation selection rules autonomously:
A.2 Dispatch lit-paper to download the fulltext:
Agent(subagent_type="lit-paper", prompt="Download paper: {APA citation}")
ALREADY_DOWNLOADED → use existing path, proceed to A.3API_ERROR → ESCALATE to user with the verbatim errorA.3 If fulltext available, dispatch lit-confirm to verify:
Agent(subagent_type="lit-confirm", prompt="Read {path} and confirm if it supports: {claim}")
SUPPORTS → proceed to A.4DOES_NOT_SUPPORT → ESCALATE to user: "Literature does not support the claim '{claim}'. Reason: {reason}. The thesis text may need modification."PARTIALLY_SUPPORTS → ESCALATE to user: "Literature only partially supports '{claim}'. {details}. Consider hedging the thesis text."A.4 Dispatch lit-references to register:
Agent(subagent_type="lit-references", prompt="Chapter {X.Y.Z} uses {APA citation} to support '{claim}'. Source: {source path}")
Receives ref_id back.
A.5 Insert ({intext} [ref_id]) into the thesis text. Report to user: Resolved: "{claim}" → ({intext} [ref_id]). Move to next claim.
B.1 Formulate 1-2 orthogonal scientific questions that should capture the claim:
Dispatch lit-review (can run 1-2 reviews in parallel for the SAME claim):
Agent(subagent_type="lit-review", prompt="Generate a review answering: {scientific question}")
B.2 Once reviews are saved, return to Step 2 for this claim (re-run lit-find).
B.3 If after 2 attempts lit-find still returns NOT_FOUND → ESCALATE to user: "Cannot find literature supporting '{claim}'. Consider rewording, hedging, or removing this claim."
When a claim needs a non-cognitive-neuroscience citation:
MANUAL: "{claim}" requires a citation outside the lit database scope (methodology/statistics/psychometrics/etc.)literature/papers/lit-confirm to verifylit-references to register({intext} [ref_id]) into thesis textFor claims supported by other thesis sections:
[CROSSREF X.Y] with the target section hint (e.g., [CROSSREF 2.3])[CROSSREF] — always include where it pointsreferences.yaml(see Section X.Y)During writing: ({intext} [ref_id]) — e.g., (Wixted & Ebbesen, 1991 [1])
The [ref_id] disambiguates potentially identical in-text citations and remains visible in markdown until final export to Word.
After each resolved citation, report briefly:
[N/total] Resolved: "{short claim}" → ({intext} [ref_id])
After each batch of MANUAL/CROSSREF items, report those too. This lets the user track progress without needing to intervene.