Claude Code Plugins by Graham Brooks
These skills use bx to launch MCP servers on-demand. Please install bx to use these skills. bx manages the download and execution of MCP tools referenced in the mcp.json files in the plugins.
Add the marketplace to Claude Code:
/plugin marketplace add grahambrooks/gb-agent-skills
Install a specific plugin:
/plugin install code-intelligence@gb-agent-skills
| Plugin | Tools | Use it for |
|---|---|---|
| code-intelligence | symgraph (MCP) | Navigating code: symbols, callers, impact, coupling. Ships explore-code and a SessionStart hook that indexes new projects. |
| architecture | forge (MCP), tropism | Modelling the intended architecture and keeping dependencies inside it. |
| api-contracts | brake (MCP) | Catching breaking OpenAPI, protobuf and GraphQL changes while drafting them. |
| refactoring | colab | Mechanical, repo-wide code changes with AST-aware codemods (build mode). |
| docs-and-diagrams | adoc | Writing documentation that renders with Graham's text-to-document tools. |
The main consumer is myspec, which enables plugins per repository
([toolchain].plugins) and switches them on and off per lifecycle mode ([modes.<mode>.plugins]). A plugin is the
unit it can switch, so the groups follow from that:
- One plugin per switchable job. Tools that are always wanted together share a plugin; tools wanted in
different modes are split, so
specifycan leave editing tools off. - Relevance is per repository. A tool that only matters in some repositories, such as API contracts, gets its own plugin, so a repository opts in exactly.
- Context costs. Every MCP server's tool list is loaded into the session, so a heavy server is not bundled with tools the mode does not need.
- Same artefact, same plugin. Tools that read or write one artefact belong together, such as the forge model and the tropism rules that enforce it.
- Names are an interface. MCP tools are named
mcp__plugin_<plugin>_<server>__*, and those names end up in skills'allowed-toolsand in myspec allowlists. Renaming a plugin breaks them.
Private tools are published from a separate, private marketplace rather than listed here —
including the myspec plugin, since myspec itself is a private repository.
Run the linter to validate plugin structure:
make lintSync skills from the tool repositories at the tags pinned in tools.toml, then update plugin documentation and
website:
make update # runs make sync-tools firstSkills under a synced plugin are copies. Each tool's repository owns its skills; change them there, bump the tag in
tools.toml, and run make sync-tools. make lint fails if a synced file was edited here or the tags changed
without a resync.