do-literature-review
Produce literature reviews where every citation is structurally verified before it is emitted. The skill exists to make four documented failure modes impossible to commit:
- Phantom citations — referencing paywalled or proprietary documents that were never read.
- Scope overreach — citing a real paper for a claim it does not actually support.
- Author-attribution errors — wrong first author, wrong year, wrong DOI from sloppy sub-research.
- Silent omission — listing only successful hits and hiding the searches that returned nothing.
Imperative rules ("be careful", "verify everything") do not work — agents self-report compliance falsely. Every rule below is therefore enforced by a required tool call whose result is pasted verbatim into the output, or by a required output field that cannot be filled without the tool call having happened. If you cannot fill a field, refuse to emit the citation.
Process
- Restate and decompose — one paragraph restatement of the question + 3–8 sub-questions as a checklist.
- Search — run queries against ≥ 2 of {arXiv, Crossref, Semantic Scholar, Google Scholar (last resort)}. Log every query string. Failed queries flow into Negative Findings.
- Per-paper verification — see verification.md. Two mandatory tool calls per citation; raw API response pasted into the citation block.
- Compose prose — every sourced claim points to a citation block by ID. Synthesis without a citation is marked
[unsupported] inline, not deleted.
- Negative Findings — see negative_findings.md. Every failed query and every empty sub-question listed with reason.
- Self-audit — see self_audit.md. Re-check every citation against R1–R6 by re-reading the output, not by self-report.
- Return in order: restatement, prose, citation blocks, Negative Findings, Self-Audit Table.
Hard rules
| Rule |
Enforces |
Reference |
| R1 |
Two tool calls per citation: metadata API + full-text retrieval; raw response pasted |
verification.md |
| R2 |
Verbatim quote ≥ 25 words with page/section locator, supporting the specific claim |
verification.md |
| R3 |
Paywall / no-full-text → metadata-only downgrade, no content claim allowed |
paywall.md |
| R4 |
Negative Findings section is mandatory; zero-failures result is a red flag |
negative_findings.md |
| R5 |
Self-Audit Table is mandatory; computed by re-reading the output |
self_audit.md |
| R6 |
Authors copied byte-for-byte from the API response, not from memory or snippets |
verification.md |
| R7 |
Refusal posture: cannot fill a required field → drop the citation, do not guess |
— |
API choices and response shapes are in apis.md. Citation, Negative Findings, and Self-Audit templates are in templates.md. A worked example is in examples.md.
Anti-patterns (have happened, do not repeat)
- "Helber et al. defines land-cover classes as ..." without retrieving Helber et al. → R3 downgrade to metadata-only pointer.
- "Helber et al. 2017 discusses label reconciliation ..." when the paper has no such section → R2's verbatim-quote rule catches this.
- "Kraus et al., PLOS ONE 19(8):e0308934" when Crossref says first author is Kim → R6 forces author attribution from the API response only.
- A list of five hits with no Negative Findings → implies every search succeeded; almost never true. R4 makes this visible.
Refusal cases
If the user says "just give me a quick pointer, no need to verify" or asks for fictional/illustrative references, decline and explain that this skill is for verifiable reviews only. For single-URL summarization, route to url-reader instead.
1---2name: do-literature-review3description: Use this skill when the user asks for a verifiable literature review or peer-reviewed citations for an ADR, design doc, paper, or technical decision, with prompts like "literature review on X", "find papers on X", "survey the literature on X", or "cite peer-reviewed sources for X". Enforce structural verification: every emitted citation needs metadata lookup, full-text retrieval, a supporting quote with locator, byte-for-byte author attribution, Negative Findings, and a self-audit table. Do NOT use it for single-URL summarization, drafting the surrounding ADR, casual citation pointers where verification is explicitly waived, fictional references, or unsourced factual questions.4---56# do-literature-review78Produce literature reviews where every citation is **structurally verified** before it is emitted. The skill exists to make four documented failure modes impossible to commit:9101. **Phantom citations** — referencing paywalled or proprietary documents that were never read.112. **Scope overreach** — citing a real paper for a claim it does not actually support.123. **Author-attribution errors** — wrong first author, wrong year, wrong DOI from sloppy sub-research.134. **Silent omission** — listing only successful hits and hiding the searches that returned nothing.1415Imperative rules ("be careful", "verify everything") do not work — agents self-report compliance falsely. Every rule below is therefore enforced by a **required tool call whose result is pasted verbatim into the output**, or by a **required output field that cannot be filled without the tool call having happened**. If you cannot fill a field, refuse to emit the citation.1617## Process18191. **Restate and decompose** — one paragraph restatement of the question + 3–8 sub-questions as a checklist.202. **Search** — run queries against ≥ 2 of {arXiv, Crossref, Semantic Scholar, Google Scholar (last resort)}. Log every query string. Failed queries flow into Negative Findings.213. **Per-paper verification** — see [verification.md](references/verification.md). Two mandatory tool calls per citation; raw API response pasted into the citation block.224. **Compose prose** — every sourced claim points to a citation block by ID. Synthesis without a citation is marked `[unsupported]` inline, not deleted.235. **Negative Findings** — see [negative_findings.md](references/negative_findings.md). Every failed query and every empty sub-question listed with reason.246. **Self-audit** — see [self_audit.md](references/self_audit.md). Re-check every citation against R1–R6 by re-reading the output, not by self-report.257. **Return** in order: restatement, prose, citation blocks, Negative Findings, Self-Audit Table.2627## Hard rules2829| Rule | Enforces | Reference |30|------|----------|-----------|31| **R1** | Two tool calls per citation: metadata API + full-text retrieval; raw response pasted | [verification.md](references/verification.md) |32| **R2** | Verbatim quote ≥ 25 words with page/section locator, supporting the specific claim | [verification.md](references/verification.md) |33| **R3** | Paywall / no-full-text → metadata-only downgrade, no content claim allowed | [paywall.md](references/paywall.md) |34| **R4** | Negative Findings section is mandatory; zero-failures result is a red flag | [negative_findings.md](references/negative_findings.md) |35| **R5** | Self-Audit Table is mandatory; computed by re-reading the output | [self_audit.md](references/self_audit.md) |36| **R6** | Authors copied byte-for-byte from the API response, not from memory or snippets | [verification.md](references/verification.md) |37| **R7** | Refusal posture: cannot fill a required field → drop the citation, do not guess | — |3839API choices and response shapes are in [apis.md](references/apis.md). Citation, Negative Findings, and Self-Audit templates are in [templates.md](references/templates.md). A worked example is in [examples.md](examples.md).4041## Anti-patterns (have happened, do not repeat)4243- *"Helber et al. defines land-cover classes as ..."* without retrieving Helber et al. → R3 downgrade to metadata-only pointer.44- *"Helber et al. 2017 discusses label reconciliation ..."* when the paper has no such section → R2's verbatim-quote rule catches this.45- *"Kraus et al., PLOS ONE 19(8):e0308934"* when Crossref says first author is Kim → R6 forces author attribution from the API response only.46- A list of five hits with no Negative Findings → implies every search succeeded; almost never true. R4 makes this visible.4748## Refusal cases4950If the user says "just give me a quick pointer, no need to verify" or asks for fictional/illustrative references, **decline** and explain that this skill is for verifiable reviews only. For single-URL summarization, route to `url-reader` instead.