Files
claude-plugin/README.md
T

50 lines
1.5 KiB
Markdown

# mroberts — Claude Code plugin marketplace
Personal marketplace hosting multiple Claude Code plugins.
## Install
```bash
claude plugin marketplace add ssh://[email protected]/mroberts/claude-plugin.git
claude plugin install guards@mroberts
```
## Layout
```
.claude-plugin/marketplace.json # index — every plugin must be listed here
plugins/
guards/
.claude-plugin/plugin.json
hooks/hooks.json
hooks/bash-guard.mjs
```
## Adding a plugin
1. `mkdir -p plugins/<name>/.claude-plugin`
2. Write `plugins/<name>/.claude-plugin/plugin.json` with `name`, `version`, `description`.
3. Add components: `hooks/hooks.json`, `commands/`, `agents/`, `skills/` as needed.
4. Append an entry to `plugins[]` in `.claude-plugin/marketplace.json`:
```json
{ "name": "<name>", "source": "./plugins/<name>", "description": "...", "category": "productivity" }
```
A plugin absent from `plugins[]` is not installable, regardless of its directory.
5. Push, then `claude plugin marketplace update mroberts`.
## Plugins
| Plugin | Purpose |
|---|---|
| `guards` | Enforces the hard constraints in `~/.claude/CLAUDE.md` — jj-only VCS, no Claude attribution, build+test gate before push/tag, secret scrubbing on writes. |
## Note on `guards`
`hooks/bash-guard.mjs` is referenced via `${CLAUDE_PLUGIN_ROOT}` and travels with the
plugin. `shush` is referenced by absolute path (`/home/mroberts/.local/bin/shush`)
because it is a separately installed binary, not a repo file — that path is
machine-specific and will need changing on another host.