| name | construction-ready-check |
| description | Run the construction ready gate on a structured layout (rooms + openings JSON): clearance tables, habitability, daylight, egress connectivity, module grid. Trigger: "is this floor plan code-sane", "check my layout", "validate this plan". NOT a permit, NOT a PE stamp — jurisdiction codes override.
|
| kind | skill |
| license | MIT |
| runtimes | ["claude-code","codex","hermes"] |
construction-ready-check
When to use
Any floor-plan layout claiming to be construction-ready — generated by
brief-to-blueprint, extracted by scene-to-layout, or hand-drawn and transcribed.
What it does
- C1 topology: closed room polygons, unique names, opening endpoints resolve.
- C2 clearances: every opening ≥ its
data/clearances.yml table minimum
(Neufert/IRC/ADA lineage — the tables ARE the gate).
- C3 habitability: min area + min dimension per room type; habitable rooms
need daylight (≥1 window) and ceiling ≥ table minimum.
- C4 egress: every room reachable from
exterior via the opening graph, with
at least one entry-grade door.
- C5 module grid: ≥90% of coordinates on the ISO 2848 100mm module.
- Unknown room/opening types are not measured ⇒ fail — never assumed.
Example
python3 examples/studio-flat/generate.py layout.json
python3 pipeline/construction_gate.py layout.json --json
Verification (eval-with-teeth)
Success may be declared ONLY when the gate exits 0. The gate itself is held by
tests that mutate the golden layout seven known-bad ways and assert each fails:
python3 -m pytest tests/test_construction_gate.py -q
Safety
v0.1 checks the layout graph and dimensions — not structural spans, geometry
consistency between polygons, or jurisdiction code text. Every report carries
the disclaimer; stripping it is a violation. IFC validation is roadmap.
Cross-runtime
Python + PyYAML (already required by the repo's scripts); exit codes gate any CI.