exec-blueprint
Skill9 starsChanged 4 months agoMITView on GitHub
Turns a Minecraft build plan into named, reusable structure definitions saved inside the world, so build elements can be placed, copied, and iterated later without any external state. Use after planning, to create or update the structure library for a build. Part of the minecraft-builder workflow.
In this repository28 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- build-natural-worldSkill
- build-settlementSkill
- build-structureSkill
- build-systemsSkill
- design-buildingSkill
- design-citySkill
- design-groundsSkill
- design-houseSkill
- design-monumentSkill
- design-villageSkill
- exec-inspectSkill
- exec-planSkill
- exec-reflectSkill
- exec-workerSkill
- setup-connectSkill
- setup-fabricSkill
- setup-modSkill
- setup-serverSkill
- survey-researchSkill
- survey-siteSkill
- system-redstoneSkill
- system-transitSkill
- terrain-caveSkill
- terrain-ecologySkill
- terrain-integrateSkill
- terrain-landmarkSkill
- terrain-shapeSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 1 is distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 23
If a tool call fails because the MCP server is unreachable, stop and tell the user to run the minecraft-mcp-setup agent.
- Very specific: line 42
Always use the mcb: namespace.
- Very specific: line 71
Verify with structure_get_info / structure_list that it saved with the expected size.
- Distinctive: line 74
If you build prototypes in a staging area, clean them up afterward so the only trace is the saved structure file.
- Very specific: line 87
When stamping with structure_load_to_world (for iteration or for the exec-worker leaf's place-structure op), use the exact enum strings:
- Very specific: line 98
not: call data_storage_set on the registry yourself — parallel sub-agents writing the shared document clobber each other's entries.
- Very specific: line 108
Use status: blueprint for a defined-but-not-yet-placed structure.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
exec-blueprint (Blueprinter)
You create the reusable structure library for a build. A blueprint is a named Minecraft structure file living in the world — once defined, it can be stamped anywhere, copied, and re-saved. This is what lets a build be iterated later with no memory outside the world.
Connection
If a tool call fails because the MCP server is unreachable, stop and tell
the user to run the minecraft-mcp-setup agent.
Inputs
.minecraft-builder/<project>/plan.toon— itsblueprintslist names every reusable element you must define.research.toon— dimensions and materials, if a real reference is involved.- The
mcbuilder:registryfrom command storage (data_storage_get, namespacemcbuilder, pathregistry) — to see what structures already exist and whether you are creating or revising one.
Naming
Name every structure mcb:<project>_<element> — lowercase, consistent,
project-scoped, with the colon namespace. This is the canonical form
across the whole plugin: in plan.toon, in mcbuilder:registry, and in
every structure_* call.
Always use the mcb: namespace. A bare, colon-less name is not rejected —
it is silently filed under minecraft: (e.g. mcb_demo becomes
minecraft:mcb_demo), where it clutters the hundreds of vanilla templates,
risks colliding with them, and is hard to find in structure_list. The mcb:
namespace keeps the build's templates isolated and listable. Treat the colon
as required, and keep the form identical in plan.toon and the registry so a
later session can find every structure by name.
Create each blueprint
For every element in the plan's blueprints list:
- Decide the method:
- Scratch-and-capture (default) — build the element in-world in a clear
staging area using
block_fill_regionandblock_set_state, then capture it withstructure_save_from_worldover its exact bounds. Clear the staging area afterward. This is the simplest path for any element easier to construct directly than to generate. - Capture from final spot — if the element is being built at its final
position anyway, capture with
structure_save_from_worldimmediately after theexec-workerleaf finishes placing it. - Direct NBT write — for computed grids (pixel-art murals, voxelized
models, anything image-mapped or parametric), generate a structure
.nbtand write it withstructure_file_write(content is base64). Heavier — only use when a script already produces NBT. See${CLAUDE_PLUGIN_ROOT}/skills/exec-blueprint/reference/generated-structures.md.
- Scratch-and-capture (default) — build the element in-world in a clear
staging area using
- Build it from the plan's exact materials and dimensions.
- Save it under the
mcb:<project>_<element>name. Java structure templates are saved as.nbtfiles under<world>/generated/<namespace>/structures/. - Verify with
structure_get_info/structure_listthat it saved with the expected size.
If you build prototypes in a staging area, clean them up afterward so the only trace is the saved structure file.
Iteration
To revise an existing blueprint: structure_load_to_world it into a staging
area, edit the blocks, capture it again under the same name with
structure_save_from_world (bumping its revision in the registry). Because the
structure lives in the world, anyone in a later session can do this — no
project files needed.
Java-exclusive: structure placement options
When stamping with structure_load_to_world (for iteration or for the
exec-worker leaf's place-structure op), use the exact enum strings:
rotation∈ {none,clockwise_90,180,counterclockwise_90} — never bare numbers or "90 degrees".mirror∈ {none,front_back,left_right}.integrity— float 0..1;1.0places every block intact; values below 1 randomly omit blocks, giving weathered or scattered/ruined placement. Useful for pre-aged ruins and naturalistic scattering.include_entities— boolean;truecaptures/places any entities (armor stands, item frames, paintings, villagers) stored in the structure. Setfalsewhen stamping structural geometry only.
Register — report it, do not write it
The orchestrator owns the mcbuilder:registry and is its sole writer. Do
not call data_storage_set on the registry yourself — parallel sub-agents
writing the shared document clobber each other's entries. Instead, report to
the orchestrator the row it should record for each blueprint, in the registry
form (TOON — see https://toonformat.dev/):
builds[1]{project,element,structure,x,y,z,status,revision}:
lakeside-village,table-set,mcb:lakeside-village_table-set,0,0,0,blueprint,1Use status: blueprint for a defined-but-not-yet-placed structure; the
orchestrator updates it to built with real coordinates once the exec-worker
leaf stamps it. Reading the registry with data_storage_get for context is fine;
writing it is not your job.
Confirm persistence before handing off. A blueprint phase that "ran" but
left no .nbt on disk is a silent failure — a later consumer can't find the
template and substitutes ad-hoc geometry, breaking cohesion (this happened on a
large build). After saving, re-list with structure_list and verify each
mcb:<project>_<element> you created actually appears with the expected size.
Report the verified list of persisted templates so the orchestrator and
every consumer can rely on it; flag any that did not persist rather than
assuming they did.
Return to the orchestrator
Return the structure names you created or revised and their sizes to the
orchestrator. The plan is now ready for the build phase — every place-structure
step in plan.toon (which maps to structure_load_to_world) references a
structure you have now defined. The orchestrator sequences the next leaf
(exec-worker) to stamp them; you do not invoke it yourself.
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.

