Skip to Content

Images

What it is

A two-stage lifecycle for page images. The article-writer authors art-direction briefs — an image slot with an artDirection description but no asset. The separate, explicit image-director skill turns those briefs into real files, places them in the page bundle, and adds asset: to each slot.

Why it matters

Image generation is networked and non-deterministic, so — like every such task — it lives in a skill, never in the gtmesh CLI. Splitting briefing from generation also lets you ship copy first and add art later: a page with only briefs is schema-valid and publishes fine, rendering placeholders until the assets arrive.

How it works

Brief

While writing the body, the article-writer composes an artDirection brief for each image slot. It generates no files.

Generate and place

Invoke the image-director explicitly on a slug (“generate the images for <slug>”). It reads foundation/art-direction.md for the look and the images: block for the model and ratios, generates each asset, writes the files into the bundle, and flips each slot to a placed block with asset:.

Re-seal

Placing assets is a body change, so the page re-enters a light re-seal — gtmesh amend <slug> (the skill runs this) → gtmesh seal <slug>gtmesh publish <slug>.

Both orderings work: publish copy first and add images later (an amend → seal → publish re-entry), or generate before the first publish (one pass, slower to first publish).

Key files & flags

WhereWhat it controls
gtmesh.config.yaml images:model, default_ratio, the registers (and their ratios)
foundation/art-direction.mdThe house look, per-register casting, negative prompt
The page artDirection slotsPer-image briefs the writer authored
Last updated on