Repository navigation
Description
Score: 7/10 (target 8), after round 3 (PR #3540; main 1, round 1 7, round 2 7.5, each from a fresh judge). Moved up from #3549: its round 3 comment has the shots and the Next list.
The owner's brief (2026-11-04): every game should be able to inject its own style into the eqosys menus. Today the shared sign-in client (packages/util/src/eqosys.ts) renders nothing, but the pieces games mount from it do, each in its own way: the report button (packages/util/src/report.ts) carries hard-coded inline cssText (grey border, white background, system font) that looks the same in a space-marine war room and a druid's tome; the spaces panel (spaces.ts) and lobby (lobby.ts) leave skinning to the page, so each game has its own account box (apps/*/src/account.ts, Two Fronts's account box in main.ts). The house kit (packages/ui) already re-themes by CSS custom properties (applyTheme, TOKENS), and packages/game-controls/src/skins.ts has classic / house skins with installStyles.
Goalpost
One way for a game to say "here is my skin" once, and every eqosys-rendered surface in that game wears it: sign-in / account chip, achievement toast, report button and form, party and spaces panels, lobby. Scored out of 10 by an agent judge against:
- One injection point.
eqosys({ app, url, from, prefix, skin })(or a siblingskinEqosys(...)) takes aThemeof--ui-*tokens plus optional extra CSS, and every shared surface reads tokens frompackages/uiinstead of hard-coded colours. No per-surface styling API. - No hard-coded colours or fonts left in
report.ts,spaces.ts,lobby.ts, and the achievement toast: every colour, radius, border and font is a--ui-*token with a house default. - Three games wear it. Two Fronts (distressed metal:
--imperialfonts, brass on dark steel, square corners), Mythic Masters (tome: parchment, ink, Covered By Your Grace for the Book's hand; look atapps/mythic-masters/src/tome.css), Skate Tech Park (stay minimal: the house skin). Each injects its skin in itseqosys.tsand deletes any duplicate styling of those surfaces from its own CSS. - Cut before you add. The per-game account boxes that do the same thing (
apps/*/src/account.ts) share oneaccountChip(...)inpackages/utilthat the skin styles; copies die in the same PR. - One journey test per touched game still passes (
eqosys.test.ts), plus one test that a skin's tokens land on the mounted surfaces (eval the computed style, don't assert on source text).
The loop
Each round is one PR against main that says "Part of #N". Score it with bun run probe <app> --shot on each game's sign-in chip, report form and achievement toast, side by side. End the round with a comment here starting Score: x/10 (target 8) and ending Next: ..., then open the "rounds N+" issue and close this one with "Moved up to #new".
Why first: the per-game artwork climbs (Two Fronts distressed metal, Mythic Masters tome) hang their menu skins on this hook.
Round 4 starts here
- Put Mythic's settings-pane account row on
accountChip. The game-controls.gc-craft .gc-acct buttonrule has to give way. - Real-game skin journeys for Mythic (parchment, hand font) and Skate (lobby, spaces), like apps/two-fronts/test/eqosys-skin.test.ts.
- On a phone, make the report form a bottom sheet that doesn't sit over the menu.
- Fit the Two Fronts header chip with the warship-plates title (with Two Fronts: menus as a warship's distressed-metal plates (Thunder Marines first), hill climb to 8/10, rounds 2+ (from #3531) #3546).
Activity
eqosys badge: retake the Two Fronts shot after the badge pinned its o…
QuinnsCode commentedon Nov 5, 2026
Score: 6.5/10 (target 8)
Round 4 is PR #3597. The hook itself landed tonight in #3540. A fresh agent judge scored this round. Earlier fresh judges gave 7, 7.5 and 7, and agent judges run about 2 points above the owner.
What landed:
skin.test.tspins light and dark.Judge's shares: injection 2/2, no hard-coded looks 1.5/2, three games 1.5/2, account chip 1/2, tests 1/2. It docked the badge for reading in capitals in the Two Fronts toast, but that shot came from before the badge pinned its own case. The retaken shot below shows "eqosys" in both places.
Next:
accountChip(the game-controls.gc-acctrule has to give way). It's listed in eqosys skin: each game injects or updates its skin through the merged hook (three lines per game) #3598 under the tome climb.apps/two-fronts/test/eqosys-skin.test.ts.QuinnsCode commentedon Nov 5, 2026
Moved up to #3600
eqosys: a slow oil-slick badge on the report form and toast, and the …