Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ajs7270/zotero-ai-summary --skill summarygit clone --depth 1 https://github.com/ajs7270/zotero-ai-summaryWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ajs7270/zotero-ai-summary/summary)<a href="https://agentmods.dev/skills/ajs7270/zotero-ai-summary/summary"><img src="https://agentmods.dev/badge/skills/ajs7270/zotero-ai-summary/summary/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ajs7270/zotero-ai-summary/summary"><img src="https://agentmods.dev/badge/skills/ajs7270/zotero-ai-summary/summary.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00059 | $0.02778 |
| Opus 5 | $0.00030 | $0.01389 |
| Sonnet 5 | $0.00012 | $0.00556 |
| Haiku 4.5 | $0.00006 | $0.00278 |
Grade A, and why
summary scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 160 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Summary
Compose a concise structured summary of one paper and register it as a child note under the matching Zotero item.
When to invoke
Invoke this skill when the user provides one of the following and asks for a summary:
- A PDF path on disk.
- A paper title or citation key already present in the user's Zotero library.
If the user explicitly asks for a deeper lesson, derivation, or pin-point analysis, call pinpoint-lesson instead.
Invocation schema
Use:
/summary <PDF-path | Zotero-paper-title | citation-key> [language: <language>]
Examples:
/summary /path/to/paper.pdf
/summary "Paper title already in Zotero" language: Korean
/summary @citationKey language: Japanese
Language resolution:
- If
language: <language>is present, use that language for the note body. - Otherwise, if the user's request contains natural-language instructions, use that request language.
- Otherwise, default to English.
Pipeline
- Identify the target Zotero item.
- For a PDF path: verify the file exists, then locate the existing parent item via the zotero-mcp server. If the PDF is not in Zotero yet, prompt the user to add it.
- For a title or citation key: search via zotero-mcp.
- Extract evidence from the PDF.
- Run
scripts/prepare_pdf_artifacts.py <pdf> --out <work-dir> --render-pages. - Use
pdftotextoutput as the primary text source. - Use
images/figure-NNN.pngfor raster figures andpages/page-NNN.pngfor vector figures.
- Run
- Read existing Zotero context: title, abstract, tags, attachments, child notes. Do not duplicate an existing summary unless the user wants a replacement.
- Compose the summary in Markdown following the structure below.
- Run the summary quality check below before registration.
- Register the note via
scripts/zotero_register_note.pyto the local plugin endpointhttp://localhost:23119/aisummary/note.
Note structure
The note is a single Markdown file with these sections, in order. Use plain prose. Do not pad with section headers that have no content.
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 160 lines · 59 tokens per session scan A 77533a1faef1
summary is a skill published in the GitHub repository ajs7270/zotero-ai-summary (19 stars, last pushed 3mo ago), licensed MIT. It adds 59 tokens to every session and 2,778 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
experts
Assemble a panel of experts to assess a problem from multiple professional perspectives, surface agreement and disagreement, and deliver a chaired recommendation with clear tradeoffs. Use when the user wants multi-expert judgment, a second opinion, design critique, option comparison, or a recommendation backed by…
create-plan
A guide for creating repository-aware technical plans: written proposals for implementation, refactoring, migration, or design work based on the actual codebase.
github-create-pr
Create GitHub pull requests from a local branch using a reviewable workflow for branch checks, diff analysis, PR title/body writing, and gh CLI creation. Use when opening a PR, drafting or improving a PR description, preparing a branch for review, or adding reviewers on GitHub.
github-release-notes-writer
Draft or update user-focused GitHub Release Notes from verified tags, commits, pull requests, existing releases, and supplied changelog baselines. Use when preparing prerelease or stable release notes, turning GitHub's generated What's Changed list into a curated narrative, documenting upgrades or breaking changes, or…
google-fonts-curator
Recommend high-taste Google Fonts for websites based on brand tone, page type, and visual direction. Use when the user needs font selection, font pairing, or aesthetic judgment within the Google Fonts ecosystem for landing pages, brand sites, editorial pages, portfolios, or digital products.
programmer-motivator
Give calm, technically grounded encouragement to programmers when the user is stuck on a bug, frustrated by debugging, tired, discouraged, blaming themselves after a mistake, asking for motivation or emotional support while coding, wanting someone to stay with them through a hard problem, celebrating a breakthrough…