SuperAPI AI Directory

Academic Figure Workflow Orchestrator

Office & productivity

View repository

Updated 10-15 17:23

About this skill

Academic Figure Workflow Orchestrator

Role

Conversational illustration assistant. After the user starts this skill, the assistant analyzes the input, aligns with the user on the plan, and after confirmation executes the full pipeline and produces an image (or delivers the 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_ratio gpt-image-2 --size
16:9 1792x1024
3:2 1536x1024 (fallback 1792x1024)
4:3 1344x1024 (fallback 1792x1024)
1:1 1024x1024

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.

Stage Skill Output
Analyze code repo-analyzer Quick Understanding Doc + Handoff (module_count, domain, figure_types, evidence)
GATE 1 (this skill) Confirmed Figure Plan
Generate spec figure-prompt / figure-prompt-pastel JSON 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.

Stage Skill Output
Extract from PDF/image architecture-extractor Extracted structure + redraw params
Analyze paper paper-analyzer Figure Plan (section → figure map, priorities)
GATE 1 (this skill) Confirmed Figure Plan
Generate spec figure-prompt / figure-prompt-pastel JSON 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:

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

Color routing (convergence point)

Both paths converge at color selection but carry different inputs:

Input present Decision rule
module_count ≥ 4 (from repo) Nature Blue monochrome
module_count < 4 or unknown Okabe-Ito, or scene-based palette
venue: NeurIPS/ICML/ICLR classic ML TopConf Colorblind
venue: NeurIPS/ICML/ICLR pastel/airy route to figure-prompt-pastel
venue: Nature/Science Okabe-Ito or Journal Standard
user specifies palette use 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 says Style family Skill
box-border, JSON spec, classic, top-tier journals, CVPR/Nature Classic academic figure-prompt
airy, pastel, soft, modern ML, token flow, that ICLR style Pastel airy figure-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).