Synthèse automatique
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.
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/figforge-mrwakajd/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/figforge-mrwakajd' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/figforge-mrwakajd/download' --output '.skill-downloads/figforge-mrwakajd/SKILL.md.part' && mv '.skill-downloads/figforge-mrwakajd/SKILL.md.part' '.skill-downloads/figforge-mrwakajd/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/figforge-mrwakajd/SKILL.md' && test -s '.skill-downloads/figforge-mrwakajd/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/figforge' && cp -R '.skill-downloads/figforge-mrwakajd' '.claude/skills/figforge'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/figforge-mrwakajd'openskills read 'figforge-mrwakajd'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/figforge-mrwakajd/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Créer des cartes interactives avec kepler.gl
Data & IA
Création de cartes interactives et export HTML autonome avec le package Python keplergl, à partir de données géospatiales (DataFrame, GeoJSON, CSV).
Optimisation de paramètres par agent
Data & IA
Guide d'optimisation de systèmes configurables avec objectif mesurable, via des essais bornés et une recommandation fondée sur des preuves.
Relance des visiteurs ICP
Data & IA
Identifiez les utilisateurs inscrits correspondant au profil client idéal mais qui n'ont pas activé, et rédigez des messages de relance personnalisés pour les réengager.