← All craftbooks

Page Spread

Media: imagesevalv1.0.3released 2026-09-01workflow: build-loop

Produce one page spread from script to panels: beats planned, panel art generated against the character sheets — never freehand from memory — lettered and laid out as the page the reader turns to. Locks the panel plan FIRST — each panel naming the sheet references that anchor it and the caption text it carries — then generates the panels from those anchors, then assembles the lettered spread. Use for producing a comic page, 'let's do page three', panel-and-letter passes, turning a script page into art, and the per-page ritual of a whole book.

Steps

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

  1. Plan the panelsverhalenvertellerentry

    script beats to panels, each anchored to a character sheet

    Show working prompt
    Break the page before generating a pixel. Step 1: read the page's script from the story notes and the character kits under characters/ — each character's manifest carries the references, seeds, and prompts that lock their look. Step 2: break the script into beats and assign each beat a panel — the moment, the framing, and who is in frame. Step 3: for every character in every panel, name the exact sheet reference (and its seed and prompt from the manifest) that anchors how they are drawn — a panel drawn from memory instead of the sheet is how page twelve stops matching page one. Step 4: copy the caption and balloon text for each panel verbatim from the script — the letterer changes nothing. Step 5: write an acceptance-criteria checklist ('every script beat has a panel', 'every figure anchored to a named sheet reference', 'captions and balloons verbatim from the script', 'panels read in order on the assembled page'). Call write_task_note with the panel count + checklist and write {{workPath}}/scope.md.
    
    The deliverable `{{workPath}}/scope.md` lands in the project's artifacts drawer — write it with `write_artifact` and read it back with `read_artifact`; the shipped workspace stays untouched.
  2. Generate the panelsimage-generator

    panel art from the sheet anchors, never from memory

    Show working prompt
    Generate the page's panels into pages/<number>/ (the folder named for the page). Step 1: for each planned panel, build the generation prompt FROM the anchors — start from the sheet reference's persisted prompt and seed out of the character's manifest, then add the panel's moment and framing; the sheet is the source of truth for how every character looks. Step 2: generate through the project's image capabilities, at least three panels, saved as pages/<number>/panel-1.png, panel-2.png, and so on in reading order. Step 3: after each panel, check it against the plan — right characters, right moment, silhouette and palette matching the sheet; regenerate what drifted before moving on. Call write_task_note with the panel count and which sheet references anchored each.
  3. Assemble the spreaddesigner

    panels laid in reading order, captions and balloons lettered

    Show working prompt
    Assemble the page at pages/<number>/spread.html. Step 1: lay the panels in reading order with honest gutters — the eye should never wonder which panel is next. Step 2: letter it — the captions and balloon text from the plan, verbatim from the script, placed with the panel they belong to, tails pointing at the speaker. Step 3: style it as a page — panel borders, gutter rhythm, type that reads at page size, all in one self-contained file. Step 4: read the finished page top to bottom once as a reader would and fix anything that stumbles. Call write_task_note with the spread path and the panel order.
  4. Evaluatereviewer

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

    Show working prompt
    Open the page folder under pages/ beside {{workPath}}/scope.md, the script, and the character manifests, and verify every criterion: every script beat has its panel and the panels sit in reading order; every figure traces to the sheet reference the plan named — check the plan's anchors against the characters/ manifests, continuity is the whole point of this book; the captions and balloons on the spread match the script verbatim — a letterer who paraphrases is rewriting the author; and the assembled page reads clean top to bottom. Write PASS/FAIL per criterion; on any failure, name the panel and the gap and loop back to panels.
    
    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: "panels" })` 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.
  5. 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