← All craftbooks

Lay Out the Puzzle Pack

Home and everyday lifeevalv1.0.0released 2026-06-05workflow: build-loop

Bind the month's puzzles into one print-ready pack: a cover, a page per puzzle, and the solutions gathered in the back where they belong — the thing that lands on the kitchen table and disappears into pencil marks. Locks the shelf inventory and the page rules FIRST, then lays out the pack, then proofs that every puzzle made it in and no solution leaks next to its puzzle. Use for laying out the puzzle pack, binding the month's puzzles, a printable puzzle booklet, and 'put the puzzles into one pack'.

Steps

Entry step: scope. Each step names the specialist role it wants; the full working prompt is expandable.

  1. Inventory the shelfpuzzle-makerentry

    which puzzles are in, pack order, page rules

    Show working prompt
    Inventory before laying anything out. Step 1: read the puzzles/ shelf from the workspace — every puzzle's data and rendered page, its title, and when it was made. Step 2: confirm with the owner which puzzles belong in this pack and the order they should appear. Step 3: lock the page rules — a cover with the pack's title and contents, one puzzle per page with a page break between, solutions gathered as their own section at the back and never beside their puzzle, print styles throughout. Step 4: write an acceptance-criteria checklist ('every chosen shelf puzzle appears in the pack under its own title', 'one puzzle per page with clean breaks', 'all solutions in the back section, none interleaved', 'the cover lists the contents', 'the pack prints cleanly'). Call write_task_note with the puzzle count + order + checklist and write notes/scope.md.
  2. Lay out the packdesigner

    cover, page per puzzle, solutions in the back

    Show working prompt
    Lay out the pack as one print-ready HTML file at pack/pack.html. Step 1: the cover — the pack's title, the month, and the contents list. Step 2: one page per puzzle, re-laid from the shelf's puzzle data — the blank grid and clues set properly for paper, never a screenshot — each starting on a fresh page. Step 3: the solutions section last, one clearly-labeled solution per puzzle, separated from the puzzles by a page break so nobody's eye falls on an answer early. Step 4: print styles throughout — an @page rule and page-break rules so every puzzle starts fresh and the grid squares stay pencil-sized. Call write_task_note with the pack path and the page count.
  3. Evaluatereviewer

    Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.

    Show working prompt
    Open pack/pack.html against the puzzles/ shelf and verify every criterion from notes/scope.md: every chosen puzzle appears in the pack under its own title — check the shelf listing, a missing puzzle is the classic failure — each puzzle gets its own page with a clean break, every solution sits in the back section and none beside its puzzle, the cover lists the contents, and the page-break styling would print cleanly. Write PASS/FAIL per criterion; on any failure, name the puzzle and the gap and loop back to layout.
    
    Then route — this is the whole point of the loop:
    
    - **Every criterion PASSES →** call `advance_task_step({ ref, stepId: "evaluate", next: "finish" })`.
    - **Any criterion FAILS →** write the specific gaps to notes, then call `advance_task_step({ ref, stepId: "evaluate", next: "layout" })` to loop back. The builder fixes exactly those gaps.
    
    Never route to `finish` while any criterion is unmet. The build phase's completion gate already blocked a grossly-incomplete deliverable; your job is the judgment an automated check cannot make (does it actually work, read well, look right). After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in.
  4. Finishdeveloper

    All acceptance criteria met. Stamp a short summary and report DONE.

    Show working prompt
    Every acceptance criterion passed. Write a one-paragraph DONE summary to task notes via `write_task_note`: what was built, the deliverable path(s), and a one-line confirmation that each criterion is met. Then report DONE.

Triggers

Phrases that suggest this craftbook to a crew.

Source

View this craftbook on GitHub · MIT license