The profile was never parsed — it was prose the skill bodies told the model to read, so most slots were dead, constant across every project, or fiction (the whole pipeline block, including the "tdd is opt-in" claim, was enforced by nothing). Split it in two: constants become fixed conventions named directly by the skills (new docs/conventions.md), and the few genuinely per-project facts move to each project's CLAUDE.md under '## Skills plugin: project facts'. tdd/fieldtest/docwriter are now always available; the only behavioural toggle left is spec auto-sign. Delete docs/profile-schema.md and templates/project-profile.yml; add docs/conventions.md and a project-facts section to templates/CLAUDE.md.fragment; rewrite all SKILL/agent prose and the pipeline/design/migration/README/INSTALL docs accordingly.
1.8 KiB
Install
Prerequisites
- Claude Code with
~/.claude/writable - bash or any POSIX shell to run
install.sh
One-time global install
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:
~/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:
- Project facts — the handful of mechanical facts the skills
consume (code roots, build/test command, issue-tracker slug, …),
under a
## Skills plugin: project factsheading. - 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:
$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
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).