Notre avis
figforge orchestre un pipeline complet allant de l'analyse d'une source (article, code, algorithme) à la génération d'une figure de qualité publication.
Points forts
- Planification honnête avec journal des preuves pour éviter les hallucinations
- Itération fluide entre planification et génération pour peaufiner le résultat
- Délégation à des sous-compétences spécialisées (planification et génération)
Limites
- Nécessite que les sous-compétences figforge-plan et figforge-gen soient disponibles
- La génération repose uniquement sur l'API gpt-image-2 d'OpenAI
- Sans matériau source, la phase de planification est sautée, réduisant la profondeur du résultat
Utilisez figforge lorsque vous devez transformer un article scientifique, un dépôt de code ou un algorithme en une figure de qualité publication avec un processus systématique de planification et de génération.
Évitez figforge si vous n'avez besoin que d'un prompt simple pour une image ou si vous possédez déjà un prompt final prêt à être généré.
Analyse de sécurité
PrudenceThe skill uses Bash to execute sub-skill scripts (e.g., choose_python.sh), which is a powerful tool but for legitimate orchestration. No inherently destructive commands are present, but the Bash usage warrants caution.
- •Uses Bash tool for orchestration, which could introduce execution risk if sub-skill scripts are compromised.
Exemples
做一张论文主图:分析这篇关于Transformer注意力机制优化的论文,生成一个展示改进前后对比的示意图。论文PDF在 /path/to/paper.pdf把这个 repo 画成 figure:项目路径 ~/projects/my-ml-framework,生成一张清晰的架构图展示模块依赖和数据流。出一张架构图直接生成:描述一个两阶段分类器,第一阶段用CNN提取特征,第二阶段用SVM分类,生成PNG图片。name: figforge
description: >
figforge: use when the user wants the full source-to-image pipeline — analyze a
paper / repo / algorithm / diagram / design idea, plan a publication-quality
figure, AND actually generate the image. Triggers: "做一张论文主图",
"把这个 repo 画成 figure", "出一张架构图直接生成", "scientific figure pipeline",
"make and generate a figure", or /figforge. Routes between figforge-plan
(truthful prompt construction) and figforge-gen (gpt-image-2 call), and manages
the iteration loop. Do NOT trigger if the user only wants the prompt (use
figforge-plan directly) or already has a finished prompt and just needs pixels
(use figforge-gen directly).
argument-hint: <自然语言需求 + 可选源材料>
allowed-tools: [Bash, Read, Write, Edit]
figforge — Source → Plan → Image (orchestrator)
The figforge family has three skills. This one is the conductor; it does not duplicate sub-skill work. Use it when you want all three of:
- Truthful planning (delegated to figforge-plan)
- Actual image generation (delegated to figforge-gen)
- Coherent iteration across both layers
If the user only needs a prompt, call figforge-plan directly. If they already
have a final prompt and only want pixels, call figforge-gen directly. Skip
this skill in those cases.
Pipeline
INPUT
│
▼
[STEP 1] Triage ──► raw prompt only? → skip STEP 2, jump to STEP 3
│ source material? → continue
▼
[STEP 2] Plan (delegate to figforge-plan) → figforge Prompt Package
│ + evidence ledger
▼
[STEP 3] Generate (delegate to figforge-gen) → image file on disk
│
▼
[STEP 4] Iterate (route revisions back to STEP 2 or STEP 3)
STEP 1 — Triage
Decide whether the planning layer is needed.
| Signal | Route |
|--------|-------|
| Raw prompt, no source material (e.g. 画一只透明背景的猫) | Skip STEP 2; jump to STEP 3 with the prompt as-is |
| Source material present (repo path, paper PDF, code snippet, algorithm description, diagram image) | Full pipeline: STEP 2 → STEP 3 |
| Source material and the user explicitly says "just the prompt, don't generate" | STEP 2 only; do not call figforge-gen |
Source-material detectors:
- Local file path with extension
.py,.md,.pdf,.png,.svg, or a directory - URL pointing to a paper / repo / arXiv ID / GitHub URL
- Pasted code blocks longer than 5 lines
- Long structured text describing an algorithm with named stages or
numbered steps
If still ambiguous after one pass, ask exactly one disambiguation question.
STEP 2 — Plan (delegate to figforge-plan)
Hand the source material to the figforge-plan skill. It produces a figforge Prompt Package (with evidence ledger). Save the package to:
<task_cwd>/.figforge/<run-id>/prompt_package.md
Stop and ask the user before STEP 3 if the package contains:
- More than 3
unknownmarkers in critical positions (claim, mechanism, primary metric) - An explicit "evidence insufficient" note from figforge-plan
- Conflicts that figforge-plan flagged but did not resolve
Generating an image from a thin evidence base produces hallucinated detail. The Truthfulness Contract lives in figforge-plan and must not be bypassed here.
STEP 3 — Generate (delegate to figforge-gen)
Map the Prompt Package fields to figforge-gen arguments:
| Prompt Package field | figforge-gen argument |
|----------------------|-----------------------|
| Core Image Prompt (compiled body) | --prompt |
| Recommended Generation Settings → Size | --size |
| Recommended Generation Settings → Output format | --output-format |
| Recommended Generation Settings → Quality | --quality |
| Recommended Generation Settings → Background | --background |
Out-dir defaults to <task_cwd>/.figforge/<run-id>/.
Hand off through the figforge-gen skill, not by calling
figforge-gen/scripts/figforge_gen.py directly. figforge-gen owns:
- API preflight (
--show-config) - Python detection (
scripts/choose_python.sh) - Timeout calculation per
references/fields.md - Credential resolution per
references/api-config.md
Reimplementing any of those here breaks the credential boundary.
After generation succeeds, save run metadata:
<task_cwd>/.figforge/<run-id>/last_image.json
with shape:
{
"path": "<image path>",
"params": {"size": "...", "quality": "...", "output_format": "...", "background": "..."},
"ts": "<ISO timestamp>",
"prompt_package": "prompt_package.md"
}
STEP 4 — Iterate
Most figure work needs at least one revision round. Classify the user's request:
| Revision type | Example | Route |
|---------------|---------|-------|
| Cosmetic | "brighter", "more contrast", "swap to landscape", "redo at higher quality" | Re-call figforge-gen with adjusted parameters; reuse same Prompt Package |
| Pixel-edit | "remove the watermark", "tweak this corner only" | Call figforge-gen with --mode edit and the previous image path |
| Content (label / palette / title text) | "change title to X", "use systems-blue palette" | Edit the Prompt Package body in place, then re-call figforge-gen |
| Structural | "the architecture is wrong", "missing a component", "wrong arrow direction" | Go back to STEP 2; the package itself needs editing first |
If you cannot tell which class the revision belongs to, ask the user one targeted question. Do not silently pick a route.
Append every revision attempt to <task_cwd>/.figforge/<run-id>/revisions.log
so the session is recoverable across resumes.
State
Each run lives under <task_cwd>/.figforge/<run-id>/:
prompt_package.md ← figforge-plan output (verbatim)
last_image.json ← {path, params, ts, prompt_package}
revisions.log ← one line per revision attempt
<run-id> = ISO timestamp YYYYMMDD-HHMMSS. A new top-level user request opens a
new run; revisions stay inside the most recent run unless the user explicitly
asks to start over.
Boundaries
- Do NOT reimplement what the sub-skills do. No inline gpt-image-2 calls. No inline evidence classification. Always invoke the sub-skill.
- API credentials are owned by figforge-gen alone. figforge never reads, copies,
prints, or transforms tokens. Never inject Codex- or Claude-side credentials
into
FIGFORGE_GEN_API_KEY. - If figforge-gen's
--show-configpreflight fails, surface the error verbatim and STOP. Do not retry the image step with substituted credentials. - If the user asked only for a prompt, do not run STEP 3. The waste is real — gpt-image-2 calls are slow and metered.
Output to user
After STEP 3 succeeds:
图片已生成: <image path>
基于规划包: <task_cwd>/.figforge/<run-id>/prompt_package.md
关键参数: size=..., output_format=..., quality=..., palette=...
For revisions, briefly state which revision class was detected and which step is being re-run before doing it. Example:
[识别为 Cosmetic 修订 → 重新调用 figforge-gen,size 改为 3840x2160]
For STEP 2-only requests (prompt without generation), return the path to
prompt_package.md and skip the image-related lines.
Ingénierie de Prompts
Data & IA
Bonnes pratiques et templates de prompt engineering pour maximiser les résultats IA.
Visualisation de Données
Data & IA
Génère des visualisations de données et graphiques adaptés à vos données.
Architecture RAG
Data & IA
Guide de configuration d'architectures RAG (Retrieval-Augmented Generation).