# Sokoban without training — verification summary

Recorded 11 October 2026. Algorithmic planning, not machine learning.

- Collection: all 137 LOMA community puzzles, in upstream order, three pots each.
- Solver: breadth-first search over pushes, merging equivalent walking regions; static non-target wall-corner pruning.
- Fixed initial-board verification cap: 10,000 queued search nodes per puzzle.
- Outcome: 137/137 legal complete routes, replayed through the actual game engine and save validator.
- Minimum pushes: 7–69. First puzzle: 23 pushes/127 route movements; final: 42 pushes/88 route movements.
- Found routes minimize pushes; total movements are not globally optimal. Search-budget failure is not an unsolvability proof.
- No training, learned policy, held-out ML claim or unseen-puzzle generalization measurement.
- Search is an offline audit tool; player hints and starter tutorials are retired.
- Browser evidence covers real keyboard/touch completions, Undo/Restart/reload, campaign progression, imports, blocked storage and portal attribution.

Source modules: lib/games/sokoban/push-search.ts, engine.ts, campaign.ts and loma.json.
Reproduction: node scripts/import-sokoban-loma.mjs; npx vitest run tests/sokoban-loma.test.ts.
LOMA source/permission: https://aymericdupeloux.wixsite.com/sokoban/post/_loma
Learning/planning research: https://arxiv.org/abs/1707.06203
Search bibliography: https://webdocs.cs.ualberta.ca/~games/Sokoban/papers.html
