packaginglisted
Install: claude install-skill yoelgal/agent-tools
# Packaging & distribution
better-dev ships in two layers, and packaging owns getting both in cleanly and proving the package is
shippable before a release.
- **The tool - global, once per machine.** The skills and `bd-*` helpers live in one clone; `install.sh`
links each skill into the host's global skills directory one level deep, one symlink per skill
(`~/.claude/skills/<skill>`, `~/.codex/skills/<skill>`, `~/.hermes/skills/<skill>` - one adapter file
per host under `hosts/`), gstack-style: every repo on the machine shares one copy. The awareness hooks ship in the same clone but the installer does not wire them
(see the hook caveat below).
Nothing is ever vendored per repo; updating is a `git pull` in the clone.
- **A repo's `.better-dev/` - data only.** A project carries just its own data (`rules.md`,
`overrides.md`, `learnings.jsonl`, and a gitignored loop `ledger/`) plus `.better-dev/bin`, a
per-machine symlink back to the global tool. Skills keep referencing helpers at `.better-dev/bin/bd-mem`
unchanged, and that path resolves through the symlink.
## Two ways in
- **Installer (any host).** `install.sh` links the tool into the host's global skills directory, falling
back to a copy where symlinks aren't available. It's idempotent.
- **Claude Code plugin (convenience).** `.claude-plugin/plugin.json` lets a Claude Code user install the
same skills and `hooks/hooks.json` as a plugin. Skills are discovered from `skills/` and hooks from
`hooks/hooks.