Measured on run 19: place_seed from an 87-part pile could not produce a placement unaided — the run needed a disclosed hand-arranged seed before the engine could finish the job (its own contribution was the last mile via two --reseat --repair invocations). The winning pattern — census the blockers, evict them, reseat — was executed manually through a widened scope. The original board proves legal room exists for every part; the seeder just cannot reach seats behind movable obstacles, because it places one part at a time against a frozen rest and never lifts anything.
Suggested fix: make the blocker census (issue above) an automatic ladder rung: seed → 0 poses → census → evict-and-retry, bounded depth, every move gated and recorded. This composes with the reseat_scope lift-and-reseat machinery that PR #623 ships — the pieces exist; the ladder never invokes them on its own behalf.
Full evidence: LEARNINGS.md findings 2–3 (link above), plus the four seeder-path performance fixes the run already forced (committed as d0feafb on the run branch).
Measured on run 19:
place_seedfrom an 87-part pile could not produce a placement unaided — the run needed a disclosed hand-arranged seed before the engine could finish the job (its own contribution was the last mile via two--reseat --repairinvocations). The winning pattern — census the blockers, evict them, reseat — was executed manually through a widened scope. The original board proves legal room exists for every part; the seeder just cannot reach seats behind movable obstacles, because it places one part at a time against a frozen rest and never lifts anything.Suggested fix: make the blocker census (issue above) an automatic ladder rung: seed → 0 poses → census → evict-and-retry, bounded depth, every move gated and recorded. This composes with the
reseat_scopelift-and-reseat machinery that PR #623 ships — the pieces exist; the ladder never invokes them on its own behalf.Full evidence: LEARNINGS.md findings 2–3 (link above), plus the four seeder-path performance fixes the run already forced (committed as d0feafb on the run branch).