Fixtures iteration — more realistic, better color showcase (litmus-49jz)
Goal
Establish a repeatable workflow to improve fixtures over time. Not a one-shot redesign — a process for ongoing iteration with human curation.
Quality Criteria
Every fixture must meet:
- Color variety — uses ≥4 distinct ANSI colors naturally (not forced)
- Instant recognition — a developer recognizes the scenario within 2 seconds
- Fits 80x24 — no truncation, no scrolling needed
- Deterministic — no timestamps, PIDs, paths that vary between runs (use fixed dates, fake PIDs, $FIXTURE_WORK_DIR)
- Self-contained — setup.sh creates all needed state, no external dependencies beyond the tool itself
Two Special Fixtures
Color swatch (raw reference):
- Small program that prints all 16 ANSI colors as labeled fg+bg blocks, 256-color palette grid, truecolor gradients
- Pure validation artifact, not a real scenario
fixtures/color-swatch/
Color showcase (themed):
- Synthetic but real-looking scenario designed to hit every ANSI color naturally
- E.g. a status dashboard: green OK, yellow WARN, red FAIL, blue info, magenta debug, cyan links, bright variants for headers, bg colors for status bars
fixtures/color-showcase/
Content Sources (priority order)
- Existing datasets/collections — terminal output samples, ANSI test suites, terminal emulator test fixtures
- Agent-generated — Claude writes fixture scripts for specific scenarios, human reviews
- Real tool output — capture from popular dev tools (ripgrep, delta, bat, docker, kubectl)
Staging & Review Workflow
fixtures/
candidates/ # staging area
bat-syntax/
setup.sh
command.sh
REVIEW.md # source, colors used, quality assessment
git-diff/ # promoted fixtures
ls-color/
...
Flow:
- Generate or discover candidate → write to
fixtures/candidates/{name}/ - Run capture pipeline → inspect screenshot + parsed output
- Evaluate against quality criteria (document in REVIEW.md)
- Accepted → move to
fixtures/{name}/, delete REVIEW.md - Rejected → delete or note why for future reference
Candidate Scenarios to Research
High-value fixtures that don’t exist yet:
- ripgrep/grep — search results with filename, line number, match highlighting
- bat/cat — syntax-highlighted source code (Rust, Python, YAML)
- docker ps / kubectl — tabular colored output with status indicators
- journalctl / log viewer — severity-colored log lines (DEBUG, INFO, WARN, ERROR)
- tmux/zellij status bar — TUI chrome with background colors
- neovim/helix — editor UI (already a scene, no fixture yet)
- diff (delta) — enhanced diff with syntax highlighting
Relationship to Other Epics
Independent of but complementary to litmus-coma (unify scenes/fixtures). New fixtures created here automatically benefit from the unified pipeline once built.
Subtasks (in dependency order)
Unblocked (can run in parallel):
litmus-c55s— Build color swatch and color showcase fixtureslitmus-feex— Set up fixtures/candidates/ staging directory and review workflowlitmus-3lcp— Research existing terminal output datasets and ANSI test suiteslitmus-sk2k— Audit existing fixtures against quality criteria
Blocked by 2 + 3:
5. litmus-52qn — Generate and curate first batch of candidate fixtures
Summary of Changes
All 5 subtasks completed. The fixtures system now has 12 fixtures covering common terminal scenarios: git-diff, git-log, ls-color, cargo-build, shell-prompt, python-repl, htop, color-showcase, ripgrep-search, bat-syntax, log-viewer, and editor-ui. A candidates/ staging workflow with quality criteria review process is established. Research identified key external resources (tinted-theming/schemes, Gogh, shell-color-scripts) for future expansion.