Borrowing it
Nothing to install: this file belongs to Txpple/fvtt-mcp-artificer. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Txpple/fvtt-mcp-artificer/main/.claude/skills/illustration-builder/SKILL.mdgit clone --depth 1 https://github.com/Txpple/fvtt-mcp-artificerWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/txpple/fvtt-mcp-artificer/illustration-builder)<a href="https://agentmods.dev/skills/txpple/fvtt-mcp-artificer/illustration-builder"><img src="https://agentmods.dev/badge/skills/txpple/fvtt-mcp-artificer/illustration-builder/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/txpple/fvtt-mcp-artificer/illustration-builder"><img src="https://agentmods.dev/badge/skills/txpple/fvtt-mcp-artificer/illustration-builder.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00192 | $0.04382 |
| Opus 5.5 | $0.00077 | $0.01753 |
| Sonnet 5.5 | $0.00038 | $0.00876 |
| Haiku 4.5 | $0.00019 | $0.00438 |
Grade A, and why
illustration-builder scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 247 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Illustration builder
The judgment layer over generate-image / edit-image / cutout-image. Its whole job is to make
sure the prompt comes from canon, the style comes from precedent, Pro money is never
spent without the owner opting in, and nothing lands in the world uncurated. It adds no mechanics — the
artificer server owns model selection, dimensions, cutout, and file conventions; molten5e owns
delivery (upload-asset, set-actor-art, add-journal-image).
Tools used: artificer-status, generate-image, edit-image, cutout-image (artificer);
manage-actors get, search-journals, manage-journals (list / get), manage-scenes (list), list-assets, download-asset,
upload-asset, set-actor-art, add-journal-image (molten5e).
Step 0 — Pin the subject and the destination
Two questions before anything renders: what is this a picture of, and where does it live?
The destination picks the kind, and the kind picks the model tier:
| destination | kind | tier |
|---|---|---|
| item / spell / feature icon | icon |
flash |
| actor token (top-down, cut to alpha automatically) | token |
flash |
| actor sheet portrait | portrait |
flash; mention Pro is available for a bit extra |
| journal image page / player handout / location splash | illustration |
flash; mention Pro is available for a bit extra |
There is no map kind. Battlemaps are bought as UVTT packs; never try to generate one.
If the user named a subject that exists in the world (an NPC, a location with a journal, an item), the next two steps are mandatory — never prompt from imagination for a named subject.
Step 1 — Ground the prompt in canon
Pull the authoritative description before writing a word of prompt:
- Actors:
manage-actorsget— bio, race/species, gender, age, class, notable gear. The stat block is canon for props (a bandit statted with a crossbow gets a crossbow, whatever looks cooler). - Items: the item's description and type. An icon of a "rusted iron key" is a rusted iron key, not a generic key.
- Locations / events:
search-journalsfor the subject name; scene notes; quest journals. - Campaign repo (when working in it):
notes/,plot/,sessions/often carry richer description than the world does. - Scenes of played events are a hard gate (owner rule): illustrating something that happened
at the table means reading the session diary page AND the session transcript/gm-notes
(
sessions/<date>/), and looking at the battlemap it was fought on (screenshot-scene, or read the scene background) — terrain, layout, and the fight's actual beats come from there, never from imagination. Who was present matters too (absent PCs don't appear). - Arm the scene for the RIGHT session: a fight from session 1 predates the party's later magic items. Check that session's own loot ledger before putting a weapon in anyone's hand.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago Changed 0b518e443d04
- 1mo ago Changed · -11 lines 0425b479cc77
- 1mo ago Changed · -17 lines · +25 tokens per session 97a94fe6c926
- 2mo ago First seen · 275 lines · 167 tokens per session scan A 806b8393ca9b
illustration-builder is a skill published in the GitHub repository Txpple/fvtt-mcp-artificer (0 stars, last pushed 1mo ago), licensed MIT. It adds 192 tokens to every session and 4,382 once invoked, about $0.0008 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
motion
Reconstruct a skeleton from calibrated mesh projections and sequential VLM joint annotations, then fit joints and skin weights. Generate motion from joint-position trajectories, rhythm and contact constraints through IK; refine bone orientation against the action, then export, retarget and validate on the target mesh.
3d_object
Judge whether a generated mesh is fit to ship in a browser game, from the same rendered sheet the orientation review uses.
3d_scene
Choose how to build a 3dscene asset. Do not default to one pipeline for every task: what the user specified about the scene's appearance matters more than the scene type, and generative reconstruction is the least stable route here.
audio
Use this Skill when a game plan requires dialogue, voice lines, sound effects, foley, ambience, or other offline WAV assets. This is asset generation, not a runtime audio-playback contract; use the selected engine context after an asset has passed review.
game-cg-director
Convert game CG intent and optional media references into validated, model-specific directing envelopes for opening, cutscene, ultimate, or promo clips. Use for standalone CG prompt direction or as a child capability of a game-generation Harness. Supports T2VA/text-only, I2VA/first-frame image…
image
Use this Skill when a game plan needs a single-subject concept image, a character reference cleaned for image-to-3D, or a front-facing transparent T-pose image for downstream character reconstruction. T-pose generation is an image-generation and image-editing task; it is not a separate asset category.