This repo is a single-plugin marketplace and a cross-agent skill collection in one. The same skills/ directory at the repo root is read by both npx skills add (the cross-agent CLI) and Claude Code's plugin install (/plugin marketplace add + /plugin install …@ai-driven-development). The plugin sees the repo root as itself via source: "./" in marketplace.json — no nesting, no symlinks, no duplication.
Only create git tags and GitHub releases when skill, hook, or plugin files change.
skills/*/— any skill file changes (SKILL.md, scripts, references, assets)hooks/*/— any hook source changes (Go code, install scripts, hook configs).claude-plugin/plugin.json— plugin manifest changes.claude-plugin/marketplace.json— marketplace catalogue changesLICENSE— licence changes
Examples:
- Adding a new skill or hook
- Updating skill instructions in SKILL.md
- Modifying skill scripts
- Changing plugin metadata or version
Documentation-only changes don't need tagging:
README.md— documentation and use-case updatesCLAUDE.md— this file- Commit messages
- GitHub-specific files (
.github/*)
Rationale: users install specific commits via SHA. Documentation updates don't affect functionality, so they don't need version bumps. This keeps the release history clean.
The repo ships English-only. When you add or remove a skill, or change a skill description:
- Update the relevant section table in
README.md - Update the skill's own
SKILL.md(agent-facing) andREADME.md(human-facing, optional) - Update
.claude-plugin/plugin.jsonand.claude-plugin/marketplace.jsonversions
Follow semver:
- MAJOR (x.0.0) — breaking changes to skill interfaces, removals, layout overhauls
- MINOR (X.x.0) — new skills, new hooks, backward-compatible features
- PATCH (X.X.x) — bug fixes, prompt tweaks, doc fixes that ship in skills
When skill/hook/plugin files change:
- Bump version in
.claude-plugin/plugin.jsonAND.claude-plugin/marketplace.json(keep them in sync). - Commit changes.
- Create and push tag:
git tag -a vX.Y.Z -m "Version X.Y.Z" && git push origin vX.Y.Z - Create GitHub release:
gh release create vX.Y.Z --title "vX.Y.Z — Title" --notes "Release notes"
The bash-guard hook ships its own pre-built binary release with a separate tag (bash-guard-vX.Y.Z) — see hooks/balanced-safety-hooks/ for that release flow.
ai-driven-development/
├── .claude-plugin/
│ ├── marketplace.json ← single-plugin marketplace, source: "./"
│ └── plugin.json
├── skills/ ← canonical Agent Skills layout (npx skills add)
│ └── <skill-name>/SKILL.md (+ optional README.md, references/, scripts/, assets/)
├── hooks/
│ └── <hook-name>/ ← Claude Code hooks (Go binary + install scripts)
├── README.md
├── CLAUDE.md
└── LICENSE
- Create
skills/<skill-name>/SKILL.mdwith YAML frontmatter (name,description). - Add optional
README.md,references/,scripts/,assets/as needed. - Update the relevant section table in the root
README.md. - Bump
versionin both.claude-plugin/*.jsonfiles (minor bump for new skill). - Commit, tag, release.
- Create
hooks/<hook-name>/with the hook implementation,install.sh, andREADME.md. - If the hook ships pre-built binaries, add a release flow (see
hooks/balanced-safety-hooks/as the canonical example: cross-platform Go build viamake build-all, GitHub release withSHA256SUMS,install-prebuilt.shthat pins by tag). - Update the Hooks section in the root
README.md. - Bump
versionin both.claude-plugin/*.jsonfiles. - Commit, tag, release.