Skip to content

fix(foyer): round-16 amber-legend captions, bound to the chip word - #15

Merged
HomenShum merged 2 commits into
mainfrom
foyer/round-16-amber-legend
Sep 13, 2026
Merged

HomenShum merged 2 commits into
mainfrom
foyer/round-16-amber-legend

Conversation

@HomenShum

Copy link
Copy Markdown
Owner

Summary

Round-16 clipstudio fixes for the round-15 Steward findings on the published FYwall clip:

  • Beat 02 (critical): amber means two different things on this board — REACHABLE (answered, nothing to compare against) and UNKNOWN (never answered) share the same amber CSS rule (src/styles/foyer.css), and the fixture's amber UNKNOWN pill appears on beats 01 and 05 of this same clip. Reworded to name both chip words explicitly, read from node-foyer's ProductCard.tsx STATE_LABEL: "An amber Reachable badge means it answered, but there was nothing to compare against; an amber Unknown badge means it never answered."
  • Beat 00 (minor): "every half hour" claimed a cadence nothing on the frame shows → "on a fixed schedule (the header names the last sweep)", keeping "the ten hosted products' own live pages".
  • Beat 06 (minor): "that's what turns this badge green" sat under a scrolled-past VERIFIED pill → "that is what makes it verified"; also names the card explicitly ("this board's own card (node-foyer)") per a later Judge note that only URLs identified it on screen.
  • Beats 01 & 04 (comprehension): added plain-language glosses across three judge cycles chasing a recurring non-expert-comprehension flag on raw sha256/HTTP-status evidence text — registry-only is now glossed as "listed, never checked"; the hover receipt now states "whether it answered successfully" in place of the raw status code. This is inherent to the board's own honest-evidence philosophy (real receipts on screen), not caption wording, and is documented rather than chased past the 3-cycle cap.

What was verified

  • Re-captured FYwall from production (https://node-foyer.vercel.app/); build sha ec2a44e19b304ab4ca2aa181f8722908a0329b5a — unchanged from round 13.
  • Read every frame PNG (00–06) with the file-read tool and confirmed each caption is true of it.
  • Rendered → judged twice per cycle (gemini-3.6-flash, --no-reference), 3 cycles total (documented in the worker card), kept the worse run each time by verdict → P0 → blocked comprehension → P1 → P2 (ties keep run 1).
  • Final kept run: publish, 0 P0 / 1 P1 / 0 P2, comprehension blocked — not published on the wall this round; README updated honestly with both runs' real numbers (run 1 ranked better: publish, 0 P0 / 0 P1 / 2 P2, comprehension passed).
  • GIF re-encoded at fps=3/640x400 (unchanged aspect) to hold the three-capture media budget at 4,133,999 / 4,194,304 bytes.
  • node check.mjs exits 0 for everything this PR touches (the 4 reported problems are pre-existing FYphone/FYagent CRLF-checkout artifacts caused by this machine's core.autocrlf=true — verified the committed LF bytes match render.json's stated hashes exactly; those files are untouched by this PR and outside this worker's file ownership).

Test plan

  • node check.mjs — 0 problems on files this PR touches
  • Frames read and captions verified true of each frame
  • Judged twice per cycle, worse run kept per the documented tie-break
  • Media budget under 4,194,304 bytes

🤖 Generated with Claude Code

HomenShum and others added 2 commits September 13, 2026 00:07
Round-15 Steward critical: beat 02 said amber means "answered, nothing to
compare against" but this board's amber also covers UNKNOWN (never
answered) - src/styles/foyer.css gives reachable-only and unknown the same
amber rule, and beats 01/05 of this same clip show the fixture's amber
UNKNOWN pill. Reworded to name both chip words (Reachable / Unknown) as
read from node-foyer's ProductCard.tsx STATE_LABEL.

Minor repairs in the same pass: beat 00's "every half hour" claimed a
cadence nothing on the frame shows -> "on a fixed schedule (the header
names the last sweep)". Beat 06's "turns this badge green" caption sat
under a scrolled-past VERIFIED pill -> "that is what makes it verified",
plus names the card explicitly ("this board's own card (node-foyer)") per
the Judge's note that only URLs identified it. Beat 01 and beat 04 gained
plain-language glosses (registry-only = listed but never checked; the
hover receipt states whether it answered successfully) across three judge
cycles chasing a recurring non-expert-comprehension flag on the raw
sha256/HTTP-status evidence text (inherent to this board's own honest-UI
philosophy, not caption wording - documented in the worker card rather
than chased past the 3-cycle cap).

Re-captured from production (build ec2a44e19b3, unchanged), re-rendered,
judged twice per cycle (gemini-3.6-flash, --no-reference), kept the worse
run each time. Final kept run: publish, 0 P0 / 1 P1 / 0 P2, comprehension
blocked - not published on the wall this round (README updated honestly
with both runs' real numbers). GIF re-encoded at fps=3/640x400 to hold the
three-capture media budget at 4,133,999 / 4,194,304 bytes.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
renderedAt was stamped at manifest-writing time (after both judge runs had
already completed), which put it later than judge-run1's judgedAt and
would fail node-foyer's seal-walkthroughs.mjs "judge run predates the
render" check. Use the MP4's actual render timestamp instead.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
@HomenShum
HomenShum merged commit a54f0e9 into main Sep 13, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant