mcpField
A
Academic Figure Workflow Orchestrator

Academic Figure Workflow Orchestrator

github.com/azhi-ssDesign & UI17789 installsUpdated 2w ago
Repository

About Academic Figure Workflow Orchestrator

A conversational skill for planning and producing academic figures from repository code or paper materials. It uses two required confirmation gates before generating an image or handing off a prompt.

Key features

  1. 01Repository- and paper-based input paths
  2. 02Analysis handoff for figure planning
  3. 03Two mandatory confirmation gates
  4. 04Classic and pastel prompt routing
  5. 05Optional image generation or prompt delivery

Use cases

  1. 01Planning a figure from a code repository
  2. 02Mapping paper sections to figure recommendations
  3. 03Reviewing a figure plan before prompt creation
  4. 04Delivering a prompt when image generation is unavailable

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/azhi-ss/academic-figure-skills --skill academic-figure-workflow-orchestrator

After installing, type/academic-figure-workflow-orchestratorin Claude Code to confirm it loaded.

Bundled filesreferences/missing-info-policy.mdreferences/palettes.md

Details

From the project README

Academic Figure Workflow Orchestrator

Role

对话式配图助手。用户启动本 skill 后,助手分析输入、与用户 plan 对齐、确认后执行完整链路并出图(或交付 prompt)。Never run the full chain silently — two confirmation gates are mandatory.

Shared refs:

  • palettes → references/palettes.md
  • missing info → references/missing-info-policy.md

Session protocol

Phase 0 — Input detection

Determine input type from what the user provided:

  • Repo path/URL → Path A (repo-first)
  • PDF / paper text / outline / existing figure → Path B (paper-first)
  • Neither → ask for ONE input only (repo path or paper material). Do not ask for anything else.
Phase 1 — Analyze (automatic, no gate)
  • Path A: read ../academic-repo-analyzer/SKILL.md, produce Quick Understanding Doc + Handoff (module_count, domain, figure_types, evidence). Show a ≤10-line summary to the user.
  • Path B with PDF/figure: read ../academic-figure-architecture-extractor/SKILL.md first, then ../academic-figure-paper-analyzer/SKILL.md. Path B with text: paper-analyzer only.
  • If input is unusable (no repo, no paper), stop and list minimum materials per references/missing-info-policy.md.
GATE 1 — Figure Plan confirmation (mandatory)

Present a compact plan and WAIT for user response:

基于分析,建议画这张图:
- 图类型: <controlled type, e.g. Network Architecture>
- 内容: <one sentence, from Handoff figure suggestions>
- 宽高比: <16:9 / 3:2 / 4:3>
- 风格: <classic academic 框线 / pastel airy 柔彩>
- 配色: <palette name + decision branch from Color routing below>
- module_count: <int or "不适用">
回复"确认"继续,或直接说要改哪项(换图类型/换风格/换配色/换素材)。

Rules:

  • Do not proceed past this gate without an explicit 确认/OK/可以/continue.
  • If user requests changes, update the plan, re-present, wait again.
  • If the reply is unrelated chit-chat, treat as confirmation and continue — unless it clearly requests a plan change.
  • Classic vs pastel choice follows the Style family table below.
  • Palette choice follows the Color routing table below.
Phase 2 — Generate spec + prompt (automatic, no gate)
  • Classic → read ../academic-figure-prompt/SKILL.md, follow its Steps 1–5: JSON spec + 200-400 word image prompt.
  • Pastel → read ../academic-figure-prompt-pastel/SKILL.md: layered English prompt.
  • If color-expert input is needed and not already in plan, read ../academic-figure-color-expert/SKILL.md to produce a formal Palette Decision.
GATE 2 — Prompt confirmation (mandatory)

Present the final image prompt in full and WAIT:

这是将要发给生图模型的 prompt:
<full prompt text; for classic, also offer the pasteable JSON spec>
回复"确认"开始生图,或直接说怎么改。
Phase 3 — Image generation (conditional)

Check for an available image generation backend, in this order:

  1. gpt-image-generation skill — if ~/.omp/agent/skills/gpt-image-generation/scripts/generate.js exists, run:

    node ~/.omp/agent/skills/gpt-image-generation/scripts/generate.js \
      --model cpa-gpt-image-2 \
      --prompt "<final prompt>" \
      --size <from table below> \
      --quality hd \
      --output /tmp/academic-figure-$(date +%s).png
    

    Success when stdout contains IMAGE_GENERATED_SUCCESS:<path>.

  2. sensenova MCP — call mcp__sensenova_image_generate_image with the same prompt.

  3. Neither available → do NOT fake generation. Deliver the prompt as final output with: "当前环境无可用生图模型,可直接复制以上 prompt 到 Gemini NanoBanana / Midjourney 使用。"

On success, embed: ![figure](file:///path.png)

On API error, show the error verbatim + the prompt. Do not retry more than once.

Size mapping:

aspect_ratiogpt-image-2 --size
16:91792x1024
3:21536x1024 (fallback 1792x1024)
4:31344x1024 (fallback 1792x1024)
1:11024x1024

Fallback: if cpa-gpt-image-2 returns a 404/unsupported error, retry once with --model gpt-image-2; if that also fails, use the prompt-delivery branch.

Entry paths (unchanged contracts)

Path A — Repo-first (code input)

User gives a repository path or URL.

StageSkillOutput
Analyze coderepo-analyzerQuick Understanding Doc + Handoff (module_count, domain, figure_types, evidence)
GATE 1(this skill)Confirmed Figure Plan
Generate specfigure-prompt / figure-prompt-pastelJSON spec + image prompt
GATE 2(this skill)Confirmed prompt → Phase 3

Repo path characteristics:

  • module_count comes from real code structure (drives Nature Blue vs Okabe-Ito)
  • figure types suited to code: Network Architecture, Module Detail, Overall Framework
  • no paper narrative; evidence level is sparse/partial/high based on code read
Path B — Paper-first (document input)

User gives a PDF, paper text, outline, or existing figure.

StageSkillOutput
Extract from PDF/imagearchitecture-extractorExtracted structure + redraw params
Analyze paperpaper-analyzerFigure Plan (section → figure map, priorities)
GATE 1(this skill)Confirmed Figure Plan
Generate specfigure-prompt / figure-prompt-pastelJSON spec + image prompt
GATE 2(this skill)Confirmed prompt → Phase 3

Paper path characteristics:

  • no module_count unless a repo is also provided
  • figure types suited to papers: Overall Framework, Comparison/Ablation, Data Behavior, Module Detail
  • venue and domain drive color; module_count may be unknown (use Okabe-Ito default)
When both repo and paper are present

Analyze paper first (it defines the narrative), use repo to fill technical gaps. module_count from repo feeds into color decision.

Sibling routing

Read a sibling file only when that stage runs:

skillwhen
../academic-repo-analyzer/SKILL.mdPath A: repository / codebase input
../academic-figure-paper-analyzer/SKILL.mdPath B: paper/section text input
../academic-figure-architecture-extractor/SKILL.mdPath B: PDF or existing image input
../academic-figure-color-expert/SKILL.mdeither path, when user wants colors
../academic-figure-prompt/SKILL.mdeither path, when user wants classic JSON spec
../academic-figure-prompt-pastel/SKILL.mdeither path, when user wants pastel/airy style

Color routing (convergence point)

Both paths converge at color selection but carry different inputs:

Input presentDecision rule
module_count ≥ 4 (from repo)Nature Blue monochrome
module_count < 4 or unknownOkabe-Ito, or scene-based palette
venue: NeurIPS/ICML/ICLR classicML TopConf Colorblind
venue: NeurIPS/ICML/ICLR pastel/airyroute to figure-prompt-pastel
venue: Nature/ScienceOkabe-Ito or Journal Standard
user specifies paletteuse it, state the branch

Always state which rule produced the choice and offer one alternate.

Style family first

Before picking any palette, decide classic vs pastel based on user language:

User saysStyle familySkill
box-border, JSON spec, classic, 顶刊, CVPR/NatureClassic academicfigure-prompt
airy, pastel, soft, 现代ML, token flow, ICLR那种Pastel airyfigure-prompt-pastel

Handoffs (carry forward, don't re-narrate)

  • Repo path: Quick Understanding Doc → Handoff (module_count, domain, figure_types, evidence) → Palette Decision → Figure Spec
  • Paper path: Figure Plan (types, counts, priorities, aspect ratios, venue) → Palette Decision → Figure Spec

Stop rules

  • Always stop at GATE 1 and GATE 2 until the user confirms.
  • After Phase 3 (image delivered or prompt delivered), stop. Do not suggest further figures unless the user asks.
  • If user only asked for analysis, stop after Phase 1 (no gates needed — the gates only exist on the figure-generation path).

Comments

Markdown supported