feat(tools): theme design audit + item 28 punch list (slice a)
All checks were successful
Check / eval (push) Successful in 3m0s

tools/audit-theme-design.py (report-only, maintainer-run): for every
themes/*.json it checks OKLCH lightness architecture (raised bg stack,
fg hierarchy), WCAG contrast beyond the guarded pairs, status-color
hue families, accent harmony, protanopia/deuteranopia
distinguishability (Machado matrices), and ANSI slot semantics the
greeter/tty now rely on. Ran it over all 21 palettes + a visual pass
over representative previews; findings curated identity-aware (lumon/
vantablack/white/hackerman exemptions are identity, not defects) into
the P1-P3 punch list now recorded in BACKLOG item 28: two palettes
with literally invisible subtext (summer-day, flexoki-light — the
item-25/27 trap at its source), two inverted bg stacks (miasma,
kanagawa), muted/warn floors, a systemic "status is never color-only"
rule, the light-theme ANSI convention decision, and bar grouping
rhythm notes.

Verified: V0 (py_compile; the tool is report-only, deliberately not a
checks.* gate until slice b adopts rules + exemptions).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-07-05 18:45:56 +01:00
parent d1d6a09d9d
commit abc953ea84
3 changed files with 223 additions and 4 deletions

View File

@@ -17,6 +17,30 @@ Template:
---
## 2026-07-05 — theme design audit (iteration #31, item 28 slice a)
- **Task:** BACKLOG NEXT#28 slice (a) — the design-theory audit
(human-requested; Bernardo asked to run it now).
- **Did:** tools/audit-theme-design.py (new, report-only): OKLCH
lightness architecture, extended WCAG pairs, status-hue families,
accent harmony, Machado protan/deutan simulation, ANSI slot
semantics — over all 21 palettes; plus a visual pass over 4
representative preview.png captures. Findings curated
identity-aware into a P1P3 punch list appended to item 28: 2
invisible-subtext palettes (summer-day, flexoki-light), 2 inverted
bg stacks (miasma, kanagawa), 7 muted-floor misses, warn-barely-
reads ×4, a systemic "status is never color-only" rule (CVD
collapse is inherent, glyph redundancy is the fix), explicit
identity exemptions, light-theme ANSI convention decision, bar
right-cluster grouping rhythm, latte dark-terminal verify.
- **Verified:** V0 (py_compile; report tool, not wired into checks).
Analysis is palette-math + thumbnail previews; per-surface
spacing/type audit needs 1080p captures (slice c prep).
- **Pending:** slice (b) — palette retunes + checker extension w/
exemption list; needs Bernardo's eye on the P1 retunes (visual
taste calls). Artwork needs none so far — no image-model ask yet.
- **Next suggestion:** slice (b) P1s (summer-day/flexoki subtext+
surface, miasma/kanagawa stacks) — small hex edits, big payoff.
## 2026-07-05 — greeter theming from the JSON (iteration #30, item 16)
- **Task:** BACKLOG NEXT#16 — tuigreet themed from theme-state.json at
system rebuild (the Plymouth model). Item deleted.