Files
Skills/INSTALL.md
T
Brummel 69034747c6 feat(install): add --force to repoint symlinks; document worktree caveat
install.sh skipped a symlink pointing at another checkout, so there was
no scripted way to take the live set over. Add a --force flag that
repoints such divergent symlinks at the invoking clone (default run still
skips, stays idempotent). Document in INSTALL.md that the plugin must be
developed in the primary clone, not a worktree, and that --force repoints.

closes #17
2026-06-30 14:16:44 +02:00

74 lines
2.3 KiB
Markdown

# Install
## Prerequisites
- Claude Code with `~/.claude/` writable
- bash or any POSIX shell to run `install.sh`
## One-time global install
```sh
git clone <repo-url> ~/dev/skills
cd ~/dev/skills
./install.sh
```
`install.sh` creates symlinks from `~/.claude/skills/` and
`~/.claude/agents/` into this repo. Claude Code discovers them
at session start under user-level skill and agent registries,
so they become available in every project without further setup.
To uninstall:
```sh
~/dev/skills/uninstall.sh
```
## Per-project activation
There is no profile file. A project activates the plugin through its
own `CLAUDE.md` — which the skills read as standing reading on every
dispatch. Two things go in it:
1. **Project facts** — the handful of mechanical facts the skills
consume (code roots, build/test command, issue-tracker slug, …),
under a `## Skills plugin: project facts` heading.
2. **Sittenkodex** — feature acceptance criteria, anti-patterns the
project has earned the hard way, domain-specific contracts.
A starter for both lives in `templates/CLAUDE.md.fragment`: the
universal discipline sentences (only-orchestrator-commits, main
sacrosanct, …) plus a commented `## Skills plugin: project facts`
template. Copy what you need into the project's `CLAUDE.md` and fill
it in:
```sh
$EDITOR <project-root>/CLAUDE.md # paste from templates/CLAUDE.md.fragment
```
Everything the plugin does *not* read from project facts is a fixed
convention (spec dir `docs/specs`, 4-digit naming, the pipeline graph,
…) documented once in `docs/conventions.md` and `docs/pipeline.md`
not configurable per project.
## Update
```sh
cd ~/dev/skills && git pull
```
Symlinks pick up the changes automatically. If new skills or
agents have been added, re-run `install.sh` to add the new
symlinks (it is idempotent and will not overwrite existing
ones — pass `--force` to repoint a symlink that points at a
different checkout).
## Worktrees
The symlinks target the absolute path of the clone `install.sh` was
run from. Develop this plugin only in that primary clone, never from a
git worktree: a running session loads skills, agents, and workflows
through the symlinks regardless of cwd, so worktree edits are not what
it executes (see `CLAUDE.md`). To take the live set over from a
different checkout, run `./install.sh --force` from it.