# Install ## Prerequisites - Claude Code with `~/.claude/` writable - bash or any POSIX shell to run `install.sh` ## One-time global install ```sh git clone ~/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 /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).