diff options
| -rw-r--r-- | todo.org | 10 | ||||
| -rw-r--r-- | working/ai-dotfiles-discovery/proposed.diff | 7 | ||||
| -rw-r--r-- | working/ai-dotfiles-discovery/request.org | 41 |
3 files changed, 58 insertions, 0 deletions
@@ -34,6 +34,16 @@ Tags are assigned and refreshed by =task-audit=; =task-review= keeps them honest * Rulesets Open Work +** VERIFY [#B] Parked: add =~/.dotfiles= to the ai launcher's project discovery (from archsetup) +:PROPERTIES: +:CREATED: [2026-06-16 Tue] +:END: +What arrived: archsetup asks to add =maybe_add_candidate "$HOME/.dotfiles"= to =build_candidates()= in =claude-templates/bin/ai= (right after the =~/.emacs.d= line), so the fzf picker and by-name launch see =~/.dotfiles= now that it's a bootstrapped AI project. Completes the =~/.dotfiles= install done earlier this session. Synced asset, so it parks per the no-approvals Skeptical Review gate rather than self-applying. + +Skeptical review: change is correct and minimal — verified =build_candidates()= scans only =~/.emacs.d= / =~/code/*= / =~/projects/*=, and =maybe_add_candidate= guards on =.ai/protocols.org= so the line is inert where =~/.dotfiles= isn't bootstrapped (same safety as the =~/.emacs.d= line). The sender's "check for a discovery test" concern resolves to nothing: no bin/ai test enumerates candidate roots. The =ai-roots.txt= generalization the sender raises is correctly deferred (not needed for two single-$HOME roots). + +Prepared change: [[file:working/ai-dotfiles-discovery/proposed.diff]] + [[file:working/ai-dotfiles-discovery/request.org]]. Apply is one line; sync-check mirrors it. Sender notified it's parked. Say "approve the parked dotfiles discovery" to apply. + ** VERIFY [#B] Helper-instance support — concurrent same-project Claude :feature:spec: :PROPERTIES: :CREATED: [2026-06-11 Thu] diff --git a/working/ai-dotfiles-discovery/proposed.diff b/working/ai-dotfiles-discovery/proposed.diff new file mode 100644 index 0000000..f22c7a8 --- /dev/null +++ b/working/ai-dotfiles-discovery/proposed.diff @@ -0,0 +1,7 @@ +--- a/claude-templates/bin/ai ++++ b/claude-templates/bin/ai +@@ build_candidates() { + candidates=() + maybe_add_candidate "$HOME/.emacs.d" ++ maybe_add_candidate "$HOME/.dotfiles" + if [ -d "$HOME/code" ]; then diff --git a/working/ai-dotfiles-discovery/request.org b/working/ai-dotfiles-discovery/request.org new file mode 100644 index 0000000..3535daf --- /dev/null +++ b/working/ai-dotfiles-discovery/request.org @@ -0,0 +1,41 @@ +#+TITLE: Add ~/.dotfiles to the ai launcher's project discovery +#+DATE: 2026-06-16 + +* Request + +Add =~/.dotfiles= as an explicit discovery candidate in the =ai= launcher (=claude-templates/bin/ai=), the same way =~/.emacs.d= is handled. + +* Why + +=~/.dotfiles= was migrated out of archsetup into a standalone stow repo and just got bootstrapped as its own AI project (=.ai/protocols.org= now present). But =build_candidates()= only scans three roots — =~/.emacs.d=, =~/code/*=, and =~/projects/*=. =~/.dotfiles= sits directly in =$HOME=, under none of them, so the fzf picker (bare =ai=) and the "launch dotfiles" by-name trigger never see it. Explicit =ai ~/.dotfiles= already works (=single_mode= only checks for the marker, not a discovery root), but the picker and by-name launch don't. + +This is the launcher half of making =~/.dotfiles= a first-class project. The inbox-send half is already handled downstream: =~/.dotfiles= was added to =~/.claude/inbox-roots.txt= (its config-file extension point), so =inbox-send= reaches it now. + +* The change + +In =claude-templates/bin/ai=, inside =build_candidates()= (currently ~line 89, right after the =~/.emacs.d= line), add: + +#+begin_src bash + maybe_add_candidate "$HOME/.dotfiles" +#+end_src + +So the head of =build_candidates= reads: + +#+begin_src bash +build_candidates() { + candidates=() + maybe_add_candidate "$HOME/.emacs.d" + maybe_add_candidate "$HOME/.dotfiles" + if [ -d "$HOME/code" ]; then + ... +#+end_src + +=maybe_add_candidate= already guards on =.ai/protocols.org=, so this is inert on any machine where =~/.dotfiles= isn't bootstrapped — same safety as the existing =~/.emacs.d= line. + +* Notes + +- I did NOT edit the rulesets canonical from archsetup's session — rulesets had a dirty tree and an interrupted session-context when I checked, so this goes through your own flow instead of interleaving. +- Worth a glance: if =bin/ai= has a discovery test that enumerates the expected candidate roots, it may need the new line added there too. +- Generalization to consider (your call, not requested): =~/.emacs.d= and =~/.dotfiles= are both single-project roots in =$HOME=. If more of these accrue, a small explicit list (or a =~/.claude/ai-roots.txt= mirroring =inbox-roots.txt=) would scale better than one =maybe_add_candidate= line each. Not needed for two. + +Sender: archsetup (2026-06-16 task-audit follow-through). |
