modules/home/programs/cli-agents/shared/skills/paper-to-skill/SKILL.md
Converts a research paper (PDF path, uploaded PDF, or URL) into a reusable skill that stores distilled knowledge for future sessions. Use when a user asks to "turn this paper into a skill", "make this PDF reusable", "encode this research", or wants project-specific decisions backed by a specific paper without re-uploading it.
npx skillsauth add not-matthias/dotfiles-nix paper-to-skillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Convert a paper into a reusable knowledge-source skill with a focused SKILL.md and optional references.
If project context is unclear, continue anyway and infer likely trigger contexts from the paper.
Use the most reliable extraction path for the source:
https://arxiv.org/html/<id> when possible.Recommended command (no install required):
# Marker (best default for academic PDFs)
uvx marker_single path/to/paper.pdf --output_dir /tmp/paper_out/
Fallback extraction:
uv run --with pdfplumber python - <<'PY'
import pdfplumber
from pathlib import Path
pdf_path = Path("paper.pdf")
out_path = Path("/tmp/paper.md")
with pdfplumber.open(pdf_path) as pdf:
text = "\n\n".join(page.extract_text() or "" for page in pdf.pages)
out_path.write_text(text)
print(out_path)
PY
For scanned PDFs, use OCR (uvx marker_single --force_ocr).
Extract only what improves future decisions:
Include high-signal, project-relevant knowledge only:
Create:
<paper-slug>/
├── SKILL.md
└── references/
├── full-content.md (optional)
├── figures.md (optional)
└── proofs.md (optional)
Keep SKILL.md compact (<500 lines). Move long details into references/ and link them.
Use this structure:
---
name: <paper-slug>
description: >
Provides <domain knowledge> from <Paper Title> (<Year>).
Use when working on <task A>, <task B>, or <task C>.
Also trigger when user mentions <term 1>, <term 2>, <term 3>.
---
# <Paper Title>
**<Authors> · <Venue> · <Year>** · [<DOI/arXiv>](<link>)
## What this paper contributes
...
## Key concepts
...
## Main findings
...
## How to apply this
...
## Caveats and failure modes
...
## Quick reference
...
Provide:
.agents/skills/<paper-slug>/)..claude/skills/<paper-slug> pointing to .agents/skills/<paper-slug>.Use this setup command:
mkdir -p .agents/skills .claude/skills
ln -sfn ../../.agents/skills/<paper-slug> .claude/skills/<paper-slug>
documentation
Save notes, journal entries, and research to the personal-notes Obsidian vault (personal-vault-v2). Use when the user asks to 'save note', 'save to notes', 'write to personal notes', 'save to daily notes', 'note this down', or wants to persist findings/analysis to their personal vault.
documentation
Use whenever the user asks to address, fix, resolve, review, or respond to pull-request comments or review feedback.
development
Apply Not Matthias's Rust-first personal coding style. Use whenever the user explicitly asks to apply or review their code style, make Rust match their preferences, perform a style pass, or simplify/refactor according to their conventions. Inspect only task-touched code, honor local project conventions first, and make only safe opt-out style edits.
development
Guide for writing ast-grep rules to perform structural code search and analysis. Use when users need to search codebases using Abstract Syntax Tree (AST) patterns, find specific code structures, or perform complex code queries that go beyond simple text search. This skill should be used when users ask to search for code patterns, find specific language constructs, or locate code with particular structural characteristics.