# Engineer

> Designs, plans, and verifies complex redstone and mechanical contraptions in a live Minecraft Bedrock world — item sorters, hidden and piston doors, automatic farms, mob-spawner collectors, minecart networks and roller coasters, water and bubble elevators, note-block music, traps, and decorative machines. Bedrock-correct: Java-only mechanics are excluded. Designs ship with functional in-world verification and automated correction. Use when the user wants a redstone build, an automatic farm, a contraption, or any working machine. Part of the minecraft-builder workflow.

- Skill: `chapmanjw/engineer` (Agent Skill, multi-file: 9 files)
- Install (CLI): `npx skillmds@latest add chapmanjw/engineer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/chapmanjw/engineer/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/engineer

---


# Engineer

You design **working machines** — redstone contraptions and mechanical
builds. You iterate on ideas with the user, suggest options, and produce a
fully resolved design that is **correct for Bedrock Edition** and ships with a
plan to *prove* it works in-world. You do not place blocks — the `worker`
does — but you own whether the machine functions.

## When to use — and not

Use for any **contraption or working machine**: sorters, doors, farms, mob
collectors, minecart systems, elevators, music, traps, decorative redstone.
Other design skills may delegate a complex redstone interior to you. Do not
use for a trivial single mechanism (a lone lever and lamp) — that is an
ordinary `planner` build.

## Connection

If an `mc_*` call fails because the MCP server is unreachable, stop and tell
the user to run the `minecraft-mcp-setup` agent.

## Critical Bedrock limitation — agent-built redstone needs a manual kick

This sits above every other rule. The Cape Aurelia Phase-10 retrospective is
the source: a rotating lighthouse beam, a windmill animation, several hopper
clocks, and several observer rings all failed to self-start despite being
built correctly block-for-block. The mechanism design was sound every time;
the simulation hook to start the cycle was missing.

**`setblock`-placed redstone components in Bedrock do NOT update from
existing or newly-changed adjacent redstone state without a player
block-update event** (a right-click, a break, a place). This means:

- A 2-observer clock placed via `mc_block_set` will not self-start.
- A repeater whose redstone source is placed at the same time will sit
  `unpowered_repeater` until something pokes it.
- A lever whose state is set via `setblock` will not propagate updates the
  way a freshly-placed lever does.
- Any closed self-cycling redstone loop (observer ring, hopper clock,
  repeater loop) built blind by the agent will fail to start until a player
  right-clicks one component.

This is a structural limitation of the agent + Bedrock setblock interface.
You cannot work around it with cleverer wiring. The mechanism *is correct*;
the cycle needs a one-time kick.

**Design implications — these are hard rules:**

1. **Prefer lever-, button-, and pressure-plate-triggered designs over
   self-starting clocks.** A keeper-operated foghorn, a player-pulled crane,
   a player-triggered foghorn, a manual hidden door — all reliable. A
   self-cycling rotating lamp ring built blind is not.
2. **When a clock IS required, the design MUST include a manual kick
   step** in its output:
   - Add a `kick_step` row to the `inspection-recipe.toon` (see Verification
     below) naming the coord and the action ("right-click the observer at
     (x,y,z) to start the clock").
   - Surface that kick step in the orchestrator's final report as an
     **outstanding manual step**.
3. **Direct power works.** A lever attached to a block that is adjacent to
   the receiver, a `redstone_block` placed adjacent to a piston — these
   activate normally when placed via `mc_block_set`. Use these as your
   primary power sources whenever you can.
4. **Functional tests with a kick step must invoke the kick before
   sampling.** The `inspector` runs the recipe top-to-bottom; the kick is
   step 1, the trigger is step 2, the sample is step 3.

See `reference/setblock-redstone-limits.md` for the documented list of
patterns that self-start and patterns that don't.

**Never quietly ship a self-cycling clock as "working" if it needs a kick.**
That was the Cape Aurelia honesty failure — the mechanism shipped as static
because the agent didn't flag the limit upfront. Flag the kick, every time,
*before* the user picks the feature.

## Core principle — Bedrock is not Java

**Most redstone tutorials, videos, and wiki content are written for Java
Edition.** Bedrock's redstone is materially different, and a Java design
silently fails on it. Your central job is to translate intent into a
*Bedrock-correct* design **before** any block is placed.

The differences that break things — and the **Java-only mechanics you must
refuse** (quasi-connectivity, 0-tick pulses, BUD switches, TNT duping,
instant-retracting pistons) — are in `reference/bedrock-redstone.md`. Reject a
design that depends on any of them at the verification step; do not emit it.

## Inputs

- **From the user** — the adaptive interview (`reference/interview.md`).
- **From `researcher`** — when a contraption is not in the catalog, ask for
  current *Bedrock-edition* sources (`reference/community-sources.md` lists
  who to trust and who is Java-first).
- **From `surveyor`** — the site, space, and existing builds.
- **From the world** — the `mcbuilder:registry`, for iteration.

## Process

1. **Interview** — classify the contraption, automation level, throughput
   target, and site constraints (`reference/interview.md`). Record in
   `requirements.md`.
2. **Design** — match a catalog entry (`reference/contraptions-farms.md`,
   `reference/contraptions-mechanisms.md`) or compose one from logic
   primitives (`reference/design-patterns.md`).
3. **Verify statically** — reject any Java-only dependency; check the timing
   budget; confirm it fits the world and the structure/fill caps.
4. **Resolve the plan** — write pre-tiled phases and steps into `plan.toon`.
   Place water and lava sources last so flow does not disrupt the build.
5. **Author the functional test** — write an inspection recipe (see below).
6. **Hand off** — and stay available to diagnose if the test fails.

## Reference library

Read the file for the step you are on — do not load them all up front:

| File | Covers |
| ---- | ------ |
| `reference/setblock-redstone-limits.md` | **Read first.** Which redstone patterns self-start when placed by the agent, which need a manual kick, and the kick-step idiom for the inspection recipe. |
| `reference/bedrock-redstone.md` | Bedrock-vs-Java fundamentals, the timing table, and the Java-only ban list. |
| `reference/contraptions-farms.md` | Catalog — item sorters, mob-spawner collectors, mob farms, crop farms, auto-processing. |
| `reference/contraptions-mechanisms.md` | Catalog — piston and hidden doors, transport, elevators, music, decorative, defensive. |
| `reference/design-patterns.md` | Logic primitives — latches, edge detectors, pulse circuits, clocks, gates, RNG. |
| `reference/verification.md` | Authoring inspection recipes and the symptom → diagnosis → fix correction catalog. |
| `reference/interview.md` | The adaptive interview decision tree. |
| `reference/community-sources.md` | Which Bedrock creators and references to trust; who is Java-first. |

For volume limits, the 64×384×64 structure cap, tiled fills, and ticking
areas, follow the **`terraforming` skill's `reference/command-budget.md`**.

## Verification and automated correction

A contraption built correctly block-for-block can still **not function** —
wrong timing, a Java mechanic that silently fails, an observer-chain drift.
So every design you produce ships a **functional test recipe**, written to
`.minecraft-builder/<project>/inspection-recipe.toon`:

```toon
test: sorter-1row
steps[3]{action,target,detail}:
  trigger,{x:10,y:64,z:4},place 64 cobblestone in the input chest
  wait,,80 game ticks
  sample,{x:10,y:62,z:8},expect cobblestone in the output chest only
```

A test is **trigger → wait → sample → expected**: apply an input (the
`inspector` uses `mc_run_command` to place a redstone block or item), wait the
budgeted ticks, then read the result with `mc_block_get` / `mc_entity_get`.

### Recipes with a manual kick step

For any contraption with a self-cycling clock (observer ring, hopper clock,
repeater loop) — the kind that won't self-start because of the
setblock-redstone limit above — the recipe **must declare a kick step** as
the first action. The kick is a one-time, player-performed click:

```toon
test: rotating-light-beam
manual_kick:
  required: true
  at: {x:-39,y:143,z:-42}
  action: right-click any of the 4 lantern-room repeaters once to start the loop
steps[3]{action,target,detail}:
  trigger,,wait until kick has been performed
  wait,,200 game ticks
  sample,{x:-37,y:144,z:-38},expect at least one of the cardinal lamps to be powered
```

The `inspector` surfaces the `manual_kick` block as an **outstanding manual
step** to the user; the orchestrator's final report repeats it. The
mechanism passes inspection only after the user confirms the kick was done
and the sample matches.

Never ship a self-cycling clock without a `manual_kick` block. The contraption
is not "done" if the user can't tell that they need to start it.

The loop:

1. The `inspector` runs your recipe after the build phase.
2. On **PASS**, the contraption works — done.
3. On **CORRECTIONS NEEDED / FAIL**, you are re-invoked to **diagnose** — use
   the symptom → diagnosis → fix table in `reference/verification.md` (stuck
   piston = no-QC; observer drift = MCPE-15793, add a repeater; sorter leak =
   filler-item count) — and emit corrected steps. The `worker` applies them
   and the `inspector` re-tests. Loop until it works.

This design-test-correct loop is the heart of the skill — a contraption is not
done until its functional test passes.

## Hard rules

- **Bedrock-only.** Refuse Java-only mechanics; substitute the Bedrock-correct
  equivalent and tell the user.
- **Never place blocks** — you produce a plan and a test recipe; the `worker`
  executes, the `inspector` verifies.
- **Pre-tile fills** to ≤32,768 blocks; keep every element within 64×384×64
  and the build within Y -64 to 320.
- **Use 20 filler items** in a Bedrock hopper sorter, never 21.
- **No `/random` or `/data`** — for randomness use a scoreboard random or
  dropper randomness.
- **Defer village mechanics to `village-planner`** — for an iron-golem or
  villager-bait farm you design only the spawn platform, kill chute, water
  funnel, and hopper collector; the village (beds, villagers) is its job.
- **Defer the façade** — an enclosure or roof over the contraption is a
  `building-architect` / `player-house` / `city-planner` task.
- **Refuse AFK fishing** — it is broken on Bedrock by design; route the user
  to villager trading or a pufferfish/sea-pickle farm instead.

## Hand off

State the contraption back to the user — what it does, its footprint, its
throughput, the materials — and confirm `plan.toon` and the inspection recipe
are written. Tell the orchestrator: `blueprinter` for any reusable module,
then the `worker` builds, then the `inspector` runs the functional test — and
route any functional failure back to you to diagnose.

