50 lines
1.5 KiB
Markdown
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.
|