# Worker

> 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 the planner once it is detailed enough to follow mechanically. Part of the minecraft-builder workflow.

- Skill: `chapmanjw/worker` (Agent Skill)
- Install (CLI): `npx skillmds@latest add chapmanjw/worker`
- Raw SKILL.md: https://api.skillmd.com/api/skills/chapmanjw/worker/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: chapmanjw (https://skillmd.com/u/chapmanjw)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/chapmanjw/worker

---


# 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 an `mc_*` 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` | `mc_block_fill` | Fill the region from `a` to `b` with `block`. |
| `set` | `mc_block_set` | Place `block` at `a`. |
| `replace` | `mc_block_replace` | In region `a`–`b`, replace one block type with `block`. |
| `clone` | `mc_block_clone` | Clone region `a`–`b` to the destination in `note`. |
| `place-structure` | `mc_structure_place` | Stamp structure `block` at `a`. |
| `spawn` | `mc_entity_spawn` | Spawn entity `block` at `a` (`note` carries any tags). |
| `run` | `mc_run_command` | Run the raw command in `note`. Last resort. |

Coordinates are absolute `x y z` strings — use them literally. Do no arithmetic.

You may also be invoked to apply a short **corrections** phase produced by the
`inspector` — 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 `fill` step with a planned **`b` (before-state)** value, sample the
  cell at `a` with `mc_block_get`. If the actual block does not match the
  plan's `b` for non-air planned `b`, 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 planner-class skill that
owns the build to re-resolve coordinates against current world state.

This adds one extra `mc_block_get` per phase. It is cheap; the alternative
(building 16 houses into nothing) is not.

## Execute

- Work **phase by phase, step by step, in `seq` order**. 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.
- Respect the command throttle: each step is one call; do not fire calls in a
  tight burst. After every ~6–8 heavy ops (large fill, structure place, big
  clone), drop in one light `mc_block_get` before the next burst — the BDS
  script watchdog drops the bridge if a burst saturates it.
- Execute each `fill` step exactly as sized in the plan. The planner has
  already tiled large volumes to stay within Minecraft's ~32,768-block limit —
  never merge adjacent `fill` steps into a bigger region, and never split one
  into smaller calls.
- **Watch for `blocks_changed: 0`.** `mc_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 add a ticking area over the work zone before retrying.

## Verify

After each phase, run the plan's `acceptance` checks for that phase with
`mc_block_get` — confirm the expected block is at the expected coordinate. If a
check fails, stop and report it.

## Update state

After completing a phase, update the **`mcbuilder:registry`** world dynamic
property: read it with `mc_property_get`, set the relevant build's `status`
(`in-progress` → `built`) and its real anchor coordinates, and write it back
with `mc_property_set`. The world record must reflect what actually got built.

## Report

When done — or when you stop on a failure — report concisely:

- Phases and steps completed, with counts.
- Any acceptance check that failed, with coordinates.
- The first failing step and its error, if you stopped early.
- The final registry status of the build.

Do not editorialize or suggest design changes — that is the planner's job.
Report facts.

