Skip to content

feat(tui): the quiet-constellation skin — §6.1 art direction lands [spec 10] - #112

Merged
wine-fall merged 2 commits into
mainfrom
zachg-0807--tui-quiet-constellation
Aug 7, 2026
Merged

feat(tui): the quiet-constellation skin — §6.1 art direction lands [spec 10]#112
wine-fall merged 2 commits into
mainfrom
zachg-0807--tui-quiet-constellation

Conversation

@wine-fall

Copy link
Copy Markdown
Owner

Implements specs/spec10/10-tui.md §6.1 (art direction) — composition notes written back into §3.3 and §3.6.

What this is

The §6.1 creative session picked its skin: 04-quiet-constellation (from scratch/ui-concepts/logo-pet, an untracked concept set). This PR realizes it without reopening the §3.3 contracts — same four regions, new composition and light:

  • Palette (tui/src/palette.ts): one deep blue-charcoal night ground shared by every scene; each scene is a single near-monochrome accent family (dawn cream / daylight sage / ember / moonlight). The hour changes the warmth of the light, never the room.
  • Constellation renderer (tui/src/constellation.ts, new, pure): a seeded starfield, the existing 24fps FFT bins re-rendered as a floating braille particle mist (frayed top, sparse fallout under the baseline), and the pet blitted into a cleared halo mid-sky. Deterministic by construction — seeded PRNG + hashed jitter — so a resize never reshuffles the sky and the arithmetic is unit-assertable.
  • Layout (tui/src/app.tsx): one breakpoint. At ≥96 columns the alive band recomposes as a sky panel beside a poem-spaced log, with now-playing as a dim line under the panel; narrower terminals keep the classic bottom band unchanged. The sky paints on its own 12fps clock — viz frames only feed the smoother — so stars twinkle and the pet animates through silence.
  • Engine/wire: zero changes.

Verification

  • 10 new unit tests on the renderer (dimensions, seed determinism, silence, level-monotonic dot count, glyph set, pet blit, hostile bins); full gate green: 661 passed, typecheck + oxlint clean.
  • Visual check against the concept mockup: the composition was rendered frame-for-frame from the real modules and compared side-by-side with 04-quiet-constellation.png, then tuned (floating baseline, mist density, pet position) until the structure matched.
  • Real-boundary smoke (STUB brain, real pty): 80×24 boots the narrow band; 130×38 boots the sky panel (star glyphs + pet half-blocks painted, no braille in silence — correct), no crashes, clean teardown.

Peer review (codex gpt-5.5 xhigh): 1 finding, 0 applied — the one finding was mechanical (the new files were untracked at review time, so its diff view flagged a "missing module"; the commit itself resolves it), 0 genuine defects.

By-eye tuning of the new skin in a real terminal stays issue #79 (the standing §6.1 acceptance pass), now with concrete knobs to judge: mist density/baseline, star density, twinkle rate, pet position, per-scene accents.

AI coding brief

Original request: A TUI redesign session: four concept mockups were compared for terminal feasibility; the user rejected the analog-radio layout as ugly, narrowed to concepts 02/04, and delegated the final pick — 04 won because its atmosphere is procedural (code, fast to iterate) rather than hand-drawn asset work, its quiet sparseness fits murmur's identity, and it needs zero engine changes.

Manual interventions: Mid-build the user added one hard requirement: compare the result against the concept screenshot instead of free-styling. That produced the render-to-HTML comparison loop, which caught the first version's real miss (a dense bottom-glued bar texture instead of a floating mist) and drove two tuning rounds.

Retro: The self-grilling round before building surfaced a contradiction in the original plan (a fixed amber monochrome would have killed the already-built scene tinting) and killed three scope items cheaply. Asking for the mockup-comparison loop up front, rather than mid-build, would have saved one round trip.

🤖 Generated with Claude Code

wine-fall and others added 2 commits August 7, 2026 15:33
…pec 10]

The concept session over scratch/ui-concepts/logo-pet picked
04-quiet-constellation; this realizes it without reopening the §3.3
contracts:

- palette: one deep night ground, each scene a near-monochrome accent
  family — the hour changes the light, never the room
- constellation.ts (new, pure): seeded starfield, the viz bins as a
  floating braille mist with a frayed top and sparse fallout, the pet
  blitted into a cleared halo; everything seeded/hashed so a resize
  never reshuffles the sky
- app.tsx: one breakpoint (≥96 cols) — sky panel beside a poem-spaced
  log, now-playing as a dim ♪ line under the panel; narrow terminals
  keep the classic bottom band; the sky paints on its own 12fps clock
  so it stays alive in silence
- spec 10 §3.3/§3.6/§6.1 record the as-built terms; by-eye tuning
  stays issue #79

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@wine-fall
wine-fall merged commit 3886d3a into main Aug 7, 2026
3 checks passed
@wine-fall
wine-fall deleted the zachg-0807--tui-quiet-constellation branch August 7, 2026 07:44
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