paper-garden
Skill1 starsChanged 7 months agoMITView on GitHub
Ingest one arXiv paper or local PDF into a Markdown knowledge garden with LLM-generated wiki and user-confirmed tags.
In this repositoryOne other file it gives its agents.
- paper-readSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. About 0 are common, 7 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use this skill when the user wants to ingest a paper into their knowledge garden.
- Distinctive: line 14
If the repo is not already cloned, instruct the user to:
- Distinctive: line 21
All commands below assume the working directory is the repo root.
- Very specific: line 25
Before running the workflow, read skills/paper-garden/paper_garden.toml.
- Very specific: line 27
If the file is missing, empty, or contains only comments (no garden_dir or language keys), you MUST configure it before proceeding:
- Distinctive: line 29
Ask the user two questions:
- Distinctive: line 32
After the user answers, write the config:
- Very specific: line 71
Ask the user: "What year was this paper published?
- Very specific: line 76
Read the extracted markdown file (the extracted_markdown path from Step 1).
- Very specific: line 78
Write <paper_dir>/wiki.md with these sections:
- Very specific: line 102
Write in the language specified by language from Step 1.
- Very specific: line 109
Check <garden_dir>/tags/ for existing tag files — reuse existing tags when the paper fits
- Distinctive: line 112
Wait for the user to confirm, add, remove, or rename tags, and approve the summary.
- Distinctive: line 118
Run with the confirmed tags and summary:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Paper Garden
Use this skill when the user wants to ingest a paper into their knowledge garden.
Prerequisites
This skill requires running from the paper-garden repository root. All commands use uv run which resolves dependencies from pyproject.toml.
If the repo is not already cloned, instruct the user to:
git clone https://github.com/<owner>/paper-garden.git
cd paper-gardenAll commands below assume the working directory is the repo root.
First-Time Setup
Before running the workflow, read skills/paper-garden/paper_garden.toml.
If the file is missing, empty, or contains only comments (no garden_dir or language keys), you MUST configure it before proceeding:
- Ask the user two questions:
- Garden directory: Where should papers be stored? Default:
./paper_garden - Language: What language for generated wiki content? Default:
en
- Garden directory: Where should papers be stored? Default:
- After the user answers, write the config:
uv run python skills/paper-garden/scripts/configure.py --garden-dir "<user_choice>" --language "<user_choice>"- Confirm the config was written by reading the file again.
Do NOT proceed with ingest until valid configuration exists.
Ingest Workflow
Step 1: Download and Extract
Run:
uv run python skills/paper-garden/scripts/download.py "<input>" --config skills/paper-garden/paper_garden.tomlWhere <input> is an arXiv abs/html/pdf URL, arXiv paper ID, or local PDF path.
The script outputs JSON. Check the duplicate field first:
If "duplicate": true:
The paper already exists in the garden. Tell the user:
- The paper title
- The existing entry from index.md
- The path to the existing paper directory and wiki
- Stop here. Do NOT proceed to Step 2.
If "duplicate": false:
Save all fields — you need them for later steps:
paper_dir,paper_slug,title,arxiv_id,source_kind,source_refyear,needs_yearextracted_markdown— path to the extracted markdown filegarden_dir,language
If "needs_year": true (local PDF, or year not derivable from arXiv ID):
Ask the user: "What year was this paper published? (YYYY)"
Save the answer and pass it to finalize.py as --year.
Step 2: Generate Wiki
- Read the extracted markdown file (the
extracted_markdownpath from Step 1). - Analyze the paper content thoroughly.
- Write
<paper_dir>/wiki.mdwith these sections:
# <Paper Title>
## Summary
3-5 bullet points of key contributions.
## Problem
What problem does the paper address? Why does it matter?
## Method
Core approach, technique, or architecture.
## Results
Main findings, metrics, and comparisons.
## Limitations
Stated or apparent limitations and caveats.
## Terms
Key terminology defined or used in the paper.Write in the language specified by language from Step 1. Use the Write tool to create the file.
Step 3: Suggest Tags, Summary, and Confirm
- Based on the paper content, suggest 3-7 tags. Guidelines:
- Lowercase, hyphenated (e.g.,
retrieval-augmented-generation,transformer) - Mix of topic tags (e.g.,
large-language-model,computer-vision) and method tags (e.g.,fine-tuning,distillation) - Check
<garden_dir>/tags/for existing tag files — reuse existing tags when the paper fits
- Lowercase, hyphenated (e.g.,
- Write a one-line summary of the paper (max 100 characters), in the configured language. This summary appears in index.md and tag files alongside the paper link. The summary is immutable once written — it will never be modified after ingest. Take extra care to make it accurate and capture the paper's core contribution.
- Present suggested tags and summary to the user.
- Wait for the user to confirm, add, remove, or rename tags, and approve the summary.
Do NOT proceed until the user confirms the final tag list and summary.
Step 4: Finalize
Run with the confirmed tags and summary:
uv run python skills/paper-garden/scripts/finalize.py \
--config skills/paper-garden/paper_garden.toml \
--paper-dir "<paper_dir>" \
--title "<title>" \
--paper-slug "<paper_slug>" \
--tags "<tag1,tag2,tag3>" \
--summary "<one-line summary>" \
--year "<YYYY>" \
--source-ref "<source_ref>" \
--source-kind "<source_kind>" \
--arxiv-id "<arxiv_id>"- Omit
--arxiv-idif the source is a local PDF. --yearis required when source is local PDF. For arXiv sources, it can be omitted and will be derived from the arXiv ID.
The script prints the assigned paper ID (pg-<year>-<hex5>).
Step 5: Report
Tell the user:
- Paper directory path
- Wiki file path
- Assigned paper ID (from
finalize.pyoutput) - Final confirmed tags
- Which index and tag files were updated
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

