homemaker-layout/examples/maple-court
Claude ee050532d6
Declare toilet-to-sleeping adjacency where the brief supports it
A toilet next to a sleeping room is a positive even with no door between
them (Brand): the adjacency is what makes a later knock-through possible.
The engine already scores it -- check_adjacency runs against the unfiltered
graph_base_pre -- but only where a programme declares it, and only
programme-house did.

Declared:
  harbor-house  t -> n    bathrooms serve the Neighborhoods (communal
                          sleeping); both unpinned, 6 t / 5 n
  maple-court   tt -> r   Upper Bathrooms among Individual Rooms, both
                          level 2, already 62% adjacent at seed time

NOT declared, and checking before declaring is what caught these:

  maple t -> n is IMPOSSIBLE. Adjacency is evaluated per level, and maple
  pins t to level 0, n to level 1. Declaring it would have added six
  permanently unsatisfiable fails; the 0% seed-time rate was a hard
  impossibility, not search difficulty. maple's ground floor has six
  bathrooms and one sleeping room (Clinic Room x1) -- a ground-floor WC in
  a communal building is public, so Brand does not apply anyway.

  health-centre has no dedicated WC. The ruling was that a treatment room
  "may give access to a toilet, but this would be a dedicated toilet"; t9
  is a Public WC and t10 a Staff WC. Earning the credit needs a WC added to
  the brief -- programme authoring, filed as homemaker-py-5nw.

Both declarations are reachable (best of 8 seeds 2/3 harbor, 2/2 maple), so
the search gets a gradient not a permanent penalty. evolved-3M-nols-3
84 -> 89 fails, all five the new requirement.

Cost: cpsat assignment ~7.5x slower on harbor (0.28 -> 2.11s per seed);
greedy, the default, unchanged at 0.06s. Ordinary runs pay nothing, but
39.5's cpsat-vs-greedy verdict was measured on a cheaper problem than the
corpus now poses -- filed as homemaker-py-vjd.

Two tests were over-fitted to the old seeds and are repaired to assert
their intent, not relaxed to pass: reassign now sweeps six constructive
seeds (seed 0's better-seeded design legitimately has nothing to improve,
5 of 6 others fire), and repair_circulation asserts that repair strictly
helps plus a >=85% bar rather than a sampled 100% hardened into a
guarantee (measured 25% -> 92%, stable over 6 and 12 seeds).

Closes homemaker-py-3qj.

Lint at parity (46); tests 379 passed, 0 failed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MJ84Feep79Hhm3E4zZJmnB
2026-08-29 10:57:44 +00:00
..
coldstart-500000-s0.log Checkpoint long searches; the cold-start runs were lost to a reclaimed box 2026-08-29 05:43:58 +00:00
generated.dom Phase 7 §12.2: proportion-aware constructive seeding + storey_minimum fix (leu.2, cq1) 2026-06-20 14:04:42 +01:00
init.dom Phase 7 §12.1: larger-than-house benchmark maple-court + baseline (leu.1) 2026-06-19 14:00:21 +01:00
patterns.config Declare toilet-to-sleeping adjacency where the brief supports it 2026-08-29 10:57:44 +00:00