Write publication-ready LaTeX research papers with citation integrity. Use this skill when: - Writing a research manuscript from notes/results/figures - Creating LaTeX documents for Nature, Science, IEEE, ACM, APS, ACS, Elsevier journals - Ensuring citation keys match bibliography entries - Building and packaging papers for submission Key features: - Template-pluggable system (8+ publisher templates) - Citation integrity gate (prevents invented bib keys) - Asset audit (catches missing figures) - Build automation via latexmk - Submission packaging (flattening, zip)
/plugin marketplace add chc273/claude-automation/plugin install chc273-academic-research@chc273/claude-automationThis skill inherits all available tools. When active, it can use any tool Claude has access to.
assets/templates/acm-journal/bst/ACM-Reference-Format.bstassets/templates/acm-journal/latexmkrcassets/templates/acm-journal/manifest.ymlassets/templates/acm-journal/tex/main.tex.templateassets/templates/acm-sigconf/bst/ACM-Reference-Format.bstassets/templates/acm-sigconf/latexmkrcassets/templates/acm-sigconf/manifest.ymlassets/templates/acm-sigconf/tex/main.tex.templateassets/templates/acs-journal/latexmkrcassets/templates/acs-journal/manifest.ymlassets/templates/acs-journal/tex/main.tex.templateassets/templates/aps-prb/latexmkrcassets/templates/aps-prb/manifest.ymlassets/templates/aps-prb/tex/main.tex.templateassets/templates/elsevier-num/bst/elsarticle-num.bstassets/templates/elsevier-num/latexmkrcassets/templates/elsevier-num/manifest.ymlassets/templates/elsevier-num/tex/main.tex.templateassets/templates/ieee-conference/bst/IEEEtran.bstassets/templates/ieee-conference/latexmkrcWrite publication-ready LaTeX research papers with automated citation checking, asset validation, and submission packaging.
This skill guides the complete manuscript workflow:
| Phase | Action | Gate |
|---|---|---|
| A | Plan paper structure | - |
| B | Draft/update LaTeX | - |
| C | Check citations | Citation Integrity Gate |
| D | Check assets | Asset Audit Gate |
| E | Build PDF | - |
| F | Package submission | - |
skills/latex-manuscript/scripts/
├── init_project.py # Initialize project with template
├── index_bib.py # Extract valid citation keys
├── check_citations.py # Validate cite commands
├── check_assets.py # Verify figures/files exist
├── build.py # Compile LaTeX (latexmk preferred)
├── flatten.py # Expand \input/\include
└── package_submission.py # Create submission zip
python skills/latex-manuscript/scripts/init_project.py \
--template springer-nature-sn \
--output ./manuscript
This creates:
paper_project.yml - project configurationmain.tex - from templatereferences.bib - empty bibliographyfigures/ - directory for figuresEdit main.tex following the template structure. Claude will:
references.bibfigures/python skills/latex-manuscript/scripts/build.py --project ./manuscript
| Template ID | Publisher | Class | Source |
|---|---|---|---|
springer-nature-sn | Springer Nature | sn-jnl.cls | CTAN |
ieee-conference | IEEE Conference | IEEEtran.cls | CTAN |
ieee-journal | IEEE Journal | IEEEtran.cls | CTAN |
acm-sigconf | ACM SIGCONF | acmart.cls | CTAN |
acm-journal | ACM Journal | acmart.cls | CTAN |
elsevier-num | Elsevier | elsarticle.cls | CTAN |
aps-prb | APS (Phys Rev) | revtex4-2.cls | CTAN |
acs-journal | ACS Chemistry | achemso.cls | CTAN |
ieee-conference - Two-column format for proceedingsieee-journal - Two-column format for Transactionsacm-sigconf - Most common ACM conference formatacm-journal - For JACM, TODS, etc.elsevier-num - Numerical citation styleaps-prb - Physical Review B (change prb to prl, pra, etc.)acs-journal - For JACS, Nano Letters, etc.Each template in assets/templates/<id>/ contains:
├── manifest.yml # Build rules, requirements
├── cls/ # Document class files (optional if in TeXLive)
├── bst/ # Bibliography style files
├── tex/main.tex.template # Starter template
└── latexmkrc # Build configuration
python skills/latex-manuscript/scripts/init_project.py \
--template ieee-conference \
--output ./my-paper
Or manually edit paper_project.yml:
template_id: ieee-conference
main_tex: main.tex
bib_files: ["references.bib"]
figures_dir: figures
mode: draft # or: submission
Before writing, create or update paperplan.json:
{
"title": "Paper Title",
"sections": [
{"id": "abstract", "claims": ["Main claim 1"]},
{"id": "introduction", "claims": ["Background", "Gap", "Contribution"]},
{"id": "methods", "claims": ["Approach description"]},
{"id": "results", "claims": ["Finding 1", "Finding 2"]},
{"id": "discussion", "claims": ["Implications", "Limitations"]},
{"id": "conclusion", "claims": ["Summary"]}
],
"figures": [
{"id": "fig1", "file": "figures/fig1.png", "caption": "..."}
],
"key_citations": ["smith2021", "jones2022"]
}
Write/update main.tex:
HARD RULE: Never generate \cite{KEY} unless KEY exists in references.bib
Before building, run:
# Index valid keys
python skills/latex-manuscript/scripts/index_bib.py --project ./manuscript
# Check all citations
python skills/latex-manuscript/scripts/check_citations.py --project ./manuscript
If citations fail:
references.bib\cite{TODO:description} for unfound refspython skills/latex-manuscript/scripts/check_assets.py --project ./manuscript
This verifies:
\includegraphics{...} files exist.cls, .bst) are presentpython skills/latex-manuscript/scripts/build.py --project ./manuscript
The build script:
latexmk (handles multi-pass automatically)When ready to submit:
# Set mode to submission
# Edit paper_project.yml: mode: submission
# Flatten to single .tex (if required by journal)
python skills/latex-manuscript/scripts/flatten.py --project ./manuscript
# Create submission package
python skills/latex-manuscript/scripts/package_submission.py --project ./manuscript
Output: build/submission.zip with all required files.
AI can hallucinate citation keys that don't exist. This causes:
Index Phase: index_bib.py extracts all valid keys from .bib files:
{"keys": ["smith2021", "jones2022"], "sources": ["references.bib"]}
Check Phase: check_citations.py parses LaTeX for cite commands:
\cite{}, \citep{}, \citet{}, \autocite{}, etc.\cite{a,b,c}Enforcement:
Only these count as valid:
references.bib (or configured .bib files).bbl file (if pre-generated)When a citation is needed but not yet in bib:
\cite{TODO:smith-deep-learning} % Will fail check - intentional
This makes missing refs explicit and prevents accidental submission.
\includegraphics{path} must resolve.bib file must existbuild/asset_report.md
✓ figures/fig1.png exists
✓ figures/fig2.pdf exists
✗ figures/fig3.png MISSING
✓ sn-jnl.cls exists
✓ references.bib exists
SUMMARY: 1 error, 0 warnings
/Library/TeX/texbinlatexmk automates multi-pass compilation:
latexmk -pdf -interaction=nonstopmode -halt-on-error main.tex
If latexmk unavailable:
pdflatex -interaction=nonstopmode main.tex
bibtex main
pdflatex -interaction=nonstopmode main.tex
pdflatex -interaction=nonstopmode main.tex
Build script checks for:
key undefined" (LaTeX warning)These are surfaced as actionable errors.
template_id: springer-nature-sn
main_tex: main.tex
bib_files:
- references.bib
figures_dir: figures
mode: draft # draft | submission
# Optional overrides
strict_citations: false # fail on missing in draft mode
output_dir: build
my-paper/
├── paper_project.yml # Project config
├── paperplan.json # Paper outline (optional)
├── main.tex # Main document
├── references.bib # Bibliography
├── figures/ # Figure files
│ ├── fig1.png
│ └── fig2.pdf
└── build/ # Generated outputs
├── main.pdf
├── citekeys.json
├── citation_report.json
└── asset_report.md
| File | Content |
|---|---|
references/paperplan_schema.md | Paper plan JSON schema |
references/template_pack_spec.md | Template manifest spec |
references/citation_integrity_spec.md | Citation checking details |
references/asset_audit_spec.md | Asset validation rules |
index_bib.py to refresh key indexcheck_citations.py to find invalid keys\includegraphics{}figures/ directoryInstall via MacTeX's TeX Live Utility or:
sudo tlmgr install latexmk
build/main.log for details# Verify MacTeX installation
which pdflatex # Should show /Library/TeX/texbin/pdflatex
which latexmk # Should show /Library/TeX/texbin/latexmk
No additional Python dependencies required beyond standard library.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.