skills/paper-illustration-image2/SKILL.md
Generate publication-quality academic illustrations through a local Codex app-server bridge that uses Codex native image generation. This is a separate experimental alternative to `paper-illustration`, intended for Claude Code users who want a GPT-image-style renderer without modifying the original skill.
npx skillsauth add wanshuiyin/Auto-claude-code-research-in-sleep paper-illustration-image2Install this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate publication-quality paper figures using Claude as the planner/reviewer and a local Codex app-server MCP bridge as the raster renderer.
┌──────────────────────────────────────────────────────────────────────────┐
│ MULTI-STAGE ITERATIVE WORKFLOW │
├──────────────────────────────────────────────────────────────────────────┤
│ │
│ User Request │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ Claude │ ◄─── Step 1: Parse request, create initial prompt │
│ │ (Planner) │ - Extract components, labels, and data flow │
│ │ │ - Write a paper-ready figure brief │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │Claude/Codex │ ◄─── Step 2: Optimize layout description │
│ │ Layout │ - Refine component positioning │
│ │ Review │ - Optimize spacing and grouping │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │Claude/Codex │ ◄─── Step 3: CVPR/NeurIPS style verification │
│ │ Style │ - Check palette, arrows, and label standards │
│ │ Check │ - Tighten the prompt before rendering │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ codex-image2│ ◄─── Step 4: Native image generation via bridge │
│ │ MCP bridge │ - Call generate_start / generate_status │
│ │ + app-server│ - Accept only native imageGeneration output │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ Claude │ ◄─── Step 5: STRICT visual review + SCORE (1-10) │
│ │ (Reviewer) │ - Verify logic, labels, arrows, and aesthetics │
│ │ STRICT! │ - Reject unclear or non-paper-ready figures │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ Score ≥ 9? ──YES──► Accept & Output │
│ │ │
│ NO │
│ │ │
│ ▼ │
│ Generate SPECIFIC improvement feedback ──► Loop back to Step 2 │
│ │
└──────────────────────────────────────────────────────────────────────────┘
RENDERER = codex-image2 — Native image generation bridge exposed through local Codex app-server
OPTIONAL_TEXT_CRITIC = mcp__codex__codex — Optional text-only second opinion for layout/style checks
MAX_ITERATIONS = 5 — Maximum refinement rounds
TARGET_SCORE = 9 — Minimum acceptable score (1-10)
OUTPUT_DIR = figures/ai_generated/ — Output directory
TEXT_LANGUAGE = English — Default figure text language unless the user requests otherwise
NATIVE_IMAGE_REQUIREMENT = strict — Accept only native imageGeneration output; reject shell/Python fallbacks
IMAGE2_HELPER — canonical name paper_illustration_image2.py, resolved
per shared-references/integration-contract.md §2
(Policy A — skill-local gate). Phase 3.2 (Arch C) moved the canonical
implementation into skills/paper-illustration-image2/scripts/;
tools/paper_illustration_image2.py remains as an os.execv shim so
legacy resolver layers keep working without a re-install. Resolve via:
# Layer 0: self-contained (CC 1.0+ exposes $CLAUDE_SKILL_DIR).
IMAGE2_HELPER=""
if [ -n "${CLAUDE_SKILL_DIR:-}" ] && [ -f "$CLAUDE_SKILL_DIR/scripts/paper_illustration_image2.py" ]; then
IMAGE2_HELPER="$CLAUDE_SKILL_DIR/scripts/paper_illustration_image2.py"
fi
# Layers 1-3: shared-runtime chain via shim at tools/paper_illustration_image2.py.
if [ -z "$IMAGE2_HELPER" ]; then
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
IMAGE2_HELPER=".aris/tools/paper_illustration_image2.py"
[ -f "$IMAGE2_HELPER" ] || IMAGE2_HELPER="tools/paper_illustration_image2.py"
[ -f "$IMAGE2_HELPER" ] || { [ -n "${ARIS_REPO:-}" ] && IMAGE2_HELPER="$ARIS_REPO/tools/paper_illustration_image2.py"; }
[ -f "$IMAGE2_HELPER" ] || IMAGE2_HELPER=""
fi
[ -z "$IMAGE2_HELPER" ] && {
echo "ERROR: paper_illustration_image2.py not resolved (layer 0: \$CLAUDE_SKILL_DIR/scripts/; layers 1-3: .aris/tools/, tools/, \$ARIS_REPO/tools/)." >&2
echo " /paper-illustration-image2 cannot proceed. Fix: rerun bash tools/install_aris.sh, or copy the canonical script from \$ARIS_REPO/skills/paper-illustration-image2/scripts/." >&2
exit 1
}
All invocations below use python3 "$IMAGE2_HELPER" <subcommand>.
What "CVPR Style" Actually Means:
目标:既不保守也不花哨,找到平衡点
| Figure Type | Quality | Examples | |-------------|---------|----------| | Architecture diagrams | Excellent | Model architecture, pipeline, encoder-decoder | | Method illustrations | Excellent | Conceptual diagrams, algorithm flowcharts | | Conceptual figures | Good | Comparison diagrams, taxonomy trees |
Not for: Statistical plots (use /paper-figure), deterministic vector topology figures (prefer /figure-spec), photo-realistic scenes
Render this checklist explicitly before starting:
📋 paper-illustration-image2 integration checklist:
[ ] 1. python3 "$IMAGE2_HELPER" preflight --workspace <cwd> --json-out figures/ai_generated/preflight.json
[ ] 2. Confirm preflight JSON says ok=true before rendering
[ ] 3. Render via mcp__codex-image2__generate_start + generate_status
[ ] 4. Finalize via python3 "$IMAGE2_HELPER" finalize --workspace <cwd> --best-image <best_png>
[ ] 5. Verify artifacts via python3 "$IMAGE2_HELPER" verify --workspace <cwd> --json-out figures/ai_generated/verify.json
figures/ai_generated/ if it does not exist.python3 "$IMAGE2_HELPER" preflight \
--workspace <cwd> \
--json-out figures/ai_generated/preflight.json
ok=true, stop and say so clearly.Turn the user request into a fully specified image prompt. Include:
When the input is a method note or a paper section, summarize it first into a clean figure brief before writing the final image prompt.
This step is required. Before rendering, refine the prompt into a concrete layout plan:
If mcp__codex__codex is available, you may ask it for a short second-opinion
layout critique here, but Claude should still complete this step even without
Codex.
Use Codex layout critique for:
This step is also required. Check the prompt against the intended paper style before rendering:
If mcp__codex__codex is available, you may ask it for a short text-only
style audit, but do not block on it.
Call mcp__codex-image2__generate_start with:
prompt: the final image promptcwd: current project root or paper workspaceoutputPath: figures/ai_generated/figure_v1.pngsystem: a short instruction like Academic paper figure. Prefer crisp English labels.timeoutSeconds: a bounded render timeout such as 180Then call mcp__codex-image2__generate_status with bounded waits until:
done=true and status=completed, ordone=true and status=failedIf generation fails, report the bridge error directly instead of hiding it.
Review the generated image with a strict checklist:
Score it from 1-10.
If score < 9, write a targeted refinement prompt:
figure_v2.png, figure_v3.png, etc.Keep refinement feedback concrete:
Increase spacing between genome scan and scoring modulesMake the off-target branch thinner and secondaryUse cleaner English labels: "Candidate sgRNA library", not "sgRNA library 23 bp"When accepted:
figure_final.pnglatex_include.texreview_log.jsonpython3 "$IMAGE2_HELPER" finalize \
--workspace <cwd> \
--best-image figures/ai_generated/figure_vN.png \
--score 9 \
--review-summary "Accepted after strict review; labels and arrows are paper-ready."
python3 "$IMAGE2_HELPER" verify \
--workspace <cwd> \
--json-out figures/ai_generated/verify.json
Suggested LaTeX:
\begin{figure*}[t]
\centering
\includegraphics[width=0.95\textwidth]{figures/ai_generated/figure_final.png}
\caption{[Replace with a paper-ready caption].}
\label{fig:[replace-me]}
\end{figure*}
codex-image2 bridge only for native image generation.tools/paper_illustration_image2.py finalize to emit the final artifacts.tools/paper_illustration_image2.py verify before claiming success.If rendering succeeded but final artifacts were skipped, repair the integration explicitly:
python3 "$IMAGE2_HELPER" finalize \
--workspace <cwd> \
--best-image figures/ai_generated/figure_vN.png
python3 "$IMAGE2_HELPER" verify \
--workspace <cwd> \
--json-out figures/ai_generated/verify.json
figures/ai_generated/
├── preflight.json # Helper preflight receipt
├── figure_v1.png # Iteration 1
├── figure_v2.png # Iteration 2
├── figure_v3.png # Iteration 3
├── figure_final.png # Accepted version (copy of best, score ≥ 9)
├── latex_include.tex # LaTeX snippet
├── review_log.json # Review notes and refinement history
└── verify.json # Helper verification diagnostic
| Stage | Agent / Tool | Purpose |
|-------|--------------|---------|
| Step 0 | python3 "$IMAGE2_HELPER" preflight | Observable activation predicate and preflight receipt |
| Step 1 | Claude | Parse request and create the initial figure prompt |
| Step 2 | Claude (+ optional Codex critique) | Refine layout, grouping, spacing, and arrow routing |
| Step 3 | Claude (+ optional Codex critique) | Verify academic visual style before rendering |
| Step 4 | mcp__codex-image2__generate_start + generate_status | Native raster image generation through Codex app-server |
| Step 5 | Claude | Strict visual review and scoring |
| Step 7 | python3 "$IMAGE2_HELPER" finalize + verify | Emit canonical artifacts and external verification receipt |
research
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.
research
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.
development
Get a deep critical review of research from an external reviewer backend (Codex or manual). Use when user says "review my research", "help me review", "get external review", or wants critical feedback on research ideas, papers, or experimental results.
research
Turn a vague research direction into a problem-anchored, elegant, frontier-aware, implementation-oriented method plan via iterative GPT-5.5 review. Use when the user says "refine my approach", "帮我细化方案", "decompose this problem", "打磨idea", "refine research plan", "细化研究方案", or wants a concrete research method that stays simple, focused, and top-venue ready instead of a vague or overbuilt idea.