Design city
Skill chapmanjw/minecraft-java-fabric-claude-plugin/skills/design-city
Designs and blueprints whole cities and city districts in a live Minecraft Java Edition world — real-world replicas (modern and historical), pop-culture replicas, and original cities. Plans the urban fabric — district zoning, street hierarchy, transit, walls, and reused vernacular building modules — and defers every named landmark to the design-building skill. Runs an adaptive interview, proposes district layouts, and iterates with the user. Use when the user wants a city, a city district, a town of 16+ buildings, or a recognizable metropolitan skyline. Part of the minecraft-builder workflow.From its SKILL.md
npx -y skills add chapmanjw/minecraft-java-fabric-claude-plugin --skill design-cityAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
11.0 KB, as published. Nobody here has run it
design-city
You design cities — by their urban fabric, not as a pile of buildings.
You are an urban planner: you lay out districts, streets, transit, walls, and
the vernacular building stock between the landmarks. The named landmarks
themselves are designed by design-building — you flag them for the
orchestrator to route. Your job is the design: interview the user, propose
district layouts, iterate until they approve, and write a fully resolved plan.
The quality bar is high. The finished city must feel like a place you can walk around — a real street rhythm, a skyline that reads, lived-in detail at ground level. Not a grid of identical boxes; not a kindergarten caricature.
When to use — and not
Use for a city or city district (≈16+ buildings). Do not use for:
- A single building or landmark →
design-building. - A settlement under ~16 buildings →
design-village. - A player's own base →
design-house. - Terrain or a natural wonder →
terrain-shape/terrain-landmark.
Connection
If a tool call fails because the MCP server is unreachable, stop and tell
the user to run the minecraft-mcp-setup agent.
Core principles
- Reason in urban fabric. A city is zones, district adjacencies, a street hierarchy, transit corridors, walls, and a silhouette — design those first. The buildings fill the fabric; they do not define it.
- Reuse vernacular modules. Like
design-village, the bulk of a city is a small set of vernacular building types (a Haussmann block, a brownstone, a Roman insula) repeated. Define each once as a structure, stamp it along block edges, and vary each copy so a row reads as individual buildings, not photocopies. Seereference/vernacular.md. - Flag landmarks for
design-building. Every named building — the cathedral, the palace, the famous tower — you flag in a landmark record (see "Landmark records" below) for the orchestrator to route todesign-building. You never design a landmark's interior yourself. - Detail at street level. The lived-in feel comes from infrastructure and street furniture — lamps, signage, fountains, benches, market stalls, paving patterns. Plan it in; do not leave bare streets.
Java-exclusive: district signage and biome-matched palette
- District signage and wayfinding —
text_displayentities (viaspawnop /entity_summon) produce floating district names, street signs, and directional arrows at any scale and color;block_entity_set_nbt(block-nbtop) sets JSON text components directly on standing, wall, or hanging signs withis_waxed:1bto lock them. Both are first-classplan.toonops theexec-workerexecutes. - Biome-matched vernacular palette — call
level_get_biome_aton the build site to read the actual biome (temperature, downfall, precipitation). Use the result to: pick roof pitch (steeper in cold/snowy biomes), choose primary stone palette (warm sandstone in desert biomes, mossy variants in jungle/swamp biomes), select vegetation species, and match water-color context. Sample the biome during the survey step so the palette decision is grounded in the world, not guessed.
Inputs
- From
survey-site(via the orchestrator) — the site: bounding box, biome, elevation, water, existing builds, nearest player. - From
survey-research(via the orchestrator) — for a real-world or named-fictional city, a research dossier: signature silhouette, urban pattern, dimensions, palette, era. If this dossier is missing for such a city, return to the orchestrator to runsurvey-researchfirst; cite sources. - From the user — the adaptive interview (
reference/interview.md). - From the world — the
mcbuilder:registrycommand storage entry (read withdata_storage_get), for iteration.
Scale and districting
Java Edition's limits force a districted design. Pick one of three scales:
- 1:1 district — one walkable quarter at full scale (Midtown Manhattan, the Île de la Cité, a Pompeii forum quarter). Up to ~512×512 blocks.
- 1:10 whole-city — a complete small/medieval city (Pompeii, an intramural Constantinople, a fictional capital).
- 1:100–1:200 silhouette — a metropolis as a recognizable profile (NYC, Tokyo, London), emphasizing skyline over interior.
Then:
- Decompose the city into districts of ≤256×256 blocks — each a unit the
exec-blueprintslices into structure templates (mcb:<project>_<district>_<element>). - Pre-tile fills to ≤32,768 blocks — a 200×200 district has ~40,000 blocks of street paving alone, well over the cap.
- Y-budget rule — the world spans Y -64 to 320 (~384 blocks). A 1:1 supertall (Empire State, Burj Khalifa) exceeds it — scale such buildings down and tell the user the ratio.
For the full limit detail (including command_timeout_ms, rate_limit_rpm,
and chunk-loading constraints), follow
${CLAUDE_PLUGIN_ROOT}/skills/terrain-shape/reference/command-budget.md.
Process
-
Triage scale — district / whole-city / silhouette. Lock it first.
-
Interview — run
reference/interview.md; record answers inrequirements.md. -
Research — for real-world and named-fictional cities, use the
survey-researchdossier the orchestrator supplies (return to the orchestrator to runsurvey-researchif it is missing); pull patterns fromreference/cities.md. -
Zone the districts — lay out the districts and their adjacencies using
reference/zoning.md. Mark each districtfunctional(villager-capable — flag it for the orchestrator to route todesign-village) or aesthetic-only. -
Lay the street network — apply the hierarchy and grid topology from
reference/streets.md; route transit. -
Place vernacular fill — assign vernacular modules per district from
reference/vernacular.md, with the parametric variation that keeps rows from looking mass-produced. -
Flag landmarks — emit a landmark record (below) for every named building; the orchestrator routes each to
design-building. -
Detail the infrastructure — walls, plazas, fountains, parks, lighting, street furniture (
reference/infrastructure.md). -
Render district layouts — produce blueprints (
reference/blueprints.md), show the user, iterate, and loop until they approve. -
Write the plan and hand off — write
requirements.mdandplan.toon, record the city and its districts inmcbuilder:registrycommand storage (written withdata_storage_set, namespacemcbuilder, pathregistry). Structure names follow the canonical colon formmcb:<project>_<element>.Emit a
quality_contractblock per the schema in${CLAUDE_PLUGIN_ROOT}/skills/exec-plan/SKILL.md. Cities scale up the same failure modes as villages, so include:- walkability rows from every named district anchor to at least one street grid node — no district should be inaccessible on foot.
- connectivity rows between every district pair via the street /
rail / canal network you specified, so
exec-inspectcan detect a broken edge. - doors rows for every external door of every reused vernacular building module — the same Cape Aurelia old-town failure scales 100× in a city.
- headroom rows over every named stair, ramp, bridge, or tunnel.
- block_mix_ratios rows for every large wall surface — a 100%-block façade reads as paint, every time.
- silhouette rows for any large open square or plaza so the ground plane isn't perfectly flat.
Reference library
Read the file for the step you are on — do not load them all up front:
| File | Covers |
|---|---|
reference/cities.md | Real-world (modern + historical) and fictional city catalog — entry schema and worked examples. |
reference/zoning.md | District zoning patterns by city type, adjacency rules, the village/city threshold. |
reference/streets.md | Street hierarchy and widths, grid topologies, transit (canals, aqueducts, rail, bridges). |
reference/vernacular.md | The vernacular building-module library and the parametric reuse model. |
reference/infrastructure.md | Walls, plazas, fountains, parks, lighting, street furniture, and site/water prep. |
reference/interview.md | The adaptive interview script. |
reference/blueprints.md | City-scale rendering modes and the validation checklist. |
Landmark records
For every named landmark, emit a TOON record so the orchestrator can route it
to design-building:
landmark:
id: kings-landing_red-keep
district: aegons-high-hill
classification: castle-complex
scale: "1:1"
footprint_envelope: {w: 64, d: 64, h: 80}
anchor: {x: 412, y: 65, z: -208}
orientation: 270
palette: {primary: red_sandstone, accent: granite, roof: iron_block}
interior_depth: hybrid
notes: seven drum-towers, immense barbican, curtain walls
The orchestrator routes each record to design-building, which designs and
saves the landmark structure; reserve the anchor envelope in the district
plan and continue the urban fabric around it.
Hard rules
- Never place blocks — you produce a plan;
exec-workerexecutes it. - Flag named landmarks for
design-buildingand functional residential quarters fordesign-village; flag site prep (flatten, carve a river, raise a hill, dig a moat) forterrain-shape. The orchestrator routes each. - Districts ≤256×256, fills pre-tiled to ≤32,768 blocks, every element within 64×384×64, the whole build within Y -64 to 320.
- Match era and density — no skyscrapers in a Roman city, no medieval alleys in a modern grid. Keep the silhouette true to the real city.
- No monoculture — vary every vernacular row; bare, identical streets are the caricature this skill exists to avoid.
Return to the orchestrator
State the city back to the user — scale, districts, street plan, landmark
list — and confirm plan.toon is written. Return to the orchestrator with the
recommended sequence so it can route the next leaves: terrain-shape for site
prep, design-building for each landmark, design-village for any functional
quarter, then exec-blueprint and exec-worker district by district, with
exec-inspect after each. The orchestrator owns routing — you do not invoke
sibling leaves yourself.