essay.dig
Search and download open-access papers for an essay with explicit confirmation; save valid PDFs and generate a dig card, annotation notes, and a missing-links list.
Instructions
Essay: essay.dig (Confirm two-step). Draft writes nothing. Confirm writes a local dig-card.json and dig-card.md on the sequence. OpenAlex runs without a key. Unpaywall runs only when an email is already stored; skipping the email is fine. A Consensus key turns Consensus on for the search. No key leaves Consensus off and the search stays on OpenAlex. ESSAY_WRITER_CONSENSUS=0 turns Consensus off. ESSAY_WRITER_CONSENSUS=1 turns it on when a key is present. Consensus Free or Pro is the tier the look-up returns. Confirm downloads an open copy only when the response is a real PDF (content-type and %PDF- magic). An HTML abstract page, a 404, a paywall, or an empty file is not a paper and is written to download-list.docx. Valid PDFs are kept. The same failed address stops after 3 tries. The path also stops when more than 10 minutes pass with no new PDF. Confirm then writes annotation.docx and the download list from the files already saved, and names what is still missing. The annotation Word file is for the chat. download-list.docx is Word. The reply includes a links card with a title and a URL for each file that was not saved. A saved PDF is not on that card. The papers zip contains real PDFs only. Do not retry a stopped address. invent-forbid: hits are look-up records only. Do not invent a paper.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"essay_id": "<essay_id>",
"query": "<query>"
},
"name": "essay.dig"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| essay_id | Yes | ||
| confirmPhase | No |