Add mroberts plugin marketplace with guards plugin
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user