docs: add repo CLAUDE.md forbidding worktree development
The plugin installs via symlinks pinned at the absolute path of the primary clone, so skill/agent/workflow edits made in a git worktree of this repo are not what the live session runs (silent no-op or, on re-install, a split-brain). Record a no-worktree rule for this repo in a repo-local CLAUDE.md, with the dominant symlink-pinning rationale plus the secondary cwd-slug memory/transcript re-keying caveat. closes #15
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# Skills plugin — repo-local rules
|
||||
|
||||
This is the skills plugin's own repository. It does not consume its own
|
||||
pipeline: there is no `## Skills plugin: project facts` section and no
|
||||
per-cycle skill dispatch here. Changes are made directly and committed to
|
||||
`main`.
|
||||
|
||||
## Do not develop this repo from a git worktree
|
||||
|
||||
Never work on this repository from a git worktree — neither a manual
|
||||
`git worktree add` nor the harness `EnterWorktree` tool. Always edit the
|
||||
primary clone at `~/dev/skills`, on `main`.
|
||||
|
||||
Reason (dominant): `install.sh` installs the plugin by symlinking
|
||||
`~/.claude/{skills,agents,workflows}` to the absolute path of the clone it
|
||||
was first run from — the primary clone. A running session loads every
|
||||
skill, agent, and workflow definition through those symlinks regardless of
|
||||
cwd, so it always executes the primary clone's bodies. Edits made in a
|
||||
worktree of this repo are therefore not what the live session runs:
|
||||
dispatching an edited skill silently runs the old primary-clone body, and
|
||||
re-running `install.sh` from a worktree skips the existing symlinks and
|
||||
only adds links for new skills (a split-brain across two checkouts).
|
||||
Worktree development of the plugin is silently ineffective.
|
||||
|
||||
Secondary: a worktree session also re-keys the cwd-derived project slug,
|
||||
so the accumulated auto-memory and the session transcript land under a
|
||||
different namespace than the primary clone.
|
||||
|
||||
This constraint is specific to editing the plugin itself. Consumer
|
||||
projects are unaffected: they resolve the same global symlinks and read
|
||||
their own checked-in `CLAUDE.md`, so they may use worktrees freely.
|
||||
Reference in New Issue
Block a user