diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-24 05:30:13 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-24 05:30:13 -0400 |
| commit | 11767454d306518997d06207f9fe792f7482ac50 (patch) | |
| tree | d049bd35722fd6500126110d0786d1299b5b1a31 | |
| parent | cd934230fd29adc91200c81114977a0e46bf4be2 (diff) | |
| download | dotemacs-11767454d306518997d06207f9fe792f7482ac50.tar.gz dotemacs-11767454d306518997d06207f9fe792f7482ac50.zip | |
chore(todo): break nerd-icons colors spec into Phase 1-4 tasks
Ready confirmed; run the spec-response Phase 6 breakdown. Convert the spec task to a PROJECT and file the four implementation phases (legend capture, bespoke preview, atomic theme-assignment + tint removal, verification) as solo children.
Claude-Session: https://claude.ai/code/session_01BqrdWUo9GcznYX2pZr76gZ
| -rw-r--r-- | todo.org | 16 |
1 files changed, 13 insertions, 3 deletions
@@ -72,7 +72,7 @@ Was hardcoded "gray60"; now four customizable faces (branch =feature/themeable-f Four modeline faces shipped (081d76e). =inbox/PROCESSED-2026-06-23-2326-from-chime-chime-added-four-themeable-modeline.org=. ** TODO [#D] Evaluate google-keep Emacs package :quick: From the roam inbox. Look at the google-keep Emacs package — worth adding for in-editor Keep, or does the existing google-keep MCP cover it? Triage / shortlist, not a commitment. -** TODO [#B] Theme-driven nerd-icons colors + filetype legend :feature: +** PROJECT [#B] Theme-driven nerd-icons colors + filetype legend :feature: Drop the runtime nerd-icons tint so icon color is theme-driven, and add a theme-studio filetype-legend representation over the 34 =nerd-icons-*= color faces (which the inventory already exposes). Spec: @@ -82,8 +82,18 @@ spec-response. Round 2 settled the implementer contracts (13-row v1 legend table dir precedence =nerd-icons-yellow= prepended wins; cross-package ownership; the =nerd-icons-legend.json= artifact + failure behavior; atomic assign+drop-tint phases; named test plan). Round 3 reconciled the stale summary/readiness/risk -prose with those decisions. Findings [10/10], decisions [6/6]. Spec now Ready -pending Craig's go. Next: confirm Ready → Phase 6 implementation-task breakdown. +prose with those decisions. Findings [10/10], decisions [6/6]. Ready confirmed +2026-06-24; broken into the Phase 1-4 implementation tasks below (spec-response +Phase 6). All :solo: — build + verify via run-tests.sh + validate-modules/launch +smoke; no design call remains. +*** TODO [#B] Phase 1 — legend capture (nerd-icons-legend.json) :feature:solo: +New =scripts/theme-studio/build-nerd-icons-legend.el= (loads nerd-icons; resolves each curated key's glyph + owner face from the live alists) dumps the 13 v1 rows ={key,label,face,category,glyph}= to =scripts/theme-studio/nerd-icons-legend.json=, a committed artifact like =package-inventory.json=, via the same =emacsclient -e '(load …)'= step the inventory dumps use. =generate.py= embeds it; absent / malformed / empty (nerd-icons not installed) → log a warning and fall back to the generic nerd-icons app, never error. No native-color capture here — the seed rides the existing default-face pipeline. Data only; tree stays working, no UI change. Verify: run-tests.sh Python schema + bespoke-vs-generic fallback gate. +*** TODO [#B] Phase 2 — bespoke nerd-icons legend preview :feature:solo: +Register nerd-icons as a bespoke app (=BESPOKE_APP_SPECS= / =PREVIEW_KEYS= in app_inventory.py/face_data.py) with a =previews.js= renderer that draws each curated row's glyph + sample name in its mapped face's effective color, read through the same registry the other previews use, live-updating on recolor. The 34 =nerd-icons-*= faces stay editable foreground rows. Browser-gated; existing previews unaffected. Verify: run-tests.sh browser gates — legend renders, recoloring a face repaints every row mapped to it, every element carries a valid owner =data-face=, the dir row models =nerd-icons-yellow=. +*** TODO [#B] Phase 3 — theme assignment + tint removal (atomic) :feature:solo: +One change: assign the 34 =nerd-icons-*= colors in the WIP theme (and =WIP-theme.el=) AND remove =cj/nerd-icons-tint-color=, =cj/--nerd-icons-color-faces=, =cj/nerd-icons-apply-tint= + its two call sites from =modules/nerd-icons-config.el=, together, so icons never pass through an uncolored native-palette interim (the sequencing decision). Keep =cj/--nerd-icons-color-dir= (now points at a theme-owned face). Delete =tests/test-nerd-icons-config--apply-tint.el= (tests removed code). Verify: =make validate-modules= + launch smoke; live-reload into the daemon. +*** TODO [#B] Phase 4 — verification + dir-precedence probe :test:solo: +Export → =WIP-theme.el= and re-import round-trip over the =nerd-icons-*= faces (=nerd-icons-completion-dir-face=, a separate app, stays untouched); extend =tests/test-nerd-icons-config--color-dir.el= with the precedence case (prepended =nerd-icons-yellow= is first in the face list, wins); live check completing-read / dirvish / dashboard / ibuffer render the themed per-filetype colors (the visual confirmation lands as a manual VERIFY when this phase runs). Verify: full run-tests.sh (Node + browser + ERT + Python) green. *** TODO [#D] Theme Studio nerd-icons vNext follow-ups :feature: Deferred from [[file:docs/specs/theme-studio-nerd-icons-colors-spec.org][theme-studio-nerd-icons-colors-spec.org]]: extend the legend to buffer-mode and command/symbol categories if the file set proves insufficient; |
