agentleFS
devkindhqdevkindhq/ideogram-ai-toolkit/skills/world-builder/SKILL.md

world-builder

Skill3 starsChanged 12 days agoApache-2.0View on GitHub

Builds out a fictional "world" around an already-trained custom character model — a staged, multi-batch pipeline (no-mascot moodboard, paired with/without-model scene tests, society & culture batch, family/village/society deep pass, landmarks/maps/art pass, optional contamination-check redo) that goes from "I have a trained mascot" to "I have a whole visual world this character lives in," using `generate_image`, `generate_images_bulk`, `remix_image`, and `describe_image`. Use whenever the user wants to expand a locked mascot or character (already produced by `character-model-sheet` and trained by `custom-model-training`) into a broader brand world — community scenes, rituals, hierarchy, family/village life, landmarks, maps, art objects — or asks for "world-building," "brand world," "the world Ding-Bot lives in," "expand the universe around this character," or "society/culture pass." Distinct from `character-model-sheet` (locks the one character's own design) and `custom-model-training` (turns that locked design into a `custom_model_uri`) — this skill is the next step after both exist, and refuses to start without a trained model in hand. Also distinct from `moodboard-generator`'s generic pre-brand exploration board — this skill's moodboard step is one stage in a longer character-anchored pipeline, not a standalone deliverable.

3 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 2 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read these two reference files once, before step 1, and re-apply them on every single prompt for the rest of the pipeline:

    line 35
  2. Very specific:

    Run the pre-generation gate in this file before every generate_image / generate_images_bulk call, the same discipline character-model-sheet …

    line 45
  3. Very specific:

    Before spending any custom-model budget, generate a pure brand-world moodboard with the character absent.

    line 59
  4. Very specific:

    If the project already has a moodboard-generator board, this step can extend that board's palette rather than re-deriving it from scratch — …

    line 66
  5. Very specific:

    Read references/contamination-check.md before doing this.

    line 140
  6. Distinctive:

    Never report this step as "passed" without someone actually looking at the images side-by-side against the clean no-model versions from …

    line 146
  7. Very specific:

    Every batch in every step above gets tracked per references/batch-tracking.md: request_id/job_id for traceability, whether custom_model_uri …

    line 151

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

World Builder

A trained custom model locks one character's likeness. It does not, by itself, tell you what that character's world looks like — the palette its packaging uses, whether it has a village, what its landmarks are, whether "family" scenes read as a community or as a crowd of clones. This skill is the staged pipeline for answering that, developed over several real sessions building out the world around PorchPing's mascot ("Ding-Bot") and generalized here so it applies to any already-trained character.

The whole pipeline is sequenced around one constraint: every image that uses the custom model spends training-specific budget and risks compounding whatever quirks the model has (see references/character-batch-discipline.md), so cheaper no-model passes come first, cheaper batches come before expensive ones, and nothing gets called "done" without a human visually reviewing it.

Prerequisite — do not start without this

A custom model must already exist for the character, trained via the custom-model-training skill (dataset → train_model → get_model polling → custom_model_uri). If the user hasn't mentioned a custom_model_uri, ask for it or run mcp__ideogram__list_models to find it before doing anything else. Don't start generating "world" images against a character description alone — the entire point of this pipeline is testing how a trained model behaves across many contexts, not describing the character freshly in each prompt (which character-model-sheet already does, and which drifts exactly the way custom-model-training's existence is meant to prevent).

Cross-cutting discipline — applies to every step below, no exceptions

Read these two reference files once, before step 1, and re-apply them on every single prompt for the rest of the pipeline:

  • references/palette-lock.md — the locked palette (paper/dominant, primary, secondary, ink/trim, and at most one reserved accent used in exactly one place) must be defined and quoted, verbatim, in every prompt from step 1 onward. A world built on a drifting palette isn't a world, it's six unrelated images.
  • references/anti-slop-discipline.md — the reusable, brand-agnostic ban list (glowing orbs, neural-network nodes, circuit-board textures, gradient washes, stock-photo people, glossy mirror-shine, plastic-toy uncanny valley, and the rest). Run the pre-generation gate in this file before every generate_image / generate_images_bulk call, the same discipline character-model-sheet and brand-identity-sheet already apply to their own single-image gates, scaled up to a multi-batch pipeline.

And read references/character-batch-discipline.md before step 2 (the first step that puts the custom model in front of more than one character) — it covers the character-count clause, the no-characters clause, and the known family-resemblance limitation that governs every batch from here on.

Workflow

1. Moodboard pass — no mascot, establish the visual language

Before spending any custom-model budget, generate a pure brand-world moodboard with the character absent. Do not pass custom_model_uri on this call. Prompt for palette, material, texture, and mood only — no characters, no mascots, no people. This is the step that locks the palette (per references/palette-lock.md) and the material/texture language everything downstream has to agree with, before the character is anywhere in frame. Use mcp__ideogram__generate_image, style_type: "DESIGN", no custom model.

If the project already has a moodboard-generator board, this step can extend that board's palette rather than re-deriving it from scratch — but the character-absence rule still applies even when reusing an existing palette.

2. Paired with/without family — does the mascot integrate into real usage?

For a set of product/UI-style scenes (packaging shot, app screen, storefront signage, whatever the brand's real usage contexts are), generate each scene twice, same composition/palette/lighting held identical between the pair:

  • With family: custom_model_uri set, mascot present, exact character count stated (see references/character-batch-discipline.md).
  • Without family: no custom_model_uri, mascot and all characters absent, explicit "no characters, mascots, or people anywhere in frame" clause.

The point of the pair is diagnostic, not decorative: it tests whether the mascot reads as belonging in the scene or as pasted on top of it. Review both halves of each pair side by side, not independently — a mascot that looks fine alone but breaks the composition once the "without" half is generated for comparison is a real finding, not a false alarm.

3. Society & culture batch — paired with no-model "world artifacts"

Two batches, run as a pair the same way step 2 was paired, but now testing civic/cultural depth instead of product usage:

  • Character-driven batch (custom_model_uri set): community roles, rituals (graduation, festival), hierarchy/rank lineups. State the exact character count in every prompt — this is the step where crowd-runaway risk is highest, since "hierarchy lineup" and "festival" both invite the model to keep adding figures unless capped explicitly.
  • World-artifacts batch (no custom_model_uri, no characters): maps, a landmark, heraldry/crest, currency, textile pattern, a public space. Explicit "no characters or mascots or people anywhere in frame" clause on every prompt in this batch.

Submit each batch via mcp__ideogram__generate_images_bulk if it's more than a couple of prompts (see bulk-image-generation-workflow for the batch-submission pattern this reuses) — but keep the character-driven and world-artifacts batches as two separate generate_images_bulk calls, never mixed into one, since they use different custom_model_uri settings and that parameter is shared across an entire batch (there is no per-prompt override).

4. Family/village/society deep pass — the larger character-driven batch

A larger batch (roughly a dozen images, adjust to the world's actual scope) using the custom model throughout, covering: family units, village life, town hall, classroom, elder council, processions, home life, friendships, harbor, park, celebrations. Every prompt states its exact character count and quotes the locked palette. This is the deepest character-driven pass in the pipeline — expect (and explicitly review for, not silently accept) the family-resemblance limitation described in references/character-batch-discipline.md, since this batch has the highest character density of any step.

Submit via generate_images_bulk given the batch size; track every request_id per references/batch-tracking.md.

5. Landmarks, maps & art pass — pure world-building, no characters at all

No custom_model_uri, no characters anywhere. Landmarks (halls, towers, plazas, libraries, galleries, amphitheaters), a world map, art objects (sculptures, murals, ceramics, stained glass, monuments). Same locked palette, same anti-slop gate, explicit "no characters or mascots or people anywhere in frame" clause on every prompt. This pass exists independently of whether step 3's world-artifacts batch already touched some of the same territory (a map, a landmark) — step 5 goes deeper and wider, treating those as a first pass rather than the final one.

6. Contamination-check redo — optional, flag the risk explicitly

Optional step, and a real risk, not a formality. If the team wants to know whether it's viable to use the trained custom model everywhere (including no-character world-only prompts), rerun a sample of step 1's or step 5's no-model prompts through the custom model and compare.

Read references/contamination-check.md before doing this. The short version: a model trained on one character's likeness carries a real risk of that character's silhouette bleeding into architecture, object, or map prompts that never asked for a character at all — a tower that's subtly bell-shaped, a crest that echoes the mascot's face, a map border pattern that repeats the character's silhouette. This has to be visually reviewed image by image, not assumed safe because the prompt said "no characters." Never report this step as "passed" without someone actually looking at the images side-by-side against the clean no-model versions from steps 1 and 5.

Tracking discipline — every batch, every step

Every batch in every step above gets tracked per references/batch-tracking.md: request_id/job_id for traceability, whether custom_model_uri was used (and which one), and an explicit "visual_review_status": "pending" until a human actually looks at the results and confirms them. An API call returning 200 is not the same thing as the batch being done — don't mark anything "done" on API success alone.

Save what you made

Per the toolkit's "No Context Lost" habit, write every step's prompts, batch/request IDs, custom_model_uri usage, and review status to the project's world-building folder (check for an existing logo-explorations/, branding/, or world/ folder first and match it; create world-building/ under the project folder if none exists). Save incrementally as each step completes — this is a long, multi-session pipeline by design, and nothing generated in any step should live only in the conversation if the session ends mid-pipeline.

Reference files

  • references/palette-lock.md — how to define and lock the paper/primary/secondary/ ink-trim/accent palette before step 1, and the discipline for quoting it verbatim in every subsequent prompt.
  • references/anti-slop-discipline.md — the reusable, brand-agnostic ban list (not brand-specific) and the pre-generation gate to run before every call in every step.
  • references/character-batch-discipline.md — the exact-character-count clause, the no-characters clause, and the known family-resemblance/near-clone limitation of single-character-trained models — what it is, why it's expected rather than a bug, and how to review for it ("does this read as a species/community, or does it read as broken").
  • references/batch-tracking.md — the per-batch tracking record (request/job IDs, custom_model_uri used or not, visual-review status) to keep on every batch across every step.
  • references/contamination-check.md — the optional step-6 risk check: what "contamination" looks like when a single-character model is run against no-character world prompts, and how to review for it honestly instead of assuming safety.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.