aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-24 05:30:13 -0400
committerCraig Jennings <c@cjennings.net>2026-06-24 05:30:13 -0400
commit11767454d306518997d06207f9fe792f7482ac50 (patch)
treed049bd35722fd6500126110d0786d1299b5b1a31
parentcd934230fd29adc91200c81114977a0e46bf4be2 (diff)
downloaddotemacs-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.org16
1 files changed, 13 insertions, 3 deletions
diff --git a/todo.org b/todo.org
index 93b148c15..fabef5a3e 100644
--- a/todo.org
+++ b/todo.org
@@ -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;