homemaker-layout/examples/harbor-house-l0/patterns.config
Claude 055d7101cd
ssz: crinkliness is declared per space; there is no daylight attribute
Owner's ruling, and it corrects the design not just the classification: the
daylight requirement is already defined in the crinkliness. The gaussian's
compact side IS "too little exposed wall per unit floor"; its exposed side
is envelope cost. 38.9's proposed daylight: axis was redundant, and keying
it off usage: was worse than redundant.

What was actually missing: crinkliness is the only leaf quality factor with
no per-space target. size, width and proportion are all declared by the
space; crinkliness was one global number for every room in every building.

  crinkliness: none        -> no minimum-exposure requirement, may be buried
  crinkliness: [t, s]      -> this space's own target
  key absent               -> the global uncrinkliness target, as today

`none` clips the factor on the compact side, it does not switch it off:
over-exposure is still penalised, because a crinkly leaf costs envelope
whatever it holds. A store may be buried; a store may not be a starfish.

The mechanism is backward compatible -- an absent key resolves to the
global target, so shipping it changes no score. Behaviour changes only
where a config declares something, which keeps the objective change
visible per programme in config rather than hidden in a default.

Owner's classification: everything a person occupies wants a window, WCs
and reception/waiting/foyer included; only stores, plant, records and
laundry do not. migrate_crinkliness_key.py declared crinkliness: none on 18
corpus spaces. Crinkliness fails 271 -> 243, of which not-defects 136 (50%)
-> 108 (44%); the 28 that went are exactly the utility fails.

usage_daylight and needs_daylight are removed as mis-keyed, and
DAYLIGHT_USAGES with them -- a vocabulary value should exist only where the
engine treats it differently. The historical crinkliness_mode modes stay,
default off, so 38.6/38.8 remain reproducible.

uncrinkliness_circulation is now settable to none like any space, but its
default is left unchanged pending a ruling: corridors were not among the
groups ruled on and are 63% of the remaining phantom fails.

Lint at parity (46); tests 364 passed, same 7 pre-existing fixture failures.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MJ84Feep79Hhm3E4zZJmnB
2026-08-28 22:39:09 +00:00

176 lines
2.8 KiB
Text

---
# Harbor House L0 - single-storey de-risk variant (homemaker-py-c4c.1)
#
# Built from harbor-house by retaining ONLY the 10 space codes explicitly
# marked `level: 0`. The straddling anonymous spaces (n=neighborhood, t=bathroom)
# carry no explicit level key and are dropped here so the programme is an
# unambiguous single-storey set. Adjacencies are pruned to the retained codes
# (all remaining refs are to c/o or to retained codes k1/da1).
#
# Purpose: isolate per-floor CONSTRUCTION difficulty from multi-storey COUPLING.
spaces:
cr1:
usage: living
name: Common Room with Fireplace
size:
- 80.0
- 10.0
width:
- 6.0
- 1.5
proportion:
- 2.0
- 0.5
adjacency:
- c
- o
ef1:
usage: none
name: Entrance Foyer
size:
- 15.0
- 3.0
width:
- 3.0
- 0.5
adjacency:
- c
da1:
usage: living
name: Dining Area
size:
- 60.0
- 8.0
width:
- 5.0
- 1.0
proportion:
- 2.5
- 0.8
adjacency:
- c
- k1
- o
k1:
usage: kitchen
name: Kitchen
size:
- 30.0
- 5.0
width:
- 4.0
- 1.0
adjacency:
- da1
- c
ws1:
usage: living
name: Workshop Space
size:
- 40.0
- 6.0
width:
- 5.0
- 1.0
proportion:
- 1.8
- 0.5
adjacency:
- c
- o
m:
usage: living
name: Meeting Room
size:
- 10.0
- 2.0
width:
- 2.5
- 0.5
adjacency:
- c
count: 3
la1:
crinkliness: none # no window needed
usage: utility
name: Laundry Room
size:
- 20.0
- 4.0
width:
- 3.0
- 0.8
adjacency:
- c
st1:
crinkliness: none # no window needed
usage: utility
name: Ground Floor Storage
size:
- 22.0
- 4.0
width:
- 3.0
- 0.8
adjacency:
- c
me1:
crinkliness: none # no window needed
usage: utility
name: Mechanical/Electrical Room
size:
- 25.0
- 4.0
width:
- 3.5
- 0.8
adjacency:
- c
of:
usage: bedroom
name: Staff Office
size:
- 12.5
- 2.5
width:
- 2.5
- 0.5
adjacency:
- c
count: 2
# Building constraints — single storey
storey_minimum: 1
storey_limit: 1
force_roof_garden: 0
# Circulation ratio
ratio_circulation:
- 0.08
- 0.15
# Outside space ratio (courtyard requirement)
ratio_outside:
- 0.15
- 0.10
# Staircase requirements (single storey: minimum is forced to 1 by the
# fitness `or 1` default, so we keep exactly one)
staircase_min: 1
staircase_max: 1
# Economic parameters
value_inside: 300.0
value_circulation: 50.0
value_outside: 100.0
value_supported: 300.0