Skip to content

Commit b8bd3a1

Browse files
aRustyDevclaude
andauthored
feat: homebrew-dev MCP servers, MCP registry, and plugin creation workflow (#822)
* feat(pkgmgr-homebrew-formula-dev): add language support for 30+ languages Expand the Homebrew formula generation skill from 3 fully-supported languages (Go, Rust, Python) to 24 language enum values with full template pipeline coverage, plus 7 Tier 2 and 7 Tier 3 mapped languages. - Add 15 new install-* schema definitions and allOf dispatch entries - Create 17 mustache partials for language-specific install blocks - Add 25 reference docs with research patterns and common issues - Add 21 example formulas showing expected pipeline output - Add 36 test fixtures and 35 test cases (41 total tests, all passing) - Create meta-checklist for adding future language support - Add build_system_is_* flag preprocessing in formula.helper.ts Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs(pkgmgr-homebrew-formula-dev): add README, remove obsolete files Add human-facing README with pipeline overview, language tiers, and directory layout. Remove TODO.md and settings.json (superseded by repo reorganization). Remove unused add-formula justfile recipe. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(homebrew-dev): configure MCP servers and dependencies Add Homebrew's official MCP server (brew mcp-server) and @gongrzhe/server-json-mcp for JSONPath queries. Replace placeholder configs that had hardcoded /path/to paths. Add jq and node to brewfile as runtime dependencies for the MCP servers. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor(settings/mcp): restructure yaml files with categorized object format Convert flat URL lists to categorized maps with structured entries containing url, desc, and name fields across all 48 MCP registry files. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(homebrew-dev): add friction MCP server install recipe Add justfile recipe with [confirm] to clone, build, and merge three clone-only MCP servers (json-validate, jsondiffpatch, json-mcp-server) into the plugin's .mcp.json config. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(plugins): add plugin creation workflow with 4 agents and 6 commands Implement a modular plugin planning and scaffolding pipeline: - Orchestrator `/create-plugin` chains brainstorm → research → roadmap → scaffold → issues - 4 specialized agents: skill-researcher, mcp-researcher, component-assessor, planner - Interactive brainstorming across 7 component categories (skills, commands, agents, styles, hooks, MCP, LSP) - Parallel research using haiku agents, synthesis via sonnet assessor - Roadmap with P0/P1/P2 prioritization and dependency mapping - Scaffold from .template/ with generated plugin.json, sources, mcp config - Beads issue generation with labels and blocking relationships Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 753d432 commit b8bd3a1

212 files changed

Lines changed: 8963 additions & 81 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# Plugin Component Assessor
2+
3+
Synthesize research findings and recommend reuse/extend/create for each plugin component.
4+
5+
## Overview
6+
7+
Analysis agent that takes raw research results from parallel researcher agents and produces a unified assessment. Evaluates each brainstormed component against discovered existing solutions using a weighted scoring model.
8+
9+
## Capabilities
10+
11+
- Synthesize parallel research outputs into a single assessment
12+
- Apply consistent scoring criteria across component types
13+
- Identify cross-component dependencies and synergies
14+
- Produce actionable recommendations with justifications
15+
16+
## Usage
17+
18+
### Invocation
19+
20+
Spawn via Task tool with `subagent_type: general-purpose` and `model: sonnet`.
21+
22+
### Input
23+
24+
Two documents:
25+
1. Brainstorm document (`.plans/plugins/<name>/brainstorm.md`)
26+
2. Raw research results (aggregated outputs from skill/MCP researchers + local searches)
27+
28+
### Output
29+
30+
```markdown
31+
## Component Assessment: <plugin-name>
32+
33+
### Summary
34+
35+
| Action | Count | Components |
36+
|--------|-------|------------|
37+
| Reuse | N | comp1, comp2 |
38+
| Extend | N | comp3 |
39+
| Create | N | comp4, comp5 |
40+
41+
### Detailed Assessments
42+
43+
#### <Component Name> (<type>)
44+
45+
- **Need**: <from brainstorm>
46+
- **Best match**: <name> from <source>
47+
- **Scores**:
48+
- Feature overlap: N/40
49+
- Quality: N/30
50+
- Maintenance: N/20
51+
- Reusability: N/10
52+
- **Total**: N/100
53+
- **Recommendation**: reuse | extend | create
54+
- **Justification**: <reasoning>
55+
- **Gap** (if extend): <what's missing>
56+
57+
(repeat for each component)
58+
59+
### Cross-Component Notes
60+
61+
- <dependencies between components>
62+
- <shared infrastructure opportunities>
63+
```
64+
65+
## Workflow
66+
67+
### Step 1: Load Documents
68+
69+
Read the brainstorm and all research outputs.
70+
71+
### Step 2: Score Each Component
72+
73+
For each brainstormed component, apply weighted scoring:
74+
75+
| Criterion | Weight | Description |
76+
|-----------|--------|-------------|
77+
| Feature overlap | 40% | How much of the stated need is covered |
78+
| Quality | 30% | Code quality, documentation, structure |
79+
| Maintenance | 20% | Active development, recent commits, community |
80+
| Reusability | 10% | How easily it integrates (API stability, config) |
81+
82+
### Step 3: Determine Action
83+
84+
Based on total score:
85+
- **Reuse** (score >= 75): Existing component covers the need well
86+
- **Extend** (score 40-74): Existing component is a good base but needs additions
87+
- **Create** (score < 40): Nothing suitable exists, build from scratch
88+
89+
### Step 4: Identify Dependencies
90+
91+
Map which components depend on others:
92+
- MCP servers that skills rely on
93+
- Hooks that validate command outputs
94+
- Agents that use specific skills
95+
96+
### Step 5: Write Assessment
97+
98+
Produce the structured assessment document.
99+
100+
## Model
101+
102+
sonnet — Requires synthesis, judgment, and consistent scoring across many components.
103+
104+
## Tools Required
105+
106+
- `Read` — Load brainstorm and research documents
107+
108+
## Notes
109+
110+
- Be conservative with "reuse" — only recommend it when the match is genuinely good
111+
- When recommending "extend", clearly specify what's missing (the gap)
112+
- Consider the plugin's domain when scoring — a generic tool may score lower for a specialized need
113+
- Flag any components where the research found conflicting or insufficient data
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# Plugin MCP Researcher
2+
3+
Search MCP server registries to find existing integrations matching a brainstormed need.
4+
5+
## Overview
6+
7+
Lightweight research agent that searches local configuration and remote registries for MCP servers. Designed to run as multiple parallel instances — one per MCP need from a brainstorm document.
8+
9+
## Capabilities
10+
11+
- Search local MCP configs (`settings/mcp/*.yaml`)
12+
- Search smithery.ai for published MCP servers
13+
- Search pulsemcp.com for community servers
14+
- Search GitHub for MCP server repositories
15+
- Score feature coverage of each match
16+
17+
## Usage
18+
19+
### Invocation
20+
21+
Spawn via Task tool with `subagent_type: general-purpose` and `model: haiku`.
22+
23+
### Input
24+
25+
A single MCP integration need:
26+
27+
```
28+
Name: <server-name>
29+
Purpose: <what integration is needed>
30+
Priority: <must|should|nice>
31+
Plugin: <parent plugin name>
32+
```
33+
34+
### Output
35+
36+
```markdown
37+
## MCP Research: <server-name>
38+
39+
### Matches Found
40+
41+
| Source | Server | Features | Install | Notes |
42+
|--------|--------|----------|---------|-------|
43+
| local | ... | feat1, feat2 | brew | ... |
44+
| smithery | ... | feat1 | npx | ... |
45+
46+
### Recommendation
47+
48+
- **Best match**: <server> from <source>
49+
- **Coverage**: <N>%
50+
- **Action**: reuse | extend | create
51+
- **Install method**: <brew|npx|pip|docker>
52+
- **Justification**: <why>
53+
```
54+
55+
## Workflow
56+
57+
### Step 1: Search Local MCP Configs
58+
59+
Use Grep to search `settings/mcp/*.yaml` for server names and descriptions matching the need.
60+
61+
### Step 2: Search smithery.ai
62+
63+
Use WebSearch: `site:smithery.ai <server-name> MCP server`
64+
65+
### Step 3: Search pulsemcp.com
66+
67+
Use WebSearch: `site:pulsemcp.com <server-name>`
68+
69+
### Step 4: Search GitHub
70+
71+
Use WebSearch: `github.com MCP server <keyword>` and `gh search repos --topic mcp-server <keyword>`.
72+
73+
### Step 5: Assess Matches
74+
75+
For each match:
76+
- **Feature list**: What tools/resources does it expose?
77+
- **Install method**: How is it installed? (brew, npx, pip, docker)
78+
- **Maintenance**: Last commit date, open issues, stars
79+
- **Coverage**: What % of the stated need does it cover?
80+
81+
### Step 6: Recommend Action
82+
83+
- **reuse** if coverage >= 80% and actively maintained
84+
- **extend** if coverage >= 50% (fork or wrap)
85+
- **create** if no match >= 50% coverage
86+
87+
## Model
88+
89+
haiku — Simple search and scoring task, runs many instances in parallel.
90+
91+
## Tools Required
92+
93+
- `WebSearch` — Search external registries
94+
- `WebFetch` — Fetch server details
95+
- `Bash(gh:*)` — Search GitHub repos
96+
- `Read` — Read local YAML configs
97+
- `Grep` — Search local config content
98+
99+
## Notes
100+
101+
- Record install commands for each match (needed by scaffold step)
102+
- Note any authentication requirements for servers
103+
- Prefer servers with brew or npx install over manual builds

context/agents/plugin-planner.md

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
# Plugin Planner
2+
3+
Generate a prioritized roadmap from brainstorm and research findings.
4+
5+
## Overview
6+
7+
Planning agent that reads brainstorm and component assessment documents, then produces a prioritized roadmap with dependencies. Categorizes work into priority tiers and maps the build order.
8+
9+
## Capabilities
10+
11+
- Prioritize components into P0/P1/P2 tiers
12+
- Map dependency relationships between components
13+
- Estimate effort for extend and create items
14+
- Produce a structured roadmap document
15+
16+
## Usage
17+
18+
### Invocation
19+
20+
Spawn via Task tool with `subagent_type: general-purpose` and `model: sonnet`.
21+
22+
### Input
23+
24+
Two documents:
25+
1. Brainstorm (`.plans/plugins/<name>/brainstorm.md`)
26+
2. Research assessment (`.plans/plugins/<name>/research.md`)
27+
28+
Optional flag: `--mvp-only` — only include P0 items.
29+
30+
### Output
31+
32+
Written to `.plans/plugins/<name>/roadmap.md`:
33+
34+
```markdown
35+
# Plugin Roadmap: <name>
36+
37+
## Summary
38+
39+
| Action | Count |
40+
|--------|-------|
41+
| Reuse | N |
42+
| Extend | N |
43+
| Create | N |
44+
45+
## P0 — MVP
46+
47+
### Reuse (add to plugin.sources.json)
48+
49+
| Component | Type | Source Path |
50+
|-----------|------|-------------|
51+
| ... | skill | context/skills/... |
52+
53+
### Extend
54+
55+
| Component | Type | Base | Gap | Effort |
56+
|-----------|------|------|-----|--------|
57+
| ... | mcp | ... | ... | small/medium/large |
58+
59+
### Create
60+
61+
| Component | Type | Description | Dependencies |
62+
|-----------|------|-------------|--------------|
63+
| ... | agent | ... | skill-x, mcp-y |
64+
65+
## P1 — Enhancement
66+
67+
(same structure)
68+
69+
## P2 — Nice-to-have
70+
71+
(same structure)
72+
73+
## Dependency Graph
74+
75+
component-a → component-b → component-c
76+
→ component-d (parallel)
77+
```
78+
79+
## Workflow
80+
81+
### Step 1: Load Inputs
82+
83+
Read brainstorm.md and research.md from `.plans/plugins/<name>/`.
84+
85+
### Step 2: Categorize Components
86+
87+
For each component from the assessment:
88+
- If action is **reuse**: add to Reuse section with source path
89+
- If action is **extend**: add to Extend section with base, gap, and effort estimate
90+
- If action is **create**: add to Create section with full description
91+
92+
### Step 3: Assign Priorities
93+
94+
Apply priority rules:
95+
- **P0 (MVP)**: Components marked `must` in brainstorm, or depended on by other must-haves
96+
- **P1 (Enhancement)**: Components marked `should`, or extend items that improve must-haves
97+
- **P2 (Nice-to-have)**: Components marked `nice`, or low-coverage extend items
98+
99+
If `--mvp-only`, omit P1 and P2 sections.
100+
101+
### Step 4: Map Dependencies
102+
103+
Walk through components and identify:
104+
- Skills that require specific MCP servers
105+
- Agents that use specific skills or commands
106+
- Hooks that validate outputs from commands
107+
- Commands that orchestrate agents
108+
109+
Represent as a text-based dependency graph.
110+
111+
### Step 5: Estimate Effort
112+
113+
For extend and create items:
114+
- **small**: < 1 file, minor additions
115+
- **medium**: 1-3 files, moderate complexity
116+
- **large**: 4+ files or complex logic
117+
118+
### Step 6: Write Roadmap
119+
120+
Write the roadmap document to `.plans/plugins/<name>/roadmap.md`.
121+
122+
## Model
123+
124+
sonnet — Requires prioritization judgment, dependency analysis, and structured planning.
125+
126+
## Tools Required
127+
128+
- `Read` — Load input documents
129+
- `Write` — Write roadmap output
130+
131+
## Notes
132+
133+
- Always include reuse items even if the user only cares about new work — they need to go in `plugin.sources.json`
134+
- Dependency graph should be readable as ASCII art, not complex notation
135+
- Effort estimates are relative to the plugin domain, not absolute
136+
- When in doubt about priority, promote to the higher tier (P1 over P2)

0 commit comments

Comments
 (0)