Technical Documentation: Orchestra-Research/AI-Research-SKILLs
โน๏ธ Provenance: Multi-Tier Ingestion ยท CodeWiki Reference
Overview (`README.md`)
AI Research `Skills` Library
The most comprehensive open-source skills library enabling AI agents to autonomously conduct AI research โ from idea to paper
View All 23 Categories
Table of Contents
- Our Mission
- Path Towards AI Research Agent
- Available AI Research Engineering Skills
- Demos
- Skill Structure
- Roadmap
- Repository Structure
- Use Cases
- Contributors
- Citation
- Community
Our Mission
We enable AI agents to autonomously conduct AI research โ from literature survey and idea generation through experiment execution to paper writing. The library provides both the research orchestration layer (autoresearch, ideation, paper writing) and the engineering skills (training, evaluation, deployment) needed at each stage.
Path Towards AI Research Agent
Modern AI research requires mastering dozens of specialized tools and frameworks.
AI Researchers spend more time debugging infrastructure than testing hypotheses โ slowing the pace of scientific discovery.
We provide a comprehensive skills library that enables AI agents to autonomously conduct the full research lifecycle โ from brainstorming ideas to writing the paper.
- Autonomous Research - The autoresearch skill orchestrates the entire research workflow using a two-loop architecture, routing to domain skills as needed
- Specialized Expertise - Each domain skill provides deep, production-ready knowledge of a specific framework (Megatron-LM, vLLM, TRL, etc.)
- End-to-End Coverage - 98 skills spanning the full AI research lifecycle, from ideation and literature survey to experiments and paper writing
- Research-Grade Quality - Documentation sourced from official repos, real GitHub issues, and battle-tested production workflows
Available AI Research Engineering Skills
Quality over quantity: Each skill provides comprehensive, expert-level guidance with real code examples, troubleshooting guides, and production-ready workflows.
๐ฆ Quick Install (Recommended)
For humans โ interactive installer with one command:
npx @orchestra-research/ai-research-skillsFor AI agents โ point your agent to the welcome doc and it handles the rest:
Read https://www.orchestra-research.com/ai-research-skills/welcome.md and follow the instructions to install and use AI Research Skills.This installs all 98 skills, loads the autoresearch orchestration layer, and starts autonomous research.
What the installer does
- Auto-detects your installed coding agents (Claude Code, Hermes Agent, OpenCode, Qoder, Cursor, Gemini CLI, etc.)
- Installs skills to
~/.orchestra/skills/with symlinks to each agent (falls back to copy on Windows) - Offers everything, quickstart bundle, by category, or individual skills
- Updates installed skills with latest versions
- Uninstalls all or selected skills
CLI Commands
# Interactive installer (recommended)
npx @orchestra-research/ai-research-skills
# Direct commands
npx @orchestra-research/ai-research-skills list # View installed skills
npx @orchestra-research/ai-research-skills update # Update installed skillsClaude Code Marketplace (Alternative)
Install skill categories directly using the Claude Code CLI:
# Add the marketplace
/plugin marketplace add orchestra-research/AI-research-SKILLs
# Install by category (23 categories available)
/plugin install fine-tuning@ai-research-skills # Axolotl, LLaMA-Factory, PEFT, Unsloth
/plugin install post-training@ai-research-skills # TRL, GRPO, OpenRLHF, SimPO, verl, slime, miles, torchforge
/plugin install inference-serving@ai-research-skills # vLLM, TensorRT-LLM, llama.cpp, SGLang
/plugin install distributed-training@ai-research-skills
/plugin install optimization@ai-research-skillsAll 23 Categories (98 Skills)
| Category | Skills | Included |
|---|---|---|
| Autoresearch | 1 | Autonomous research orchestration โ central layer that manages the full lifecycle and routes to all other skills |
| Ideation | 2 | Research Brainstorming, Creative Thinking |
| ML Paper Writing | 2 | ML Paper Writing (LaTeX templates, citation verification), Academic Plotting |
| Model Architecture | 5 | LitGPT, Mamba, NanoGPT, RWKV, TorchTitan |
| Tokenization | 2 | HuggingFace Tokenizers, SentencePiece |
| Fine-Tuning | 4 | Axolotl, LLaMA-Factory, PEFT, Unsloth |
| Mech Interp | 4 | TransformerLens, SAELens, pyvene, nnsight |
| Data Processing | 2 | NeMo Curator, Ray Data |
| Post-Training | 8 | TRL, GRPO, OpenRLHF, SimPO, verl, slime, miles, torchforge |
| Safety | 4 | Constitutional AI, LlamaGuard, NeMo Guardrails, Prompt Guard |
| Distributed | 6 | DeepSpeed, FSDP, Accelerate, Megatron-Core, Lightning, Ray Train |
| Infrastructure | 3 | Modal, Lambda Labs, SkyPilot |
| Optimization | 6 | Flash Attention, bitsandbytes, GPTQ, AWQ, HQQ, GGUF |
| Evaluation | 3 | lm-eval-harness, BigCode, NeMo Evaluator |
| Inference | 4 | vLLM, TensorRT-LLM, llama.cpp, SGLang |
| MLOps | 3 | W&B, MLflow, TensorBoard |
| Agents | 4 | LangChain, LlamaIndex, CrewAI, AutoGPT |
| RAG | 5 | Chroma, FAISS, Pinecone, Qdrant, Sentence Transformers |
| Prompt Eng | 4 | DSPy, Instructor, Guidance, Outlines |
| Observability | 2 | LangSmith, Phoenix |
| Multimodal | 7 | CLIP, Whisper, LLaVA, BLIP-2, SAM, Stable Diffusion, AudioCraft |
| Emerging | 6 | MoE, Model Merging, Long Context, Speculative Decoding, Distillation, Pruning |
| Agent-Native Research Artifact | 3 | ARA Compiler, Research Manager, Rigor Reviewer |
View All 98 Skills in Details
๐ฌ Autoresearch (1 skill) โ Central Orchestration Layer
- Autoresearch - Autonomous research orchestration using a two-loop architecture (inner optimization + outer synthesis). Manages the full lifecycle from literature survey to paper writing, routing to all domain-specific skills. Supports Claude Code /loop and OpenClaw heartbeat for continuous operation (390 lines + 3 refs)
๐๏ธ Model Architecture (5 skills)
- LitGPT - Lightning AI's 20+ clean LLM implementations with production training recipes (462 lines + 4 refs)
- Mamba - State-space models with O(n) complexity, 5ร faster than Transformers (253 lines + 3 refs)
- RWKV - RNN+Transformer hybrid, infinite context, Linux Foundation project (253 lines + 3 refs)
- NanoGPT - Educational GPT in ~300 lines by Karpathy (283 lines + 3 refs)
- TorchTitan - PyTorch-native distributed training for Llama 3.1 with 4D parallelism
๐ค Tokenization (2 skills)
- HuggingFace Tokenizers - Rust-based, <20s/GB, BPE/WordPiece/Unigram algorithms (486 lines + 4 refs)
- SentencePiece - Language-independent, 50k sentences/sec, used by T5/ALBERT (228 lines + 2 refs)
๐ฏ Fine-Tuning (4 skills)
- Axolotl - YAML-based fine-tuning with 100+ models (156 lines + 4 refs)
- LLaMA-Factory - WebUI no-code fine-tuning (78 lines + 5 refs)
- Unsloth - 2x faster QLoRA fine-tuning (75 lines + 4 refs)
- PEFT - Parameter-efficient fine-tuning with LoRA, QLoRA, DoRA, 25+ methods (431 lines + 2 refs)
๐ฌ Mechanistic Interpretability (4 skills)
- TransformerLens - Neel Nanda's library for mech interp with HookPoints, activation caching (346 lines + 3 refs)
- SAELens - Sparse Autoencoder training and analysis for feature discovery (386 lines + 3 refs)
- pyvene - Stanford's causal intervention library with declarative configs (473 lines + 3 refs)
- nnsight - Remote interpretability via NDIF, run experiments on 70B+ models (436 lines + 3 refs)
๐ Data Processing (2 skills)
- Ray Data - Distributed ML data processing, streaming execution, GPU support (318 lines + 2 refs)
- NeMo Curator - GPU-accelerated data curation, 16ร faster deduplication (375 lines + 2 refs)
๐ Post-Training (8 skills)
- TRL Fine-Tuning - Transformer Reinforcement Learning (447 lines + 4 refs)
- GRPO-RL-Training (TRL) - Group Relative Policy Optimization with TRL (569 lines, gold standard)
- OpenRLHF - Full RLHF pipeline with Ray + vLLM (241 lines + 4 refs)
- SimPO - Simple Preference Optimization, no reference model needed (211 lines + 3 refs)
- verl - ByteDance's HybridFlow RL framework, FSDP/Megatron + vLLM/SGLang backends (389 lines + 2 refs)
- slime - THUDM's Megatron+SGLang framework powering GLM-4.x models (464 lines + 2 refs)
- miles - Enterprise fork of slime with FP8, INT4, speculative RL for MoE training (315 lines + 2 refs)
- torchforge - Meta's PyTorch-native RL with Monarch+TorchTitan+vLLM (380 lines + 2 refs)
๐ก๏ธ Safety & Alignment (4 skills)
- Constitutional AI - AI-driven self-improvement via principles (282 lines)
- LlamaGuard - Safety classifier for LLM inputs/outputs (329 lines)
- NeMo Guardrails - Programmable guardrails with Colang (289 lines)
- Prompt Guard - Meta's 86M prompt injection & jailbreak detector, 99%+ TPR, <2ms GPU (313 lines)
โก Distributed Training (6 skills)
- Megatron-Core - NVIDIA's framework for training 2B-462B param models with 47% MFU on H100 (359 lines + 4 refs)
- DeepSpeed - Microsoft's ZeRO optimization (137 lines + 9 refs)
- PyTorch FSDP2 - Fully Sharded Data Parallel v2 with
fully_shardand DTensor (231 lines + 12 refs) - Accelerate - HuggingFace's 4-line distributed training API (324 lines + 3 refs)
- PyTorch Lightning - High-level training framework with Trainer class (339 lines + 3 refs)
- Ray Train - Multi-node orchestration and hyperparameter tuning (399 lines + 1 ref)
๐ Optimization (6 skills)
- Flash Attention - 2-4x faster attention with memory efficiency (359 lines + 2 refs)
- bitsandbytes - 8-bit/4-bit quantization for 50-75% memory reduction (403 lines + 3 refs)
- GPTQ - 4-bit post-training quantization, 4ร memory reduction, <2% accuracy loss (443 lines + 3 refs)
- AWQ - Activation-aware weight quantization, 4-bit with minimal accuracy loss (310 lines + 2 refs)
- HQQ - Half-Quadratic Quantization, no calibration data needed, multi-backend (370 lines + 2 refs)
- GGUF - llama.cpp quantization format, K-quant methods, CPU/Metal inference (380 lines + 2 refs)
๐ Evaluation (3 skills)
- lm-evaluation-harness - EleutherAI's standard for benchmarking LLMs across 60+ tasks (482 lines + 4 refs)
- BigCode Evaluation Harness - Code model benchmarking with HumanEval, MBPP, MultiPL-E, pass@k metrics (406 lines + 3 refs)
- NeMo Evaluator - NVIDIA's enterprise platform for 100+ benchmarks across 18+ harnesses with multi-backend execution (454 lines + 4 refs)
โ๏ธ Infrastructure (3 skills)
- Modal - Serverless GPU cloud with Python-native API, T4-H200 on-demand (342 lines + 2 refs)
- SkyPilot - Multi-cloud orchestration across 20+ providers with spot recovery (390 lines + 2 refs)
- Lambda Labs - Reserved/on-demand GPU cloud with H100/A100, persistent filesystems (390 lines + 2 refs)
๐ฅ Inference & Serving (4 skills)
- vLLM - High-throughput LLM serving with PagedAttention (356 lines + 4 refs, production-ready)
- TensorRT-LLM - NVIDIA's fastest inference, 24k tok/s, FP8/INT4 quantization (180 lines + 3 refs)
- llama.cpp - CPU/Apple Silicon inference, GGUF quantization (251 lines + 3 refs)
- SGLang - Structured generation with RadixAttention, 5-10ร faster for agents (435 lines + 3 refs)
๐ค Agents (4 skills)
- LangChain - Most popular agent framework, 500+ integrations, ReAct pattern (658 lines + 3 refs, production-ready)
- LlamaIndex - Data framework for LLM apps, 300+ connectors, RAG-focused (535 lines + 3 refs)
- CrewAI - Multi-agent orchestration, role-based collaboration, autonomous workflows (498 lines + 3 refs)
- AutoGPT - Autonomous AI agent platform, visual workflow builder, continuous execution (400 lines + 2 refs)
๐ RAG (5 skills)
- Chroma - Open-source embedding database, local/cloud, 24k stars (385 lines + 1 ref)
- FAISS - Facebook's similarity search, billion-scale, GPU acceleration (295 lines)
- Sentence Transformers - 5000+ embedding models, multilingual, 15k stars (370 lines)
- Pinecone - Managed vector database, auto-scaling, <100ms latency (410 lines)
- Qdrant - High-performance vector search, Rust-powered, hybrid search with filtering (493 lines + 2 refs)
๐จ Multimodal (7 skills)
- CLIP - OpenAI's vision-language model, zero-shot classification, 25k stars (320 lines)
- Whisper - Robust speech recognition, 99 languages, 73k stars (395 lines)
- LLaVA - Vision-language assistant, image chat, GPT-4V level (360 lines)
- Stable Diffusion - Text-to-image generation via HuggingFace Diffusers, SDXL, ControlNet (380 lines + 2 refs)
- Segment Anything - Meta's SAM for zero-shot image segmentation with points/boxes (500 lines + 2 refs)
- BLIP-2 - Vision-language pretraining with Q-Former, image captioning, VQA (500 lines + 2 refs)
- AudioCraft - Meta's MusicGen/AudioGen for text-to-music and text-to-sound (470 lines + 2 refs)
๐ฏ Prompt Engineering (4 skills)
- DSPy - Declarative prompt programming with optimizers, Stanford NLP, 22k stars (438 lines + 3 refs)
- Instructor - Structured LLM outputs with Pydantic validation, 15k stars (726 lines + 3 refs)
- Guidance - Constrained generation with regex/grammars, Microsoft Research, 18k stars (485 lines + 3 refs)
- Outlines - Structured text with FSM, zero-overhead, 8k stars (601 lines + 3 refs)
๐ MLOps (3 skills)
- Weights & Biases - Experiment tracking, sweeps, artifacts, model registry (427 lines + 3 refs)
- MLflow - Model registry, tracking, deployment, autologging (514 lines + 3 refs)
- TensorBoard - Visualization, profiling, embeddings, scalars/images (538 lines + 3 refs)
๐๏ธ Observability (2 skills)
- LangSmith - LLM observability, tracing, evaluation, monitoring for AI apps (422 lines + 2 refs)
- Phoenix - Open-source AI observability with OpenTelemetry tracing and LLM evaluation (380 lines + 2 refs)
๐ฌ Emerging Techniques (6 skills)
- MoE Training - Mixture of Experts training with DeepSpeed, Mixtral 8x7B, 5ร cost reduction (515 lines + 3 refs)
- Model Merging - Combine models with TIES, DARE, SLERP using mergekit (528 lines + 3 refs)
- Long Context - Extend context windows with RoPE, YaRN, ALiBi, 32k-128k tokens (624 lines + 3 refs)
- Speculative Decoding - 1.5-3.6ร faster inference with Medusa, Lookahead (379 lines)
- Knowledge Distillation - Compress models 70Bโ7B with MiniLLM, temperature scaling (424 lines)
- Model Pruning - 50% sparsity with Wanda, SparseGPT, <1% accuracy loss (417 lines)
๐ ML Paper Writing (2 skills)
- ML Paper Writing - Write publication-ready papers for NeurIPS, ICML, ICLR, ACL, AAAI, COLM with LaTeX templates, citation verification, and writing best practices (532 lines + 5 refs)
- Academic Plotting - Generate publication-quality figures for ML papers: architecture diagrams via Gemini AI and data-driven charts via matplotlib/seaborn with venue-specific styling (479 lines + 3 refs)
๐ก Ideation (2 skills)
- Research Brainstorming - Structured ideation frameworks for discovering high-impact research directions with 10 complementary lenses (384 lines)
- Creative Thinking - Cognitive science frameworks (bisociation, structure-mapping, constraint manipulation) for genuinely novel research ideas (366 lines)
๐งฌ Agent-Native Research Artifact (3 skills)
- ARA Compiler - Compiles any research input (PDF papers, repos, experiment logs, raw notes) into a complete Agent-Native Research Artifact with claims, exploration graph, evidence, and code stubs (245 lines + 3 refs)
- ARA Research Manager - Post-task research recorder that runs at session end to extract decisions, experiments, dead ends, and pivots from conversation history into the
ara/directory with user-vs-AI provenance tags (324 lines + 3 refs) - ARA Rigor Reviewer - ARA Seal Level 2 semantic epistemic review scoring six dimensions of research rigor (evidence relevance, falsifiability, scope, coherence, exploration integrity, methodology) with severity-ranked findings (322 lines + 1 ref)
Demos
All 98 skills in this repo are automatically synced to Orchestra Research, where you can add them to your projects with one click and use them with AI research agents.
See skills in action โ demos/
We maintain a curated collection of demo repositories showing how to use skills for real AI research tasks:
| Demo | Skills Used | What It Does |
|---|---|---|
| Norm Heterogeneity โ LoRA Brittleness | Autoresearch, ML Paper Writing, Ideation | Agent autonomously discovered norm heterogeneity predicts fine-tuning difficulty (r=-0.99), pivoting from a null result on ETF overlaps |
| RL Algorithm Brain Scan | Autoresearch, GRPO, TRL, SAELens, TransformerLens, ML Paper Writing | Agent found DPO is a rank-1 perturbation (95.6% recovery from one SVD direction) while online RL is distributed and structure-preserving |
| NeMo Eval: GPQA Benchmark | NeMo Evaluator | Compare Llama 8B/70B/405B on graduate-level science questions |
| LoRA Without Regret Reproduction | GRPO, TRL | Reproduce SFT + GRPO RL experiments via prompting |
| Layer-Wise Quantization Experiment | llama.cpp, GGUF | Investigate optimal layer precision allocationโearly layers at Q8 achieve 1.9ร compression with 1.3% perplexity loss |
| Cross-Lingual Alignment Analysis | FAISS | Quantify how well multilingual embeddings align semantic concepts across 8 languages using FAISS similarity search |
| Scientific Plotting Demo | Academic Plotting | Generate publication-quality figures for the Andes QoE-aware LLM serving paper โ Gemini AI architecture diagrams + matplotlib data charts (CDF, multi-panel grids, bar charts) |
Featured Demos: Two papers produced entirely by AI agents using the autoresearch skill. The Norm Heterogeneity paper demonstrates autonomous research pivoting โ the agent refuted its own hypothesis and discovered a stronger finding. The RL Brain Scan paper demonstrates multi-skill orchestration โ the agent trained RL models, analyzed internals with interpretability tools, and synthesized the insight that "DPO is rank-1 alignment." Both papers written end-to-end by the agent.
Skill Structure
Each skill follows a battle-tested format for maximum usefulness:
skill-name/
โโโ SKILL.md # Quick reference (50-150 lines)
โ โโโ Metadata (name, description, version)
โ โโโ When to use this skill
โ โโโ Quick patterns & examples
โ โโโ Links to references
โ
โโโ references/ # Deep documentation (300KB+)
โ โโโ README.md # From GitHub/official docs
โ โโโ api.md # API reference
โ โโโ tutorials.md # Step-by-step guides
โ โโโ issues.md # Real GitHub issues & solutions
โ โโโ releases.md # Version history & breaking changes
โ โโโ file_structure.md # Codebase navigation
โ
โโโ scripts/ # Helper scripts (optional)
โโโ assets/ # Templates & examples (optional)Quality Standards
- 300KB+ documentation from official sources
- Real GitHub issues & solutions (when available)
- Code examples with language detection
- Version history & breaking changes
- Links to official docs
Roadmap
The library spans 98 comprehensive skills across the full AI research lifecycle. See our detailed roadmap for the complete development plan.
View Detailed Statistics
| Metric | Current | Target |
|---|---|---|
| Skills | 87 (high-quality, standardized YAML) | 80 โ |
| Avg Lines/Skill | 420 lines (focused + progressive disclosure) | 200-600 lines |
| Documentation | ~130,000 lines total (SKILL.md + references) | 100,000+ lines |
| Gold Standard Skills | 65 with comprehensive references | 50+ |
| Contributors | 1 | 100+ |
| Coverage | Architecture, Tokenization, Fine-Tuning, Mechanistic Interpretability, Data Processing, Post-Training, Safety, Distributed, Optimization, Evaluation, Infrastructure, Inference, Agents, RAG, Multimodal, Prompt Engineering, MLOps, Observability, ML Paper Writing, Ideation, Autoresearch | Full Lifecycle โ |
Recent Progress: npm package @orchestra-research/ai-research-skills for one-command installation across all coding agents
Philosophy: Quality > Quantity. Following Anthropic official best practices - each skill provides 200-500 lines of focused, actionable guidance with progressive disclosure.
Repository Structure
/* Detailed source-code truncated for AI context efficiency. */Use Cases
For Researchers
"I need to fine-tune Llama 3 with custom data"
โ 03-fine-tuning/axolotl/ - YAML configs, 100+ model support
For ML Engineers
"How do I optimize inference latency?"
โ 12-inference-serving/vllm/ - PagedAttention, batching
For Students
"I want to learn how transformers work"
โ 01-model-architecture/litgpt/ - Clean implementations
For Teams
"We need to scale training to 100 GPUs"
โ 08-distributed-training/deepspeed/ - ZeRO stages, 3D parallelism
License
MIT License - See LICENSE for details.
Note: Individual skills may reference libraries with different licenses. Please check each project's license before use.
Citation
If you use AI Research Skills in your work or find it helpful for a publication, we'd appreciate a citation:
BibTeX
@software{ai_research_skills,
title = {AI Research Skills Library},
author = {{Orchestra Research}},
year = {2025},
url = {https://github.com/orchestra-research/AI-research-SKILLs},
note = {Open-source skills library enabling AI agents to autonomously conduct AI research}
}APA
Orchestra Research. (2025). AI Research Skills Library [Computer software]. https://github.com/orchestra-research/AI-research-SKILLs
Chicago
Orchestra Research. "AI Research Skills Library." GitHub, 2025. https://github.com/orchestra-research/AI-research-SKILLs.
IEEE
Orchestra Research, "AI Research Skills Library," 2025. [Online]. Available: https://github.com/orchestra-research/AI-research-SKILLs
Tip: You can also click "Cite this repository" in the GitHub sidebar for auto-formatted citations.
Acknowledgments
Built with:
- Claude Code - AI pair programming
- Skill Seeker - Automated doc scraping
- Open Source AI Community - For amazing tools and docs
Special thanks to:
- EleutherAI, HuggingFace, NVIDIA, Lightning AI, Meta AI, Anthropic
- All researchers who maintain excellent documentation
Contributors
Thanks to all the people who have contributed to the AI Research Skills Library:
We welcome contributions from the AI research community! See CONTRIBUTING.md for detailed guidelines on:
- Adding new skills
- Improving existing skills
- Quality standards and best practices
- Submission process
Recent Updates
June 2026 - v1.7.1 ๐งน Inventory Consistency, Drift Guard & Security Hardening
- ๐ Repo-wide inventory reconciled to 98 skills / 23 categories โ corrected stale counts that had drifted apart across files: CLAUDE.md (said 90), CONTRIBUTING.md (said 86/22), the README sync line (said 87), WELCOME.md and the npm package README (said 86/22). Also fixed wrong per-category listings (TorchTitan, SwanLab, A-Evolve, ML Training Recipes, Cosmos Policy/OpenPI/OpenVLA-OFT, the paper-writing skills)
- ๐ก๏ธ New CI drift guard โ
scripts/check-inventory.sh+check-inventory.ymlfail CI whenever the documented skill/category counts diverge from the actualSKILL.mdcount on disk, so the inventory can't silently drift again - ๐ฆ Marketplace sync hardening โ
sync-skills.ymlnow prunes build artifacts (node_modules/__pycache__/*.pyc/.ipynb_checkpoints) before zipping and fails loudly above 190 files instead of hitting the marketplace's 200-file rejection - ๐ Security โ pinned CLI dependencies (
chalk/inquirer/ora) to exact, patched versions with a regenerated lockfile ([email protected]clears thetmppath-traversal advisory;npm auditnow reports 0 vulnerabilities) - ๐งน Full open PR/issue triage pass against scope + contribution standards
April 2026 - v1.6.0 ๐งฌ Agent-Native Research Artifact (ARA) โ 23rd Category, 98 Skills
- ๐งฌ NEW CATEGORY:
22-agent-native-research-artifact/(the 23rd category) โ three skills that turn research outputs into a falsifiable, agent-traversable artifact:- ๐ ๏ธ ARA Compiler โ compiles any input (PDF papers, GitHub repos, experiment logs, raw notes) into a structured ARA with cognitive layer (claims, concepts, heuristics), physical layer (configs, code stubs), exploration graph (research DAG), and grounded evidence
- ๐ ARA Research Manager โ post-task epilogue that scans conversation history at session end and writes decisions, experiments, dead ends, claims, heuristics, and pivots into the
ara/directory withuser/ai-suggested/ai-executed/user-revisedprovenance tags - ๐ ARA Rigor Reviewer โ Seal Level 2 semantic epistemic review scoring six dimensions of research rigor (evidence relevance, falsifiability, scope calibration, argument coherence, exploration integrity, methodological rigor) and emitting a severity-ranked report with a Strong Accept-to-Reject recommendation
- ๐ Sourced from the Agent-Native-Research-Artifact-Init reference repo, restructured to AI-research-SKILLs standards (kebab-case names, third-person descriptions, Title-Case tags, one-level-deep references)
- ๐งฉ Plugin entry
agent-native-research-artifactadded to.claude-plugin/marketplace.json; CLI category registered as22-agent-native-research-artifactwith three individual skill entries in the npm installer - ๐ Auto-syncs to Orchestra marketplace via
sync-skills.ymlon push; npm package republished as@orchestra-research/[email protected]viapublish-npm.ymlon version bump - ๐ 98 total skills across 23 categories โ full lifecycle from idea โ paper โ falsifiable, auditable artifact
March 2026 - v1.4.0 ๐ฌ Autoresearch & 86 Skills โ Full Research Lifecycle
- ๐ฌ NEW SKILL: Autoresearch โ autonomous research orchestration using a two-loop architecture (inner optimization loop + outer synthesis loop)
- ๐ง Manages the full research lifecycle: literature survey โ ideation โ experiments โ synthesis โ paper writing
- ๐ Routes to all 86 domain skills automatically โ agents don't need to know which skill to use
- โฐ Mandatory
/loop(Claude Code) and cron job (OpenClaw) for continuous autonomous operation - ๐ Generates research presentations (HTML/PDF) with optimization trajectory plots for human review
- ๐ Findings.md as persistent project memory across sessions with "Lessons and Constraints" tracking
- ๐๏ธ Structured workspace: research-state.yaml, findings.md, research-log.md, literature/, experiments/, src/, data/, to_human/
- ๐ Two demo papers produced by autoresearch: Norm Heterogeneity โ LoRA Brittleness and RL Algorithm Brain Scan
- ๐ WELCOME.md for cold-start agent bootstrap โ one URL to go from zero to autonomous research
- ๐ฆ npm v1.4.x with Windows symlink fallback, all 22 categories installable
- ๐ค Supported agents: Claude Code, Hermes Agent, OpenCode, OpenClaw, Qoder, Cursor, Codex, Gemini CLI, Qwen Code
- ๐ 87 total skills across 22 categories โ complete research lifecycle coverage
February 2026 - v0.15.0 ๐ก๏ธ Prompt Guard & 83 Skills
- ๐ก๏ธ NEW SKILL: Prompt Guard - Meta's 86M prompt injection & jailbreak detector
- โก 99%+ TPR, <1% FPR, <2ms GPU latency, multilingual (8 languages)
- ๐ 3 workflows: user input filtering, third-party data filtering, batch RAG processing
- ๐ 83 total skills across 20 categories
January 2026 - v0.14.0 ๐ฆ npm Package & 82 Skills
- ๐ฆ NEW:
npx @orchestra-research/ai-research-skills- One-command installation for all coding agents - ๐ค Supported agents: Claude Code, OpenCode, Cursor, Codex, Gemini CLI, Qwen Code
- โจ Interactive installer with category/individual skill selection
- ๐ Update installed skills, selective uninstall
- ๐ 82 total skills (5 new post-training skills: verl, slime, miles, torchforge + TorchTitan)
- ๐๏ธ Megatron-Core moved to Distributed Training category
January 2026 - v0.13.0 ๐ ML Paper Writing & Demos Gallery
- ๐ NEW CATEGORY: ML Paper Writing (20th category, 77th skill)
- ๐ฏ Write publication-ready papers for NeurIPS, ICML, ICLR, ACL, AAAI, COLM
- ๐ Writing philosophy from top researchers (Neel Nanda, Farquhar, Gopen & Swan, Lipton, Perez)
- ๐ฌ Citation verification workflow - never hallucinate references
- ๐ LaTeX templates for 6 major conferences
- ๐ช NEW: Curated demos gallery (
demos/) showcasing skills in action - ๐ Demo repos: NeMo Evaluator benchmark, LoRA Without Regret reproduction
- ๐ 936-line comprehensive SKILL.md with 4 workflows
January 2026 - v0.12.0 ๐ NeMo Evaluator SDK
- ๐ NEW SKILL: NeMo Evaluator SDK for enterprise LLM benchmarking
- ๐ง NVIDIA's evaluation platform with 100+ benchmarks from 18+ harnesses (MMLU, HumanEval, GSM8K, safety, VLM)
- โก Multi-backend execution: local Docker, Slurm HPC, Lepton cloud
- ๐ฆ Container-first architecture for reproducible evaluation
- ๐ 454 lines SKILL.md + 4 comprehensive reference files (~48KB documentation)
December 2025 - v0.11.0 ๐ฌ Mechanistic Interpretability
- ๐ฌ NEW CATEGORY: Mechanistic Interpretability (4 skills)
- ๐ TransformerLens skill: Neel Nanda's library for mech interp with HookPoints, activation caching, circuit analysis
- ๐ง SAELens skill: Sparse Autoencoder training and analysis for feature discovery, monosemanticity research
- โก pyvene skill: Stanford's causal intervention library with declarative configs, DAS, activation patching
- ๐ nnsight skill: Remote interpretability via NDIF, run experiments on 70B+ models without local GPUs
- ๐ ~6,500 new lines of documentation across 16 files
- 76 total skills (filling the missing 04 category slot)
November 25, 2025 - v0.10.0 ๐ 70 Skills Complete!
- ๐ ROADMAP COMPLETE: Reached 70-skill milestone!
- ๐ Added 4 skills: Lambda Labs, Segment Anything (SAM), BLIP-2, AudioCraft
- โ๏ธ Lambda Labs skill: Reserved/on-demand GPU cloud with H100/A100, persistent filesystems, 1-Click Clusters
- ๐ผ๏ธ SAM skill: Meta's Segment Anything for zero-shot image segmentation with points/boxes/masks
- ๐๏ธ BLIP-2 skill: Vision-language pretraining with Q-Former, image captioning, VQA
- ๐ต AudioCraft skill: Meta's MusicGen/AudioGen for text-to-music and text-to-sound generation
- ๐ ~10,000 new lines of documentation across 12 files
- 70 total skills (100% roadmap complete!)
November 25, 2025 - v0.9.0
- ๐ Added 2 infrastructure skills: Modal, SkyPilot
- โ๏ธ Modal skill: Serverless GPU cloud with Python-native API, T4-H200 on-demand, auto-scaling
- ๐ SkyPilot skill: Multi-cloud orchestration across 20+ providers with spot recovery
- โจ New Infrastructure category (2 skills - serverless GPU and multi-cloud orchestration)
- ๐ ~2,500 new lines of documentation across 6 files
- 66 total skills (94% towards 70-skill target)
November 25, 2025 - v0.8.0
- ๐ Added 5 high-priority skills: HQQ, GGUF, Phoenix, AutoGPT, Stable Diffusion
- โก HQQ skill: Half-Quadratic Quantization without calibration data, multi-backend support
- ๐ฆ GGUF skill: llama.cpp quantization format, K-quant methods, CPU/Metal inference
- ๐๏ธ Phoenix skill: Open-source AI observability with OpenTelemetry tracing and LLM evaluation
- ๐ค AutoGPT skill: Autonomous AI agent platform with visual workflow builder
- ๐จ Stable Diffusion skill: Text-to-image generation via Diffusers, SDXL, ControlNet, LoRA
- ๐ ~9,000 new lines of documentation across 15 files
- 64 total skills (91% towards 70-skill target)
November 25, 2025 - v0.7.0
- ๐ Added 5 high-priority skills: PEFT, CrewAI, Qdrant, AWQ, LangSmith
- โจ New Observability category with LangSmith for LLM tracing and evaluation
- ๐ฏ PEFT skill: Parameter-efficient fine-tuning with LoRA, QLoRA, DoRA, 25+ methods
- ๐ค CrewAI skill: Multi-agent orchestration with role-based collaboration
- ๐ Qdrant skill: High-performance Rust vector search with hybrid filtering
- โก AWQ skill: Activation-aware 4-bit quantization with minimal accuracy loss
- ๐ ~8,000 new lines of documentation across 15 files
- 59 total skills (84% towards 70-skill target)
November 15, 2025 - v0.6.0
- ๐ Added 3 comprehensive MLOps skills: Weights & Biases, MLflow, TensorBoard
- โจ New MLOps category (3 skills - experiment tracking, model registry, visualization)
- ๐ ~10,000 new lines of documentation across 13 files
- ๐ง Comprehensive coverage: experiment tracking, hyperparameter sweeps, model registry, profiling, embeddings visualization
- 54 total skills (77% towards 70-skill target)
November 12, 2025 - v0.5.0
- ๐ฏ Added 4 comprehensive prompt engineering skills: DSPy, Instructor, Guidance, Outlines
- โจ New Prompt Engineering category (4 skills - DSPy, Instructor, Guidance, Outlines)
- ๐ ~10,000 new lines of documentation across 16 files
- ๐ง Comprehensive coverage: declarative programming, structured outputs, constrained generation, FSM-based generation
- 47 total skills (67% towards 70-skill target)
November 9, 2025 - v0.4.0
- ๐ค Added 11 comprehensive skills: LangChain, LlamaIndex, Chroma, FAISS, Sentence Transformers, Pinecone, CLIP, Whisper, LLaVA
- โจ New Agents category (2 skills - LangChain, LlamaIndex)
- ๐ New RAG category (4 skills - Chroma, FAISS, Sentence Transformers, Pinecone)
- ๐จ New Multimodal category (3 skills - CLIP, Whisper, LLaVA)
- ๐ ~15,000 new lines of documentation
- 43 total skills (61% towards 70-skill target)
November 8, 2025 - v0.3.0
- ๐ Added 8 comprehensive skills: TensorRT-LLM, llama.cpp, SGLang, GPTQ, HuggingFace Tokenizers, SentencePiece, Ray Data, NeMo Curator
- โก Completed Inference & Serving category (4/4 skills)
- ๐ค New Tokenization category (2 skills)
- ๐ New Data Processing category (2 skills)
- ๐ 9,617 new lines of documentation across 30 files
- 32 total skills (45% towards 70-skill target)
November 6, 2025 - v0.2.0
- Added 10 skills from GitHub (Megatron-Core, Lightning, Ray Train, etc.)
- Improved skill structure with comprehensive references
- Created strategic roadmap to 70 skills
- Added contribution guidelines
November 3, 2025 - v0.1.0
- ๐ Initial release with 5 fine-tuning skills
Community
Join our community to stay updated, ask questions, and connect with other AI researchers:
- SkillEvolve Meta-Skill - Connect your agent to the collective intelligence of the community. Captures techniques discovered during sessions and shares them back as curated skills.
- Slack Community - Chat with the team and other users
- Twitter/X - Follow for updates and announcements
- LinkedIn - Connect professionally
Star History
Overview (`demos/README.md`)
AI Research Skills - Demo Gallery
Curated collection of demo repositories showcasing skills in action
Each demo is a standalone repository demonstrating how to use specific skills from this library to accomplish real AI research tasks. Demos include complete code, results, analysis, and documentation.
Available Demos
1. NeMo Evaluator: GPQA Diamond Benchmark
Repository: zechenzhangAGI/Nemo-Eval-Skill-Demo
Skills Used: NeMo Evaluator
What It Does:
Compares Llama models (8B, 70B, 405B) on the GPQA Diamond benchmarkโ198 graduate-level science questions. Demonstrates end-to-end evaluation workflow using NVIDIA NeMo Evaluator.
Key Results:
| Model | Accuracy | Notes |
|---|---|---|
| Llama-3.1-8B-Instruct | 27.3% | 20.7% extraction failures |
| Llama-3.3-70B-Instruct | 48.0% | Clean extraction |
| Llama-3.1-405B-Instruct | 53.0% | Best performance |
What You'll Learn:
- Setting up NeMo Evaluator with NVIDIA Build API
- Writing evaluation configs for different models
- Analyzing benchmark results across model scales
- Creating visualizations (accuracy plots, Venn diagrams, failure taxonomy)
Repository Contents:
โโโ configs/ # YAML configs for each model
โโโ results/ # Raw evaluation outputs
โโโ analysis/ # Analysis scripts and visualizations
โ โโโ model_accuracy.png
โ โโโ failure_taxonomy_plot.png
โ โโโ venn_diagrams.png
โโโ README.md # Full documentation2. Reproducing "LoRA Without Regret" with AI Agents
Repository: Featured on Orchestra Research Blog
Skills Used: GRPO RL Training, TRL Fine-Tuning
What It Does:
Reproduces Thinking Machines Lab's "LoRA Without Regret" paper findings entirely through prompting an AI agent. The agent autonomously:
- Writes training code for both SFT and GRPO reinforcement learning
- Provisions H100 GPUs and runs experiments overnight
- Performs LoRA rank ablation studies (rank 1 through 256)
- Generates publication-ready analysis and visualizations
Why It's Impressive:
A researcher simply described the paper they wanted to reproduce, and the AI agent handled everythingโfrom understanding the methodology to executing multi-day GPU experiments to analyzing results. No manual coding required.
What You'll Learn:
- How to prompt AI agents for autonomous research reproduction
- End-to-end SFT and GRPO training pipelines
- LoRA vs full fine-tuning experimental design
- Automated analysis and reporting
Resources:
- Blog Post - Full walkthrough
- Video Demo - See the agent in action
3. Layer-Wise Quantization Experiment
Repository: AmberLJC/llama-quantization-experiment
What It Does:
Investigates optimal layer precision allocation for quantized LLMs. Demonstrates that early layers at Q8 achieve 1.9ร compression with only 1.3% perplexity lossโshowing not all layers are created equal when it comes to quantization.
What You'll Learn:
- Layer-wise quantization strategies for LLMs
- Measuring perplexity impact of different precision levels per layer
- Using llama.cpp and GGUF for quantization experiments
- Identifying which layers are most sensitive to reduced precision
4. Cross-Lingual Alignment Analysis
Repository: AmberLJC/faiss-demo
Skills Used: FAISS
What It Does:
Quantifies how well multilingual embeddings align semantic concepts across 8 languages using FAISS similarity search. Reveals the structure of cross-lingual representations and where alignment breaks down.
What You'll Learn:
- Building and querying FAISS indexes for multilingual embeddings
- Measuring cross-lingual semantic alignment quality
- Analyzing embedding space structure across languages
- Using similarity search to evaluate multilingual models
5. Autoresearch: Embedding Norm Heterogeneity Drives LoRA Brittleness
Paper: autoresearch-norm-heterogeneity/
Skills Used: Autoresearch, ML Paper Writing, Research Ideation
What It Does:
An AI agent ran the full autoresearch workflow autonomously. Starting from a hypothesis about ETF crystallization, the agent discovered a null result โ ETF overlaps do NOT predict fine-tuning difficulty โ then pivoted to identify embedding norm heterogeneity as the actual causal predictor (r=-0.99 at 1.4B scale). The agent wrote the paper end-to-end.
Why It's Impressive:
The research pivot was autonomous. The agent refuted its own starting hypothesis, identified a better predictor, validated it causally (equalizing norms improves fine-tunability by 79%), and wrote a paper with a stronger finding than the original plan.
6. Autoresearch: The RL Algorithm Brain Scan
Paper: autoresearch-rl-brain-scan/
Skills Used: Autoresearch, GRPO RL Training, TRL, SAELens, TransformerLens, ML Paper Writing
What It Does:
An AI agent systematically compared what RLOO, GRPO, and DPO do to model internals using SVD analysis of weight deltas and SAE feature overlap. Key discovery: DPO is a rank-1 perturbation (one SVD direction recovers 95.6% of its behavioral effect), while online RL methods produce distributed, structure-preserving changes.
Why It's Impressive:
The agent orchestrated multiple domain skills (RL training, mechanistic interpretability, paper writing) across the full research lifecycle. The insight that "DPO is rank-1 alignment" is a conceptual contribution that emerged from the outer synthesis loop โ not just metric optimization.
7. Scientific Plotting: Publication-Quality Figures
Demo: scientific-plotting-demo/
Skills Used: Academic Plotting
What It Does:
Generates all key figures for the Andes QoE-aware LLM serving paper using both workflows from the academic-plotting skill:
- Workflow 1 (Gemini AI): System architecture diagram using
gemini-3-pro-image-previewwith 6-section prompt structure, Style B "Modern Minimal", and Nord palette โ 3 non-deterministic attempts with best-of-3 selection - Workflow 2 (matplotlib): Five data-driven figures โ QoE definition illustration, 3-panel CDF comparison, 4x3 multi-panel burst intensity grid, summary bar charts โ all with publication rcParams, colorblind-safe palette, and PDF+PNG export
Key Results:
| Metric | Result |
|---|---|
| QoE improvement over vLLM | 4.7x |
| GPU resource savings | 61% |
| Gemini text accuracy | 100% (all labels spelled correctly) |
| Figures generated | 6 (1 AI diagram + 5 data charts) |
What You'll Learn:
- Crafting 6-section Gemini prompts for architecture diagrams
- Multi-attempt generation with evaluation rubric
- Publication-quality matplotlib figures with venue-specific styling
- Colorblind-safe palettes, multi-panel layouts, and dual PDF/PNG export
Repository Contents:
scientific-plotting-demo/
โโโ README.md # Full demo documentation with all figures
โโโ figures/
โโโ gen_fig_andes_architecture_gemini.py # Gemini AI diagram script
โโโ gen_fig_andes_workflow.py # matplotlib architecture alternative
โโโ gen_fig_experiment_results.py # Data charts (CDF, grid, bars, QoE)
โโโ fig_andes_architecture*.png # Gemini outputs (best + 3 attempts)
โโโ fig_cdf_comparison.{pdf,png} # 3-panel CDF
โโโ fig_burst_intensity.{pdf,png} # 4x3 multi-panel grid
โโโ fig_qoe_definition.{pdf,png} # QoE metric illustration
โโโ fig_summary_improvements.{pdf,png} # Summary bar chartsComing Soon
ML Paper Writing: From Repo to Publication
Skills Used: ML Paper Writing
What It Will Do:
Transform a research repository with experimental results into a publication-ready paper for top ML conferences (NeurIPS, ICML, ICLR).
Status: In development
How Demos Are Organized
Each demo repository follows a consistent structure:
demo-name/
โโโ README.md # Overview, results summary, how to run
โโโ configs/ # Configuration files
โโโ results/ # Raw outputs and data
โโโ analysis/ # Scripts and visualizations
โโโ .env.example # Required environment variables
โโโ requirements.txt # Python dependencies (if applicable)Design Principles:
- Self-contained: Clone and run without external dependencies (except API keys)
- Reproducible: Clear instructions to replicate results
- Educational: Explains the "why" not just the "how"
- Real results: Actual outputs, not mock data
Contributing a Demo
Want to showcase a skill? We welcome demo contributions!
Requirements:
- Uses one or more skills from this library
- Produces meaningful, reproducible results
- Includes clear documentation
- Has visual outputs (plots, tables, reports)
To contribute:
- Create your demo repository
- Follow the structure above
- Open an issue or PR to add it to this index
Quick Links
Overview (`06-post-training/grpo-rl-training/README.md`)
GRPO/RL Training Skill
Expert-level guidance for Group Relative Policy Optimization with TRL
๐ Skill Structure
grpo-rl-training/
โโโ SKILL.md # Main skill documentation (READ THIS FIRST)
โโโ README.md # This file
โโโ templates/
โ โโโ basic_grpo_training.py # Production-ready training template
โโโ examples/
โโโ reward_functions_library.py # 20+ reward function examples๐ Quick Start
- Read SKILL.md - Comprehensive guide with all concepts and patterns
- Copy
templates/basic_grpo_training.py- Start with working code - Browse
examples/reward_functions_library.py- Pick reward functions for your task - Modify for your use case - Adapt dataset, rewards, and config
๐ก What's Inside
SKILL.md (Main Documentation)
- Core GRPO concepts and algorithm fundamentals
- Complete implementation workflow (dataset โ rewards โ training โ deployment)
- 10+ reward function examples with code
- Hyperparameter tuning guide
- Training insights (loss behavior, metrics, debugging)
- Troubleshooting guide
- Production best practices
Templates
- basic_grpo_training.py: Minimal, production-ready training script
- Uses Qwen 2.5 1.5B Instruct
- 3 reward functions (format + correctness)
- LoRA for efficient training
- Fully documented and ready to run
Examples
- reward_functions_library.py: 20+ battle-tested reward functions
- Correctness rewards (exact match, fuzzy match, numeric, code execution)
- Format rewards (XML, JSON, strict/soft)
- Length rewards (ideal length, min/max)
- Style rewards (reasoning quality, citations, repetition penalty)
- Combined rewards (multi-objective optimization)
- Preset collections for common tasks
๐ Usage for Agents
When this skill is loaded in your agent's context:
- Always read SKILL.md first before implementing
- Start simple - Use length-based reward to validate setup
- Build incrementally - Add one reward function at a time
- Reference examples - Copy patterns from reward_functions_library.py
- Monitor training - Watch reward metrics (not loss!)
๐ฏ Common Use Cases
| Task Type | Recommended Rewards | Template |
|---|---|---|
| Math reasoning | MATH_REASONING_REWARDS preset |
basic_grpo_training.py |
| Code generation | CODE_GENERATION_REWARDS preset |
Modify dataset in template |
| Summarization | SUMMARIZATION_REWARDS preset |
Adjust prompts + rewards |
| Q&A | QA_REWARDS preset |
Use fuzzy match + citations |
โ ๏ธ Critical Reminders
- Loss goes UP during training - This is normal (it's KL divergence)
- Use 3-5 reward functions - Single rewards often fail
- Test rewards before training - Debug each function independently
- Monitor reward_std - Should stay > 0.1 (avoid mode collapse)
- Start with num_generations=4-8 - Scale up if GPU allows
๐ External Resources
๐ Version
v1.0.0 - Initial release (January 2025)
๐จโ๐ป Maintained By
Orchestra Research
For questions or improvements, see https://orchestra.com
License: MIT
Last Updated: January 2025
Overview (`demos/autoresearch-norm-heterogeneity/README.md`)
Autoresearch Demo: Embedding Norm Heterogeneity Drives LoRA Fine-Tuning Brittleness
Paper: norm-heterogeneity-lora-brittleness.pdf
Skills Used: Autoresearch, ML Paper Writing, Research Ideation
What Happened
An AI agent ran the full autoresearch workflow autonomously โ from literature survey through experiments to paper writing. Starting from the hypothesis that ETF crystallization drives LoRA fine-tuning brittleness in overtrained models, the agent:
- Surveyed literature connecting two recent papers: NeurIPS 2025 Best Paper Runner-Up on superposition/ETF structure and ICML 2025 on catastrophic overtraining
- Ran inner loop experiments across Pythia-410M and Pythia-1.4B checkpoints, computing ETF overlap metrics and norm statistics at each checkpoint, then applying LoRA fine-tuning
- Discovered a null result โ ETF overlap geometry does NOT predict fine-tuning difficulty (r=0.14), refuting the starting hypothesis
- Pivoted โ identified embedding norm heterogeneity (coefficient of variation) as the actual causal predictor (r=-0.84 at 410M, r=-0.99 at 1.4B)
- Deepened with causal experiments โ equalizing norms before LoRA increases fine-tunability by up to 79%
- Wrote the paper using the ml-paper-writing skill
Key Findings
- ETF overlap metrics show no correlation with LoRA fine-tuning difficulty โ a clear negative result
- Norm CV of LM head rows strongly predicts deconfounded fine-tunability (r=-0.99 at 1.4B)
- Equalizing norms before LoRA increases relative fine-tunability by up to 79%
- The effect is rank-independent โ increasing LoRA rank does not mitigate it
- Norms encode semantic specificity, creating an impedance mismatch with LoRA's uniform low-rank updates
Why This Demo Matters
This demonstrates the autoresearch two-loop architecture working as designed:
- Inner loop ran constrained experiments (checkpoint analysis, LoRA fine-tuning, metric computation)
- Outer loop synthesized a null result into a pivot, leading to a stronger finding than the original hypothesis
- The agent autonomously went from "ETF predicts brittleness" to "actually no, norm heterogeneity does" โ a genuine research pivot that produced a more interesting paper
Overview (`demos/autoresearch-rl-brain-scan/README.md`)
Autoresearch Demo: The RL Algorithm Brain Scan
Paper: rl_algorithm_brain_scan.pdf
Skills Used: Autoresearch, ML Paper Writing, GRPO RL Training, TRL, SAELens, TransformerLens
What Happened
An AI agent autonomously investigated what RL alignment algorithms actually do to model internals โ a question no prior work had systematically addressed. The agent:
- Surveyed literature on RLOO, GRPO, and DPO, identifying the gap: nobody had compared what these algorithms do at the weight and feature level on the same base model
- Ran inner loop experiments training GPT-2 Small with RLOO, GRPO, and DPO on sentiment and toxicity tasks, then analyzing weight deltas via SVD and feature changes via SAELens
- Discovered three key findings through outer loop synthesis:
- DPO is a rank-1 perturbation (top-1 SVD direction recovers 95.6% of behavioral effect)
- Online RL (RLOO/GRPO) produces distributed, structure-preserving modifications (effective rank 200 vs 119)
- DPO creates a "concentrated perturbation cascade" disrupting 2x more SAE features in later layers
- Validated causally with SVD ablation experiments โ not just correlation but causal evidence
- Wrote the paper in ICML format using the ml-paper-writing skill
Key Findings
- DPO is rank-1 alignment: A single SVD direction per weight matrix recovers 95.6% of DPO's behavioral effect. GRPO needs 50+ directions for equivalent recovery.
- Online RL preserves structure: RLOO and GRPO maintain higher effective rank (200 vs 119) and better preserve the base model's SAE feature structure (Jaccard 0.83 vs 0.69)
- DPO's concentrated perturbation cascade: Despite lower-rank changes, DPO disrupts 2x more SAE features in later layers (1619 vs 527-870), amplifying perturbations through the network
- Results hold across sentiment and toxicity tasks with statistical significance (n=3 seeds, non-overlapping CIs)
Why This Demo Matters
This demonstrates autoresearch orchestrating multiple domain skills together:
- Post-training skills (TRL, GRPO) for training the RL models
- Interpretability skills (SAELens, TransformerLens) for analyzing what changed
- Paper writing skill for producing the ICML submission
- The two-loop architecture enabled the agent to both run experiments AND synthesize them into mechanistic understanding โ "DPO is a rank-1 perturbation" is a conceptual insight, not just a metric
Overview (`demos/scientific-plotting-demo/README.md`)
Academic Plotting Skill Demo
Publication-quality figures generated using the academic-plotting skill from the AI Research Skills library. Demonstrates both Gemini AI diagram generation (Workflow 1) and matplotlib/seaborn data charts (Workflow 2).
Source Paper
Andes: Defining and Enhancing Quality-of-Experience in LLM-Based Text Streaming Services
Jiachen Liu, Jae-Won Chung, Zhiyu Wu, Fan Lai, Myungjin Lee, Mosharaf Chowdhury
Andes is a QoE-aware LLM serving system that enhances user experience by ensuring users receive tokens promptly and at a smooth, digestible pace. Its preemptive token-level request scheduler dynamically prioritizes requests based on expected QoE gain and GPU resource usage, achieving up to 4.7x QoE improvement or 61% GPU savings compared to existing systems.
| Metric | Result |
|---|---|
| QoE improvement over vLLM | 4.7x |
| GPU resource savings | 61% |
| Peak queue length reduction | 85% |
1. System Architecture Workflow (Gemini AI)
Core contribution diagram showing Andes' co-design of the inference server (Token-Level Request Scheduler + Overhead-Aware Refiner) and client (Token Pacer). Generated using the updated academic-plotting skill:
- Model:
gemini-3-pro-image-preview - Style: Style B "Modern Minimal" โ ultra-clean, spacious, authoritative
- Palette: "Nord" โ desaturated section fills, Aurora Yellow accents for Andes components
- Prompt: 6-section structure (Framing, Visual Style, Colors, Layout, Connections, Constraints)
- Attempts: 3 non-deterministic, best selected
Selected Result (Attempt 1)
Figure 1: Andes QoE-Aware LLM Serving System Architecture
AI-generated diagram showing the full request lifecycle: (1) User submits request, (2) Client enqueues with QoE parameters, (3) Request Tracker feeds state to scheduler, (4) Token-Level Scheduler admits/resumes/preempts at token granularity, (5) Executor streams tokens, (6) Token Pacer delivers smoothly at reading speed. Yellow-accented components are Andes' novel contributions.
gemini-3-pro-image-preview | Style B: Modern Minimal | Nord Palette | Best of 3
All 3 Gemini Attempts (for comparison)
| Attempt 1 (Selected) | Attempt 2 | Attempt 3 |
|---|---|---|
| Best spacing, color accents, arrow routing | Good, slightly tighter spacing | Good separation, dashed preempt |
All 3 attempts have 100% text accuracy โ every label spelled correctly (Token Pacer, Overhead Refiner, KV Cache, etc.). This is a major improvement over the previous generation which had misspellings in all attempts.
2. QoE Metric Definition
Four foundational cases illustrating how the QoE metric captures different types of user experience degradation in text streaming services.
Figure 2: User Experience Cases and QoE Definition
(a) Perfect experience: actual delivery matches ideal consumption timeline. (b) Long initial delay: head-of-line blocking inflates TTFT. (c) Slow streaming: token generation slower than consumption speed. (d) Pause in middle: preemption causes mid-stream pause. The shaded area represents QoE degradation (S_delay).
matplotlib | Line Plot
3. CDF Comparison: QoE, TTFT, TDS
Three-panel CDF comparison on real-world BurstGPT traces showing Andes' improvements across all key metrics. Follows the multi-panel figure pattern with shared styling and colorblind-safe colors.
Figure 3: CDF of QoE, TTFT, and TDS on BurstGPT Trace
Andes (orange) achieves near-perfect QoE for 97% of requests (QoE >= 0.95), compared to only 75% for vLLM (blue). TTFT is reduced from 10.5s to 1.8s average. TDS remains comparable, showing Andes doesn't sacrifice throughput.
matplotlib | CDF Plot | PDF + PNG
4. Multi-Panel: Varying Burst Intensity
4x3 grid showing average QoE across 4 models and 3 datasets under varying burst intensities. This demonstrates the academic plotting skill's ability to create complex multi-panel figures with shared axes, model labels, and a unified legend.
Figure 4: Average QoE Under Varying Burst Intensity
Across all 12 model-dataset combinations, Andes (orange) consistently maintains higher QoE than all baselines as burst intensity increases. vLLM (blue), LQSF (green), and Sarathi-Serve (red) degrade significantly under heavy bursts due to FCFS scheduling and head-of-line blocking. Andes achieves up to 4.7x improvement at the highest burst intensity.
matplotlib | Multi-Panel Grid | 4 Methods x 4 Models x 3 Datasets
5. Summary: Key Improvements
Three-panel bar chart summarizing the headline results from the paper. Each panel uses a distinct color to represent different aspects of improvement.
Figure 5: Summary of Key Improvements
(a) Andes achieves 0.99 average QoE vs 0.88 for vLLM on real-world traces. (b) QoE improvement ranges from 3.2x to 4.7x across different model architectures. (c) Andes saves 61% GPU resources, reduces peak queue by 85%, and handles 2.6x more concurrent requests.
matplotlib | Grouped Bar | PDF + PNG
6. How These Figures Were Generated
All figures follow the academic-plotting skill's two workflows and publication standards.
Workflow 1: Gemini AI Diagram
The system architecture (Figure 1) uses gemini-3-pro-image-preview with the skill's 6-section prompt structure and Style B: Modern Minimal visual style. Key elements:
- Framing โ Sets the tone: "ultra-clean, modern, authoritative, like Apple docs meets Nature paper"
- Visual Style โ Full Modern Minimal style block: floating boxes with shadow, no borders, thin gray arrows
- Color Palette โ Nord palette with exact hex codes for every element
- Layout โ Every box named, spatially positioned, with nested sub-components
- Connections โ Every arrow individually specified: source, target, style, color, label, routing
- Constraints โ What NOT to include, adapted for the Modern Minimal style
from google import genai
client = genai.Client(api_key=API_KEY)
# 6-section prompt: Framing + Style + Colors + Layout + Connections + Constraints
PROMPT = """
SECTION 1 โ FRAMING:
Create an ultra-clean, modern technical architecture diagram for an OSDI paper.
Think: Apple developer docs meets Nature paper...
SECTION 2 โ VISUAL STYLE (Modern Minimal):
Ultra-clean geometric shapes, floating boxes with shadow, thin gray arrows...
SECTION 3 โ COLOR PALETTE (Nord):
Deep text: #2E3440, Andes accent: Aurora Yellow #EBCB8B, Executor: Frost #5E81AC...
SECTION 4 โ LAYOUT:
Two zones: CLIENT (#EEF1F6) and SERVER (#EDF3ED), each with floating boxes...
SECTION 5 โ CONNECTIONS:
8 arrows with step numbers, dashed red preempt path, green delivery flow...
SECTION 6 โ CONSTRAINTS:
ZERO decoration, generous whitespace, CRITICAL TEXT ACCURACY...
"""
# Generate 3 non-deterministic attempts
for i in range(1, 4):
response = client.models.generate_content(
model="gemini-3-pro-image-preview",
contents=PROMPT,
config=genai.types.GenerateContentConfig(
response_modalities=["IMAGE", "TEXT"]))Workflow 2: Data-Driven Charts
Experiment figures use matplotlib with publication defaults: serif fonts, colorblind-safe palette, 300 DPI export, venue-appropriate sizing. Each figure exports both PDF (vector for LaTeX) and PNG (raster).
# Publication defaults
plt.rcParams.update({
"font.family": "serif",
"font.size": 10,
"axes.spines.top": False,
"savefig.dpi": 300,
})
# Colorblind-safe palette
COLORS = {
"blue": "#4C72B0",
"orange": "#DD8452",
"green": "#55A868",
"red": "#C44E52",
}7. Generated Files
demo/
โโโ README.md # This demo page
โโโ figures/
โโโ gen_fig_andes_architecture_gemini.py # Gemini diagram script (Workflow 1)
โโโ gen_fig_andes_workflow.py # matplotlib diagram (alternative)
โโโ gen_fig_experiment_results.py # Data charts script (Workflow 2)
โโโ fig_andes_architecture.png # Gemini best attempt (selected)
โโโ fig_andes_architecture_attempt1.png # Gemini attempt 1
โโโ fig_andes_architecture_attempt2.png # Gemini attempt 2
โโโ fig_andes_architecture_attempt3.png # Gemini attempt 3
โโโ fig_andes_workflow.pdf # matplotlib vector diagram
โโโ fig_andes_workflow.png # matplotlib raster diagram
โโโ fig_cdf_comparison.pdf # CDF panels (vector)
โโโ fig_cdf_comparison.png # CDF panels (raster)
โโโ fig_burst_intensity.pdf # Multi-panel grid (vector)
โโโ fig_burst_intensity.png # Multi-panel grid (raster)
โโโ fig_qoe_definition.pdf # QoE illustration (vector)
โโโ fig_qoe_definition.png # QoE illustration (raster)
โโโ fig_summary_improvements.pdf # Summary bars (vector)
โโโ fig_summary_improvements.png # Summary bars (raster)Generated using the academic-plotting skill from AI Research Skills. Paper: arXiv:2404.16283. Figures use synthetic data matching paper-reported distributions.
Overview (`packages/ai-research-skills/README.md`)
@orchestra-research/ai-research-skills
Install AI research engineering skills to your coding agents (Claude Code, Hermes Agent, OpenCode, Cursor, Gemini CLI, and more).
npx @orchestra-research/ai-research-skillsFeatures
- 98 skills across 23 categories for AI research engineering
- Auto-detects installed coding agents
- Interactive installer with guided experience
- Global or local install โ install globally with symlinks, or per-project with
--localfor version-controlled, project-specific skill sets - Works with 9 agents: Claude Code, Hermes Agent, OpenCode, OpenClaw, Cursor, Codex, Gemini CLI, Qwen Code, and shared
.agents/
Quick Start
Run the interactive installer:
npx @orchestra-research/ai-research-skillsThis will:
- Detect your installed coding agents
- Let you choose what to install (everything, categories, or quick start bundle)
- Download skills from GitHub
- Create symlinks to each agent's skills directory
Commands
# Interactive mode (recommended)
npx @orchestra-research/ai-research-skills
# Install everything (global)
npx @orchestra-research/ai-research-skills install --all
# Install a specific category
npx @orchestra-research/ai-research-skills install post-training
# List installed skills
npx @orchestra-research/ai-research-skills list
# Update all skills
npx @orchestra-research/ai-research-skills updateLocal Installation (per-project)
Install skills directly into your project directory so different projects can have different skill sets:
# Install all skills locally to the current project
npx @orchestra-research/ai-research-skills install --all --local
# Install a category locally
npx @orchestra-research/ai-research-skills install --category post-training --local
# List locally installed skills
npx @orchestra-research/ai-research-skills list --local
# Update local skills
npx @orchestra-research/ai-research-skills update --local
# Uninstall local skills
npx @orchestra-research/ai-research-skills uninstall --localLocal installation copies skills (not symlinks) into agent directories within your project:
my-project/
โโโ .claude/skills/ # Claude Code picks these up
โ โโโ grpo-rl-training/
โ โโโ vllm/
โโโ .cursor/skills/ # Cursor picks these up
โ โโโ grpo-rl-training/
โ โโโ vllm/
โโโ .orchestra-skills.json # Tracks installed skills
โโโ ...Benefits:
- Per-project skills: Each project gets only the skills it needs
- Version control: Commit skills to your repo so the whole team has them
- Reproducible: Lock file (
.orchestra-skills.json) tracks what's installed
Categories
| Category | Skills | Description |
|---|---|---|
| Autoresearch | 1 | Central orchestration โ manages full research lifecycle, routes to all other skills |
| Model Architecture | 6 | LitGPT, Mamba, TorchTitan, Megatron... |
| Post-Training | 8 | GRPO, verl, slime, miles, torchforge... |
| Fine-Tuning | 5 | Axolotl, Unsloth, PEFT, Torchtune... |
| Distributed Training | 6 | DeepSpeed, FSDP, Megatron... |
| Inference Serving | 4 | vLLM, TensorRT-LLM, SGLang... |
| Optimization | 6 | Flash Attention, GPTQ, AWQ... |
| And 15 more... | Ideation, Paper Writing, RAG, Agents, Multimodal... |
How It Works
Global Install (default)
- Canonical Storage: Skills are stored once at
~/.orchestra/skills/ - Symlinks: Each agent gets symlinks pointing to the canonical copy
- Auto-activation: Skills activate when you discuss relevant topics
~/.orchestra/skills/ # Single source of truth
โโโ 06-post-training/
โ โโโ verl/
โ โโโ grpo-rl-training/
โโโ ...
~/.claude/skills/ # Symlinks for Claude Code
โโโ verl โ ~/.orchestra/skills/.../verl
โโโ grpo-rl-training โ ...
~/.cursor/skills/ # Symlinks for Cursor
โโโ (same links)Local Install (`--local`)
- Direct Copy: Skills are copied into agent directories within your project
- Version Control: Files can be committed to git for team sharing
- Lock File:
.orchestra-skills.jsontracks what's installed
my-project/
โโโ .claude/skills/verl/ # Copied for Claude Code
โโโ .cursor/skills/verl/ # Copied for Cursor
โโโ .codex/skills/verl/ # Copied for Codex
โโโ .orchestra-skills.json # Lock fileSupported Agents
| Agent | Config Directory |
|---|---|
| Claude Code | ~/.claude |
| OpenCode | ~/.config/opencode |
| OpenClaw | ~/.openclaw |
| Cursor | ~/.cursor |
| Codex (OpenAI) | ~/.codex |
| Gemini CLI | ~/.gemini |
| Qwen Code | ~/.qwen |
| Shared Agents | ~/.agents |
| Hermes Agent | ~/.hermes |
License
MIT - Orchestra Research
Overview (`04-mechanistic-interpretability/nnsight/references/README.md`)
nnsight Reference Documentation
This directory contains comprehensive reference materials for nnsight.
Contents
- api.md - Complete API reference for LanguageModel, tracing, and proxy objects
- tutorials.md - Step-by-step tutorials for local and remote interpretability
Quick Links
- Official Documentation: https://nnsight.net/
- GitHub Repository: https://github.com/ndif-team/nnsight
- NDIF (Remote Execution): https://ndif.us/
- Community Forum: https://discuss.ndif.us/
- Paper: https://arxiv.org/abs/2407.14561 (ICLR 2025)
Installation
# Basic installation
pip install nnsight
# For vLLM support
pip install "nnsight[vllm]"Basic Usage
from nnsight import LanguageModel
# Load model
model = LanguageModel("openai-community/gpt2", device_map="auto")
# Trace and access internals
with model.trace("The Eiffel Tower is in") as tracer:
# Access layer output
hidden = model.transformer.h[5].output[0].save()
# Modify activations
model.transformer.h[8].output[0][:] *= 0.5
# Get final output
logits = model.output.save()
# Access saved values outside context
print(hidden.shape)Key Concepts
Tracing
The trace() context enables deferred execution - operations are recorded and executed together.
Proxy Objects
Inside trace, module accesses return Proxies. Call .save() to retrieve values after execution.
Remote Execution (NDIF)
Run the same code on massive models (70B+) without local GPUs:
# Same code, just add remote=True
with model.trace("Hello", remote=True):
hidden = model.model.layers[40].output[0].save()NDIF Setup
- Sign up at https://login.ndif.us/
- Get API key
- Set environment variable:
export NDIF_API_KEY=your_key
Available Remote Models
- Llama-3.1-8B, 70B, 405B
- DeepSeek-R1 models
- More at https://ndif.us/
Overview (`04-mechanistic-interpretability/pyvene/references/README.md`)
pyvene Reference Documentation
This directory contains comprehensive reference materials for pyvene.
Contents
- api.md - Complete API reference for IntervenableModel, intervention types, and configurations
- tutorials.md - Step-by-step tutorials for causal tracing, activation patching, and trainable interventions
Quick Links
- Official Documentation: https://stanfordnlp.github.io/pyvene/
- GitHub Repository: https://github.com/stanfordnlp/pyvene
- Paper: https://arxiv.org/abs/2403.07809 (NAACL 2024)
Installation
pip install pyveneBasic Usage
import pyvene as pv
from transformers import AutoModelForCausalLM, AutoTokenizer
# Load model
model = AutoModelForCausalLM.from_pretrained("gpt2")
tokenizer = AutoTokenizer.from_pretrained("gpt2")
# Define intervention
config = pv.IntervenableConfig(
representations=[
pv.RepresentationConfig(
layer=5,
component="block_output",
intervention_type=pv.VanillaIntervention,
)
]
)
# Create intervenable model
intervenable = pv.IntervenableModel(config, model)
# Run intervention (swap activations from source to base)
base_inputs = tokenizer("The cat sat on the", return_tensors="pt")
source_inputs = tokenizer("The dog ran through the", return_tensors="pt")
_, outputs = intervenable(
base=base_inputs,
sources=[source_inputs],
)Key Concepts
Intervention Types
- VanillaIntervention: Swap activations between runs
- AdditionIntervention: Add source to base activations
- ZeroIntervention: Zero out activations (ablation)
- CollectIntervention: Collect activations without modifying
- RotatedSpaceIntervention: Trainable intervention for causal discovery
Components
Target specific parts of the model:
block_input,block_outputmlp_input,mlp_output,mlp_activationattention_input,attention_outputquery_output,key_output,value_output
HuggingFace Integration
Save and load interventions via HuggingFace Hub for reproducibility.
Overview (`04-mechanistic-interpretability/saelens/references/README.md`)
SAELens Reference Documentation
This directory contains comprehensive reference materials for SAELens.
Contents
- api.md - Complete API reference for SAE, TrainingSAE, and configuration classes
- tutorials.md - Step-by-step tutorials for training and analyzing SAEs
- papers.md - Key research papers on sparse autoencoders
Quick Links
- GitHub Repository: https://github.com/jbloomAus/SAELens
- Neuronpedia: https://neuronpedia.org (browse pre-trained SAE features)
- HuggingFace SAEs: Search for tag
saelens
Installation
pip install sae-lensRequirements: Python 3.10+, transformer-lens>=2.0.0
Basic Usage
from transformer_lens import HookedTransformer
from sae_lens import SAE
# Load model and SAE
model = HookedTransformer.from_pretrained("gpt2-small", device="cuda")
sae, cfg_dict, sparsity = SAE.from_pretrained(
release="gpt2-small-res-jb",
sae_id="blocks.8.hook_resid_pre",
device="cuda"
)
# Encode activations to sparse features
tokens = model.to_tokens("Hello world")
_, cache = model.run_with_cache(tokens)
activations = cache["resid_pre", 8]
features = sae.encode(activations) # Sparse feature activations
reconstructed = sae.decode(features) # Reconstructed activationsKey Concepts
Sparse Autoencoders
SAEs decompose dense neural activations into sparse, interpretable features:
- Encoder: Maps d_model โ d_sae (typically 4-16x expansion)
- ReLU/TopK: Enforces sparsity
- Decoder: Reconstructs original activations
Training Loss
Loss = MSE(original, reconstructed) + L1_coefficient ร L1(features)
Key Metrics
- L0: Average number of active features (target: 50-200)
- CE Loss Score: Cross-entropy recovered vs original model (target: 80-95%)
- Dead Features: Features that never activate (target: <5%)
Available Pre-trained SAEs
| Release | Model | Description |
|---|---|---|
gpt2-small-res-jb |
GPT-2 Small | Residual stream SAEs |
gemma-2b-res |
Gemma 2B | Residual stream SAEs |
| Various | Search HuggingFace | Community-trained SAEs |
Overview (`04-mechanistic-interpretability/transformer-lens/references/README.md`)
TransformerLens Reference Documentation
This directory contains comprehensive reference materials for TransformerLens.
Contents
- api.md - Complete API reference for HookedTransformer, ActivationCache, and HookPoints
- tutorials.md - Step-by-step tutorials for common interpretability workflows
- papers.md - Key research papers and foundational concepts
Quick Links
- Official Documentation: https://transformerlensorg.github.io/TransformerLens/
- GitHub Repository: https://github.com/TransformerLensOrg/TransformerLens
- Model Properties Table: https://transformerlensorg.github.io/TransformerLens/generated/model_properties_table.html
Installation
pip install transformer-lensBasic Usage
from transformer_lens import HookedTransformer
# Load model
model = HookedTransformer.from_pretrained("gpt2-small")
# Run with activation caching
tokens = model.to_tokens("Hello world")
logits, cache = model.run_with_cache(tokens)
# Access activations
residual = cache["resid_post", 5] # Layer 5 residual stream
attention = cache["pattern", 3] # Layer 3 attention patternsKey Concepts
HookPoints
Every activation in the transformer has a HookPoint wrapper, enabling:
- Reading activations via
run_with_cache() - Modifying activations via
run_with_hooks()
Activation Cache
The ActivationCache stores all intermediate activations with helper methods for:
- Residual stream decomposition
- Logit attribution
- Layer-wise analysis
Supported Models (50+)
GPT-2, LLaMA, Mistral, Pythia, GPT-Neo, OPT, Gemma, Phi, and more.
Overview (`14-agents/a-evolve/references/README.md`)
A-Evolve Official Documentation Reference
This document consolidates key information from the official A-Evolve documentation
at github.com/A-EVO-Lab/a-evolve.
Table of Contents
- Project Overview
- Installation Guide
- Quick Start Guide
- Architecture Overview
- Agent Protocol
- Benchmark Adapters
- Evolution Engines
- Workspace Contract
- Configuration Reference
- Built-in Agents
- Built-in Benchmarks
- Evolution Algorithms
- Skill System
- Memory System
- Version Control
- Observation Pipeline
- FAQ
Project Overview
A-Evolve is the universal infrastructure for evolving AI agents through self-improvement. It enables automatic, data-driven optimization of agents across any domain using any evolution algorithm.
Design Principles
File-system as contract: All evolvable agent state lives as plain files in a workspace directory. No databases, no learned weights, no opaque parameters. Every mutation is an explicit edit to a text file.
Pluggable everything: Three interfaces โ
BaseAgent,BenchmarkAdapter,EvolutionEngineโ enable any combination of agent, benchmark, and algorithm.Git for versioning: Every evolution cycle creates git snapshots. Changes are diffable, rollbackable, and human-readable.
LLM-in-the-loop: The default evolution engine uses an LLM with bash tools to analyze observations and directly mutate workspace files. The evolver is itself an AI agent improving other AI agents.
Zero manual engineering: Once configured, evolution runs autonomously. The loop handles solving, evaluation, mutation, gating, and convergence detection.
Key Results
Using Claude Opus 4.6 as both the solver and evolver model:
| Benchmark | Score | Leaderboard Position |
|---|---|---|
| MCP-Atlas | 79.4% | #1 |
| SWE-bench Verified | 76.8% | ~#5 |
| Terminal-Bench 2.0 | 76.5% | ~#7 |
| SkillsBench | 34.9% | #2 |
These results demonstrate that LLM-driven evolution of prompts, skills, and memory can produce state-of-the-art agent performance across diverse domains.
Installation Guide
Requirements
- Python >= 3.11
- Git (for workspace versioning)
- An LLM API key (Anthropic, OpenAI, or AWS Bedrock credentials)
Installation Options
# Core package (matplotlib, pyyaml)
pip install a-evolve
# With specific LLM provider support
pip install a-evolve[anthropic] # Anthropic Claude API
pip install a-evolve[openai] # OpenAI API
pip install a-evolve[bedrock] # AWS Bedrock (boto3)
pip install a-evolve[litellm] # Multi-provider via LiteLLM
# With domain-specific dependencies
pip install a-evolve[swe] # SWE-bench (strands-agents, datasets, swebench)
pip install a-evolve[mcp] # MCP-Atlas (mcp, strands-agents, litellm)
pip install a-evolve[skillbench] # SkillsBench (strands-agents)
# Everything
pip install a-evolve[all]
# Development
pip install a-evolve[dev] # pytest, ruff, hypothesisFrom Source
git clone https://github.com/A-EVO-Lab/a-evolve.git
cd a-evolve
pip install -e ".[all,dev]"Verifying Installation
import agent_evolve as ae
print(ae.__version__) # Should print version
print(ae.Evolver) # Should print class referenceQuick Start Guide
3-Line Evolution
import agent_evolve as ae
evolver = ae.Evolver(agent="swe", benchmark="swe-verified")
results = evolver.run(cycles=10)
print(f"Final score: {results.final_score}")This:
- Copies the built-in SWE seed workspace to a working directory
- Instantiates
SweAgentfrom the workspace manifest - Runs 10 evolution cycles against SWE-bench Verified
- Returns
EvolutionResultwith scores, convergence status, and details
With Custom Configuration
import agent_evolve as ae
config = ae.EvolveConfig(
batch_size=15, # 15 tasks per cycle
max_cycles=25, # Up to 25 evolution rounds
evolve_prompts=True, # Mutate system prompt
evolve_skills=True, # Discover and refine skills
evolve_memory=True, # Build episodic memory
holdout_ratio=0.2, # 20% held out for validation
evolver_model="us.anthropic.claude-opus-4-6-v1",
egl_threshold=0.02, # Stop if < 2% improvement
egl_window=5, # Over 5 consecutive cycles
)
evolver = ae.Evolver(
agent="swe",
benchmark="swe-verified",
config=config,
)
results = evolver.run()
# Inspect results
print(f"Cycles: {results.cycles_completed}")
print(f"Score: {results.final_score:.3f}")
print(f"Converged: {results.converged}")
print(f"Score history: {results.score_history}")Architecture Overview
System Diagram
User Code (3 lines)
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Evolver API โ
โ - Resolves agent, benchmark, config โ
โ - Creates EvolutionLoop โ
โ - Returns EvolutionResult โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโผโโโโโโโโโโโ
โ EvolutionLoop โ
โ For each cycle: โ
โ 1. Solve โ
โ 2. Observe โ
โ 3. Snapshot โ
โ 4. Evolve โ
โ 5. Snapshot โ
โ 6. Record โ
โ 7. Reload โ
โ 8. Converge? โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โโโโโโโโโโโโผโโโโโโโโโโโ
โ โ โ
โผ โผ โผ
Agent Benchmark Engine
solve() evaluate() step()
โ โ โ
โโโโโโโโโโโโผโโโโโโโโโโโ
โ
โผ
Agent Workspace
(filesystem + git)Component Interactions
Forward flow (solve):
EvolutionLoopcallsbenchmark.get_tasks()to get a batch of tasks- For each task, calls
agent.solve(task)to get aTrajectory - Calls
benchmark.evaluate(task, trajectory)to getFeedback - Bundles into
Observation(task, trajectory, feedback)triples
Evolution flow (mutate):
EvolutionLooppasses observations toengine.step()- Engine reads workspace files, analyzes observations
- Engine mutates workspace files (prompts, skills, memory)
- Returns
StepResult(mutated, summary, metadata)
Reload flow (sync):
EvolutionLoopcallsagent.reload_from_fs()- Agent re-reads prompts, skills, memory from workspace
- Next cycle uses evolved state
Agent Protocol
BaseAgent Abstract Class
All evolvable agents inherit from BaseAgent:
from agent_evolve.protocol.base_agent import BaseAgent
from agent_evolve.types import Task, Trajectory
class MyAgent(BaseAgent):
def __init__(self, workspace_dir: str):
super().__init__(workspace_dir)
# Initialize your LLM client, tools, etc.
def solve(self, task: Task) -> Trajectory:
"""Solve a single task and return the trajectory.
This is the only method you MUST override.
"""
# Your solving logic here
return Trajectory(
task_id=task.id,
output="solution",
steps=[{"tool": "llm", "action": "generate"}],
)Agent Lifecycle
- Construction:
__init__(workspace_dir)โ set up LLM client, load initial state - State loading:
reload_from_fs()โ read prompts, skills, memory from workspace - Solving:
solve(task)โ process one task, return trajectory - Memory buffering:
remember(content, category)โ store lessons during solve - State export:
export_to_fs()โ flush buffered memories and skill proposals - Hot reload:
reload_from_fs()โ re-read after evolution mutates files
Agent Properties
| Property | Type | Description |
|---|---|---|
system_prompt |
str |
Content of prompts/system.md |
skills |
list[SkillMeta] |
Available skills from skills/ directory |
memories |
list[dict] |
Loaded episodic/semantic memories |
Agent Best Practices
- Always use
self.system_promptโ don't hardcode prompts - Inject skills into LLM context โ they're the primary evolution mechanism
- Call
remember()for reusable lessons โ not for task-specific notes - Keep
solve()deterministic when possible (temperature=0 for reproducibility) - Truncate trajectories โ don't store full conversation if not needed for evolution
Benchmark Adapters
BenchmarkAdapter Abstract Class
from agent_evolve.benchmarks.base import BenchmarkAdapter
from agent_evolve.types import Task, Trajectory, Feedback
class MyBenchmark(BenchmarkAdapter):
def get_tasks(self, split="train", limit=10):
"""Return tasks from the benchmark dataset.
Args:
split: "train" or "test" (for holdout evaluation)
limit: Maximum number of tasks to return (default 10)
"""
return [Task(id="1", input="task description")]
def evaluate(self, task, trajectory):
"""Evaluate an agent's trajectory on a task.
Returns Feedback with:
- success: bool (binary pass/fail)
- score: float (0.0 to 1.0 continuous)
- detail: str (human-readable explanation)
"""
return Feedback(success=True, score=0.9, detail="Passed 9/10 tests")Benchmark Best Practices
- Rich feedback details โ the evolver reads
feedback.detailto decide what to mutate - Deterministic evaluation โ same input should produce same score
- Diverse task coverage โ include easy, medium, and hard tasks
- Strict train/test split โ no overlap between splits
- Score granularity โ continuous scores (0.0-1.0) are more useful than binary pass/fail
Evolution Engines
EvolutionEngine Abstract Class
from agent_evolve.engine.base import EvolutionEngine
from agent_evolve.types import StepResult
class MyEngine(EvolutionEngine):
def step(self, workspace, observations, history, trial):
"""Mutate the workspace based on observations.
Args:
workspace: AgentWorkspace โ typed I/O for agent files
observations: list[Observation] โ recent (task, trajectory, feedback) triples
history: EvolutionHistory โ query past cycles and workspace versions
trial: TrialRunner โ optional live evaluation runner
Returns:
StepResult with mutated flag, summary, and metadata
"""
# Analyze observations, mutate workspace
return StepResult(mutated=True, summary="Updated prompts")
def on_cycle_end(self, accepted: bool, score: float):
"""Optional callback after gating decision."""
passEngine Selection Guide
| Engine | When to Use | Compute Cost |
|---|---|---|
| AEvolveEngine (default) | General-purpose, diverse domains | High (full LLM call) |
| GuidedSynthesisEngine | Skill discovery focus | Medium |
| AdaptiveEvolutionEngine | Noisy evaluation, fine control | Medium |
| AdaptiveSkillEngine | Skill-heavy domains | Medium |
| Custom | Domain-specific mutation logic | Variable |
Workspace Contract
Directory Structure
workspace/
โโโ manifest.yaml # Required: agent metadata
โโโ prompts/
โ โโโ system.md # Main system prompt
โ โโโ fragments/ # Modular prompt pieces
โ โโโ reasoning.md
โ โโโ output_format.md
โโโ skills/
โ โโโ _drafts/ # Proposed skills pending review
โ โ โโโ new-skill.md
โ โโโ verify-solution/ # Accepted skills
โ โโโ SKILL.md
โโโ tools/
โ โโโ registry.yaml # Tool manifest
โ โโโ custom_tool.py # Tool implementations
โโโ memory/
โ โโโ episodic.jsonl # Failure lessons
โ โโโ semantic.jsonl # Domain knowledge
โโโ evolution/ # Managed by loop
โโโ observations/
โ โโโ batch_0001.jsonl
โ โโโ batch_0002.jsonl
โโโ history.jsonl
โโโ metrics.jsonManifest Format
agent:
type: reference # Must be "reference"
entrypoint: my_package.agents.MyAgent # Dotted Python path
evolvable_layers: # Which directories can be mutated
- prompts # System prompt + fragments
- skills # Skill library
- memory # Episodic/semantic memory
# - tools # Tool implementations (optional)
reload_strategy: hot # "hot" (re-read files) or "cold" (restart)AgentWorkspace API
The AgentWorkspace class provides typed read/write access:
Prompts:
read_prompt() -> strโ readsprompts/system.mdwrite_prompt(content: str)โ writesprompts/system.mdread_fragment(name: str) -> strโ readsprompts/fragments/{name}write_fragment(name: str, content: str)โ writes a fragmentlist_fragments() -> list[str]โ lists fragment filenames
Skills:
list_skills() -> list[SkillMeta]โ lists skills with name, description, pathread_skill(name: str) -> strโ reads skill content (frontmatter stripped)write_skill(name: str, content: str)โ writes or updates a skilldelete_skill(name: str)โ removes a skill directory
Drafts:
list_drafts() -> list[dict]โ lists pending skill proposalswrite_draft(name: str, content: str)โ writes a draft proposalclear_drafts()โ removes all pending drafts
Memory:
add_memory(entry: dict, category: str = "episodic")โ appends to category JSONLread_memories(category: str = "episodic", limit: int = 100) -> list[dict]read_all_memories(limit: int = 100) -> list[dict]โ all categories combined
Tools:
read_tool_registry() -> list[dict]โ readstools/registry.yamlwrite_tool_registry(tools: list[dict])โ writes tool manifestread_tool(name: str) -> strโ reads tool source codewrite_tool(name: str, content: str)โ writes tool implementation
Evolution Metadata:
read_evolution_history() -> list[dict]โ readsevolution/history.jsonlread_evolution_metrics() -> dictโ readsevolution/metrics.json
Configuration Reference
EvolveConfig Fields
| Field | Type | Default | Description |
|---|---|---|---|
batch_size |
int |
10 |
Tasks per solve round |
max_cycles |
int |
20 |
Maximum evolution iterations |
holdout_ratio |
float |
0.2 |
Fraction held out for validation |
evolve_prompts |
bool |
True |
Allow prompt mutation |
evolve_skills |
bool |
True |
Allow skill creation/modification |
evolve_memory |
bool |
True |
Allow memory writes |
evolve_tools |
bool |
False |
Allow tool implementation changes |
trajectory_only |
bool |
False |
Hide scores from evolver |
evolver_model |
str |
"us.anthropic.claude-opus-4-6-v1" |
LLM for evolution engine |
evolver_max_tokens |
int |
16384 |
Max tokens for evolver calls |
egl_threshold |
float |
0.05 |
Convergence epsilon |
egl_window |
int |
3 |
Cycles for plateau detection |
extra |
dict |
{} |
Extension point for custom params |
Loading from YAML
# config.yaml
batch_size: 15
max_cycles: 30
evolve_prompts: true
evolve_skills: true
evolve_memory: false
evolver_model: us.anthropic.claude-opus-4-6-v1
egl_threshold: 0.03
egl_window: 5
extra:
solver_proposed: true
merge_threshold: 0.7config = ae.EvolveConfig.from_yaml("config.yaml")Configuration Strategies
Conservative (stable improvement):
config = ae.EvolveConfig(
batch_size=10,
max_cycles=10,
evolve_prompts=True,
evolve_skills=False,
evolve_memory=False,
egl_threshold=0.05,
)Aggressive (maximum exploration):
config = ae.EvolveConfig(
batch_size=20,
max_cycles=50,
evolve_prompts=True,
evolve_skills=True,
evolve_memory=True,
evolve_tools=True,
egl_threshold=0.01,
egl_window=7,
)Skill-focused (procedure discovery):
config = ae.EvolveConfig(
batch_size=10,
max_cycles=25,
evolve_prompts=False,
evolve_skills=True,
evolve_memory=True,
)Built-in Agents
SWE Agent (`seed_workspaces/swe/`)
Domain: SWE-bench code patching
Model: Claude Opus 4.6 via AWS Bedrock
Framework: Strands-agents (CodeDojo-compatible)
Key features:
- Verify-fix loop: runs tests before and after each edit
- Hypothesis-first approach: form theory before exploring
- Skill proposal generation: agent reflects on verification process
- Conversation capture with per-turn token tracking
- Dynamic tool loading from workspace
tools/registry.yaml
Tools available: bash, submit, text_editor, python_exec
Terminal Agent (`seed_workspaces/terminal/`)
Domain: Terminal-Bench 2.0 shell challenges
Model: Claude Sonnet 4 via AWS Bedrock
Framework: Strands-agents
Key features:
- Concurrent timeout enforcement via ThreadPoolExecutor
- Test file copying only during evaluation (prevents cheating)
- Pre-built skills: self-verification, environment-discovery, scientific-computing, debug-and-fix
- Memory injection disabled (time-sensitive tasks)
- Graceful timeout fallback
Tools available: bash, python, submit
MCP Agent (`seed_workspaces/mcp/`)
Domain: MCP-Atlas tool calling
Model: Claude Opus 4.6 via AWS Bedrock
Framework: Strands-agents with MCP integration
Key features:
- MCP server connection management
- Tool discovery and invocation
- Multi-provider support via LiteLLM
Built-in Benchmarks
SWE-bench Verified
Module: agent_evolve.benchmarks.swe_verified
Tasks: Real GitHub issues from popular Python repositories
Evaluation: Runs test suite, checks if agent's patch fixes the issue
Metric: Pass rate (0.0 to 1.0)
MCP-Atlas
Module: agent_evolve.benchmarks.mcp_atlas
Tasks: Tool calling scenarios with MCP servers
Evaluation: Checks correct tool selection and parameter passing
Metric: Accuracy (0.0 to 1.0)
Terminal-Bench 2.0
Module: agent_evolve.benchmarks.terminal2
Tasks: Shell command challenges (file manipulation, system admin, scripting)
Evaluation: Runs test scripts to verify terminal state
Metric: Pass rate (0.0 to 1.0)
SkillsBench
Module: agent_evolve.benchmarks.skill_bench
Tasks: Multi-step procedural tasks
Evaluation: Checks step-by-step correctness
Metric: Accuracy (0.0 to 1.0)
ARC-AGI-3
Module: agent_evolve.benchmarks.arc_agi3
Tasks: Interactive game levels (25 games, 181 levels)
Evaluation: RHAE score (ratio of human to agent actions, squared)
Metric: Average RHAE across levels (0.0 to 1.0)
Evolution Algorithms
AEvolveEngine (SkillForge)
Module: agent_evolve.algorithms.skillforge.engine
Strategy: LLM-driven workspace mutation
The default engine gives an LLM full bash tool access to the workspace and asks it to improve the agent based on observations. This is the most flexible engine โ it can make arbitrary changes to any workspace file.
Context provided to the LLM:
- Recent observations (task inputs, agent outputs, feedback)
- Current system prompt
- Current skill library
- Pending draft proposals
- Score history
Mutation capabilities:
- Edit system prompt (refine, consolidate, extend)
- Create new skills from observed patterns
- Merge overlapping skills
- Write episodic memory entries
- Review and curate draft proposals
GuidedSynthesisEngine
Module: agent_evolve.algorithms.guided_synth
Strategy: Memory-first, curated skills
Emphasizes learning from failures before creating skills. Conservative approach that prevents skill bloat.
Process:
- Extract lessons from failed tasks
- Write episodic memory entries
- After accumulating patterns, synthesize skill proposals
- Curate proposals: ACCEPT, MERGE, or SKIP
AdaptiveEvolutionEngine
Module: agent_evolve.algorithms.adaptive
Strategy: Reward tracking + observation filtering
Adjusts intervention intensity based on score trends. Makes smaller changes when improving, larger changes when plateaued.
AdaptiveSkillEngine
Module: agent_evolve.algorithms.adaptive_skill
Strategy: Skill-centric discovery
Focuses exclusively on building the skill library. Identifies task categories where the agent fails and creates targeted skills.
Skill System
Skill File Format
---
name: verify-edge-cases
description: "TRIGGER when: checking boundary conditions. DO NOT TRIGGER: for happy-path tests."
---
## Pattern
Test all falsy-but-valid values: 0, False, "", [], {}
## Process
1. List all input boundaries
2. Run each against the implementation
3. Check both output AND side effectsSkill Discovery Process
- Agent proposes: During
solve(), agent writes draft toskills/_drafts/ - Engine reviews: During
step(), engine reads drafts and decides:- ACCEPT: Move to
skills/{name}/SKILL.md - MERGE: Combine with existing similar skill
- SKIP: Discard (too narrow, redundant, or incorrect)
- ACCEPT: Move to
- Engine creates: Engine can also create skills directly from observation analysis
- Refinement: Existing skills are updated based on new observations
Skill Library Management
Target: 5-10 broad, reusable skills per workspace. Avoid:
- 30+ narrow skills (library bloat)
- Skills that duplicate system prompt content
- Skills with no TRIGGER condition (always-on = should be in prompt)
Memory System
Episodic Memory
Records specific lessons from task attempts:
{"content": "pytest --no-header flag needed for clean output", "category": "episodic", "task_id": "django-16379"}
{"content": "Off-by-one errors common in range() with len()", "category": "episodic", "task_id": "numpy-8823"}Semantic Memory
General domain knowledge:
{"content": "Django uses reverse URL resolution via urlpatterns", "category": "semantic"}
{"content": "NumPy broadcasting rules: dimensions must match or be 1", "category": "semantic"}Memory Limits
BaseAgent.reload_from_fs()loads up to 200 memory entries by defaultAgentWorkspace.read_memories()defaults to limit=100- Old memories should be pruned or consolidated during evolution
Version Control
Git Tagging Convention
| Tag | When Created | Purpose |
|---|---|---|
pre-evo-1 |
Before cycle 1 evolution | Snapshot of solve-only state |
evo-1 |
After cycle 1 evolution | Snapshot of evolved state |
pre-evo-2 |
Before cycle 2 evolution | Snapshot before next mutation |
evo-2 |
After cycle 2 evolution | Snapshot of evolved state |
Useful Git Commands
# See all evolution checkpoints
git tag -l "evo-*"
# Compare two evolution stages
git diff evo-1 evo-10
# See what changed in a specific cycle
git diff pre-evo-5 evo-5
# Read a file at a specific point in time
git show evo-3:prompts/system.md
# Revert to a known good state
git checkout evo-5 -- .Observation Pipeline
JSONL Format
Each observation is stored in evolution/observations/batch_{label}.jsonl:
{
"task_id": "django__django-16379",
"task_input": "Fix FileBasedCache has_key method...",
"task_metadata": {},
"agent_output": "--- a/django/core/cache/backends/filebased.py\n+++ ...",
"steps": [
{"tool": "bash", "action": "read_file", "file": "django/core/cache/backends/filebased.py"},
{"tool": "text_editor", "action": "edit", "file": "django/core/cache/backends/filebased.py"}
],
"success": true,
"score": 1.0,
"feedback_detail": "All 24 tests passed"
}Querying Observations
history = EvolutionHistory("./my-workspace")
# All observations from last 3 cycles
recent = history.get_observations(last_n_cycles=3)
# Only failures
failures = history.get_observations(only_failures=True)
# Score curve
scores = history.get_score_curve() # [(1, 0.62), (2, 0.68), ...]FAQ
Can I use A-Evolve with any LLM?
Yes. The agent can use any LLM for solving. The evolver model is configurable via EvolveConfig.evolver_model. Supported providers: Anthropic (direct API), OpenAI, AWS Bedrock, LiteLLM (multi-provider).
Does evolution require training data?
No in the traditional ML sense. You need a BenchmarkAdapter that provides tasks and evaluation, but there are no training/gradient steps. Evolution is purely file-system mutation guided by LLM reasoning.
How many cycles should I run?
Start with 10 cycles and check convergence. If score is still improving, run more. Default convergence detection (egl_threshold=0.05, egl_window=3) stops automatically when improvement plateaus.
Can I resume evolution after stopping?
Yes. The workspace retains its evolved state. Create a new Evolver pointing to the same workspace and call run() again.
Is evolution deterministic?
No. LLM calls are inherently non-deterministic. Running the same config twice may produce different evolved agents with similar final scores.
Can I evolve multiple agents simultaneously?
Yes, but each must have its own workspace directory. The evolution loop modifies workspace files directly, so concurrent access to the same workspace is not safe.
What's the cost per evolution cycle?
Each cycle involves: (batch_size) agent solve calls + 1 evolver call. For batch_size=10 with Claude, expect ~$5-20 per cycle depending on task complexity and model used.
Can I use A-Evolve without a benchmark?
Not directly. The evolution loop requires BenchmarkAdapter.evaluate() to produce Feedback. However, you can implement a custom benchmark that uses human evaluation, LLM-as-judge, or any other scoring mechanism.
Overview (`20-ml-paper-writing/ml-paper-writing/templates/README.md`)
LaTeX Templates for ML/AI Conferences
This directory contains official LaTeX templates for major machine learning and AI conferences.
Systems conference templates (OSDI, NSDI, ASPLOS, SOSP) have moved to the systems-paper-writing skill.
Compiling LaTeX to PDF
Option 1: VS Code with LaTeX Workshop (Recommended)
Setup:
Install TeX Live (full distribution recommended)
- macOS:
brew install --cask mactex - Ubuntu:
sudo apt install texlive-full - Windows: Download from tug.org/texlive
- macOS:
Install VS Code extension: LaTeX Workshop by James Yu
- Open VS Code โ Extensions (Cmd/Ctrl+Shift+X) โ Search "LaTeX Workshop" โ Install
Usage:
- Open any
.texfile in VS Code - Save the file (Cmd/Ctrl+S) โ Auto-compiles to PDF
- Click the green play button or use
Cmd/Ctrl+Alt+Bto build - View PDF: Click "View LaTeX PDF" icon or
Cmd/Ctrl+Alt+V - Side-by-side view:
Cmd/Ctrl+Alt+Vthen drag tab
Settings (add to VS Code settings.json):
{
"latex-workshop.latex.autoBuild.run": "onSave",
"latex-workshop.view.pdf.viewer": "tab",
"latex-workshop.latex.recipes": [
{
"name": "pdflatex โ bibtex โ pdflatex ร 2",
"tools": ["pdflatex", "bibtex", "pdflatex", "pdflatex"]
}
]
}Option 2: Command Line
# Basic compilation
pdflatex main.tex
# With bibliography (full workflow)
pdflatex main.tex
bibtex main
pdflatex main.tex
pdflatex main.tex
# Using latexmk (handles dependencies automatically)
latexmk -pdf main.tex
# Continuous compilation (watches for changes)
latexmk -pdf -pvc main.texOption 3: Overleaf (Online)
- Go to overleaf.com
- New Project โ Upload Project โ Upload the template folder as ZIP
- Edit online with real-time PDF preview
- No local installation needed
Option 4: Other IDEs
| IDE | Extension/Plugin | Notes |
|---|---|---|
| Cursor | LaTeX Workshop | Same as VS Code |
| Sublime Text | LaTeXTools | Popular, well-maintained |
| Vim/Neovim | VimTeX | Powerful, keyboard-driven |
| Emacs | AUCTeX | Comprehensive LaTeX environment |
| TeXstudio | Built-in | Dedicated LaTeX IDE |
| Texmaker | Built-in | Cross-platform LaTeX editor |
Troubleshooting Compilation
"File not found" errors:
# Ensure you're in the template directory
cd templates/icml2026
pdflatex example_paper.texBibliography not appearing:
# Run bibtex after first pdflatex
pdflatex main.tex
bibtex main # Uses main.aux to find citations
pdflatex main.tex # Incorporates bibliography
pdflatex main.tex # Resolves referencesMissing packages:
# TeX Live package manager
tlmgr install <package-name>
# Or install full distribution to avoid thisAvailable Templates
ML/AI Conferences / ML/AI
| Conference | Directory | Year | Source |
|---|---|---|---|
| ICML | icml2026/ |
2026 | Official ICML |
| ICLR | iclr2026/ |
2026 | Official GitHub |
| NeurIPS | neurips2025/ |
2025 | Community template |
| ACL | acl/ |
2025+ | Official ACL |
| AAAI | aaai2026/ |
2026 | AAAI Author Kit |
| COLM | colm2025/ |
2025 | Official COLM |
Systems Conferences
Systems conference templates (OSDI, NSDI, ASPLOS, SOSP) are now in the systems-paper-writing skill.
Usage
ICML 2026
\documentclass{article}
\usepackage{icml2026} % For submission
% \usepackage[accepted]{icml2026} % For camera-ready
\begin{document}
% Your paper content
\end{document}Key files:
icml2026.sty- Style fileicml2026.bst- Bibliography styleexample_paper.tex- Example document
ICLR 2026
\documentclass{article}
\usepackage[submission]{iclr2026_conference} % For submission
% \usepackage[final]{iclr2026_conference} % For camera-ready
\begin{document}
% Your paper content
\end{document}Key files:
iclr2026_conference.sty- Style fileiclr2026_conference.bst- Bibliography styleiclr2026_conference.tex- Example document
ACL Venues (ACL, EMNLP, NAACL)
\documentclass[11pt]{article}
\usepackage[review]{acl} % For review
% \usepackage{acl} % For camera-ready
\begin{document}
% Your paper content
\end{document}Key files:
acl.sty- Style fileacl_natbib.bst- Bibliography styleacl_latex.tex- Example document
AAAI 2026
\documentclass[letterpaper]{article}
\usepackage[submission]{aaai2026} % For submission
% \usepackage{aaai2026} % For camera-ready
\begin{document}
% Your paper content
\end{document}Key files:
aaai2026.sty- Style fileaaai2026.bst- Bibliography style
COLM 2025
\documentclass{article}
\usepackage[submission]{colm2025_conference} % For submission
% \usepackage[final]{colm2025_conference} % For camera-ready
\begin{document}
% Your paper content
\end{document}Key files:
colm2025_conference.sty- Style filecolm2025_conference.bst- Bibliography style
Page Limits Summary
| Conference | Submission | Camera-Ready | Notes |
|---|---|---|---|
| ICML 2026 | 8 pages | 9 pages | +unlimited refs/appendix |
| ICLR 2026 | 9 pages | 10 pages | +unlimited refs/appendix |
| NeurIPS 2025 | 9 pages | 9 pages | +checklist outside limit |
| ACL 2025 | 8 pages (long) | varies | +unlimited refs/appendix |
| AAAI 2026 | 7 pages | 8 pages | +unlimited refs/appendix |
| COLM 2025 | 9 pages | 10 pages | +unlimited refs/appendix |
Systems conferences (OSDI, NSDI, ASPLOS, SOSP): See the systems-paper-writing skill for page limits and templates.
Common Issues
Compilation Errors
- Missing packages: Install full TeX distribution (TeX Live Full or MikTeX)
- Bibliography errors: Use the provided
.bstfile with\bibliographystyle{} - Font warnings: Install
cm-superor use\usepackage{lmodern}
Anonymization
For submission, ensure:
- No author names in
\author{} - No acknowledgments section
- No grant numbers
- Use anonymous repositories
- Cite own work in third person
Common LaTeX Packages
% Recommended packages (check compatibility with venue style)
\usepackage{amsmath,amsthm,amssymb} % Math
\usepackage{graphicx} % Figures
\usepackage{booktabs} % Tables
\usepackage{hyperref} % Links
\usepackage{algorithm,algorithmic} % Algorithms
\usepackage{natbib} % CitationsUpdating Templates
Templates are updated annually. Check official sources before each submission:
ML/AI:
- ICML: https://icml.cc/
- ICLR: https://iclr.cc/
- NeurIPS: https://neurips.cc/
- ACL: https://github.com/acl-org/acl-style-files
- AAAI: https://aaai.org/
- COLM: https://colmweb.org/
Systems: See the systems-paper-writing skill for OSDI, NSDI, ASPLOS, SOSP template sources
Overview (`20-ml-paper-writing/ml-paper-writing/templates/aaai2026/README.md`)
AAAI 2026 ็ปไธLaTeXๆจกๆฟไฝฟ็จ่ฏดๆ / AAAI 2026 Unified LaTeX Template Guide
๐ ้่ฆ่ฏดๆ / Important Notice: ๆฌไปๅบๅๅฉCursorๅจAAAI 2026ๅฎๆนๆจกๆฟๅบ็กไธๆน่ฟๅพๅฐใๅฆๆ้ๅฐไธๆปก่ถณๆๆๅฒ็ช็ๆ ๅต๏ผ่ฏท็งฏๆๆissuesใ
๐ Important Notice: This repository is improved based on the official AAAI 2026 template with the assistance of Cursor. If you encounter any issues or conflicts, please actively submit issues.
๐ ๅจ็บฟๆฅ็ / Online Access
๐ ๅจ็บฟ้ ่ฏปๅๆต่ฏๆจกๆฟ: https://cn.overleaf.com/read/wyhcnvcrtpyt#cd4a07
๐ Online View and Test Template: https://cn.overleaf.com/read/wyhcnvcrtpyt#cd4a07
๐ก ๆ็คบ / Tips:
- ไธญๆ๏ผๆจๅฏไปฅ้่ฟไธ่ฟฐ้พๆฅๅจOverleafไธญ็ดๆฅๆฅ็ใ็ผ่พๅ็ผ่ฏๆจกๆฟ๏ผๆ ้ๆฌๅฐๅฎ่ฃ LaTeX็ฏๅข
- English: You can view, edit, and compile the template directly in Overleaf using the link above, without needing a local LaTeX installation
ไธญๆ็ๆฌ
ๆฆ่ฟฐ โ
ๆๅทฒ็ปๅฐAAAI 2026็ไธคไธช็ๆฌ๏ผๅฟๅๆ็จฟ็ๆฌๅcamera-ready็ๆฌ๏ผๅฎๆดๅๅนถๆไธไธช็ปไธ็ๆจกๆฟๆไปถ aaai2026-unified-template.texใ
่ฏฅๆจกๆฟๅ ๅซไบๅๅงไธคไธชๆจกๆฟ็ๆๆๅฎๆดๅ ๅฎน๏ผๅ ฑ886่ก๏ผๆฏๅๅงๆไปถๆดๅ จ้ข๏ผ๏ผๅ ๆฌ๏ผ
- ๆๆๆ ผๅผๅ่ฏดๆๅ่ฆๆฑ
- ๅฎๆด็็คบไพไปฃ็ ๅ่กจๆ ผ
- ๅพ็ๅค็ๆๅ
- ๅ่ๆ็ฎๆ ผๅผ่ฆๆฑ
- ๆๆ็ซ ่ๅ้ๅฝๅ ๅฎน
- ็ๆฌ็นๅฎ็Acknowledgments้จๅ
ไธป่ฆๅทฎๅผๅๆ
้่ฟๆฏ่พๅๅง็ไธคไธชๆจกๆฟ๏ผๆๅ็ฐไธป่ฆๅทฎๅผๅจไบ๏ผ
1. ๅ ็ๅ ่ฝฝๆนๅผ
- ๅฟๅ็ๆฌ:
\usepackage[submission]{aaai2026} - Camera-ready็ๆฌ:
\usepackage{aaai2026}
2. ๆ ้ขๅทฎๅผ
- ๅฟๅ็ๆฌ: "AAAI Press Anonymous Submission Instructions for Authors Using LaTeX"
- Camera-ready็ๆฌ: "AAAI Press Formatting Instructions for Authors Using LaTeX --- A Guide"
3. Links็ฏๅข็ๅค็
- ๅฟๅ็ๆฌ: Links็ฏๅข่ขซๆณจ้ๆ๏ผ้ฒๆญขๆณ้ฒไฝ่ ่บซไปฝ
- Camera-ready็ๆฌ: Links็ฏๅขๆญฃๅธธๆพ็คบ
4. ๅ ๅฎน้จๅๅทฎๅผ
- ๅฟๅ็ๆฌ: ๅ ๅซ"Preparing an Anonymous Submission"้จๅ็็นๆฎ่ฏดๆ
- Camera-ready็ๆฌ: ๅ ๅซๅฎๆด็ๆ ผๅผ่ฏดๆๅ็ๆไฟกๆฏ
ไพ่ตๆไปถๆฃๆฅ็ปๆ
โ ๅทฒ้ช่ฏๅนถๅคๅถๅฐไธป็ฎๅฝ็ๆไปถ๏ผ
aaai2026.sty- AAAI 2026 ๆ ทๅผๆไปถ๏ผไธคไธช็ๆฌๅฎๅ จ็ธๅ๏ผaaai2026.bst- ๅ่ๆ็ฎๆ ทๅผๆไปถ๏ผไธคไธช็ๆฌๅฎๅ จ็ธๅ๏ผaaai2026.bib- ็คบไพๅ่ๆ็ฎๆไปถfigure1.pdfๅfigure2.pdf- ็คบไพๅพ็ๆไปถ
ๆๆ่ฟไบๆไปถๅจไธคไธช็ๆฌไธญ้ฝๆฏ็ธๅ็๏ผๅ ๆญค็ปไธๆจกๆฟๅฏไปฅๆญฃๅธธๅทฅไฝใ
ๅฆไฝไฝฟ็จ็ปไธๆจกๆฟ
ๅๆขๅฐๅฟๅๆ็จฟ็ๆฌ
ๅจๆจกๆฟๆไปถ็ฌฌ11่ก๏ผๅๆถๆณจ้่ฟไธ่ก๏ผ
\def\aaaianonymous{true}ๅๆขๅฐCamera-ready็ๆฌ
ๅจๆจกๆฟๆไปถ็ฌฌ11่ก๏ผๆณจ้ๆๆๅ ้ค่ฟไธ่ก๏ผ
% \def\aaaianonymous{true}ไธ้ฎๅๆข็ๆ ธๅฟๆบๅถ
็ปไธๆจกๆฟไฝฟ็จไบLaTeX็ๆกไปถ็ผ่ฏๅ่ฝ๏ผ
% ๆกไปถๅ
ๅ ่ฝฝ
\ifdefined\aaaianonymous
\usepackage[submission]{aaai2026} % ๅฟๅ็ๆฌ
\else
\usepackage{aaai2026} % Camera-ready็ๆฌ
\fi
% ๆกไปถๆ ้ข่ฎพ็ฝฎ
\ifdefined\aaaianonymous
\title{AAAI Press Anonymous Submission\\Instructions for Authors Using \LaTeX{}}
\else
\title{AAAI Press Formatting Instructions \\for Authors Using \LaTeX{} --- A Guide}
\fi
% ๆกไปถๅ
ๅฎนๆพ็คบ
\ifdefined\aaaianonymous
% ๅฟๅ็ๆฌ็นๆๅ
ๅฎน
\else
% Camera-ready็ๆฌ็นๆๅ
ๅฎน
\fiๆไปถๆธ ๅ
ไธป็ฎๅฝ็ฐๅจๅ ๅซไปฅไธๆไปถ๏ผ
aaai2026-unified-template.tex- ็ปไธไธป่ฎบๆๆจกๆฟๆไปถaaai2026-unified-supp.tex- ็ปไธ่กฅๅ ๆๆๆจกๆฟๆไปถaaai2026.sty- AAAI 2026 LaTeX ๆ ทๅผๆไปถaaai2026.bst- ๅ่ๆ็ฎๆ ทๅผๆไปถaaai2026.bib- ็คบไพๅ่ๆ็ฎๆไปถfigure1.pdf- ็คบไพๅพ็1figure2.pdf- ็คบไพๅพ็2README.md- ๆฌ่ฏดๆๆๆกฃ
่กฅๅ ๆๆๆจกๆฟ (Supplementary Material Template)
ๆฆ่ฟฐ
aaai2026-unified-supp.tex ๆฏไธ้จไธบAAAI 2026่กฅๅ
ๆๆ่ฎพ่ฎก็็ปไธๆจกๆฟ๏ผไธไธป่ฎบๆๆจกๆฟไฝฟ็จ็ธๅ็็ๆฌๅๆขๆบๅถใ
ไธป่ฆๅ่ฝ
- ็ๆฌๅๆข: ้่ฟไฟฎๆนไธ่กไปฃ็ ๅจๅฟๅๆ็จฟๅcamera-ready็ๆฌ้ดๅๆข
- ่กฅๅ ๅ ๅฎนๆฏๆ: ๆฏๆ้ขๅค็ๅฎ้ชใๆจๅฏผใๆฐๆฎใๅพ่กจใ็ฎๆณ็ญ
- ๆ ผๅผไธ่ดๆง: ไธไธป่ฎบๆๆจกๆฟไฟๆๅฎๅ จไธ่ด็ๆ ผๅผ่ฆๆฑ
- ไปฃ็ ็คบไพ: ๅ ๅซ็ฎๆณใไปฃ็ ๅ่กจ็ญ่กฅๅ ๆๆ็็คบไพ
ไฝฟ็จๆนๆณ
ไธไธป่ฎบๆๆจกๆฟ็ธๅ๏ผๅช้ไฟฎๆน็ฌฌ11่ก๏ผ
% ๅฟๅๆ็จฟ็ๆฌ
\def\aaaianonymous{true}
% Camera-ready็ๆฌ
% \def\aaaianonymous{true}่กฅๅ ๆๆๅ ๅฎนๅปบ่ฎฎ
- ้ขๅค็ๅฎ้ช็ปๆๅๆถ่็ ็ฉถ
- ่ฏฆ็ป็ๆฐๅญฆๆจๅฏผๅ่ฏๆ
- ๆดๅค็ๅพ่กจๅๅฏ่งๅ
- ็ฎๆณไผชไปฃ็ ๅๅฎ็ฐ็ป่
- ๆฐๆฎ้ๆ่ฟฐๅ้ขๅค็ๆญฅ้ชค
- ่ถ ๅๆฐ่ฎพ็ฝฎๅๅฎ้ช้ ็ฝฎ
- ๅคฑ่ดฅๆกไพๅๆ
- ่ฎก็ฎๅคๆๅบฆๅๆ
ไฝฟ็จๆฃๆฅๆธ ๅ (Usage Checklist)
๐ ๆ็จฟๅๆฃๆฅๆธ ๅ (Pre-Submission Checklist)
็ๆฌ่ฎพ็ฝฎ:
- ๅทฒ่ฎพ็ฝฎ
\def\aaaianonymous{true}(ๅฟๅๆ็จฟ) - ๅทฒๆณจ้ๆๆๆๅฏ่ฝๆด้ฒ่บซไปฝ็ไฟกๆฏ
- ๅทฒๅฟๅๅๅ่ๆ็ฎ๏ผ็งป้คไฝ่ ๅงๅ๏ผ
ๅ ๅฎนๅฎๆดๆง:
- ๆ ้ขใๆ่ฆใๅ ณ้ฎ่ฏๅทฒๅกซๅ
- ๆๆ็ซ ่ๅ ๅฎนๅฎๆด
- ๅพ่กจ็ผๅท่ฟ็ปญไธๆญฃ็กฎ
- ๅ่ๆ็ฎๆ ผๅผๆญฃ็กฎ
- ่กฅๅ ๆๆ๏ผๅฆๆ๏ผๅทฒๅๅค
ๆ ผๅผๆฃๆฅ:
- ้กต้ข่พน่ท็ฌฆๅ่ฆๆฑ
- ๅญไฝๅๅญๅทๆญฃ็กฎ
- ่ก้ด่ท็ฌฆๅๆ ๅ
- ๅพ่กจไฝ็ฝฎๅๅคงๅฐๅ้
- ๆฐๅญฆๅ ฌๅผๆ ผๅผๆญฃ็กฎ
ๆๆฏๆฃๆฅ:
- LaTeX็ผ่ฏๆ ้่ฏฏ
- ๅ่ๆ็ฎๆญฃ็กฎ็ๆ
- PDF่พๅบๆญฃๅธธ
- ๆไปถๅคงๅฐๅจ้ๅถ่ๅดๅ
๐ ๅฝ็จๅๆฃๆฅๆธ ๅ (Post-Acceptance Checklist)
็ๆฌๅๆข:
- ๅทฒๆณจ้ๆ
\def\aaaianonymous{true}(camera-ready) - ๅทฒๆทปๅ ๅฎๆด็ไฝ่ ไฟกๆฏ
- ๅทฒๆทปๅ ๆๆไฝ่ ๅไฝไฟกๆฏ
- ๅทฒๆขๅคๆๆ่ขซๆณจ้็ๅ ๅฎน
ๅ ๅฎนๆดๆฐ:
- ๅทฒๆ นๆฎๅฎก็จฟๆ่งไฟฎๆนๅ ๅฎน
- ๅทฒๆดๆฐๆๆๅพ่กจๅๅฎ้ช
- ๅทฒๅฎๅ่กฅๅ ๆๆ
- ๅทฒๆฃๆฅๆๆ้พๆฅๅๅผ็จ
ๆ็ปๆฃๆฅ:
- ๆ็ปPDF่ดจ้ๆฃๆฅ
- ๆๆๆไปถๅทฒๅคไปฝ
- ็ฌฆๅไผ่ฎฎๆ็ปๆไบค่ฆๆฑ
- ่กฅๅ ๆๆๅทฒๅ็ฌๆไบค๏ผๅฆ้่ฆ๏ผ
๐ ่กฅๅ ๆๆๆฃๆฅๆธ ๅ (Supplementary Material Checklist)
ๅ ๅฎน็ป็ป:
- ่กฅๅ ๆๆไธไธป่ฎบๆๅ ๅฎนๅฏนๅบ
- ็ซ ่็ปๆๆธ ๆฐๅ็
- ๅพ่กจ็ผๅทไธไธป่ฎบๆไธๅฒ็ช
- ๅ่ๆ็ฎๆ ผๅผไธ่ด
ๆๆฏ็ป่:
- ็ฎๆณไผชไปฃ็ ๆธ ๆฐๅฎๆด
- ๅฎ้ช่ฎพ็ฝฎ่ฏฆ็ป่ฏดๆ
- ๆฐๆฎ้ขๅค็ๆญฅ้ชคๆ็กฎ
- ่ถ ๅๆฐ้ ็ฝฎๅฎๆด
ๆ ผๅผ่ฆๆฑ:
- ไฝฟ็จ็ปไธ็suppๆจกๆฟ
- ้กต้ข่ฎพ็ฝฎไธไธป่ฎบๆไธ่ด
- ๅญไฝๅๆ ผๅผ็ฌฆๅ่ฆๆฑ
- ๆไปถๅคงๅฐๅจ้ๅถ่ๅดๅ
ๅฎ้ ไฝฟ็จๅปบ่ฎฎ
ๆ็จฟ้ถๆฎต:
- ๅๆถๆณจ้
\def\aaaianonymous{true} - ็กฎไฟไธๅ ๅซไปปไฝๅฏ่ฝๆด้ฒ่บซไปฝ็ไฟกๆฏ
- ๆฃๆฅๅ่ๆ็ฎๆฏๅฆๅทฒๅฟๅๅ
- ๅๆถๆณจ้
ๅฝ็จๅๅๅคfinal็ๆฌ:
- ๆณจ้ๆๆๅ ้ค
\def\aaaianonymous{true}่ฟไธ่ก - ๆทปๅ ๅฎๆด็ไฝ่ ไฟกๆฏๅaffiliations
- ๅๆถๆณจ้links็ฏๅข๏ผๅฆๆ้่ฆ๏ผ
- ๆณจ้ๆๆๅ ้ค
็ผ่ฏๆต่ฏ:
- ๅๅซๅจไธค็งๆจกๅผไธ็ผ่ฏ๏ผ็กฎไฟ้ฝ่ฝๆญฃๅธธๅทฅไฝ
- ๆฃๆฅ่พๅบ็PDFๆฏๅฆ็ฌฆๅ่ฆๆฑ
- ้ช่ฏๅ่ๆ็ฎๆ ผๅผๆฏๅฆๆญฃ็กฎ
ไพ่ตๆไปถ็กฎ่ฎค:
- ็กฎไฟๆๆไพ่ตๆไปถ้ฝๅจๅไธ็ฎๅฝไธ
- ๅฆๆ็งปๅจๆจกๆฟๆไปถ๏ผ่ฎฐๅพๅๆถ็งปๅจไพ่ตๆไปถ
้่ฆๆณจๆไบ้กน
โ ๏ธ ๅ ณไบBibliography Style:
aaai2026.styๆไปถๅทฒ็ป่ชๅจ่ฎพ็ฝฎไบ\bibliographystyle{aaai2026}- ไธ่ฆๅจๆๆกฃไธญๅๆฌกๆทปๅ
\bibliographystyle{aaai2026}ๅฝไปค - ๅฆๅไผๅบ็ฐ"
Illegal, another \bibstyle command"้่ฏฏ - ๅช้่ฆไฝฟ็จ
\bibliography{aaai2026}ๅฝไปคๅณๅฏ
็ผ่ฏๅฝไปค็คบไพ
# ็ผ่ฏLaTeXๆๆกฃ
pdflatex aaai2026-unified-template.tex
bibtex aaai2026-unified-template
pdflatex aaai2026-unified-template.tex
pdflatex aaai2026-unified-template.texๅธธ่ง้ฎ้ข่งฃๅณ
1. "Illegal, another \bibstyle command"้่ฏฏ
ๅๅ : ้ๅค่ฎพ็ฝฎไบbibliography style
่งฃๅณๆนๆก: ๅ ้คๆๆกฃไธญ็\bibliographystyle{aaai2026}ๅฝไปค๏ผaaai2026.styไผ่ชๅจๅค็
2. ๅ่ๆ็ฎๆ ผๅผไธๆญฃ็กฎ
ๅๅ : ๅฏ่ฝ็ผบๅฐnatbibๅ
ๆ่
BibTeXๆไปถ้ฎ้ข
่งฃๅณๆนๆก: ็กฎไฟๆ็
งๆ ๅ็LaTeX็ผ่ฏๆต็จ๏ผpdflatex โ bibtex โ pdflatex โ pdflatex
English Version
Overview โ
I have completely merged the two AAAI 2026 versions (anonymous submission and camera-ready) into a single unified template file aaai2026-unified-template.tex.
This template contains all complete content from both original templates (886 lines total, more comprehensive than the original files), including:
- All formatting instructions and requirements
- Complete example codes and tables
- Image processing guidelines
- Reference formatting requirements
- All sections and appendix content
- Version-specific Acknowledgments sections
Key Differences Analysis
By comparing the two original templates, the main differences are:
1. Package Loading Method
- Anonymous version:
\usepackage[submission]{aaai2026} - Camera-ready version:
\usepackage{aaai2026}
2. Title Differences
- Anonymous version: "AAAI Press Anonymous Submission Instructions for Authors Using LaTeX"
- Camera-ready version: "AAAI Press Formatting Instructions for Authors Using LaTeX --- A Guide"
3. Links Environment Handling
- Anonymous version: Links environment commented out to prevent identity disclosure
- Camera-ready version: Links environment displayed normally
4. Content Section Differences
- Anonymous version: Contains special instructions in "Preparing an Anonymous Submission" section
- Camera-ready version: Contains complete formatting instructions and copyright information
Dependency Files Verification
โ Files verified and copied to main directory:
aaai2026.sty- AAAI 2026 style file (identical in both versions)aaai2026.bst- Bibliography style file (identical in both versions)aaai2026.bib- Sample bibliography filefigure1.pdfandfigure2.pdf- Sample image files
All these files are identical in both versions, so the unified template works properly.
How to Use the Unified Template
Switch to Anonymous Submission Version
On line 11 of the template file, uncomment this line:
\def\aaaianonymous{true}Switch to Camera-ready Version
On line 11 of the template file, comment out or delete this line:
% \def\aaaianonymous{true}Core Mechanism of One-Click Switching
The unified template uses LaTeX conditional compilation:
% Conditional package loading
\ifdefined\aaaianonymous
\usepackage[submission]{aaai2026} % Anonymous version
\else
\usepackage{aaai2026} % Camera-ready version
\fi
% Conditional title setting
\ifdefined\aaaianonymous
\title{AAAI Press Anonymous Submission\\Instructions for Authors Using \LaTeX{}}
\else
\title{AAAI Press Formatting Instructions \\for Authors Using \LaTeX{} --- A Guide}
\fi
% Conditional content display
\ifdefined\aaaianonymous
% Anonymous version specific content
\else
% Camera-ready version specific content
\fiFile List
The main directory now contains the following files:
aaai2026-unified-template.tex- Unified main paper template fileaaai2026-unified-supp.tex- Unified supplementary material template fileaaai2026.sty- AAAI 2026 LaTeX style fileaaai2026.bst- Bibliography style fileaaai2026.bib- Sample bibliography filefigure1.pdf- Sample image 1figure2.pdf- Sample image 2README.md- This documentation
Supplementary Material Template
Overview
aaai2026-unified-supp.tex is a unified template specifically designed for AAAI 2026 supplementary materials, using the same version switching mechanism as the main paper template.
Key Features
- Version Switching: Switch between anonymous submission and camera-ready versions by modifying one line of code
- Supplementary Content Support: Supports additional experiments, derivations, data, figures, algorithms, etc.
- Format Consistency: Maintains complete format consistency with the main paper template
- Code Examples: Includes examples for algorithms, code listings, and other supplementary materials
Usage
Same as the main paper template, just modify line 11:
% Anonymous submission version
\def\aaaianonymous{true}
% Camera-ready version
% \def\aaaianonymous{true}Supplementary Material Content Suggestions
- Additional experimental results and ablation studies
- Detailed mathematical derivations and proofs
- More figures and visualizations
- Algorithm pseudocode and implementation details
- Dataset descriptions and preprocessing steps
- Hyperparameter settings and experimental configurations
- Failure case analysis
- Computational complexity analysis
Usage Checklist
๐ Pre-Submission Checklist
Version Setup:
- Set
\def\aaaianonymous{true}(anonymous submission) - Commented out all information that could reveal identity
- Anonymized references (removed author names)
Content Completeness:
- Title, abstract, and keywords filled
- All sections complete
- Figure and table numbers consecutive and correct
- Reference format correct
- Supplementary materials prepared (if any)
Format Check:
- Page margins meet requirements
- Font and font size correct
- Line spacing meets standards
- Figure and table positions and sizes appropriate
- Mathematical formula format correct
Technical Check:
- LaTeX compilation error-free
- References generated correctly
- PDF output normal
- File size within limits
๐ Post-Acceptance Checklist
Version Switch:
- Commented out
\def\aaaianonymous{true}(camera-ready) - Added complete author information
- Added all author affiliation information
- Restored all commented content
Content Updates:
- Modified content according to reviewer comments
- Updated all figures and experiments
- Completed supplementary materials
- Checked all links and citations
Final Check:
- Final PDF quality check
- All files backed up
- Meets conference final submission requirements
- Supplementary materials submitted separately (if needed)
๐ Supplementary Material Checklist
Content Organization:
- Supplementary materials correspond to main paper content
- Chapter structure clear and reasonable
- Figure and table numbers don't conflict with main paper
- Reference format consistent
Technical Details:
- Algorithm pseudocode clear and complete
- Experimental setup explained in detail
- Data preprocessing steps clear
- Hyperparameter configuration complete
Format Requirements:
- Using unified supp template
- Page settings consistent with main paper
- Font and format meet requirements
- File size within limits
Practical Usage Recommendations
Submission Stage:
- Uncomment
\def\aaaianonymous{true} - Ensure no information that could reveal identity is included
- Check that references are anonymized
- Uncomment
Preparing final version after acceptance:
- Comment out or delete the
\def\aaaianonymous{true}line - Add complete author information and affiliations
- Uncomment links environment (if needed)
- Comment out or delete the
Compilation Testing:
- Compile in both modes to ensure proper functionality
- Check if the output PDF meets requirements
- Verify reference formatting is correct
Dependency File Confirmation:
- Ensure all dependency files are in the same directory
- Remember to move dependency files when moving the template file
Important Notes
โ ๏ธ About Bibliography Style:
- The
aaai2026.styfile automatically sets\bibliographystyle{aaai2026} - Do NOT add
\bibliographystyle{aaai2026}command again in your document - Otherwise you'll get "
Illegal, another \bibstyle command" error - Just use the
\bibliography{aaai2026}command
Compilation Commands Example
# Compile LaTeX document
pdflatex aaai2026-unified-template.tex
bibtex aaai2026-unified-template
pdflatex aaai2026-unified-template.tex
pdflatex aaai2026-unified-template.texCommon Issues and Solutions
1. "Illegal, another \bibstyle command" Error
Cause: Duplicate bibliography style setting
Solution: Remove the \bibliographystyle{aaai2026} command from your document, aaai2026.sty handles it automatically
2. Incorrect Reference Format
Cause: Missing natbib package or BibTeX file issues
Solution: Follow the standard LaTeX compilation process: pdflatex โ bibtex โ pdflatex โ pdflatex
็ๆฌไฟกๆฏ / Version Information
- ๆจกๆฟ็ๆฌ / Template Version: AAAI 2026 Unified (Main + Supplementary)
- ๅๅปบๆฅๆ / Created: 2024ๅนด12ๆ
- ๆฏๆๆ ผๅผ / Supported Formats: Anonymous Submission & Camera-Ready
- ๆจกๆฟ็ฑปๅ / Template Types: Main Paper Template & Supplementary Material Template
- ๅ ผๅฎนๆง / Compatibility: LaTeX 2020+ / TeXLive 2024+
๐ ็ฐๅจๆจๅช้่ฆไฟฎๆนไธ่กไปฃ็ ๅฐฑๅฏไปฅๅจไธคไธช็ๆฌไน้ดๅๆข๏ผๅๆถๆๆๅฟ
่ฆ็ไพ่ตๆไปถ้ฝๅทฒ็ปๅๅคๅฐฑ็ปช๏ผ
๐ Now you only need to modify one line of code to switch between the two versions, with all necessary dependency files ready to use!
Overview (`20-ml-paper-writing/ml-paper-writing/templates/acl/README.md`)
*ACL Paper Styles
This directory contains the latest LaTeX templates for *ACL conferences.
Instructions for authors
Paper submissions to *ACL conferences must use the official ACL style
templates.
The LaTeX style files are available
- as an Overleaf template
- in this repository
- as a .zip file
Please see acl_latex.tex for an example.
Please follow the paper formatting guidelines general to *ACL
conferences:
Authors may not modify these style files or use templates designed for
other conferences.
Instructions for publications chairs
To adapt the style files for your conference, please fork this repository and
make necessary changes. Minimally, you'll need to update the name of
the conference and rename the files.
If you make improvements to the templates that should be propagated to
future conferences, please submit a pull request. Thank you in
advance!
In older versions of the templates, authors were asked to fill in the
START submission ID so that it would be stamped at the top of each
page of the anonymized version. This is no longer needed, because it
is now possible to do this stamping automatically within
START. Currently, the way to do this is for the program chair to email
[email protected] and request it.
Instructions for making changes to style files
- merge pull request in github, or push to github
- git pull from github to a local repository
- then, git push from your local repository to overleaf project
- Overleaf project is https://www.overleaf.com/project/5f64f1fb97c4c50001b60549
- Overleaf git url is https://git.overleaf.com/5f64f1fb97c4c50001b60549
- then, click "Submit" and then "Submit as Template" in overleaf in order to ask overleaf to update the overleaf template from the overleaf project
Overview (`20-ml-paper-writing/ml-paper-writing/templates/colm2025/README.md`)
Template
Template and style files for CoLM 2025
ROADMAP (`docs/ROADMAP.md`)
๐บ๏ธ Roadmap
Vision
Build the most comprehensive open-source library of AI research skills, enabling AI agents to autonomously conduct experiments from hypothesis to deployment.
Target: 86 comprehensive skills โ achieved โ
Progress Overview
| Metric | Current | Target |
|---|---|---|
| Skills | 86 (high-quality, standardized YAML) | 86 โ |
| Avg Lines/Skill | 420 lines (focused + progressive disclosure) | 200-500 lines |
| Documentation | ~130,000 lines total (SKILL.md + references) | 100,000+ lines |
| Gold Standard Skills | 65 with comprehensive references | 50+ โ |
| Coverage | Autoresearch, Ideation, Paper Writing, Architecture, Tokenization, Fine-Tuning, Data Processing, Post-Training, Safety, Distributed, Infrastructure, Optimization, Evaluation, Inference, Agents, RAG, Multimodal, MLOps, Observability, Prompt Engineering, Emerging Techniques | Full Lifecycle โ |
Development Phases
โ Phase 1: Model Architecture (COMPLETE - 5 skills)
Status: Core model architectures covered
Completed Skills:
- โ Megatron-Core - NVIDIA's framework for training 2B-462B param models
- โ LitGPT - Lightning AI's 20+ clean LLM implementations
- โ Mamba - State-space models with O(n) complexity
- โ RWKV - RNN+Transformer hybrid, infinite context
- โ NanoGPT - Educational GPT in ~300 lines by Karpathy
โ Phase 2: Tokenization (COMPLETE - 2 skills)
Status: Essential tokenization frameworks covered
Completed Skills:
- โ HuggingFace Tokenizers - Rust-based, BPE/WordPiece/Unigram
- โ SentencePiece - Language-independent tokenization
โ Phase 3: Fine-Tuning (COMPLETE - 4 skills)
Status: Core fine-tuning frameworks covered
Completed Skills:
- โ Axolotl - YAML-based fine-tuning with 100+ models
- โ LLaMA-Factory - WebUI no-code fine-tuning
- โ Unsloth - 2x faster QLoRA fine-tuning
- โ PEFT - Parameter-efficient fine-tuning with LoRA, QLoRA, DoRA, 25+ methods
โ Phase 4: Data Processing (COMPLETE - 2 skills)
Status: Distributed data processing covered
Completed Skills:
- โ Ray Data - Distributed ML data processing
- โ NeMo Curator - GPU-accelerated data curation
โ Phase 5: Post-Training (COMPLETE - 4 skills)
Status: RLHF and alignment techniques covered
Completed Skills:
- โ TRL Fine-Tuning - Transformer Reinforcement Learning
- โ GRPO-RL-Training - Group Relative Policy Optimization (gold standard)
- โ OpenRLHF - Full RLHF pipeline with Ray + vLLM
- โ SimPO - Simple Preference Optimization
โ Phase 6: Safety & Alignment (COMPLETE - 4 skills)
Status: Core safety frameworks covered
Completed Skills:
- โ Constitutional AI - AI-driven self-improvement via principles
- โ LlamaGuard - Safety classifier for LLM inputs/outputs
- โ NeMo Guardrails - Programmable guardrails with Colang
- โ Prompt Guard - Meta's 86M prompt injection & jailbreak detector
โ Phase 7: Distributed Training (COMPLETE - 5 skills)
Status: Major distributed training frameworks covered
Completed Skills:
- โ DeepSpeed - Microsoft's ZeRO optimization
- โ PyTorch FSDP - Fully Sharded Data Parallel
- โ Accelerate - HuggingFace's distributed training API
- โ PyTorch Lightning - High-level training framework
- โ Ray Train - Multi-node orchestration
โ Phase 8: Optimization (COMPLETE - 6 skills)
Status: Core optimization techniques covered
Completed Skills:
- โ Flash Attention - 2-4x faster attention with memory efficiency
- โ bitsandbytes - 8-bit/4-bit quantization
- โ GPTQ - 4-bit post-training quantization
- โ AWQ - Activation-aware weight quantization
- โ HQQ - Half-Quadratic Quantization without calibration data
- โ GGUF - llama.cpp quantization format for CPU/Metal inference
โ Phase 9: Evaluation (COMPLETE - 1 skill)
Status: Standard benchmarking framework available
Completed Skills:
- โ lm-evaluation-harness - EleutherAI's standard for benchmarking LLMs
โ Phase 10: Inference & Serving (COMPLETE - 4 skills)
Status: Production inference frameworks covered
Completed Skills:
- โ vLLM - High-throughput LLM serving with PagedAttention
- โ TensorRT-LLM - NVIDIA's fastest inference
- โ llama.cpp - CPU/Apple Silicon inference
- โ SGLang - Structured generation with RadixAttention
โ Phase 10.5: Infrastructure (COMPLETE - 3 skills)
Status: Cloud infrastructure and orchestration covered
Completed Skills:
- โ Modal - Serverless GPU cloud with Python-native API, T4-H200 on-demand
- โ SkyPilot - Multi-cloud orchestration across 20+ providers with spot recovery
- โ Lambda Labs - Reserved/on-demand GPU cloud with H100/A100, persistent filesystems
โ Phase 11: Agents (COMPLETE - 4 skills)
Status: Major agent frameworks covered
Completed Skills:
- โ LangChain - Most popular agent framework, 500+ integrations
- โ LlamaIndex - Data framework for LLM apps, 300+ connectors
- โ CrewAI - Multi-agent orchestration with role-based collaboration
- โ AutoGPT - Autonomous AI agent platform with visual workflow builder
โ Phase 12: RAG (COMPLETE - 5 skills)
Status: Core RAG and vector database skills covered
Completed Skills:
- โ Chroma - Open-source embedding database
- โ FAISS - Facebook's similarity search, billion-scale
- โ Sentence Transformers - 5000+ embedding models
- โ Pinecone - Managed vector database
- โ Qdrant - High-performance Rust vector search with hybrid filtering
โ Phase 13: Multimodal (COMPLETE - 7 skills)
Status: Comprehensive multimodal frameworks covered
Completed Skills:
- โ CLIP - OpenAI's vision-language model
- โ Whisper - Robust speech recognition, 99 languages
- โ LLaVA - Vision-language assistant, GPT-4V level
- โ Stable Diffusion - Text-to-image generation via HuggingFace Diffusers
- โ Segment Anything (SAM) - Meta's zero-shot image segmentation with points/boxes/masks
- โ BLIP-2 - Vision-language pretraining with Q-Former, image captioning, VQA
- โ AudioCraft - Meta's MusicGen/AudioGen for text-to-music and text-to-sound
โ Phase 14: Advanced Optimization (COMPLETE)
Status: Advanced optimization techniques covered (merged into Phase 8)
Note: HQQ and GGUF skills have been completed and merged into Phase 8: Optimization.
โ Phase 15: MLOps & Observability (COMPLETE - 5 skills)
Status: Core MLOps and LLM observability covered
Completed Skills:
- โ MLflow - Open-source MLOps platform for tracking experiments
- โ TensorBoard - Visualization and experiment tracking
- โ Weights & Biases - Experiment tracking and collaboration
- โ LangSmith - LLM observability, tracing, evaluation
- โ Phoenix - Open-source AI observability with OpenTelemetry tracing
โ Phase 16: Prompt Engineering & Advanced Applications (COMPLETE - 6 skills)
Status: Core prompt engineering and multi-agent tools covered
Completed Skills:
- โ DSPy - Declarative prompt optimization and LM programming
- โ Guidance - Constrained generation and structured prompting
- โ Instructor - Structured output with Pydantic models
- โ Outlines - Structured text generation with regex and grammars
- โ CrewAI - Multi-agent orchestration (completed in Phase 11)
- โ AutoGPT - Autonomous agents (completed in Phase 11)
โ Phase 17: Extended Multimodal (COMPLETE)
Status: All extended multimodal skills complete, merged into Phase 13
Note: BLIP-2, SAM, and AudioCraft have been completed and merged into Phase 13: Multimodal.
โ Phase 18: Emerging Techniques (COMPLETE - 6 skills)
Status: Core emerging techniques covered
Completed Skills:
- โ MoE Training - Mixture of Experts with DeepSpeed/HuggingFace
- โ Model Merging - mergekit, SLERP, and model composition
- โ Long Context - RoPE extensions, ALiBi, and context scaling
- โ Speculative Decoding - Medusa, Lookahead, and draft models for faster inference
- โ Knowledge Distillation - MiniLLM, reverse KLD, teacher-student training
- โ Model Pruning - Wanda, SparseGPT, and structured pruning
Contributing to the Roadmap
Want to help us achieve these goals?
- Pick a skill from the roadmap - Comment on GitHub Discussions to claim it
- Follow the contribution guide - Use our template and quality standards
- Submit your PR - We review within 48 hours
๐ Roadmap Complete!
All 70 skills have been completed! The library now covers the full AI research lifecycle:
- โ Phase 1-10: Core ML infrastructure (Architecture, Tokenization, Fine-Tuning, Data Processing, Post-Training, Safety, Distributed Training, Optimization, Evaluation, Inference)
- โ Phase 10.5: Infrastructure (Modal, SkyPilot, Lambda Labs)
- โ Phase 11-12: Applications (Agents, RAG)
- โ Phase 13: Multimodal (CLIP, Whisper, LLaVA, Stable Diffusion, SAM, BLIP-2, AudioCraft)
- โ Phase 14-16: Advanced (Optimization, MLOps & Observability, Prompt Engineering)
- โ Phase 17-18: Extended (Extended Multimodal, Emerging Techniques)
Future Directions
While the 70-skill roadmap is complete, the library will continue to evolve with:
- Updates: Keeping existing skills current with latest versions
- Community contributions: Additional skills from contributors
- Emerging tools: New frameworks and techniques as they mature
Philosophy
Quality over Quantity: Each skill must provide real value with comprehensive guidance, not just links to docs. We aim for 300+ lines of expert-level content per skill, with real code examples, troubleshooting guides, and production-ready workflows.
SKILL CREATION GUIDE (`docs/SKILL_CREATION_GUIDE.md`)
Skill Creation Guide
Based on: Anthropic Official Best Practices
Last Updated: November 6, 2025
Core Principles (from Anthropic)
1. Concise is Key
The context window is a public good. Your skill shares it with system prompts, conversation history, and other skills.
Default assumption: Claude is already smart
Only add context Claude doesn't already have. Challenge each piece of information:
- "Does Claude really need this explanation?"
- "Can I assume Claude knows this?"
- "Does this paragraph justify its token cost?"
Good (50 tokens):
## Extract PDF text
Use pdfplumber for text extraction:
```python
import pdfplumber
with pdfplumber.open("file.pdf") as pdf:
text = pdf.pages[0].extract_text()**Bad** (150 tokens):
```markdown
## Extract PDF text
PDF (Portable Document Format) files are a common file format that contains
text, images, and other content. To extract text from a PDF, you'll need to
use a library. There are many libraries available for PDF processing, but we
recommend pdfplumber because it's easy to use and handles most cases well.
First, you'll need to install it using pip. Then you can use the code below...2. Progressive Disclosure
SKILL.md serves as an overview that points Claude to detailed materials as needed.
- Keep SKILL.md body under 500 lines for optimal performance
- Aim for 200-300 lines in practice
- Split content into separate reference files
- Keep references ONE LEVEL DEEP from SKILL.md (no nested references)
Structure:
skill-name/
โโโ SKILL.md # Main overview (200-300 lines)
โโโ server-deployment.md # Specific topic (loaded as needed)
โโโ offline-inference.md # Another topic (loaded as needed)
โโโ optimization.md # Advanced topic (loaded as needed)
โโโ scripts/
โโโ validate.py # Utility script (executed, not loaded)
โโโ helper.py # Another script3. Use Workflows with Checklists
For multi-step tasks, provide copy-paste checklists:
## Deployment workflow
Copy this checklist and track progress:Task Progress:
- Step 1: Configure server settings
- Step 2: Validate configuration
- Step 3: Deploy to production
- Step 4: Verify deployment
**Step 1: Configure server settings**
Edit `config.yaml` with production values.
**Step 2: Validate configuration**
Run validator and fix errors:
```bash
python validate.py config.yaml
# If errors: fix โ validate again โ continueStep 3: Deploy to production
[Specific deployment command]
Step 4: Verify deployment
[Verification steps]
### 4. Feedback Loops for Quality
**Common pattern**: Run validator โ fix errors โ repeat
```markdown
## Document editing process
1. Make your edits to `document.xml`
2. **Validate immediately**: `python validate.py document.xml`
3. If validation fails:
- Review the error message carefully
- Fix the issues
- Run validation again
4. **Only proceed when validation passes**
5. Export final documentYAML Frontmatter Requirements
All SKILL.md files must include properly formatted YAML frontmatter with the following fields:
---
name: skill-name-here
description: Third-person description of what this does and when to use it. Include key terms and triggers. Maximum 1024 characters.
version: 1.0.0
author: Orchestra Research
license: MIT
tags: [Tag One, Tag Two, Tag Three]
dependencies: [package1>=1.0.0, package2>=2.0.0]
---Field Requirements
| Field | Required | Format | Notes |
|---|---|---|---|
name |
โ Yes | kebab-case | No quotes, lowercase with hyphens |
description |
โ Yes | Plain text | No quotes, concise explanation |
version |
โ Yes | Semantic version | Format: MAJOR.MINOR.PATCH |
author |
โ Yes | Plain text | Use "Orchestra Research" |
license |
โ Yes | License identifier | Typically MIT |
tags |
โ Yes | Array | Capitalized words, no quotes |
dependencies |
โ ๏ธ Optional | Array | Include version constraints |
name field:
- Maximum 64 characters
- Lowercase letters, numbers, hyphens only
- No XML tags
- No reserved words: "anthropic", "claude"
- Recommended: Use gerund form (e.g.,
serving-llms,processing-pdfs,analyzing-data)
description field:
- Maximum 1024 characters
- Non-empty
- No XML tags
- No quotes around the text
- MUST be third person: "Processes files..." not "I can help you..."
- Include what it does AND when to use it
- Include key terms for discovery
tags field:
- Use Title Case for all tags (capitalize first letter of each word)
- Keep acronyms UPPERCASE (e.g.,
GRPO,TRL,RLHF,DPO,MLOps,RAG) - Use descriptive, searchable terms
- Include 5-10 relevant tags
- No quotes around tags
dependencies field:
- Only include direct dependencies needed to use the skill
- Include minimum version constraints using
>= - No quotes around package names
- List core packages first, optional packages last
Examples:
โ Good:
---
name: serving-llms
description: Serves LLMs with high throughput using vLLM's PagedAttention and continuous batching. Use when deploying production LLM APIs, optimizing inference latency, or serving models with limited GPU memory.
version: 1.0.0
author: Orchestra Research
license: MIT
tags: [Inference, Serving, vLLM, PagedAttention, Production Deployment, High Throughput]
dependencies: [vllm>=0.2.0, torch>=2.0.0, transformers>=4.35.0]
---โ Good:
---
name: processing-pdfs
description: Extracts text and tables from PDF files, fills forms, merges documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
version: 1.0.0
author: Orchestra Research
license: MIT
tags: [PDF Processing, Text Extraction, Document Processing, Forms]
dependencies: [pdfplumber>=0.9.0, PyPDF2>=3.0.0]
---โ Bad (quotes and missing fields):
---
name: "skill-name"
description: "I can help you process PDF files"
---โ Bad (first person, vague):
---
name: docs-helper
description: Helps with documents
version: 1.0.0
author: Orchestra Research
license: MIT
tags: [documents]
---Skill Structure Best Practices
File Organization
Simple skill (just SKILL.md):
skill-name/
โโโ SKILL.mdComplex skill (with references):
skill-name/
โโโ SKILL.md # Overview, points to references
โโโ server-deployment.md # Topic-specific guide
โโโ offline-inference.md # Another topic
โโโ optimization.md # Advanced features
โโโ troubleshooting.md # Common issues
โโโ scripts/
โโโ validate.py # Utility script
โโโ setup.sh # Setup scriptDomain-specific organization (for Skills with multiple domains):
bigquery-skill/
โโโ SKILL.md # Overview and navigation
โโโ reference/
โโโ finance.md # Revenue, billing metrics
โโโ sales.md # Opportunities, pipeline
โโโ product.md # API usage, features
โโโ marketing.md # Campaigns, attributionReference Files
One level deep: All reference files should link directly from SKILL.md
โ Good:
# SKILL.md
**Server deployment**: See [server-deployment.md](server-deployment.md)
**Offline inference**: See [offline-inference.md](offline-inference.md)
**API reference**: See [api-reference.md](api-reference.md)โ Bad (nested references):
# SKILL.md
See [advanced.md](advanced.md)...
# advanced.md
See [details.md](details.md)...
# details.md
Here's the actual information...Table of contents: For reference files >100 lines, include table of contents at top
# API Reference
## Contents
- Authentication and setup
- Core methods (create, read, update, delete)
- Advanced features (batch operations, webhooks)
- Error handling patterns
- Code examples
## Authentication and setup
...Content Guidelines
Assume Claude is Smart
Don't explain basics. Assume Claude knows:
- What PDFs are
- How libraries work
- What APIs are
- Common programming concepts
- Standard ML/AI terminology
Only explain:
- Domain-specific concepts unique to this tool
- Non-obvious gotchas
- Best practices from community experience
Consistent Terminology
Choose one term and use it throughout:
โ Good:
- Always "API endpoint"
- Always "field"
- Always "extract"
โ Bad:
- Mix "API endpoint", "URL", "API route", "path"
- Mix "field", "box", "element", "control"
- Mix "extract", "pull", "get", "retrieve"
Avoid Time-Sensitive Information
โ Bad:
If you're doing this before August 2025, use the old API.
After August 2025, use the new API.โ Good:
## Current method
Use the v2 API endpoint: `api.example.com/v2/messages`
## Old patterns
<details>
<summary>Legacy v1 API (deprecated 2025-08)</summary>
The v1 API used: `api.example.com/v1/messages`
This endpoint is no longer supported.
</details>Provide Examples (Input/Output Pairs)
For skills where output quality depends on seeing examples:
## Commit message format
Generate commit messages following these examples:
**Example 1:**
Input: Added user authentication with JWT tokens
Output:feat(auth): implement JWT-based authentication
Add login endpoint and token validation middleware
**Example 2:**
Input: Fixed bug where dates displayed incorrectly in reports
Output:fix(reports): correct date formatting in timezone conversion
Use UTC timestamps consistently across report generation
Follow this style: type(scope): brief description, then detailed explanation.Common Patterns
Template Pattern
Provide templates for output format. Match strictness to needs.
For strict requirements:
## Report structure
ALWAYS use this exact template structure:
```markdown
# [Analysis Title]
## Executive summary
[One-paragraph overview of key findings]
## Key findings
- Finding 1 with supporting data
- Finding 2 with supporting data
- Finding 3 with supporting data
## Recommendations
1. Specific actionable recommendation
2. Specific actionable recommendation
```For flexible guidance:
## Report structure
Here is a sensible default format, but use your best judgment:
```markdown
# [Analysis Title]
## Executive summary
[Overview]
## Key findings
[Adapt sections based on what you discover]
## Recommendations
[Tailor to the specific context]
```
Adjust sections as needed for the specific analysis type.Conditional Workflow Pattern
Guide Claude through decision points:
## Document modification workflow
1. Determine the modification type:
**Creating new content?** โ Follow "Creation workflow" below
**Editing existing content?** โ Follow "Editing workflow" below
2. Creation workflow:
- Use docx-js library
- Build document from scratch
- Export to .docx format
3. Editing workflow:
- Unpack existing document
- Modify XML directly
- Validate after each change
- Repack when completeAnti-Patterns to Avoid
โ Windows-Style Paths
Always use forward slashes:
โ
Good: scripts/helper.py, reference/guide.md
โ Bad: scripts\helper.py, reference\guide.md
โ Too Many Options
Don't present multiple approaches unless necessary:
โ Bad:
"You can use pypdf, or pdfplumber, or PyMuPDF, or pdf2image, or..."
โ
Good:
"Use pdfplumber for text extraction:
import pdfplumberFor scanned PDFs requiring OCR, use pdf2image with pytesseract instead."
โ Nested References
โ Bad: SKILL.md โ advanced.md โ details.md โ actual info
โ
Good: SKILL.md โ [topic].md (all references one level deep)
โ Over-Explaining Basics
โ Bad (150 tokens):
"PDF files are a common format. They contain text and images. To process them, you need a library. Python has many PDF libraries. We recommend pdfplumber because..."
โ
Good (30 tokens):
"Use pdfplumber for PDF text extraction:
import pdfplumber
with pdfplumber.open("file.pdf") as pdf:
text = pdf.pages[0].extract_text()
```"
---
## Quality Checklist
Before submitting a skill:
### Core Quality
- [ ] Description is specific and includes key terms
- [ ] Description includes both what it does and when to use it
- [ ] SKILL.md body is under 500 lines (aim for 200-300)
- [ ] Additional details in separate files (if needed)
- [ ] No time-sensitive information (or in "old patterns" section)
- [ ] Consistent terminology throughout
- [ ] Examples are concrete, not abstract
- [ ] File references are one level deep
- [ ] Progressive disclosure used appropriately
- [ ] Workflows have clear steps with checklists
### Code and Scripts
- [ ] Scripts solve problems rather than punt to Claude
- [ ] Error handling is explicit and helpful
- [ ] No "magic numbers" (all values justified)
- [ ] Required packages listed in instructions
- [ ] No Windows-style paths (all forward slashes)
- [ ] Validation/verification steps for critical operations
- [ ] Feedback loops included for quality-critical tasks
### Content Quality
- [ ] Assumes Claude is smart (no over-explaining basics)
- [ ] Third person description
- [ ] Gerund naming (e.g., "serving-llms" not "llm-server")
- [ ] Clear when to use vs alternatives
- [ ] Concrete examples with input/output pairs
- [ ] Troubleshooting section with common issues
---
## Recommended Process
### 1. Research Phase
- Read official documentation thoroughly
- Analyze real-world usage (blog posts, Stack Overflow, GitHub issues)
- Identify key concepts and common gotchas
- Find production code examples
### 2. Outline Phase
Create structure outline:
1. Quick start (20-30 lines)
2. Common workflows with checklists (80-120 lines)
3. When to use vs alternatives (20-30 lines)
4. Common issues (30-50 lines)
5. Advanced topics with links to reference files (10-20 lines)
**Target**: 200-300 lines for SKILL.md
### 3. Writing Phase
Use SKILL_TEMPLATE.md as starting point:
- Fill in YAML frontmatter (name, description)
- Write concise quick start
- Create 2-3 workflows with copy-paste checklists
- Add common issues section
- Link to reference files for advanced topics
### 4. Reference Files Phase
Create separate markdown files for:
- Detailed API documentation
- Advanced features
- Troubleshooting guides
- Configuration references
- Domain-specific content
Each file:
- Has clear purpose
- Links directly from SKILL.md
- Includes table of contents if >100 lines
- Focuses on one topic
### 5. Testing Phase
Test with Claude:
- Activate the skill
- Try common workflows
- Verify checklist format works
- Test progressive disclosure (does Claude load right files?)
- Check cross-references work
### 6. Iteration Phase
Based on testing:
- Simplify over-explained sections
- Add missing common issues
- Improve workflow clarity
- Reorganize reference files if needed
---
## Examples of Good Skills
**For structure reference**, see official Anthropic examples in `anthropic_official_docs/best_practices.md`:
- PDF Processing skill (lines 286-307)
- BigQuery skill (lines 316-344)
- Git Commit Helper (lines 229-233)
**From this project**:
- Reference GRPO-RL-Training skill for comprehensive workflows
- But make it MORE CONCISE following Anthropic guidelines
---
## Common Mistakes to Avoid
1. **Making SKILL.md too long** (>500 lines is RED FLAG)
2. **Over-explaining basics** (assume Claude knows ML/programming)
3. **No workflows with checklists** (makes complex tasks hard)
4. **Nested references** (keep one level deep)
5. **First-person descriptions** (use third person!)
6. **Vague skill names** (use gerund form with specific terms)
7. **No "when to use vs alternatives"** (critical for skill selection)
8. **Missing validation steps** (add feedback loops)
9. **Too many options** (provide default with escape hatch)
10. **Time-sensitive info** (use "old patterns" section instead)
---
## Resources
- **Anthropic Official Best Practices**: [anthropic_official_docs/best_practices.md](anthropic_official_docs/best_practices.md)
- **Skill Template**: [SKILL_TEMPLATE.md](SKILL_TEMPLATE.md)
- **Contributing Guide**: [CONTRIBUTING.md](CONTRIBUTING.md)
---
### SKILL TEMPLATE (`docs/SKILL_TEMPLATE.md`)
---
name: example-skill-name
version: 1.0.0
author: Orchestra Research
license: MIT
tags: [Tag One, Tag Two, Tag Three, Key Concept, Use Case]
dependencies: [package1>=1.0.0, package2>=2.0.0]
---
# [Skill Title]
## Quick start
[One paragraph overview of what this skill provides]
**Basic usage**:
```[language]
# Minimal working example (5-10 lines)
import library
result = library.function(input)
print(result)Common workflows
Workflow 1: [Primary Use Case]
Copy this checklist and track progress:
Task Progress:
- [ ] Step 1: [First action]
- [ ] Step 2: [Second action]
- [ ] Step 3: [Validation step]
- [ ] Step 4: [Completion step]Step 1: [First action]
[Brief instruction - assume Claude knows basics]
# Code example
[concise code]Step 2: [Second action]
[Brief instruction]
# Code example
[concise code]Step 3: [Validation step]
Run validator and fix errors if found:
validate_script.py input.json
# If errors: fix โ validate again โ continueStep 4: [Completion step]
[Final action]
Workflow 2: [Secondary Use Case]
[Similar structure with checklist]
When to use vs alternatives
Use this when:
- [Specific scenario 1]
- [Specific scenario 2]
Use [Alternative] instead when:
- [Different scenario]
Common issues
Issue: [Error message or problem]
Fix by adjusting [parameter]:
# Solution code
[concise fix]Issue: [Another common problem]
Check [specific requirement], then [action].
Advanced topics
[Advanced feature 1]: See references/advanced-features.md
[Advanced feature 2]: See references/optimization.md
[API reference]: See references/api-reference.md
Resources
- Official docs: [URL]
- GitHub: [URL]
Npm Package Plan (`docs/npm-package-plan.md`)
NPM Package Plan: @orchestra-research/skills
Overview
Create an npm/npx package that allows users to easily install AI research skills to their preferred coding agents (Claude Code, Cursor, Codex, Windsurf, etc.).
Package Name Options
@orchestra-research/skills(recommended - scoped, professional)ai-research-skills(simple, may conflict)orchestra-skills(short, brandable)
Architecture
Inspired By
Based on research of existing solutions:
- vercel-labs/skills: Canonical storage + symlinks, 27 agent support, lock file
- openskills: Universal loader, AGENTS.md generation
- add-skill: Zero-dependency, auto-detection
Core Components
@orchestra-research/skills/
โโโ bin/
โ โโโ cli.js # CLI entry point
โโโ src/
โ โโโ agents/ # Agent-specific handlers
โ โ โโโ claude.js # .claude/skills/
โ โ โโโ cursor.js # .cursor/skills/
โ โ โโโ codex.js # .codex/skills/
โ โ โโโ windsurf.js # .windsurf/skills/
โ โ โโโ copilot.js # .github/copilot-instructions.md
โ โ โโโ index.js # Agent registry
โ โโโ commands/
โ โ โโโ install.js # Install skills
โ โ โโโ list.js # List available/installed skills
โ โ โโโ update.js # Update skills
โ โ โโโ remove.js # Remove skills
โ โ โโโ detect.js # Detect installed agents
โ โโโ storage/
โ โ โโโ canonical.js # ~/.orchestra-skills/ management
โ โ โโโ lock.js # Lock file management
โ โ โโโ symlink.js # Symlink utilities
โ โโโ registry/
โ โ โโโ skills.json # Skill manifest (or fetch from GitHub)
โ โโโ utils/
โ โโโ fetch.js # Download skills from GitHub
โ โโโ format.js # Format for different agents
โโโ package.json
โโโ README.mdSupported Agents (7 Verified)
All agents below have been verified to support SKILL.md files with the same format.
| Agent | Config Location | Skills Location | Source |
|---|---|---|---|
| Claude Code | ~/.claude/ |
.claude/skills/ |
Verified locally |
| Cursor | ~/.cursor/ |
.cursor/skills/ |
DeepWiki |
| Codex (OpenAI) | ~/.codex/ |
.codex/skills/ |
DeepWiki |
| Windsurf | ~/.windsurf/ |
.windsurf/skills/ |
Windsurf Docs |
| Gemini CLI | ~/.gemini/ |
.gemini/skills/ |
DeepWiki |
| Kilo Code | ~/.kilocode/ |
.kilocode/skills/ |
Kilo Docs |
| Qwen Code | ~/.qwen/ |
.qwen/skills/ |
Qwen Docs |
CLI Commands
Installation
# Install globally
npm install @orchestra-research/skills
# Or use npx (recommended)
npx @orchestra-research/skills <command>Commands
# Detect installed coding agents
npx @orchestra-research/skills detect
# List all available skills
npx @orchestra-research/skills list
# List skills by category
npx @orchestra-research/skills list --category post-training
# List available categories
npx @orchestra-research/skills categories
# Install all skills for detected agents
npx @orchestra-research/skills install --all
# Install specific category (user selects from list)
npx @orchestra-research/skills install --category post-training
# Install multiple categories
npx @orchestra-research/skills install --category post-training,fine-tuning,inference
# Install specific skill
npx @orchestra-research/skills install verl
# Install for specific agent only
npx @orchestra-research/skills install verl --agent claude
# Install to project scope (current directory)
npx @orchestra-research/skills install verl --scope project
# Install to global scope (home directory)
npx @orchestra-research/skills install verl --scope global
# Interactive mode - prompts user to select categories/skills
npx @orchestra-research/skills install --interactive
# Update all skills
npx @orchestra-research/skills update
# Remove a skill
npx @orchestra-research/skills remove verl
# Show skill info
npx @orchestra-research/skills info verlInteractive Installation Flow
When running npx @orchestra-research/skills install --interactive:
? What would you like to install?
โ All skills (86 skills)
โ Select by category
โ Select individual skills
? Select categories to install: (Space to select, Enter to confirm)
โ 01-model-architecture (6 skills)
โฏ 02-tokenization (2 skills)
โฏ 03-fine-tuning (5 skills)
โ 06-post-training (8 skills)
โฏ 20-ml-paper-writing (1 skill)
...
? Confirm installation of 14 skills to Claude Code, Cursor, Gemini CLI? (Y/n)Storage Strategy
Canonical Storage (Recommended)
Single source of truth with symlinks:
~/.orchestra-skills/ # Canonical storage
โโโ .lock.json # Lock file for versioning
โโโ 01-model-architecture/
โ โโโ megatron-core/
โ โ โโโ SKILL.md
โ โโโ litgpt/
โ โโโ SKILL.md
โโโ 06-post-training/
โ โโโ verl/
โ โ โโโ SKILL.md
โ โ โโโ references/
โ โโโ slime/
โ โโโ ...
โโโ ...
~/.claude/skills/ # Symlinks to canonical
โโโ verl -> ~/.orchestra-skills/06-post-training/verl
โโโ slime -> ~/.orchestra-skills/06-post-training/slime
โโโ ...
~/.cursor/skills/ # Same symlinks
โโโ verl -> ~/.orchestra-skills/06-post-training/verl
โโโ ...Lock File Format
{
"version": "1.0.0",
"lastUpdated": "2025-01-28T00:00:00Z",
"skills": {
"verl": {
"version": "1.0.0",
"category": "06-post-training",
"installedAt": "2025-01-28T00:00:00Z",
"agents": ["claude", "cursor"]
}
},
"agents": {
"claude": {
"detected": true,
"scope": "global",
"path": "~/.claude/skills"
}
}
}Skill Structure Patterns
The repository has two skill organization patterns:
Pattern 1: Nested Skills (Most Categories)
XX-category/
โโโ skill-name-1/
โ โโโ SKILL.md
โ โโโ references/
โโโ skill-name-2/
โ โโโ SKILL.md
โโโ ...Example: 06-post-training/verl/SKILL.md
Pattern 2: Standalone Skills (Single Skill = Category)
XX-category-name/
โโโ SKILL.md
โโโ references/
โโโ templates/Example: 20-ml-paper-writing/SKILL.md (the category IS the skill)
The npm package must handle both patterns when fetching skills.
Skill Registry
Option A: Embedded (Simpler)
Include skill manifest in npm package, update with releases:
// src/registry/skills.json
{
"version": "1.0.0",
"categories": {
"01-model-architecture": {
"name": "Model Architecture",
"skills": ["megatron-core", "litgpt", "mamba", "rwkv", "nanogpt"]
},
"06-post-training": {
"name": "Post-Training (RLHF/DPO/GRPO)",
"skills": ["trl", "grpo", "openrlhf", "simpo", "verl", "slime", "miles", "torchforge"]
}
},
"skills": {
"verl": {
"name": "verl",
"category": "06-post-training",
"description": "Volcano Engine RL for LLM post-training",
"tags": ["Reinforcement Learning", "RLHF", "GRPO", "PPO"]
}
}
}Option B: Remote Fetch (More Flexible)
Fetch skill manifest from GitHub API on each run:
const REPO = 'orchestra-research/AI-research-SKILLs';
const MANIFEST_URL = `https://api.github.com/repos/${REPO}/contents/skill-manifest.json`;
async function fetchSkillManifest() {
const response = await fetch(MANIFEST_URL);
return JSON.parse(atob(response.content));
}Recommendation: Start with embedded, add remote fetch as update mechanism.
Installation Flow
/* Detailed source-code truncated for AI context efficiency. */Agent-Specific Handling
All 7 Verified Agents
All agents use the same SKILL.md format and symlink pattern:
// src/agents/index.js
export const agents = {
claude: {
name: 'Claude Code',
configDir: '~/.claude',
skillsDir: '~/.claude/skills',
projectSkillsDir: '.claude/skills',
},
cursor: {
name: 'Cursor',
configDir: '~/.cursor',
skillsDir: '~/.cursor/skills',
projectSkillsDir: '.cursor/skills',
},
codex: {
name: 'Codex (OpenAI)',
configDir: '~/.codex',
skillsDir: '~/.codex/skills',
projectSkillsDir: '.codex/skills',
},
windsurf: {
name: 'Windsurf',
configDir: '~/.windsurf',
skillsDir: '~/.windsurf/skills',
projectSkillsDir: '.windsurf/skills',
},
gemini: {
name: 'Gemini CLI',
configDir: '~/.gemini',
skillsDir: '~/.gemini/skills',
projectSkillsDir: '.gemini/skills',
},
kilo: {
name: 'Kilo Code',
configDir: '~/.kilocode',
skillsDir: '~/.kilocode/skills',
projectSkillsDir: '.kilocode/skills',
},
qwen: {
name: 'Qwen Code',
configDir: '~/.qwen',
skillsDir: '~/.qwen/skills',
projectSkillsDir: '.qwen/skills',
},
};
// Common install function for all agents
function installSkill(agent, skillName, canonicalPath, scope) {
const targetDir = scope === 'project'
? agent.projectSkillsDir
: expandHome(agent.skillsDir);
fs.ensureDirSync(targetDir);
fs.symlinkSync(canonicalPath, path.join(targetDir, skillName));
}User Experience
First Run
$ npx @orchestra-research/skills detect
๐ Detecting installed coding agents...
โ Claude Code ~/.claude
โ Cursor ~/.cursor
โ Codex not found
โ Windsurf not found
โ GitHub Copilot available for projects
Found 2 global agents, 1 project-only agent.
Run 'npx @orchestra-research/skills install --all' to install all skills.Installing Skills
$ npx @orchestra-research/skills install post-training
๐ฆ Installing post-training skills...
Downloading skills from GitHub...
โ trl (1.2 KB)
โ grpo (15.3 KB)
โ openrlhf (8.7 KB)
โ simpo (4.2 KB)
โ verl (12.1 KB)
โ slime (18.4 KB)
โ miles (9.8 KB)
โ torchforge (11.2 KB)
Creating symlinks...
โ Claude Code: 8 skills installed
โ Cursor: 8 skills installed
โจ Done! Installed 8 skills for 2 agents.
Skills are stored in: ~/.orchestra-skills/06-post-training/
Symlinks created in: ~/.claude/skills/, ~/.cursor/skills/Listing Skills
$ npx @orchestra-research/skills list
๐ AI Research Skills (81 total)
Model Architecture (5)
โ megatron-core Megatron-Core for large-scale model training
โ litgpt LitGPT for efficient LLM development
โ mamba Mamba state space models
โ rwkv RWKV linear attention models
โ nanogpt NanoGPT for learning/prototyping
Post-Training (8)
โ verl Volcano Engine RL for LLM post-training
โ slime Megatron-SGLang RL training framework
โ miles Enterprise-grade RL for large MoE models
โ torchforge PyTorch-native agentic RL library
โ trl Transformer Reinforcement Learning
โ grpo Group Relative Policy Optimization
โ openrlhf OpenRLHF training framework
โ simpo Simple Preference Optimization
โ = installed, โ = availableImplementation Phases
Phase 1: MVP (Week 1)
- Basic CLI structure with commander.js
- Agent detection (Claude, Cursor, Codex)
- Download skills from GitHub
- Symlink installation to detected agents
- Basic list and install commands
Phase 2: Full Features (Week 2)
- Canonical storage with lock file
- Update and remove commands
- Category filtering
- Project vs global scope
- Copilot special handling
Phase 3: Polish (Week 3)
- Interactive mode (inquirer.js prompts)
- Progress bars and better UX
- Error handling and recovery
- Documentation and README
- npm publish and GitHub Actions for releases
Dependencies
{
"dependencies": {
"commander": "^12.0.0", // CLI framework
"chalk": "^5.3.0", // Colored output
"ora": "^8.0.0", // Spinners
"fs-extra": "^11.2.0", // File utilities
"node-fetch": "^3.3.0", // HTTP requests
"inquirer": "^9.2.0" // Interactive prompts (optional)
}
}Publishing
# Login to npm
npm login
# Publish scoped package (public)
npm publish --access publicAlternatives Considered
1. Shell Script (Rejected)
PR #6 approach - too limited, no cross-platform support, poor UX.
2. Python Package (Possible Alternative)
Could work with pipx install orchestra-skills, but npm/npx is more common for dev tools.
3. Homebrew Formula (Future)
Could add brew install orchestra-skills later for Mac users.
Next Steps
- Create new repository or directory for npm package
- Implement Phase 1 MVP
- Test with Claude Code and Cursor
- Publish to npm
- Update main README with installation instructions
- Close PR #6 with reference to new approach
References
- vercel-labs/skills - Multi-agent skill installer
- openskills - Universal skill loader
- add-skill - Zero-dependency installer
Writing Assets ML Paper Guide (`docs/writing-assets/ML_paper_guide.md`)
The Complete Guide to Writing Top-Quality ML Academic Papers
Writing successful ML papers for venues like NeurIPS, ICML, and ICLR demands mastery of a specific craft: translating rigorous technical work into a compelling narrative that busy reviewers can quickly evaluate. The single most critical insight across all expert sources: your paper is not a collection of experimentsโit's a story with one clear contribution supported by evidence. This guide synthesizes advice from prominent researchers including Neel Nanda, Andrej Karpathy, Jacob Steinhardt, and Sebastian Farquhar, alongside official conference guidelines and practical tools for citation management.
The stakes are high: top ML conferences maintain ~25% acceptance rates, and reviewers spend limited time per paper. Seminal work like Adam and Knowledge Distillation faced initial rejections. Success requires not just strong research but strategic communicationโfront-loading value, maintaining precision, and providing reproducibility details that build reviewer confidence.
The narrative principle that separates accepted papers
Every successful ML paper centers on what Neel Nanda calls "the narrative": a short, rigorous, evidence-based technical story with a takeaway readers care about. This narrative rests on three pillars that must be crystal clear by the end of your introduction.
The "What" consists of one to three specific novel claims fitting within a cohesive theme. Vague contributions like "we study X" fail immediatelyโreviewers need precise, falsifiable claims. The "Why" provides rigorous empirical evidence that convincingly supports those claims, including strong baselines honestly tuned and experiments that distinguish between competing hypotheses rather than merely showing "decent results." The "So What" answers why readers should care, connecting your contribution to problems the community recognizes as important.
Andrej Karpathy reinforces this: "A paper is not a random collection of experiments you report on. The paper sells a single thing that was not obvious or present before. The entire paper is organized around this core contribution with surgical precision." This applies whether you're presenting a new architecture, a theoretical result, or improved understanding of existing methodsโNeurIPS explicitly notes that "originality does not necessarily require an entirely new method."
The practical implication is severe: if you cannot state your contribution in one sentence, you don't yet have a paper. Everything elseโexperiments, related work, discussionโexists only to support that core claim.
Front-load value: the title-to-methods pipeline
Readers encounter your paper in a predictable pattern: title โ abstract โ introduction โ figures โ maybe the rest. Nanda advises spending "about the same amount of time on each of: the abstract, the intro, the figures, and everything else." This isn't hyperboleโmost reviewers form preliminary judgments before reaching your methods section.
The abstract follows a tight five-sentence structure perfected by Sebastian Farquhar: (1) What you achieved ("We introduce...", "We prove...", "We demonstrate..."), (2) Why this is hard and important, (3) How you do it with specialist keywords, (4-5) What evidence you have, including your most remarkable number. Generic openings like "Large language models have achieved remarkable success" waste precious spaceโZachary Lipton's rule: "If the first sentence can be pre-pended to any ML paper, delete it."
The introduction should not exceed 1-1.5 pages and must include a bullet-point contribution list of 2-4 items (max 1-2 lines each in two-column format). Farquhar emphasizes: "Methods should start by page 2-3 maximum"โif your introduction runs longer, you're burying the actual contribution.
Figure 1 deserves special attention because many readers skip directly to it. It should convey your core idea, approach, or most compelling result. Use vector graphics, ensure readability in black-and-white, and write captions that stand alone without requiring the main text.
Section-by-section execution matters
Related Work should be organized methodologically, not paper-by-paper. Good: "One line of work uses Floogledoodle's assumption [refs] whereas we use Doobersnoddle's assumption because..." Bad: "Snap et al. introduced X while Crackle et al. introduced Y." Cite generouslyโreviewers likely authored relevant papersโand distribute citations throughout your paper rather than confining them to one section.
Methods must enable reimplementation. ICML's checklist requires: conceptual outline or pseudocode, clearly stated algorithms, all hyperparameters listed, and architectural details sufficient for reproduction. Present your final design decisions here; comparative ablations belong in experiments or appendix.
Experiments require explicit structure. For each experiment, state: what claim it supports, how it connects to your main contribution, the experimental setting (with details in appendix), and explicit guidance on what to observe in figures ("the blue line shows X, which demonstrates Y"). The ICML checklist mandates: error bars with methodology specified (standard deviation vs. standard error), hyperparameter search ranges, compute infrastructure (GPU type, total hours), and seed-setting methods.
Limitations deserve their own sectionโNeurIPS and ICML require this. Counter-intuitively, honesty helps: reviewers are explicitly instructed not to penalize papers for acknowledging limitations. Pre-empt criticisms by identifying weaknesses before reviewers do and explaining why they don't undermine your core claims.
Writing style that signals quality
Gopen and Swan's "Science of Scientific Writing" establishes principles that ML papers routinely violate. Place emphasis at sentence ends (the "stress position"): readers naturally weight final words more heavily. Put context first: establish familiar information before introducing new concepts. Keep subject and verb close together: anything intervening reads as interruption. One unit, one function: each paragraph should make exactly one point.
Specific style rules from multiple sources converge on these practices. Minimize pronounsโif you must use "this" or "those," use them as adjectives ("this result") to provide clarity. Place verbs early in sentences for easier parsing. Use minimal-syllable words. Eliminate hedging unless genuine uncertainty existsโ"may" and "can" should almost always be dropped. Lipton notes that "provides very tight approximation" drips with insecurity compared to "provides tight approximation."
Jacob Steinhardt emphasizes precision over brevity: replace "performance" with "accuracy" or "speed" depending on meaning. Use consistent phrasingโreferring to the same concept with different terms creates confusion. Avoid vocabulary that signals incremental work: never "combine," "modify," or "expand"; instead "develop" or "propose."
For mathematical writing, state all assumptions formally, provide intuitive explanations alongside proofs, and use consistent notation. Ethan Perez's practical tip: unfold apostrophes ("X's Y" โ "The Y of X") for clarity.
Tables, figures, and visual communication
Tables should use the booktabs LaTeX package for professional appearanceโavoid vertical lines, use horizontal rules sparingly. Bold the best value per metric and include symbols indicating direction (โ higher is better, โ lower is better). Right-align numerical columns and maintain consistent decimal precision across all values.
Figures must be vector graphics (PDF, EPS) for plots and diagrams; raster formats (PNG at 600 DPI) only for photographs or dense visualizations. Critical accessibility requirement: 8% of men have color vision deficiency. Use the Okabe-Ito or Paul Tol palettes, avoid red-green combinations, and verify your figures work in grayscale. The SciencePlots Python package provides publication-ready styles with a single line: plt.style.use(['science', 'ieee']).
Architecture diagrams benefit from TikZ via PlotNeuralNet (GitHub: HarisIqbal88/PlotNeuralNet), which generates LaTeX code from Python. For training visualizations, include shaded regions showing variance across runs and use log scale when values span multiple orders of magnitude.
Captions should be self-containedโreaders must understand figures without consulting main text. ICML explicitly states: "Do not include a title inside the figure; the caption should serve this function."
Conference requirements every submission must meet
NeurIPS 2025: 9 content pages plus unlimited references; mandatory paper checklist covering reproducibility, ethics, and societal impact (desk rejection if missing); 6-point scoring system; lay summaries required for accepted papers. Reviews of accepted papers become public.
ICML 2025: 8 content pages plus one additional page allowed for camera-ready; Broader Impact Statement required at end before references (doesn't count toward limit); reciprocal reviewing requirementโall submissions need a designated reviewer from authors.
ICLR 2025-2026: 10 pages plus unlimited appendices; double-blind via OpenReview; new LLM policy requiring disclosure of AI use in writing (violations result in desk rejection).
All three conferences evaluate papers on four core dimensions: quality (technical soundness, well-supported claims), clarity (clear writing, reproducible by experts), significance (community impact, advances understanding), and originality (new insights, clear differentiation from prior work). Reviewers separate concerns into major issues (essential for publication) and minor issues (not essential), and strong reviews follow Daniel Dennett's rules: first re-express the position fairly, then list agreements and what you learned, only then critique.
Citation APIs that prevent hallucination
AI-generated citations have a documented ~40% error rate, including fabricated papers with real author names and fake titles. A reliable workflow requires programmatic verification through multiple APIs.
Semantic Scholar (api.semanticscholar.org) covers 214M papers with 2.49B citations. Rate limit: 1 RPS with free API key. Python library: pip install semanticscholar. Search, retrieve metadata, and access citation graphsโideal for ML papers specifically.
CrossRef (api.crossref.org) is the primary source for DOI metadata and offers direct BibTeX retrieval via content negotiation:
import requests
def doi_to_bibtex(doi):
return requests.get(f"https://doi.org/{doi}",
headers={"Accept": "application/x-bibtex"}).textarXiv API (export.arxiv.org/api) provides metadata for preprints. Python library: pip install arxiv. No authentication required, but maintain 3-second delays between requests.
OpenAlex (api.openalex.org) offers 240M+ works under CC0 licenseโthe open successor to Microsoft Academic Graph. 100K requests/day, 10 RPS with email in query string.
Google Scholar has no official APIโscraping violates ToS. Use SerpApi ($75-275/month) only if Semantic Scholar coverage is insufficient.
The verified citation workflow for AI assistants
For any AI-assisted paper writing, implement this verification pipeline to eliminate hallucinated citations:
- Search using Semantic Scholar or OpenAlex APIs with specific queries
- Verify existence by confirming the paper appears in at least two sources (Semantic Scholar + CrossRef, or DOI resolution + arXiv)
- Retrieve BibTeX via DOI content negotiation for guaranteed accuracy
- Verify claims by accessing the actual paper (via DOI link or Semantic Scholar PDF) and confirming the attributed claim appears in the source
- Maintain clean .bib files using Zotero with Better BibTeX plugin for auto-export and consistent citation keys
Tools like Citely (citely.ai) and CiteSure provide batch verification of reference lists. ReciteWorks checks that in-text citations match your reference list.
For LaTeX, prefer BibLaTeX with Biber backend over legacy BibTeXโit provides full Unicode support, extended entry types (@online, @dataset), and flexible customization. Use \citep{} for parenthetical citations and \citet{} for textual citations.
Conclusion
Writing top-quality ML papers is fundamentally about reducing cognitive load for reviewers while maximizing evidence density for your claims. The hierarchy of importance is clear: narrative clarity beats methodological complexity, front-loaded value beats comprehensive coverage, and verified reproducibility beats impressive numbers.
The most actionable insight: treat writing as iterative design. Nanda recommends paper swaps for mutual feedback; Karpathy suggests submitting a 5-page draft with all experiments two weeks before deadline to reveal critical gaps. Sebastian Farquhar captures the modern reality: "If you are a good writer, you are better than LLMs. If you are a bad writer, you need the practice"โbut LLMs excel at identifying unclear passages through misinterpretation and simulating harsh reviewer feedback.
For citation workflows specifically, the combination of Semantic Scholar search โ DOI content negotiation โ BibLaTeX management provides a reliable, hallucination-resistant pipeline suitable for integration into AI writing assistants. Every citation must be verified to exist before inclusionโthe alternative is contributing to the documented problem of fabricated references that has affected even NeurIPS accepted papers.
Writing Assets Ml Paper Writing Sources (`docs/writing-assets/ml_paper_writing_sources.md`)
Comprehensive Source List: Building an ML Paper Writing Skill
This document compiles authoritative sources for creating a Claude skill that writes high-quality ML/AI papers for venues like ICLR, NeurIPS, and ICML.
Part 1: Writing Philosophy & Guides from ML Researchers
Primary Sources (Must-Read)
| Source | Author | URL | Key Value |
|---|---|---|---|
| Highly Opinionated Advice on How to Write ML Papers | Neel Nanda | https://www.alignmentforum.org/posts/eJGptPbbFPZGLpjsp/highly-opinionated-advice-on-how-to-write-ml-papers | Core narrative philosophy, "what/why/so what" framework, figure-first approach |
| How to Write ML Papers | Sebastian Farquhar (DeepMind) | https://sebastianfarquhar.com/on-research/2024/11/04/how_to_write_ml_papers/ | 5-sentence abstract formula, structure templates, reader expectations |
| A Survival Guide to a PhD | Andrej Karpathy | http://karpathy.github.io/2016/09/07/phd/ | Paper structure recipe, importance of reviewing bad papers, contribution framing |
| Heuristics for Scientific Writing (ML Perspective) | Zachary Lipton (CMU) | https://www.approximatelycorrect.com/2018/01/29/heuristics-technical-scientific-writing-machine-learning-perspective/ | Snappy maxims for clear prose, vacuous intensifier warnings, section balance |
| Advice for Authors | Jacob Steinhardt (UC Berkeley) | https://jsteinhardt.stat.berkeley.edu/blog/advice-for-authors | Precision over brevity, consistent terminology, reader-centric writing |
| Easy Paper Writing Tips | Ethan Perez (Anthropic) | https://ethanperez.net/easy-paper-writing-tips/ | Practical micro-level tips, apostrophe unfolding, clarity tricks |
Foundational Scientific Writing
| Source | Author | URL | Key Value |
|---|---|---|---|
| The Science of Scientific Writing | Gopen & Swan | https://cseweb.ucsd.edu/~swanson/papers/science-of-writing.pdf | Topic/stress positions, old-before-new principle, sentence-level clarity |
| Summary of Science of Scientific Writing | Lawrence Crowl | https://www.crowl.org/Lawrence/writing/GopenSwan90.html | Condensed version of Gopen & Swan principles |
Additional Researcher Perspectives
| Source | URL | Key Value |
|---|---|---|
| How To Write A Research Paper In Machine Learning | https://grigorisg9gr.github.io/machine%20learning/research%20paper/how-to-write-a-research-paper-in-machine-learning/ | Practical walkthrough |
| A Recipe for Training Neural Networks (Karpathy) | http://karpathy.github.io/2019/04/25/recipe/ | Debugging methodology that translates to paper structure |
Part 2: Official Conference Guidelines
NeurIPS
| Document | URL | Purpose |
|---|---|---|
| Paper Checklist Guidelines | https://neurips.cc/public/guides/PaperChecklist | Mandatory checklist items, reproducibility requirements |
| 2025 Reviewer Guidelines | https://neurips.cc/Conferences/2025/ReviewerGuidelines | What reviewers look for, scoring criteria |
| Formatting Instructions | https://arxiv.org/html/2505.10292v1 | LaTeX template, page limits, style requirements |
ICML
| Document | URL | Purpose |
|---|---|---|
| Paper Guidelines | https://icml.cc/Conferences/2024/PaperGuidelines | Submission requirements, ethics policy |
| Style & Author Instructions | https://icml.cc/Conferences/2022/StyleAuthorInstructions | Formatting specifications |
| Reviewer Tutorial | https://icml.cc/Conferences/2022/ReviewerTutorial | Evaluation criteria from reviewer perspective |
| Reviewer Guidelines (2020) | https://icml.cc/Conferences/2020/ReviewerGuidelines | Detailed review criteria |
| ICML 2025 LaTeX Template | https://www.overleaf.com/latex/templates/icml2025-template/dhxrkcgkvnkt | Official Overleaf template |
ICLR
| Document | URL | Purpose |
|---|---|---|
| Author Guide 2026 | https://iclr.cc/Conferences/2026/AuthorGuide | Submission requirements, LLM disclosure policy |
| LLM Disclosure Policy | https://eu.36kr.com/en/p/3443306502428032 | NEW: Mandatory AI use disclosure (desk rejection if missing) |
Part 3: Citation APIs & Tools (Hallucination Prevention)
Primary APIs for Paper Search & Metadata
| API | Documentation URL | Key Features | Rate Limits |
|---|---|---|---|
| Semantic Scholar API | https://api.semanticscholar.org/api-docs/ | 214M papers, citation graphs, AI-trained search | 1 RPS with API key |
| Semantic Scholar Tutorial | https://www.semanticscholar.org/product/api/tutorial | Step-by-step usage guide | - |
| CrossRef REST API | https://www.crossref.org/documentation/retrieve-metadata/rest-api/ | DOI metadata, direct BibTeX via content negotiation | Polite pool with mailto |
| arXiv API | https://info.arxiv.org/help/api/basics.html | Preprint metadata, full-text access | 3-second delays |
| OpenAlex API | https://docs.openalex.org/api-entities/works | 240M+ works, CC0 license, open successor to MAG | 100K/day, 10 RPS |
Python Libraries
| Library | Install | Documentation | Purpose |
|---|---|---|---|
semanticscholar |
pip install semanticscholar |
https://semanticscholar.readthedocs.io/ | Official-ish Python wrapper |
arxiv |
pip install arxiv |
https://pypi.org/project/arxiv/ | arXiv search and download |
habanero |
pip install habanero |
https://github.com/sckott/habanero | CrossRef Python client |
BibTeX Retrieval Code Pattern
import requests
def doi_to_bibtex(doi: str) -> str:
"""Get BibTeX directly from DOI via CrossRef content negotiation."""
response = requests.get(
f"https://doi.org/{doi}",
headers={"Accept": "application/x-bibtex"}
)
response.raise_for_status()
return response.text
# Example: Get verified BibTeX for "Attention Is All You Need"
bibtex = doi_to_bibtex("10.48550/arXiv.1706.03762")Citation Verification Tools
| Tool | URL | Purpose |
|---|---|---|
| Citely | https://citely.ai/citation-checker | Batch verification of AI-generated citations |
| ReciteWorks | https://reciteworks.com/ | Check in-text citations match reference list |
LaTeX Citation Management
| Resource | URL | Key Info |
|---|---|---|
| BibTeX vs BibLaTeX Guide | https://electricalvoice.com/latex-vs-bibtex-vs-biblatex/ | When to use which system |
| BibLaTeX Comprehensive Guide | https://latextutorial.net/latex-vs-bibtex-vs-biblatex/ | Modern citation management |
Part 4: The Verified Citation Workflow
Recommended Pipeline for AI-Assisted Writing
1. SEARCH: User specifies topic โ Query Semantic Scholar API
โโ Use paper/search endpoint with specific keywords
2. VERIFY EXISTENCE: For each candidate paper:
โโ Confirm paper exists in 2+ sources (Semantic Scholar + CrossRef/arXiv)
โโ Verify DOI resolves correctly
3. GET BIBTEX: Use DOI content negotiation
โโ requests.get(f"https://doi.org/{doi}", headers={"Accept": "application/x-bibtex"})
โโ NEVER generate BibTeX from memory - always fetch
4. VERIFY CLAIMS: Before citing paper for specific claim:
โโ Retrieve paper abstract/full-text via Semantic Scholar
โโ Confirm the attributed claim actually appears in source
5. BUILD BIBLIOGRAPHY:
โโ Maintain .bib file with only verified entries
โโ Use consistent citation keys (e.g., author_year_firstword)Why This Matters
From research on AI citation hallucination:
- ~40% of AI-generated citations contain errors (Enago Academy research)
- NeurIPS 2025 found 100+ hallucinated citations slipped through review
- Common errors: fabricated titles, wrong authors, non-existent papers with plausible metadata
Part 5: Visualization & Formatting Resources
Figure Creation
| Tool | URL | Purpose |
|---|---|---|
| PlotNeuralNet | https://github.com/HarisIqbal88/PlotNeuralNet | TikZ neural network diagrams |
| SciencePlots | https://github.com/garrettj403/SciencePlots | Publication-ready matplotlib styles |
| Okabe-Ito Palette | https://jfly.uni-koeln.de/color/ | Colorblind-safe color scheme |
LaTeX Templates
| Venue | Template URL |
|---|---|
| NeurIPS | https://neurips.cc/Conferences/2025/PaperInformation/StyleFiles |
| ICML | https://www.overleaf.com/latex/templates/icml2025-template/dhxrkcgkvnkt |
| ICLR | https://iclr.cc/Conferences/2026/AuthorGuide (links to template) |
Part 6: Key Principles Summary (For Skill Encoding)
From Neel Nanda
- Paper = short, rigorous, evidence-based technical story with a takeaway readers care about
- Spend equal time on: abstract, intro, figures, everything else
- Every experiment must support a specific claim connected to contribution
- "If you can't state your contribution in one sentence, you don't have a paper yet"
From Karpathy
- "The paper sells a single thing that was not obvious before"
- Default structure: Intro โ Related Work โ Model โ Experiments โ Conclusions
- Review bad papers to learn what NOT to do (binary classifier training)
From Zachary Lipton
- "If the first sentence can be pre-pended to any ML paper, delete it"
- Figures should tell coherent story even if reader skips text
- Sections should be balanced like bullets on slides
- "provides very tight approximation" drips with insecurity โ "provides tight approximation"
From Sebastian Farquhar
- Methods should start by page 2-3 maximum
- Abstract formula: (1) What achieved, (2) Why hard/important, (3) How with keywords, (4-5) Evidence + best number
- Introduction must have 2-4 bullet contribution list (max 1-2 lines each)
From Gopen & Swan
- Place emphasis at sentence ends (stress position)
- Put context (old info) before new information
- Keep subject and verb close together
- One unit = one function (each paragraph = one point)
Part 7: Additional Resources
Hallucination & AI Writing Concerns
| Source | URL |
|---|---|
| AI Hallucinations in Research Citations | https://www.enago.com/academy/ai-hallucinations-research-citations/ |
| Hallucination in AI-Generated Writing (PMC) | https://pmc.ncbi.nlm.nih.gov/articles/PMC10726751/ |
| NeurIPS 2025 AI Hallucination Report | https://byteiota.com/neurips-2025-100-ai-hallucinations-slip-through-review/ |
ML Conference Review System Analysis
| Source | URL |
|---|---|
| Position: ML Conferences Should Have Refutations Track | https://arxiv.org/html/2506.19882v1 |
Usage Notes for Skill Development
For paper structure: Start with Nanda + Farquhar for high-level philosophy, use conference guidelines for specifics
For writing style: Combine Lipton's heuristics + Gopen & Swan's principles + Ethan Perez's micro-tips
For citation workflow: Implement Semantic Scholar โ DOI verification โ CrossRef BibTeX pipeline; NEVER generate citations from model memory
For figures/tables: Reference booktabs for tables, SciencePlots for figures, always use colorblind-safe palettes
For reviewer simulation: Study reviewer guidelines from all three venues to anticipate criticisms
--- METRICS ---
- Files Extracted: 22
- Estimated Token Budget: ~50822 tokens
- Canonical Reference: https://codewiki.google/github.com/Orchestra-Research/AI-Research-SKILLs