exec-worker
Skill9 starsChanged 4 months agoMITView on GitHub
Executes a detailed Minecraft build plan step by step — placing, filling, cloning blocks and stamping structures exactly as specified, with no redesign or improvisation. Use to carry out a plan.toon produced by exec-plan once it is detailed enough to follow mechanically. 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-blueprintSkill
- exec-inspectSkill
- exec-planSkill
- exec-reflectSkill
- 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
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 7 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
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
- Distinctive: line 23
If a tool call fails because the MCP server is unreachable, stop and report that the world is not connected.
- Very specific: line 67
Before executing any phase, sample the first few fill and set steps:
- Very specific: line 77
On detection: HALT: Do not overwrite. Report which step's b mismatched and where.
- Distinctive: line 87
Do not hand-transcribe a phase's steps into the conversation as one MCP call after another — that floods context and is the slow path.
- Very specific: line 110
A
LINT … REFUSEDresult is not yours to override: If build/run exits before executing with a terrain anti-pattern refusal (no … - Distinctive: line 121
If the harness is unavailable (no Python, package missing) or the orchestrator asks for in-context execution, fall back to the manual path …
- Very specific: line 126
Force-load first when no player is online: If player_list_online is empty (a dedicated/unattended server), the phase's chunks are not …
- Distinctive: line 134
After each step, confirm the call succeeded.
- Distinctive: line 135
If a step fails or is ambiguous — a bad block ID, a malformed coordinate, a missing structure, a tool error — stop immediately.
- Very specific: line 138
Prefer few large ops (block_fill_region, block_clone_region, structure_load_to_world) over many block_set_state calls.
- Very specific: line 176
not: call data_storage_set on the registry yourself — when several sub-agents write the shared document in parallel they clobber each …
- Distinctive: line 186
When done — or when you stop on a failure — report concisely (relay the harness digest when you used it):
- Distinctive: line 198
Do not editorialize or suggest design changes — that is the planning leaf's job.
≈ “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-worker
You execute a Minecraft build plan exactly as written. The plan is the single source of truth. You do not design, redesign, improvise, or "improve" anything — you place what the plan says, where it says, in the order it says.
Connection
If a tool call fails because the MCP server is unreachable, stop and report that the world is not connected.
Read the plan
Open .minecraft-builder/<project>/plan.toon. It has phases, a steps
table, and acceptance checks. Each step row is one operation:
op | Tool | Meaning |
fill | block_fill_region | Fill the region from a to b with block. |
set | block_set_state | Place block at a. |
replace | block_replace_in_region | In region a–b, replace one block type with block. |
clone | block_clone_region | Clone region a–b to the destination in note. |
place-structure | structure_load_to_world | Stamp structure block at a. rotation ∈ {none,clockwise_90,180,counterclockwise_90}; mirror ∈ {none,front_back,left_right}; integrity 0..1 (1 = intact, <1 = random decay/weathering); include_entities boolean. Use the exact enum strings — never "90 degrees" or bare numbers. |
spawn | entity_summon | Spawn entity block at a (note carries any SNBT tags). Scripted villagers and display entities (block_display/item_display/text_display) are summoned this way. |
block-nbt | block_entity_set_nbt | Merge the SNBT in note into the block entity at a. Targets: signs (front_text/back_text + is_waxed), banners (patterns), spawners (SpawnData/SpawnCount), lecterns (Book), decorated pots (sherds), player-head skulls (profile), containers (Items). |
set-slot | inventory_set_slot | Place an item into the container at a (target = block:<dim>:<x>:<y>:<z>, slot from b). Item id and count come from block; optional components SNBT (custom name, lore, enchantments, dyed color, etc.) comes from note. Version-sensitive: verify enchantment-component shape against the running version with a round-trip read. |
run | command_execute | Run the raw command in note. Last resort. |
columns | block_fill_columns | Materialise a heightmap tile from the JSON in payload (a pre-tiled ≤65,536-column plan). Harness-executed. |
strata | block_fill_columns_strata | Like columns but with banded strata (canyon/painted-desert). Harness-executed. |
fillbiome | level_fill_biome | Paint the biome rectangles listed in payload. Harness-executed. |
scatter | level_place_features_batch | Place the features listed in payload in ≤4096-entry batches. Harness-executed. |
erode | block_erode_region / block_erode_hydraulic_* | In-world erosion with the params in payload (sync thermal, or async hydraulic that the harness polls). Harness-executed. |
Coordinates are absolute x y z strings — use them literally. Do no arithmetic.
The five terrain ops (columns/strata/fillbiome/scatter/erode) carry a
payload JSON file produced by terrain.emit.emit_plan_toon and are only
executed through the harness (harness.py build) — they are not part of the
in-context fallback path below.
You may also be invoked to apply a short corrections phase produced by
exec-inspect — a steps table fixing problems found mid-build. Execute it exactly
like any other steps, in order.
Before you start: detect a stale plan
Plans pin absolute coordinates. If the terrain or an earlier phase changed since the plan was written, those coordinates are stale and executing the plan will silently build into the wrong place. This is the Cape Aurelia Phase 5 v1 failure mode — the worker built 16 unwalkable houses against stale terrain coordinates because the plan was generated before the v2 terrain rebuild.
Before executing any phase, sample the first few fill and set steps:
- For a
fillstep with a plannedb(before-state) value, sample the cell atawithblock_get_state. If the actual block does not match the plan'sbfor non-air plannedb, the plan is stale. - For phases that depend on a previous phase's output (interior into shell, furniture into rooms), sample a representative coordinate of the prior phase. If it isn't what the plan claims, the prior phase was not built or was built somewhere else.
On detection: HALT. Do not overwrite. Report which step's b mismatched
and where; the orchestrator routes back to the planning leaf (exec-plan or the
design-* leaf that owns the build) to re-resolve coordinates against current
world state.
This adds one extra block_get_state per phase. It is cheap; the alternative
(building 16 houses into nothing) is not.
Build and verify via the harness (primary path)
Do not hand-transcribe a phase's steps into the conversation as one MCP call after another — that floods context and is the slow path. Instead run the build+verify harness, which POSTs every step and every check straight to the server and returns one digest:
python ${CLAUDE_PLUGIN_ROOT}/tools/builder/harness.py build <plan.toon> <phase>build=run(execute the phase's steps, force-load-bracketed and auto-banded under the 256-chunk/dimension cap) thenverify(run the phase'sacceptance+quality_contractchecks). Userunalone if the orchestrator wants verification handled separately byexec-inspect.- It is stdlib-only and reads the server URL/auth from
~/.claude.json, likevoxel/mcp_place.py. See${CLAUDE_PLUGIN_ROOT}/reference/execution/build-harness.md. - Read the exit code and digest. Exit
0= every step ran and every check passed → report the digest and advance. Exit1= a step failed, a write hit a force-load miss (blocks_changed: 0on a write that should change blocks), or a check failed → stop and report exactly what the digest says; do not guess a fix. - No improvisation still applies. The harness executes the plan verbatim; you do not edit steps. If a step is malformed or a structure is missing, the digest reports it — relay that, don't patch it.
- A
LINT … REFUSEDresult is not yours to override. Ifbuild/runexits before executing with a terrain anti-pattern refusal (noquality_contract, or stacked Y-banded rectangular fills), stop and relay it verbatim. Do not pass--forceto push it through —--forceis an orchestrator decision for a genuinely rectilinear build, never the worker's. The orchestrator then routes the phase back toterrain-shape/terrain-landmarkto be re-authored as a heightmap or live sculpt. - Relay the verify token. On a PASS the report prints a
VERIFY-TOKEN: vt_…line. Copy it into your report verbatim — the orchestrator records it in the registry, andstatus:builtis illegitimate without it.
If the harness is unavailable (no Python, package missing) or the orchestrator asks for in-context execution, fall back to the manual path below.
Execute in-context (fallback path)
- Force-load first when no player is online. If
player_list_onlineis empty (a dedicated/unattended server), the phase's chunks are not write-loaded:forceload add <x1> <z1> <x2> <z2>covering the phase's bounding box (the plan'senvelopesrow for the phase, banded under 256 chunks/dimension) before the first write, andforceload remove …after. A"no change"/0-blocks result on a write you expected to change means the chunk isn't loaded — stop and force-load, don't treat it as a no-op. - Work phase by phase, step by step, in
seqorder. Never reorder steps. - After each step, confirm the call succeeded.
- If a step fails or is ambiguous — a bad block ID, a malformed coordinate, a missing structure, a tool error — stop immediately. Do not guess a fix, do not skip ahead. Report which step failed and the error.
- Prefer few large ops (
block_fill_region,block_clone_region,structure_load_to_world) over manyblock_set_statecalls. As good practice, after every ~6–8 heavy ops (large fill, structure place, big clone), drop in one lightblock_get_statebefore continuing — avoid chasing a write burst with another write burst. - Execute each
fillandreplacestep exactly as sized in the plan. The plan tiles large volumes; never merge adjacent steps into a bigger region, and never split one into smaller calls.block_fill_regionauto-tiles past 32,768 server-side, butblock_replace_in_regiondoes NOT — areplacestep whose box exceeds ~32,768 blocks silently truncates (edits the first ~32k, reports success). If you see areplacestep with a box larger than that, stop and report it as a malformed step for re-planning rather than running it. (On the harness path this is handled for you — the harness tilesreplaceautomatically.) - Watch for
blocks_changed: 0. Block ops in unloaded chunks return success with zero blocks changed. If a fill that should change thousands reports zero, the chunk wasn't loaded — stop and tell the orchestrator to ensure the work zone is loaded (via/forceload, or by having a player present) before retrying. - Watch for inert
runsteps. Arunstep that executes/functionor/reloadcan come back "successful" while doing nothing — the mod has been seen to refuse function execution (/function→ "This function should not run",/reload→successCount 0). If arunstep returns one of those, stop and report it; the plan must not depend on datapack functions, and the orchestrator should re-route to direct block ops.
Verify
The harness's build/verify already runs the phase's acceptance +
quality_contract checks mechanically and reports PASS / CORRECTIONS NEEDED /
FAIL with the failing samples. Relay that verdict — don't re-run the checks by
hand. On the in-context fallback path, run the acceptance checks yourself with
block_get_state (expected block at expected coordinate); if one fails, stop and
report it.
Update state — 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 — when several
sub-agents write the shared document in parallel they clobber each other's
entries. Instead, after completing a phase, report to the orchestrator the
exact facts it needs to update the registry: which build/element you completed,
its real anchor coordinates, and the new status (in-progress → built). The
orchestrator consolidates and writes once per phase. Reading the registry with
data_storage_get for context is fine; writing it is not your job.
Report
When done — or when you stop on a failure — report concisely (relay the harness digest when you used it):
- Phases and steps completed, with counts and total blocks changed.
- The verify verdict (PASS / CORRECTIONS NEEDED / FAIL) and any failing
check or acceptance coordinate. On PASS, the
VERIFY-TOKEN: vt_…line verbatim (the orchestrator needs it to mark the elementbuilt). - The first failing step and its error, if you stopped early.
- The force-load envelope used and whether it was released (so the orchestrator records it in the registry).
- The final registry status of the build.
Do not editorialize or suggest design changes — that is the planning leaf's job. Report facts.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

