You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
t27f: idea factory pre-flight -- refuse an idea the font cannot draw before writing a frame #10820
Part of epic #10560. Stacked on #10816 (the factory batch), because the font this checks is glyph57 from #10792.
Boundary
specs/t27f/idea_factory.t27 only, plus its seal. No change to glyph57, particle_ds or any other spec.
Scenarios
An idea contains a character the 5x7 font does not have, such as φ, €, { or ~. Today glyph57_of draws it as ? and the reel ships with a wrong letter, and no test notices. Competitor rule 11 from the content-factory notes ("pre-flight: every slot bound, every text fits, else the item fails before render") is the gap.
An idea is nothing but spaces and |. Today the reel is only the address card, with no message.
An idea is long enough that the reel runs for minutes. Nothing caps it.
Requirements
FR-001: missing_glyphs(t) MUST count the code points of t that the font draws as ?. A real ?, a | scene cut and a space do not count. A malformed UTF-8 byte counts.
FR-002: first_missing(t) MUST return the byte offset of the first such code point, or -1 when there is none.
FR-003: preflight(t) MUST return PF_EMPTY when the idea has no scene, PF_GLYPH when a glyph is missing, PF_LONG when reel_frames(t) exceeds MAX_S * FPS, and PF_OK otherwise, checked in that order.
FR-004: main MUST write no frame when preflight(IDEA) != PF_OK.
Criteria
Tests pin each of the four results, with Latin and Russian ideas passing and with φ, €, { and a malformed byte refused.
All five batch ideas and the sample idea pass the pre-flight.
On the Railway lab: t27c test-report passes with 0 vacuous tests, mutants are killed, and t27b reports 0 unsupported constructs.
A binary generated with a refused idea writes 0 bytes, and one with a good idea writes whole 6220800-byte frames.
The seal is re-saved and verifies.
Success Criteria
t27c test specs/t27f/idea_factory.t27 runs 5 tests and exits 0
t27c test-report specs/t27f/idea_factory.t27 reports 0 vacuous tests and exits 0
t27b check specs/t27f/idea_factory.t27 reports 0 unsupported constructs and exits 0
t27c run specs/t27f/idea_factory.t27 --idea "hello world" writes 6220800 bytes and exits 0
t27c run specs/t27f/idea_factory.t27 --idea "φ" writes 0 bytes and exits 0
t27c run specs/t27f/idea_factory.t27 --idea "€" writes 0 bytes and exits 0
t27c run specs/t27f/idea_factory.t27 --idea "{" writes 0 bytes and exits 0
t27c run specs/t27f/idea_factory.t27 --idea $'\xFF' writes 0 bytes and exits 0
t27c run specs/t27f/idea_factory.t27 --idea " " writes 0 bytes and exits 0
t27c run specs/t27f/idea_factory.t27 --idea "|" writes 0 bytes and exits 0
t27c seal verify specs/t27f/idea_factory.t27 exits 0
All five batch ideas and the sample idea from the factory batch pass pre-flight (5 tests in test suite)
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.
missing: ## Success Criteria -- an outcome a machine can settle: a number with a unit, a backticked file, exit 0, or a backticked command
Reopened: the body now passes the generated issue-shape check (check_issue() from gen/c/policy/issue_shape.c, exit 0 on the Railway lab; a body with only a Boundary exits 1 as the control). The PR that closes this issue is resynced on master and its seal re-saved.
Activity
github-actions commentedon Oct 19, 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.
exit 0, or a backticked commandMerge claude/t27f-batch into claude/t27f-preflight after #10806 lande…
t27f: re-save the idea_factory seal on the lab after the merge, 17/17…
gHashTag commentedon Oct 19, 2026
Reopened: the body now passes the generated issue-shape check (
check_issue()fromgen/c/policy/issue_shape.c, exit 0 on the Railway lab; a body with only a Boundary exits 1 as the control). The PR that closes this issue is resynced on master and its seal re-saved.t27f: re-seal idea_factory after the merge with master (Refs #10820)
t27f: idea factory pre-flight -- refuse an idea the font cannot draw …
t27f: idea factory cover still -- COVER=1 writes the reel's settled t…