Repository navigation
An installer that owns its namespace whatever git holds of it, with no guard and no --force - #126
Merged
Merged
Conversation
…o guard and no --force A host that keeps .claude/ out of git holds every installed file untracked. There the installer refused each update, and its check failed each time, while the files were byte for byte what an earlier install wrote. A guard that fires on every update is passed with --force by habit, and then protects nothing. The developer decided on 2026-10-16 to remove it. - install.py: no refusal on a file git shows as modified, staged, untracked or ignored, no `uncommitted` line in the check, no --force, and git is never run. - docs/adr/0039: the installer owns its namespace whatever git holds of it, and supersedes 0019, whose ownership by namespace it carries over. An edit made in the host to a file of the namespace is lost at the next install, and git keeps it only when it was committed. - ARCHITECTURE.md and CONTRIBUTING.md describe the installer without the guard. - tests/install: the guard's tests give way to an update over an installation git does not hold, a check that passes on it, and an install and a check that never run git.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A host that keeps
.claude/out of git holds every installed file untracked. There the installer refused each update:Each of the four files was byte for byte what an earlier install had written, and nothing in them was the developer's. The check failed in that host too, every time, on its
uncommittedlines. A guard that fires on every update is passed with--forceby habit, and then protects nothing. The developer decided on 2026-10-16 to remove it.What changes
install.pyoverwrites and removes in its namespace whatever git holds of the files. It never runs git, the check reportsmissing,driftandorphanonly, and--forceis gone.ARCHITECTURE.mdandCONTRIBUTING.mddescribe the installer as it is now.What it costs
An edit made in the host to a file of the namespace is lost at the next install, and git keeps it only when it was committed. The namespace was already the installer's: a host that wants its own skill or agent, or its own copy of one, uses another prefix.
Checked
scripts/gate.sh, green locally: 1,891 tests on 3.11 and on the newest Python.