| name | lit-summarize |
| description | Summarize research papers (PDF or arXiv) into structured markdown (problem / method / results / contribution / limitations) and index each summary into the AgentDB `papers/` namespace for later semantic search. Use when the user drops PDFs into `inputs/papers/` or pastes an arXiv URL. |
lit-summarize
STATUS: active. research_assistant.lit.extract_pdf_text / fetch_arxiv / parse_metadata are implemented; Claude generates the structured summary in-skill.
When to use
- User mentions a PDF path under
inputs/papers/.
- User pastes an arXiv URL or DOI.
- User says "summarize this paper", "what's the key idea of X", "intake these papers".
Workflow
- Resolve sources — collect every PDF in
inputs/papers/ not yet summarized,
plus any arXiv URL / DOI the user named.
- Extract text — call
research_assistant.lit.extract_pdf_text (PyMuPDF).
- Pull canonical BibTeX (when input is a DOI or the PDF has a DOI in metadata) —
call
research_assistant.lit.publisher_bibtex.fetch_bibtex_from_publisher(doi).
It tries CrossRef → doi.org content negotiation → CloakBrowser stealth fallback
(last tier needs pip install -e ".[crawl]"). Stash the returned BibTeX
string in the AgentDB record's metadata.bibtex field (step 6) so /cite
can resolve \cite{slug} from it without a second network round-trip. If no
DOI is known, skip — /cite re-fetches on demand.
- Summarize — Claude produces a structured markdown with sections:
Problem, Method, Results, Contribution, Limitations, Related work pointers.
- Persist — write to
outputs/summaries/<slug>.md.
- Index — store the summary into AgentDB:
- tool:
mcp__claude-flow__memory_store
- namespace:
papers
- key: paper slug
- value: the summary markdown (vector-indexed automatically).
- metadata:
{"doi": <doi-or-null>, "arxiv_id": <id-or-null>, "bibtex": <entry-string-or-null>} — when step 3 produced a BibTeX entry,
put it in metadata.bibtex so /cite reads it back instead of re-fetching.
Outputs
outputs/summaries/<slug>.md (one file per paper).
- AgentDB entry in namespace
papers/ keyed by slug.
Memory keys touched
papers/<slug> — write
papers/* — read (to avoid re-summarizing what's already indexed)
Open enhancements
All previously-tracked items deferred indefinitely. Re-open here when
slug-format / GROBID / structured-schema decisions are needed.