paper-plan
Generate a structured paper outline from review conclusions and experiment results
Install / Use
npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill paper-planInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Content & MediaSupported Platforms
Our assessment of paper-plan
paper-plan scores 95/100 on our quality scale, 49th of 464 Content & Media skills we index (top 11%).
Its SKILL.md is 20 KB long, well organised into 39 sections with 11 code examples: a thorough specification that gives an agent plenty to work with.
With 16,644 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 7 days ago, so paper-plan is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.
Automated pattern scan on 2026-09-26. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
paper-plan compared with similar skills
All 4 of these similar skills score higher than paper-plan; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| paper-plan (this skill)by wanshuiyin | 95 | 16.6k | 7d ago | SKILL.md |
| Agent-Reachby Panniantong | 100 | 85.5k | 11d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 73.8k | today | CLAUDE.md |
| rufloby ruvnet | 100 | 73.3k | 1d ago | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.1k | today | CLAUDE.md |
Frequently asked questions
- How do I install paper-plan?
- Run
npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill paper-plan. The install tabs above show the steps for each supported agent. - Which AI agents does paper-plan work with?
- It is written for OpenAI Codex, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is paper-plan safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is paper-plan still maintained?
- The repository was last updated 7 days ago, so paper-plan is actively maintained.
Skill content
View source on GitHubname: paper-plan description: "Generate a structured paper outline from review conclusions and experiment results. Use when user says "写大纲", "paper outline", "plan the paper", "论文规划", or wants to create a paper plan before writing." argument-hint: "[topic-or-narrative-doc] [— style-ref: <source>]" allowed-tools: Bash(*), Read, Write, Edit, Grep, Glob, WebSearch, WebFetch, mcp__codex__codex, mcp__codex__codex-reply
Paper Plan: From Review Conclusions to Paper Outline
Generate a structured, section-by-section paper outline from: $ARGUMENTS
Constants
- REVIEWER_MODEL =
gpt-6-astra— Model used via Codex MCP for outline review. Must be an OpenAI model. - TARGET_VENUE =
ICLR— Default venue. User can override (e.g.,/paper-plan "topic" — venue: NeurIPS). Supported:ICLR,NeurIPS,ICML,CVPR,ACL,AAAI,ACM,IEEE_JOURNAL(IEEE Transactions / Letters),IEEE_CONF(IEEE conferences). - MAX_PAGES — Page limit. For ML conferences: main body to Conclusion end (excluding references, appendix). ICLR=9, NeurIPS=9, ICML=8, AAAI=7 technical-content pages plus references unless the current AAAI CFP says otherwise. For IEEE venues: references ARE included in page count. IEEE journal Transactions ≈ 12-14 pages total, Letters ≈ 4-5 pages total; IEEE conference ≈ 5-8 pages total (including references).
Inputs
The skill expects one or more of these in the project directory:
- NARRATIVE_REPORT.md or STORY.md — research narrative with claims and evidence
- review-stage/AUTO_REVIEW.md — auto-review loop conclusions (fall back to
./AUTO_REVIEW.mdif not found) - Experiment results — JSON files in
figures/, screen logs, tables - idea-stage/IDEA_REPORT.md — from idea-discovery pipeline (if applicable) (fall back to
./IDEA_REPORT.mdif not found) - Compact files (if available):
idea-stage/IDEA_CANDIDATES.md(fall back to./IDEA_CANDIDATES.mdif not found),findings.md,EXPERIMENT_LOG.md— preferred over full files when present, saves context window
If none exist, ask the user to describe the paper's contribution in 3-5 sentences.
Orchestra-Guided Writing Overlay
Keep the existing insleep workflow and outputs, but use the shared references below to improve the quality of the story and outline.
- Read
../shared-references/writing-principles.mdwhen framing the one-sentence contribution, Abstract, Introduction, Related Work, or hero figure. - Read
../shared-references/venue-checklists.mdbefore freezing the outline for a specific venue. - Only load these references when needed; do not paste their full contents into the working draft.
Optional: Style reference (— style-ref: <source>, opt-in)
Lets the user steer the structural layout of the outline (section ordering, subsection density, theorem-environment density, figure budget, citation style) toward a reference paper. Default OFF — when the user does not pass — style-ref, do nothing differently from before.
Only when — style-ref: <source> appears in $ARGUMENTS, run the helper FIRST, before drafting the outline:
# Resolve $STYLE_HELPER via the canonical strict-safe chain (see
# shared-references/integration-contract.md §2). Policy A — gate:
# unresolved helper means --style-ref cannot be satisfied, so abort.
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true
fi
if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
fi
STYLE_HELPER=".aris/tools/extract_paper_style.py"
[ -f "$STYLE_HELPER" ] || STYLE_HELPER="tools/extract_paper_style.py"
[ -f "$STYLE_HELPER" ] || { [ -n "${ARIS_REPO:-}" ] && STYLE_HELPER="$ARIS_REPO/tools/extract_paper_style.py"; }
[ -f "$STYLE_HELPER" ] || {
echo "ERROR: extract_paper_style.py not resolved at .aris/tools/, tools/, \$ARIS_REPO/tools/, or via ~/.aris/repo." >&2
echo " Fix: rerun bash tools/install_aris.sh or smart_update.sh (refreshes ~/.aris/repo), export ARIS_REPO, or copy the helper to tools/." >&2
echo " --style-ref cannot be satisfied; aborting." >&2
exit 1
}
STYLE_STATUS=0
CACHE=$(python3 "$STYLE_HELPER" --source "<source>") || STYLE_STATUS=$?
case "$STYLE_STATUS" in
0) ;; # use $CACHE/style_profile.md as structural guidance
2) echo "warning: style-ref skipped (missing optional dep)" >&2 ;;
3) echo "error: --style-ref source failed; aborting outline" >&2 ; exit 1 ;;
*) echo "error: helper failed unexpectedly; aborting outline" >&2 ; exit 1 ;;
esac
Sources accepted: local TeX dir / file, local PDF, arXiv id (2501.12345 or arxiv:2501.12345), http(s) URL. Overleaf URLs and project IDs are rejected — clone via /overleaf-sync setup <id> first and pass the local clone path.
Strict rules (full contract in tools/extract_paper_style.py docstring):
- Use
style_profile.mdas structural guidance only when proposing the outline's section list, subsection counts, theorem density, figure budget. - Never copy prose, claims, examples, section names verbatim, or terminology from anything reachable through the cache. The user's narrative is the only source of substance.
- Never pass
— style-ref(or the cache contents) to reviewer / auditor sub-agents. Cross-model review independence (../shared-references/reviewer-independence.md) requires reviewers see only the artifact and the user's prompt.
Gap Report (GAP_REPORT.md, auto-emitted when style-ref is on)
When — style-ref: succeeded AND any of figures/, results/, data/, tables/, sec/, NARRATIVE_REPORT.md, CLAIMS_FROM_RESULTS.md exists in the project, also emit a gap report before drafting the outline. The gap report maps the exemplar's section topology + density requirements (from style_profile.md) against the user's actual assets, surfacing structural slots where the user has no evidence to fill. It is the contract by which /paper-write decides when to emit <!-- DATA_NEEDED --> markers instead of fabricating content.
Procedure:
- Read
$CACHE/style_profile.mdfor exemplar's section list + per-section feature counts (figures, theorems, tables, citations, sentences per section). - Inventory user assets:
figures/*filenames,results/*evidence files,sec/*.texexisting prose,NARRATIVE_REPORT.md,CLAIMS_FROM_RESULTS.md(if/result-to-claimran),references.bibfor citation density. - For each section slot the exemplar implies (ablation table, scaling experiment, failure-case analysis, proof block, …), classify as
covered/partial/missing. - Emit
<output-dir>/GAP_REPORT.md:
# GAP_REPORT — exemplar vs user assets
- **Exemplar source:** <source identifier (file path, arXiv ID, URL)>
- **Generated:** <UTC ISO-8601>
- **Style profile:** <relative path to style_profile.md>
## Section topology gaps
| Exemplar slot | Exemplar feature | User evidence | Status | Slot ID |
|---|---|---|---|---|
| §5 Experiments | ablation table (3 axes × 4 levels) | `results/` has no ablation file | missing | `GAP_S5_ABLATION` |
| §5.3 Scaling | log-N scaling curve | `figures/scaling.pdf` not found | missing | `GAP_S5_SCALING` |
| §6 Discussion | failure-case analysis | not present in `NARRATIVE_REPORT.md` | missing | `GAP_S6_FAILURE` |
| §2 Related | citation density ≥ 60 | `references.bib` has 35 entries | partial | `GAP_S2_CITES` |
## Coverage summary
- covered: N
- partial: M
- missing: K
## Used by
- `/paper-write` reads this file and emits `<!-- DATA_NEEDED: <Slot ID> — <one-line description> -->` placeholders for `missing` slots instead of fabricating content.
- `/paper-claim-audit` can use Slot IDs to flag claims that cite sections with `missing` evidence.
Slot ID format: GAP_<SECTION>_<FEATURE>, all-caps, stable across regenerations unless user assets change.
Rules (hard):
- Do not infer, fill, or hallucinate evidence to "close" gaps. Missing is missing.
- Do not propose specific experiment commands to fill gaps — that is
/experiment-bridge's job. Gap Report just surfaces deficits. - Do not include exemplar prose / claim text / author names / quantitative figures from the exemplar.
- If
style_profile.mdextraction failed or the user has no project assets, skip Gap Report (no error; just do not emit the file). - The gap report is also subject to reviewer isolation — never passed to reviewer / auditor sub-agents (same rule as
style_profile.md).
Original idea: @zhangpelf in #217.
Workflow
Step 1: Extract Claims and Evidence
First check for CLAIMS_FROM_RESULTS.md — if its first line is verdict: REVIEW_UNAVAILABLE, treat the file as ABSENT for claim extraction (fall through to the narrative documents below) and then: under — assurance: submission (shared-references/assurance-contract.md; implied by — effort: max|beast) STOP — the claims were never adjudicated, rerun /result-to-claim first; under assurance: draft continue but tag every claim [unadjudicated] in the claims matrix. Otherwise, if it exists (generated by /result-to-claim at the end of Workflow 2), use it as the starting point for claims. This file contains validated claims already mapped to experiment evidence. Merge with any additional claims from the narrative documents below.
If CLAIMS_FROM_RESULTS.md does not exist, extract claims from scratch:
Read all available narrative documents and extract:
- Core claims (3-5 main contributions)
- One-sentence contribution (the single sentence that best states what the paper contributes)
- Evidence for each claim (which experiments, which metrics, which figures)
- Known weaknesses (from reviewer feedback)
- Suggested framing (from review conclusions)
Build a Claims-Evidence Matrix:
| Claim | Evidence | Status | Section |
|-------|----------|--------|---------|
| [claim 1] | [exp A, metric B] | Supported | §3.2 |
| [claim 2] | [exp C] | Partially supported | §4.1 |
Step 2: Determine Paper Type and Structure
Based on TARGET_VENUE and paper content, classify and select structure.
Before committing to a structure, apply the narrative principle from ../shared-references/writing-principles.md:
- The paper should tell one coherent technical story.
- By the end of the Introduction, the outline should make the What, Why, and So What explicit.
- Front-load the most important material: title, abstract, introduction, and hero figure. Reviewers often form a judgment before reading the full method.
IMPORTANT: The section count is FLEXIBLE (5-8 sections). Choose what fits the content best. The templates below are starting points, not rigid constraints.
Empirical/Diagnostic paper:
1. Introduction (1.5 pages)
2. Related Work (1 page)
3. Method / Setup (1.5 pages)
4. Experiments (3 pages)
5. Analysis / Discussion (1 page)
6. Conclusion (0.5 pages)
Theory + Experiments paper:
1. Introduction (1.5 pages)
2. Related Work (1 page)
3. Preliminaries & Modeling (1.5 pages)
4. Experiments (1.5 pages)
5. Theory Part A (1.5 pages)
6. Theory Part B (1.5 pages)
7. Conclusion (0.5 pages)
— Total: 9 pages
Theory papers often need 7 sections (splitting theory into estimation + optimization, or setup + analysis). The total page budget MUST sum to MAX_PAGES.
Theory papers should:
- Include proof sketch locations (not just theorem statements)
- Plan a comparison table of prior theoretical bounds vs. this paper's bounds
- Identify which proofs go in appendix vs. main body
Method paper:
1. Introduction (1.5 pages)
2. Related Work (1 page)
3. Method (2 pages)
4. Experimen
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
85.5kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
73.8kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ruflo
73.3k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
CowAgent
47.1kOpen-source super AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
