Skip to content

Skills · civil-architect

floor-plan-layout

Lay out a schematic floor plan from a space programme and a footprint, and draw it as a dimensioned SVG — rooms placed as rectangles at real sizes, doors and windows on real walls, overall dimensions, a scale bar and north arrow — with a script that fails the plan when rooms overlap, a room spills outside the footprint, a door sits on no shared wall or a room can't be reached from the entrance. Use when an architect asks to "draw a floor plan", "lay out these rooms", "make a plan for a 10 × 9 m footprint", for a concept plan, a test fit, a zoning diagram or a dimensioned layout from room sizes.

Pack civil-architectTier heavyJob Design a buildingv0.1.0

npx skilldrop-cli install floor-plan-layout
Other ways to install

With the sibling skills it hands off to:

npx skilldrop-cli install floor-plan-layout --with-related

The whole pack it belongs to:

npx skilldrop-cli install --pack civil-architect

By hand, from a clone of the repo:

cp -R packs/civil-architect/skills/floor-plan-layout ~/.claude/skills/

In Claude Code, with the civil-architect plugin installed, invoke it as:

/civil-architect:floor-plan-layout

Try it

A realistic prompt from the skill's acceptance evals:

Draw a ground floor plan for a 10 m wide × 9 m deep footprint, road on the south, front door from the road. Rooms: foyer 6 m², living 26 m², dining 14 m², kitchen 12.6 m², utility 4 m² next to the kitchen, prayer room 4.5 m² not next to the kitchen or the toilet, guest toilet 3.2 m², and a stair to the first floor. Living, dining, kitchen and prayer room need windows.

What a good result looks like

Example output

Worked example: ground floor on Plot 14 · the skill's own worked example, source

Worked example

Input

"Lay out the ground floor for the family house. Programme is in program.json (foyer, living, dining, kitchen, utility, prayer room, guest toilet), footprint 10 m wide × 9 m deep, road on the south side, front door from the road. Keep the prayer room away from the kitchen and the toilet. Stair to the first floor."

Zoning, decided before coordinates

  • Public front: foyer, then living along the road, so a guest never passes the kitchen.
  • Stair beside the foyer, so the first floor is reached without crossing the living room.
  • Service back: dining, kitchen, utility and toilet across the rear, with a back door from the hall for deliveries.
  • Wet rooms (kitchen, utility, toilet) side by side at the back, so drains run to one side of the plot and stack under the first-floor bathrooms.
  • Prayer room in the south-east corner, off the living room: an outside wall for a window, and the hall, not the kitchen or toilet, on its other side.

First draft: the checker caught it

The first draft widened the kitchen to 3.2 m. The checker exited 1:

FAIL Kitchen and Utility overlap by 0.46
FAIL Kitchen and Toilet overlap by 0.38
FAIL door 8 (Kitchen – Utility) at (6.6, 6) is not on a wall both sides share
FAIL Utility cannot be reached from an entrance

The extra 0.2 m pushed the kitchen into the utility and the toilet. The utility door, moved to the kitchen's new wall, then sat inside the utility rather than on a wall the two share, so the utility could not be reached. Kitchen back to 3.0 m (12.6 m², its target).

plan.json

See ../templates/plan.json, unchanged.

Response

Plan: ground-floor.svg. Public rooms along the road, service rooms across the back, the stair beside the foyer.

RoomSize (m)Area (m²)Target (m²)
Foyer2.5 × 2.46.06.0
Stair2.5 × 2.46.0
Living5.4 × 4.825.925.9
Prayer room2.1 × 2.24.64.5
Dining3.4 × 4.214.314.0
Kitchen3 × 4.212.612.6
Utility1.6 × 2.33.74.0
Toilet1.6 × 1.93.03.2
Hall2.1 × 2.6 + 2 × 4.213.9
Rooms90.0
Outline90.0

PASS no overlaps, every door on a shared wall, every room reachable.

Off target: utility 3.7 m² against 4 (−8 %) and toilet 3.0 against 3.2 (−6 %), both inside the 10 % tolerance, traded for keeping the toilet off the prayer room. The hall is 13.9 m² because it doubles as the back entrance; a tighter option moves the back door to the utility and gives the spare 4 m² to the kitchen.

What this plan is not: schematic; walls drawn at a nominal 230 mm; no structure, services or bye-law check. The architect checks the toilet's ventilation and the stair's width against the local rules.

How it's checked

Admitted against plain Claude Code: on held-out evals written blind from its description, two judges preferred it in 4 of 4 and 3 of 4 pairs, and it met 58% of their checks, against 51% without it (RFC-0075). How skills are checked

26 assertions across 4 acceptance evals, and 7 trigger queries. Every skill's checks

What the output must do
  • Writes a plan.json and runs plan_check.py, and the final run exits 0 (no FAIL lines)
  • Writes an SVG with overall dimensions, room sizes and areas, a scale bar and a north arrow
  • Every room listed is on the plan, each within 10 % of its area or the difference is explained
  • The prayer room shares no wall with the kitchen or the toilet
  • Living, dining, kitchen and prayer room each have a window on an outside wall
  • States the zoning decisions (public at the front, wet rooms grouped, stair placement) before or with the plan
  • Says the plan is schematic and not checked against the building code
  • Runs plan_check.py and shows a plan only after it exits 0
  • Neither bedroom's only door opens onto the living/dining room; both are reached from the hall
  • No bedroom or living space is reached only through the bathroom
  • Every room has its size and area on the drawing, and the totals fit inside 7.2 × 10.8 m
  • Delivers the plan without asking questions first, tagging anything it had to assume
  • Does not draw the plan in ASCII or Mermaid
  • It produces an SVG plan with overall dimensions of 10.0 m (E-W) × 9.0 m (N-S), a scale bar, and a north arrow that agrees with the entrance being on the south wall
  • All five rooms are drawn at their stated sizes (to within about 0.1 m), all fully inside the footprint, with no two rooms overlapping
  • The entrance door is on the south external wall
  • Every room can be reached from the entrance through doors, via the living room or a hall/corridor
  • The bathroom door does not open into the kitchen, and there is no door between the bathroom and the kitchen
  • Windows are only on external walls, never on internal partitions
  • It does not invent rooms beyond the five requested plus circulation (no second bathroom, store, garage or porch presented as part of the brief)
  • It reports that the programme's rooms add up to 869 sq ft (320 + 144 + 182 + 121 + 54 + 48) against a 720 sq ft footprint (30 × 24), 149 sq ft over before any circulation, so it cannot fit as given
  • It does not hand over a plan where rooms overlap, rooms sit outside the 30 × 24 ft footprint, or rooms have been shrunk without saying which ones and by how much
  • It offers concrete ways to fix it (named rooms cut or resized with new sizes, a larger footprint, or a second storey as an option for the user to decide) or asks the user to choose; if it draws a test fit, it lists every changed room size next to the programme size
  • Any plan it draws is an SVG dimensioned in feet and inches, 30'-0" × 24'-0" overall, with a scale bar and a north arrow that puts the street on the west
  • Any plan it draws has the entry door on the west (street) wall, and every room can be reached from it
  • It does not invent rooms, a second storey stated as fact, or zoning rules that are not in the prompt or the programme
When it should and shouldn't activate

Should activate:

  • Draw a floor plan for these rooms in a 12 × 15 m footprint
  • Lay out a 3BHK in this footprint and give me a dimensioned plan
  • Can you do a quick test fit of the clinic programme on the ground floor?
  • Make a zoning diagram for the house with the bedrooms away from the road

Should leave to another skill:

  • Make a Figma diagram of our microservices
  • Draw a sequence diagram of the checkout flow
  • Build an interactive diagram of our data pipeline I can click through

Source

SKILL.md · the whole folder on GitHub.