|
| 1 | +# AGENTS.md |
| 2 | + |
| 3 | +This repository is the Claude Code plugin distribution repo for Supabase. |
| 4 | + |
| 5 | +## Purpose |
| 6 | + |
| 7 | +Keep this repository focused on the Claude plugin shape: |
| 8 | + |
| 9 | +- `.claude-plugin/plugin.json` defines plugin identity and metadata |
| 10 | +- `.claude-plugin/marketplace.json` provides an optional self-hosted marketplace wrapper |
| 11 | +- `.mcp.json` configures the Supabase MCP server for Claude Code |
| 12 | +- `skills/` contains the shipped, real skill files consumed by Claude |
| 13 | + |
| 14 | +This repo should stay self-contained. Claude marketplace installs copy the plugin into Claude's local cache, so paths outside the plugin root are fragile and should be avoided. |
| 15 | + |
| 16 | +## Important Commands |
| 17 | + |
| 18 | +Validate the plugin manifest: |
| 19 | + |
| 20 | +```bash |
| 21 | +npx claude plugin validate .claude-plugin/plugin.json |
| 22 | +``` |
| 23 | + |
| 24 | +Validate the marketplace wrapper: |
| 25 | + |
| 26 | +```bash |
| 27 | +npx claude plugin validate .claude-plugin/marketplace.json |
| 28 | +``` |
| 29 | + |
| 30 | +## Editing Rules |
| 31 | + |
| 32 | +- Do not move `skills/`, `.mcp.json`, or `.claude-plugin/plugin.json` out of the repo root layout. |
| 33 | +- Do not replace `skills/` with a symlink or submodule reference. |
| 34 | +- Keep the plugin name stable as `supabase` unless there is a deliberate migration plan. |
| 35 | +- When changing descriptions or keywords, update both `plugin.json` and `marketplace.json` together. |
| 36 | + |
| 37 | +## Adding New Vendor Plugins |
| 38 | + |
| 39 | +Before adding a new vendor plugin, or changing an existing vendor plugin, fetch the official plugin documentation for that specific vendor. |
| 40 | + |
| 41 | +Known vendor documentation pages: |
| 42 | + |
| 43 | +- Claude Code: |
| 44 | + - https://code.claude.com/docs/en/plugins |
| 45 | + - https://code.claude.com/docs/en/plugins-reference |
| 46 | + - https://code.claude.com/docs/en/plugin-marketplaces |
| 47 | +- Cursor: |
| 48 | + - https://cursor.com/plugins |
| 49 | + - https://docs.cursor.com/en/context/mcp |
| 50 | +- Codex: |
| 51 | + - https://developers.openai.com/codex/plugins/build |
| 52 | +- Gemini CLI: |
| 53 | + - https://geminicli.com/docs/extensions/writing-extensions/ |
| 54 | + |
| 55 | +For vendors listed above, read the official documentation pages for the vendor you are working on and follow the plugin structure required by those docs. |
| 56 | + |
| 57 | +For vendors not listed above, search the vendor's official documentation and follow the plugin structure described there. Do not infer the structure from community examples before checking the vendor's own documentation. |
| 58 | + |
| 59 | +When adding a new vendor plugin: |
| 60 | + |
| 61 | +1. Keep the plugin structures that already exist in this repository intact. Add the new vendor plugin around the existing shared layout instead of restructuring the repo for the new vendor. |
| 62 | + |
| 63 | +2. Add only the vendor-specific adapter files required by the vendor documentation. |
| 64 | + |
| 65 | +3. Reuse the shared root `skills/` directory and shared assets where the vendor supports them. |
| 66 | + |
| 67 | +4. Keep vendor manifests thin and adapter-focused: |
| 68 | + - vendor metadata |
| 69 | + - pointers to shared `skills/` |
| 70 | + - pointers to vendor-specific MCP filenames if required |
| 71 | + |
| 72 | +5. If a vendor requires a different MCP filename, add or generate that adapter file without changing the structures for the plugins already present in this repo. |
| 73 | + |
| 74 | +6. Document, in the PR or maintainer notes: |
| 75 | + - the vendor documentation URL used |
| 76 | + - required manifest path |
| 77 | + - required MCP filename |
| 78 | + - whether marketplace metadata is needed |
| 79 | + - local validation command for that vendor |
| 80 | + |
| 81 | +## Syncing Skills |
| 82 | + |
| 83 | +The shipped skills in `skills/` are intended to be real vendored files. If they are updated from another upstream authoring repo, sync them into this repo as normal files and review the diff here before release. |
0 commit comments