# songwhip-marketplace

A [Claude Code](https://code.claude.com/docs) plugin marketplace for Songwhip
engineering workflows. Plugins published here can bundle skills, slash commands,
subagents, hooks, and MCP servers that the team shares across projects.

This marketplace lives **inside the monorepo** at
`apryschepa/songwhip-marketplace/`, so it is shared the same way the rest of the
repo is: clone/pull the repo and add it as a local marketplace.

## Add the marketplace

Because the manifest lives in a subdirectory (not the repo root), teammates add
it by **local path**. From the repo root:

```text
git pull                                                # get the latest plugins
/plugin marketplace add ./apryschepa/songwhip-marketplace
```

> The one-line `owner/repo` GitHub add and the `extraKnownMarketplaces`
> auto-load only work when `marketplace.json` sits at a repo root. Since ours is
> intentionally kept under `apryschepa/`, use the local-path command above.

## Install a plugin

```text
/plugin install <plugin-name>@songwhip-marketplace
```

Browse what's available with `/plugin` (Discover tab) or `/plugin marketplace list`.

## Get updates

Plugins are pulled from your local checkout, so updating is a `git pull` plus a
marketplace refresh:

```text
git pull
/plugin marketplace update songwhip-marketplace
/reload-plugins        # apply changes without restarting the session
```

## Available plugins

| Plugin | What it adds |
| --- | --- |
| `songwhip-core` | Foundation skills for cross-repo work: read-only cross-repo analysis and staged cross-repo feature implementation. |
| `songwhip-docs` | Stop hook that flags stale AI docs after code changes and offers `/update-docs`; `/create-docs` bootstraps docs for undocumented areas. |
| `songwhip-guardrails` | PreToolUse hook that blocks (denies) any tool from accessing a `.env*` secrets file, without interrupting the session — Claude keeps running and continues without the blocked access. |

Add a new one by following [CONTRIBUTING.md](./CONTRIBUTING.md).

## Layout

```text
apryschepa/songwhip-marketplace/
├── .claude-plugin/
│   └── marketplace.json            # the registry of plugins
├── plugins/                        # one folder per plugin (pluginRoot)
│   └── <plugin-name>/
│       └── .claude-plugin/
│           └── plugin.json
├── README.md
└── CONTRIBUTING.md
```

See the official docs for the full schema:
[Plugin marketplaces](https://code.claude.com/docs/en/plugin-marketplaces) ·
[Plugins reference](https://code.claude.com/docs/en/plugins-reference).
