Repository navigation
t27f: reel_factory_plan.t27 prints the factory plan, and tri factory runs its gate (R6 of #10560) #10573
Description
Part of #10560 (R6).
The factory plan of #10561 exists only inside tests. Scenario 1 of #10561 says the lab prints the plan with t27c run, and t27c has no run subcommand, so nothing prints it today. The first factory version printed from a main, and t27b refused that main on std.debug.print. #10455 has since taught t27b to lower print with a literal format of {d} and {s}.
Boundary
- In: a new
specs/t27f/reel_factory_plan.t27with amainthat prints the plan of course 0 as one tab-separated row per lesson, plus its seal and t27b ledger row. Also atri factoryfront-door command that runs the factory's own gate (t27c test-report specs/t27f/reel_factory.t27). - Out: rendering (R3),
lesson_reelreading the plan (R4), and any new t27c subcommand.
User Scenarios
- Given the lab, When it runs
t27c gen specs/t27f/reel_factory_plan.t27and then runs the Zig program, Then it prints 27 rows: lesson, scene, accent, motion, layout, carousel slides and title. A summary line gives how many scenes are used and how often the most-used one appears. - Given a change to the factory, When an agent runs
tri factory, Then the uniqueness, window, cap and content tests answer in one command.
Requirements
- The names come from the factory's own comma lists (
ARCH_NAMES,ACCENT_NAMES,MOTION_NAMESandLAYOUT_NAMES). The plan spec copies no table. printuses only literal formats with{d}and{s}, so t27b can lower it.- The
scripts/trichange adds no hand-written foreign lines (own_language.t27shrink rule).
Success Criteria
t27c test-reporton the lab: every test passes, 0 vacuous.- The printed plan matches the course-0 plan recorded in t27f: reel_factory.t27 -- content features to a unique scene plan per item (Closes #10561) #10566.
t27c seal --verifymatches. The t27b row reads pass. The ledger'smax_not_passdoes not grow.
Requirements
FR-001: The spec specs/t27f/reel_factory_plan.t27 MUST contain a main that prints the factory plan for course 0 as one tab-separated row per lesson with lesson, scene, accent, motion, layout, carousel slides, and title, followed by a summary line giving how many scenes are used and how often the most-used one appears.
FR-002: The plan spec MUST derive all names from the factory's own comma lists (ARCH_NAMES, ACCENT_NAMES, MOTION_NAMES, LAYOUT_NAMES) and MUST NOT copy any table.
FR-003: All print statements in the plan spec MUST use only literal formats with {d} and {s} so that t27b can lower them.
FR-004: The scripts/tri front-door command tri factory MUST run the factory's gate via t27c test-report specs/t27f/reel_factory.t27.
FR-005: The change to scripts/tri MUST add no hand-written foreign lines (adhering to the own_language.t27 shrink rule).
Success Criteria
t27c test-report specs/t27f/reel_factory_plan.t27exits 0 with every test passing and 0 vacuous tests.t27c gen specs/t27f/reel_factory_plan.t27followed by running the generated Zig program prints exactly 27 tab-separated rows matching the course-0 plan recorded in t27f: reel_factory.t27 -- content features to a unique scene plan per item (Closes #10561) #10566, plus the summary line.t27c seal --verifyon the generated artifacts exits 0; the t27b ledger row reads pass; the ledger'smax_not_passvalue does not increase.tri factoryexits 0 and runst27c test-report specs/t27f/reel_factory.t27with all uniqueness, window, cap, and content tests passing.
Activity
skills: t27f -- plan printer route, tri factory and four lab traps (C…
github-actions commentedon Oct 18, 2026
Closed by the issue-shape gate (specs/policy/issue_shape.t27, #7498): an issue must have the template's sections. Edit the body; an edit that passes reopens it.
FR-001: ... MUST ...exit 0, or a backticked commandt27f: reel_factory_plan.t27 -- print the factory's course-0 plan, and…