#636 by GitHub stars
PrathamLearnsToCode/paper2code
Converts an arxiv paper into a minimal, citation-anchored Python implementation. Trigger when user runs /paper2code with an arxiv URL or paper ID, says "implement this paper", or pastes an arxiv link asking for implementation. Flags all ambiguities honestly. Never invents implementation details not
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/paper2code/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
fcffce7a1250 → fcffce7a1250
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → fcffce7a1250
No earlier version was observed for comparison.
Heat
0.8- Star growth, last 7 daysAhead of 6% of tracked repositories
- Star growth, last 24 hoursAhead of 1% of tracked repositories
- Rank movement, last 7 daysAhead of 29% of tracked repositories
- Commits, last 30 daysAhead of 0% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- paper2code
skills/paper2code
How it works
paper2code
When your agent uses it
Converts an arxiv paper into a minimal, citation-anchored Python implementation. Trigger when user runs /paper2code with an arxiv URL or paper ID, says "implement this paper", or pastes an arxiv link asking for implementation. Flags all ambiguities honestly. Never invents implementation details not stated in the paper.
What it loads into context
Frontmatter
75 tokensAlways available to the agent
SKILL.md
1,257 tokensWhen the skill is activated
Reference documents
36,074 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Parse arguments
- Set up working directory
- Install dependencies
- Execute pipeline
- Cleanup
- Final output
- Mode-specific behavior
- Guardrails — always active
- Knowledge base — consult as needed
Scripts executed separately
scaffolds/data_template.pyscaffolds/evaluate_template.pyscaffolds/loss_template.pyscaffolds/model_template.pyscaffolds/train_template.pyscripts/extract_structure.pyscripts/fetch_paper.pyworked/attention_is_all_you_need/notebooks/walkthrough.ipynbworked/attention_is_all_you_need/src/data.pyworked/attention_is_all_you_need/src/evaluate.pyworked/attention_is_all_you_need/src/loss.pyworked/attention_is_all_you_need/src/model.pyworked/attention_is_all_you_need/src/train.pyworked/attention_is_all_you_need/src/utils.pyworked/ddpm/notebooks/walkthrough.ipynbworked/ddpm/src/data.pyworked/ddpm/src/evaluate.pyworked/ddpm/src/loss.pyworked/ddpm/src/model.pyworked/ddpm/src/train.pyworked/ddpm/src/utils.py
Files
SKILL.mdcore5,341 bytesSKILL.mdcore5,341 bytesSKILL.mdcore5,341 bytesSKILL.mdcore5,341 bytesguardrails/badly_written_papers.mddoc9,054 bytesguardrails/hallucination_prevention.mddoc8,309 bytesguardrails/scope_enforcement.mddoc8,064 bytesknowledge/loss_functions.mddoc10,023 bytesknowledge/paper_to_code_mistakes.mddoc10,569 bytesknowledge/training_recipes.mddoc9,304 bytesknowledge/transformer_components.mddoc14,296 bytespipeline/01_paper_acquisition.mddoc7,123 bytespipeline/02_contribution_identification.mddoc8,621 bytespipeline/03_ambiguity_audit.mddoc10,763 bytespipeline/04_code_generation.mddoc11,415 bytespipeline/05_walkthrough_notebook.mddoc6,962 bytesscaffolds/config_template.yamlasset2,690 bytesscaffolds/data_template.pyruns3,263 bytesscaffolds/evaluate_template.pyruns1,736 bytesscaffolds/loss_template.pyruns1,431 bytesscaffolds/model_template.pyruns4,236 bytesscaffolds/readme_template.mddoc1,798 bytesscaffolds/reproduction_notes_template.mddoc3,595 bytesscaffolds/train_template.pyruns5,795 bytesscripts/extract_structure.pyruns11,222 bytesscripts/fetch_paper.pyruns15,812 bytesworked/attention_is_all_you_need/README.mddoc2,662 bytesworked/attention_is_all_you_need/REPRODUCTION_NOTES.mddoc6,015 bytesworked/attention_is_all_you_need/configs/base.yamlasset3,490 bytesworked/attention_is_all_you_need/notebooks/walkthrough.ipynbruns27,573 bytesworked/attention_is_all_you_need/requirements.txtdoc39 bytesworked/attention_is_all_you_need/review.mddoc5,238 bytesworked/attention_is_all_you_need/src/data.pyruns6,089 bytesworked/attention_is_all_you_need/src/evaluate.pyruns2,214 bytesworked/attention_is_all_you_need/src/loss.pyruns2,983 bytesworked/attention_is_all_you_need/src/model.pyruns23,099 bytesworked/attention_is_all_you_need/src/train.pyruns3,449 bytesworked/attention_is_all_you_need/src/utils.pyruns3,125 bytesworked/ddpm/README.mddoc2,845 bytesworked/ddpm/REPRODUCTION_NOTES.mddoc6,241 bytesworked/ddpm/configs/base.yamlasset3,936 bytesworked/ddpm/notebooks/walkthrough.ipynbruns13,987 bytesworked/ddpm/requirements.txtdoc39 bytesworked/ddpm/review.mddoc4,515 bytesworked/ddpm/src/data.pyruns3,246 bytesworked/ddpm/src/evaluate.pyruns8,148 bytesworked/ddpm/src/loss.pyruns1,921 bytesworked/ddpm/src/model.pyruns14,869 bytesworked/ddpm/src/train.pyruns6,634 bytesworked/ddpm/src/utils.pyruns8,171 bytes
Read SKILL.md
# paper2code — Orchestration
You are executing the paper2code skill. This file governs the high-level flow. Each stage dispatches to a detailed reasoning protocol in `pipeline/`. Do NOT skip stages. Do NOT combine stages. Execute them in order.
## Parse arguments
Extract from the user's input:
- `ARXIV_ID`: the arxiv paper ID (e.g., `2106.09685`). Strip any URL prefix.
- `MODE`: one of `minimal` (default), `full`, `educational`.
- `FRAMEWORK`: one of `pytorch` (default), `jax`, `numpy`.
If the user provided a full URL like `https://arxiv.org/abs/2106.09685`, extract the ID `2106.09685`.
If the user provided a versioned ID like `2106.09685v2`, keep the version.
View the complete source on GitHubSkills included
- paper2code
Repository facts
- License
- MIT
- Created
- Apr 3, 2026
- Last pushed
- Apr 3, 2026
- Forks
- 181
- Open issues
- 1
- Project activity
- Slowing
Rank over the last 12 weeks
Now #636 · best #453 · down 107 in 30 days
- #627 on Oct 31
- #628 on Nov 1
- #630 on Nov 2
- #633 on Nov 3
- #637 from Nov 4 to Nov 5
- #636 since Nov 6
48 earlier periods
- #433 on Aug 2
- #450 on Aug 6
- #440 on Aug 9
- #456 on Aug 10
- #453 on Aug 11
- #451 on Aug 12
- #457 on Aug 13
- #452 on Aug 14
- #461 on Aug 20
- #465 on Aug 23
- #464 on Aug 24
- #464 on Aug 26
- #476 on Aug 27
- #472 on Aug 28
- #453 on Aug 30
- #473 on Aug 31
- #479 on Sep 1
- #482 on Sep 2
- #474 on Sep 4
- #484 on Sep 6
- #486 on Sep 7
- #500 on Sep 8
- #495 on Sep 10
- #491 on Sep 12
- #505 on Sep 17
- #505 on Sep 20
- #494 on Sep 26
- #514 on Sep 27
- #529 on Sep 29
- #502 on Oct 3
- #512 on Oct 5
- #529 on Oct 6
- #547 on Oct 8
- #544 on Oct 9
- #533 on Oct 11
- #543 on Oct 12
- #549 on Oct 14
- #548 on Oct 15
- #551 on Oct 16
- #563 on Oct 19
- #571 on Oct 20
- #578 on Oct 21
- #564 on Oct 22
- #549 on Oct 24
- #609 on Oct 25
- #618 on Oct 28
- #620 on Oct 29
- #625 on Oct 30
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 3, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 3 notes
skills/paper2code/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/paper2code/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/paper2code/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 90 network referencesin 32 files: paper2code/scripts/fetch_paper.py:8 paper2code/pipeline/01_paper_acquisition.md:33 paper2code/worked/attention_is_all_you_need/src/data.py:4 and 29 more
- No hidden or obfuscated text
- No instruction overrides
- 21 executable scriptsin 21 files: paper2code/scaffolds/data_template.py:1 paper2code/scaffolds/evaluate_template.py:1 paper2code/scaffolds/loss_template.py:1 and 18 more
- No access to secrets
- No requests to vote in Hot
Show all 111 signals by file
skills/paper2code/SKILL.md
- Network accessline 17
If the user provided a full URL like `https://arxiv.org/abs/2106.09685`, extract the ID `2106.09685`.
skills/paper2code/pipeline/01_paper_acquisition.md
- Network accessline 33
Run `scripts/fetch_paper.py`. The script handles: 1. Downloading from `https://arxiv.org/pdf/{id}.pdf` - Network accessline 34
1. Downloading from `https://arxiv.org/pdf/{id}.pdf` - Network accessline 35
2. Extraction via `pymupdf4llm` (preferred — preserves math notation as LaTeX) 3. Fallback to `pdfplumber` if pymupdf4llm fails 4. Fallback to HTML from `https://ar5iv.labs.arxiv.org/html/{id}` if PDF extraction produces garbled output - Network accessline 37
4. Fallback to HTML from `https://ar5iv.labs.arxiv.org/html/{id}` if PDF extraction produces garbled output - Network accessline 123
### If PDF download fails (403, 404, network error): 1. Try the ar5iv HTML version: `https://ar5iv.labs.arxiv.org/html/{id}` - Network accessline 124
1. Try the ar5iv HTML version: `https://ar5iv.labs.arxiv.org/html/{id}` 2. If that also fails, try the abstract page: `https://arxiv.org/abs/{id}` to verify the paper exists 3. If the paper exists but can't be fetched, ask the user to downl - Network accessline 125
2. If that also fails, try the abstract page: `https://arxiv.org/abs/{id}` to verify the paper exists
skills/paper2code/scaffolds/config_template.yaml
skills/paper2code/scaffolds/data_template.py
skills/paper2code/scaffolds/evaluate_template.py
skills/paper2code/scaffolds/loss_template.py
skills/paper2code/scaffolds/model_template.py
skills/paper2code/scaffolds/readme_template.md
skills/paper2code/scaffolds/reproduction_notes_template.md
- Network accessline 11
- **Authors:** {{AUTHORS}} - **Year:** {{YEAR}} - **ArXiv:** https://arxiv.org/abs/{{ARXIV_ID}} - Network accessline 12
- **Year:** {{YEAR}} - **ArXiv:** https://arxiv.org/abs/{{ARXIV_ID}} - **Official code:** {{OFFICIAL_CODE_URL or "None found"}} - Network accessline 13
- **ArXiv:** https://arxiv.org/abs/{{ARXIV_ID}}
skills/paper2code/scaffolds/train_template.py
skills/paper2code/scripts/extract_structure.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/paper2code/scripts/fetch_paper.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 8
Examples: python fetch_paper.py 2106.09685 ./output/ python fetch_paper.py https://arxiv.org/abs/2106.09685 ./output/ - Network accessline 9
python fetch_paper.py 2106.09685 ./output/ python fetch_paper.py https://arxiv.org/abs/2106.09685 ./output/ python fetch_paper.py 2106.09685v2 ./output/ - Network accessline 10
python fetch_paper.py https://arxiv.org/abs/2106.09685 ./output/ - Network accessline 29
Handles: https://arxiv.org/abs/2106.09685 - Network accessline 30
https://arxiv.org/abs/2106.09685 - Network accessline 31
https://arxiv.org/pdf/2106.09685.pdf - Network accessline 32
http://arxiv.org/abs/2106.09685v2 - Network accessline 40
for prefix in [ "https://arxiv.org/abs/", - Network accessline 41
"https://arxiv.org/abs/", - Network accessline 42
"http://arxiv.org/abs/", - Network accessline 43
"https://arxiv.org/pdf/", - Network accessline 44
"http://arxiv.org/pdf/", - Network accessline 67
base_id = re.sub(r"v\d+$", "", arxiv_id) api_url = f"http://export.arxiv.org/api/query?id_list={base_id}" - Network accessline 68
api_url = f"http://export.arxiv.org/api/query?id_list={base_id}" - Network accessline 70
try: resp = requests.get(api_url, timeout=30) - Network accessline 71
resp = requests.get(api_url, timeout=30) - Network accessline 124
pdf_url = f"https://arxiv.org/pdf/{arxiv_id}.pdf" - Network accessline 127
try: resp = requests.get(pdf_url, timeout=60, stream=True) - Network accessline 128
resp = requests.get(pdf_url, timeout=60, stream=True) - Network accessline 190
base_id = re.sub(r"v\d+$", "", arxiv_id) html_url = f"https://ar5iv.labs.arxiv.org/html/{base_id}" - Network accessline 191
html_url = f"https://ar5iv.labs.arxiv.org/html/{base_id}" - Network accessline 194
try: resp = requests.get(html_url, timeout=60) - Network accessline 195
resp = requests.get(html_url, timeout=60) - Network accessline 317
base_id = re.sub(r"v\d+$", "", arxiv_id) abs_url = f"https://arxiv.org/abs/{base_id}" - Network accessline 318
abs_url = f"https://arxiv.org/abs/{base_id}" try: resp = requests.get(abs_url, timeout=30) - Network accessline 319
try: resp = requests.get(abs_url, timeout=30) resp.raise_for_status() - Network accessline 320
resp = requests.get(abs_url, timeout=30) - Network accessline 398
f.write(f"# {metadata['title']}\n\n") f.write(f"**Authors:** {', '.join(metadata['authors'])}\n\n") f.write(f"**ArXiv:** https://arxiv.org/abs/{arxiv_id}\n\n") - Network accessline 399
f.write(f"**Authors:** {', '.join(metadata['authors'])}\n\n") f.write(f"**ArXiv:** https://arxiv.org/abs/{arxiv_id}\n\n") f.write("---\n\n") - Network accessline 400
f.write(f"**ArXiv:** https://arxiv.org/abs/{arxiv_id}\n\n")
skills/paper2code/worked/attention_is_all_you_need/README.md
skills/paper2code/worked/attention_is_all_you_need/REPRODUCTION_NOTES.md
- Network accessline 11
- **Authors:** Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin - **Year:** 2017 - **ArXiv:** https://arxiv.org/abs/1706.03762 - Network accessline 12
- **Year:** 2017 - **ArXiv:** https://arxiv.org/abs/1706.03762 - **Official code:** https://github.com/tensorflow/tensor2tensor - Network accessline 13
- **ArXiv:** https://arxiv.org/abs/1706.03762 - Network accessline 14
- **Official code:** https://github.com/tensorflow/tensor2tensor
skills/paper2code/worked/attention_is_all_you_need/configs/base.yaml
skills/paper2code/worked/attention_is_all_you_need/notebooks/walkthrough.ipynb
- Executable scriptline 1
Executable file - Network accessline 8
"# Attention Is All You Need — Walkthrough\n", "\n", "**Paper:** [Attention Is All You Need](https://arxiv.org/abs/1706.03762) (Vaswani et al., 2017)\n", - Network accessline 9
"\n", "**Paper:** [Attention Is All You Need](https://arxiv.org/abs/1706.03762) (Vaswani et al., 2017)\n", "\n", - Network accessline 10
"**Paper:** [Attention Is All You Need](https://arxiv.org/abs/1706.03762) (Vaswani et al., 2017)\n",
skills/paper2code/worked/attention_is_all_you_need/review.md
skills/paper2code/worked/attention_is_all_you_need/src/data.py
- Executable scriptline 1
Executable file - Network accessline 4
Paper: https://arxiv.org/abs/1706.03762 - Network accessline 13
NOTE: This file provides the Dataset class skeleton. You must: 1. Download WMT 2014 EN-DE from http://www.statmt.org/wmt14/translation-task.html - Network accessline 14
1. Download WMT 2014 EN-DE from http://www.statmt.org/wmt14/translation-task.html - Network accessline 43
How to obtain: 1. Download WMT 2014 EN-DE data from http://www.statmt.org/wmt14/ - Network accessline 44
1. Download WMT 2014 EN-DE data from http://www.statmt.org/wmt14/
skills/paper2code/worked/attention_is_all_you_need/src/evaluate.py
skills/paper2code/worked/attention_is_all_you_need/src/loss.py
skills/paper2code/worked/attention_is_all_you_need/src/model.py
skills/paper2code/worked/attention_is_all_you_need/src/train.py
skills/paper2code/worked/attention_is_all_you_need/src/utils.py
skills/paper2code/worked/ddpm/README.md
skills/paper2code/worked/ddpm/REPRODUCTION_NOTES.md
- Network accessline 11
- **Authors:** Jonathan Ho, Ajay Jain, Pieter Abbeel - **Year:** 2020 - **ArXiv:** https://arxiv.org/abs/2006.11239 - Network accessline 12
- **Year:** 2020 - **ArXiv:** https://arxiv.org/abs/2006.11239 - **Official code:** https://github.com/hojonathanho/diffusion - Network accessline 13
- **ArXiv:** https://arxiv.org/abs/2006.11239 - Network accessline 14
- **Official code:** https://github.com/hojonathanho/diffusion
skills/paper2code/worked/ddpm/configs/base.yaml
skills/paper2code/worked/ddpm/notebooks/walkthrough.ipynb
- Executable scriptline 1
Executable file - Network accessline 8
"# Denoising Diffusion Probabilistic Models — Code Walkthrough\n", "\n", "**Paper**: Ho, Jain, Abbeel (2020) — [arXiv:2006.11239](https://arxiv.org/abs/2006.11239)\n", - Network accessline 9
"\n", "**Paper**: Ho, Jain, Abbeel (2020) — [arXiv:2006.11239](https://arxiv.org/abs/2006.11239)\n", "\n", - Network accessline 10
"**Paper**: Ho, Jain, Abbeel (2020) — [arXiv:2006.11239](https://arxiv.org/abs/2006.11239)\n",
skills/paper2code/worked/ddpm/src/data.py
skills/paper2code/worked/ddpm/src/evaluate.py
skills/paper2code/worked/ddpm/src/loss.py
skills/paper2code/worked/ddpm/src/model.py
skills/paper2code/worked/ddpm/src/train.py
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
No combined signals at this commit.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md skills/paper2code/SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/paper2code/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/paper2code/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/paper2code/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/paper2code/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/paper2code/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/prathamlearnstocode-paper2code/)