- Simplified Quick start to two slash commands - Applied Every style guide (sentence case, spelled-out numbers) - CLAUDE.md formatting improvements 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
234 lines
6.5 KiB
Markdown
234 lines
6.5 KiB
Markdown
# Every Marketplace - Claude Code Plugin Marketplace
|
|
|
|
This repository is a Claude Code plugin marketplace that distributes the `compounding-engineering` plugin to developers building with AI-powered tools.
|
|
|
|
## Repository Structure
|
|
|
|
```
|
|
every-marketplace/
|
|
├── .claude-plugin/
|
|
│ └── marketplace.json # Marketplace catalog (lists available plugins)
|
|
└── plugins/
|
|
└── compounding-engineering/ # The actual plugin
|
|
├── .claude-plugin/
|
|
│ └── plugin.json # Plugin metadata
|
|
├── agents/ # 15 specialized AI agents
|
|
├── commands/ # 6 slash commands
|
|
├── hooks/ # 2 automated hooks
|
|
└── README.md # Plugin documentation
|
|
```
|
|
|
|
## Philosophy: Compounding Engineering
|
|
|
|
**Each unit of engineering work should make subsequent units of work easier—not harder.**
|
|
|
|
When working on this repository, follow the compounding engineering process:
|
|
|
|
1. **Plan** → Understand the change needed and its impact
|
|
2. **Delegate** → Use AI tools to help with implementation
|
|
3. **Assess** → Verify changes work as expected
|
|
4. **Codify** → Update this CLAUDE.md with learnings
|
|
|
|
## Working with This Repository
|
|
|
|
### Adding a New Plugin
|
|
|
|
1. Create plugin directory: `plugins/new-plugin-name/`
|
|
2. Add plugin structure:
|
|
```
|
|
plugins/new-plugin-name/
|
|
├── .claude-plugin/plugin.json
|
|
├── agents/
|
|
├── commands/
|
|
└── README.md
|
|
```
|
|
3. Update `.claude-plugin/marketplace.json` to include the new plugin
|
|
4. Test locally before committing
|
|
|
|
### Updating the Compounding Engineering Plugin
|
|
|
|
When agents or commands are added/removed:
|
|
|
|
1. **Scan for actual files:**
|
|
|
|
```bash
|
|
# Count agents
|
|
ls plugins/compounding-engineering/agents/*.md | wc -l
|
|
|
|
# Count commands
|
|
ls plugins/compounding-engineering/commands/*.md | wc -l
|
|
```
|
|
|
|
2. **Update plugin.json** at `plugins/compounding-engineering/.claude-plugin/plugin.json`:
|
|
|
|
- Update `components.agents` count
|
|
- Update `components.commands` count
|
|
- Update `agents` object to reflect which agents exist
|
|
- Update `commands` object to reflect which commands exist
|
|
|
|
3. **Update plugin README** at `plugins/compounding-engineering/README.md`:
|
|
|
|
- Update agent/command counts in the intro
|
|
- Update the agent/command lists to match what exists
|
|
|
|
4. **Update marketplace.json** at `.claude-plugin/marketplace.json`:
|
|
- Usually doesn't need changes unless changing plugin description/tags
|
|
|
|
### Marketplace.json Structure
|
|
|
|
The marketplace.json follows the official Claude Code spec:
|
|
|
|
```json
|
|
{
|
|
"name": "marketplace-identifier",
|
|
"owner": {
|
|
"name": "Owner Name",
|
|
"url": "https://github.com/owner"
|
|
},
|
|
"metadata": {
|
|
"description": "Marketplace description",
|
|
"version": "1.0.0"
|
|
},
|
|
"plugins": [
|
|
{
|
|
"name": "plugin-name",
|
|
"description": "Plugin description",
|
|
"version": "1.0.0",
|
|
"author": { ... },
|
|
"homepage": "https://...",
|
|
"tags": ["tag1", "tag2"],
|
|
"source": "./plugins/plugin-name"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
**Only include fields that are in the official spec.** Do not add custom fields like:
|
|
|
|
- `downloads`, `stars`, `rating` (display-only)
|
|
- `categories`, `featured_plugins`, `trending` (not in spec)
|
|
- `type`, `verified`, `featured` (not in spec)
|
|
|
|
### Plugin.json Structure
|
|
|
|
Each plugin has its own plugin.json with detailed metadata:
|
|
|
|
```json
|
|
{
|
|
"name": "plugin-name",
|
|
"version": "1.0.0",
|
|
"description": "Plugin description",
|
|
"author": { ... },
|
|
"keywords": ["keyword1", "keyword2"],
|
|
"components": {
|
|
"agents": 15,
|
|
"commands": 6,
|
|
"hooks": 2
|
|
},
|
|
"agents": {
|
|
"category": [
|
|
{
|
|
"name": "agent-name",
|
|
"description": "Agent description",
|
|
"use_cases": ["use-case-1", "use-case-2"]
|
|
}
|
|
]
|
|
},
|
|
"commands": {
|
|
"category": ["command1", "command2"]
|
|
}
|
|
}
|
|
```
|
|
|
|
## Testing Changes
|
|
|
|
### Test Locally
|
|
|
|
1. Install the marketplace locally:
|
|
|
|
```bash
|
|
claude /plugin marketplace add /Users/yourusername/every-marketplace
|
|
```
|
|
|
|
2. Install the plugin:
|
|
|
|
```bash
|
|
claude /plugin install compounding-engineering
|
|
```
|
|
|
|
3. Test agents and commands:
|
|
```bash
|
|
claude /review
|
|
claude agent kieran-rails-reviewer "test message"
|
|
```
|
|
|
|
### Validate JSON
|
|
|
|
Before committing, ensure JSON files are valid:
|
|
|
|
```bash
|
|
cat .claude-plugin/marketplace.json | jq .
|
|
cat plugins/compounding-engineering/.claude-plugin/plugin.json | jq .
|
|
```
|
|
|
|
## Common Tasks
|
|
|
|
### Adding a New Agent
|
|
|
|
1. Create `plugins/compounding-engineering/agents/new-agent.md`
|
|
2. Update plugin.json agent count and agent list
|
|
3. Update README.md agent list
|
|
4. Test with `claude agent new-agent "test"`
|
|
|
|
### Adding a New Command
|
|
|
|
1. Create `plugins/compounding-engineering/commands/new-command.md`
|
|
2. Update plugin.json command count and command list
|
|
3. Update README.md command list
|
|
4. Test with `claude /new-command`
|
|
|
|
### Updating Tags/Keywords
|
|
|
|
Tags should reflect the compounding engineering philosophy:
|
|
|
|
- Use: `ai-powered`, `compounding-engineering`, `workflow-automation`, `knowledge-management`
|
|
- Avoid: Framework-specific tags unless the plugin is framework-specific
|
|
|
|
## Commit Conventions
|
|
|
|
Follow these patterns for commit messages:
|
|
|
|
- `Add [agent/command name]` - Adding new functionality
|
|
- `Remove [agent/command name]` - Removing functionality
|
|
- `Update [file] to [what changed]` - Updating existing files
|
|
- `Fix [issue]` - Bug fixes
|
|
- `Simplify [component] to [improvement]` - Refactoring
|
|
|
|
Include the Claude Code footer:
|
|
|
|
```
|
|
🤖 Generated with [Claude Code](https://claude.com/claude-code)
|
|
|
|
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
```
|
|
|
|
## Resources to search for when needing more information
|
|
|
|
- [Claude Code Plugin Documentation](https://docs.claude.com/en/docs/claude-code/plugins)
|
|
- [Plugin Marketplace Documentation](https://docs.claude.com/en/docs/claude-code/plugin-marketplaces)
|
|
- [Plugin Reference](https://docs.claude.com/en/docs/claude-code/plugins-reference)
|
|
|
|
## Key Learnings
|
|
|
|
_This section captures important learnings as we work on this repository._
|
|
|
|
### 2025-10-09: Simplified marketplace.json to match official spec
|
|
|
|
The initial marketplace.json included many custom fields (downloads, stars, rating, categories, trending) that aren't part of the Claude Code specification. We simplified to only include:
|
|
|
|
- Required: `name`, `owner`, `plugins`
|
|
- Optional: `metadata` (with description and version)
|
|
- Plugin entries: `name`, `description`, `version`, `author`, `homepage`, `tags`, `source`
|
|
|
|
**Learning:** Stick to the official spec. Custom fields may confuse users or break compatibility with future versions.
|