From cf9910d51715b1bb040dd808501fd5cf490fc30d Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Wed, 5 Aug 2026 18:05:01 -0500 Subject: chore: track the collaborator-repo installer gap The installer's exclude set covers the personal-tooling files but not todo.org, so a task file lands unignored in a repo I don't own. The gap underneath is that a collaborator repo is a third mode the installer doesn't model. Both current modes assume the repo is mine, and gitignore mode appends my personal policy to someone else's tracked .gitignore. The local .git/info/exclude is what that case wants. --- todo.org | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/todo.org b/todo.org index b288a4f..3213a6f 100644 --- a/todo.org +++ b/todo.org @@ -288,6 +288,47 @@ collision, this removes it. Source: inbox/2026-08-03-1443-from-archsetup-proposal-from-a-concrete-collision-in.org +** TODO [#C] Installing into a repo Craig doesn't own has no mode :bug: +:PROPERTIES: +:LAST_REVIEWED: 2026-08-05 +:END: +=todo.org= is in neither installer's exclude set, so it lands untracked-but-unignored +in a collaborator's repo and shows up in their =git status=. Home hit this +installing into ratowsky. Verified: =install-ai.sh='s gitignore block and +=sweep-gitignore-tooling.sh='s =IGNORE_SET= both carry =.ai/=, =.claude/=, +=CLAUDE.md= and =AGENTS.md=, and nothing else. The workflows expect =todo.org= at +the project root, so any project running them grows one. + +Adding =todo.org= to both sets fixes the symptom. The gap underneath is bigger, +and it's the part worth designing: *a repo Craig doesn't own is a third mode the +installer doesn't model.* Both current modes assume the repo is his. Track mode +commits the tooling; gitignore mode appends the set to =.gitignore=, which in +someone else's repo commits his personal policy into their tracked file. That is +the same defect one layer up from the one reported, and it ships today for every +collaborator install that picks gitignore mode. + +The right mechanism there is =.git/info/exclude=, which is local, untracked, and +invisible to the repo's owner. Ratowsky already worked around it exactly that +way, for both =todo.org= and the rest of the personal layer, which is good +evidence the third mode is what the situation actually wants rather than a +generalization from one case. + +So the fix has two halves: add =todo.org= to the exclude set, and give +=install-ai.sh= a collaborator mode that writes the whole set to +=.git/info/exclude= instead of =.gitignore=. Worth checking on the way whether +=inbox/=, =working/= and =temp/= want the same treatment there — the installer +creates =inbox/= unconditionally in both modes. + +Grading: Minor severity (a personal task file surfaces in a colleague's +=git status=, and an accidental =git add= commits it; nothing breaks and nothing +is lost) × some users sometimes (collaborator-repo installs only) = P3 = =[#C]=. + +Not =:solo:= — the third mode needs a call on how the installer detects or is +told that a repo isn't Craig's, and that's a design decision rather than a +mechanical fix. + +Source: inbox/2026-08-05-1418-from-home-installer-gap-found-installing-ai-into.org + ** TODO [#C] install-lang ignores tooling a track-mode project tracks :bug:solo: :PROPERTIES: :LAST_REVIEWED: 2026-08-04 -- cgit v1.2.3