287 lines
7.5 KiB
Markdown
287 lines
7.5 KiB
Markdown
---
|
|
description: Determine which plugin components to use based on functionality requirements
|
|
---
|
|
|
|
# Select Plugin Components
|
|
|
|
## Parameters
|
|
|
|
**Required**:
|
|
- `purpose`: Plugin's primary purpose (format: quoted string)
|
|
- `features`: Comma-separated list of features (format: "feat1,feat2,feat3")
|
|
|
|
**Optional**:
|
|
- `automation`: Whether proactive behavior is needed (format: true|false, default: false)
|
|
- `external_tools`: External tools/APIs needed (format: "tool1,tool2")
|
|
|
|
## Workflow
|
|
|
|
### Step 1: Feature Analysis
|
|
|
|
Parse the features list and categorize each feature:
|
|
- **User-Initiated Actions**: Operations triggered by explicit user command
|
|
- **Proactive Behaviors**: Actions that should happen automatically
|
|
- **Background Tasks**: Long-running or scheduled operations
|
|
- **Interactive Workflows**: Multi-step conversational processes
|
|
|
|
### Step 2: Commands Assessment
|
|
|
|
**Evaluate Need for Commands**:
|
|
|
|
Commands are appropriate when:
|
|
- Users need explicit control over when operations execute
|
|
- Functionality is invoked via slash commands
|
|
- Operations are discrete and independent
|
|
- Simple input/output pattern
|
|
|
|
**Command Organization**:
|
|
- **Single Command**: 1-2 simple operations
|
|
- **Namespace**: 3-5 independent operations
|
|
- **Skill with skill.md**: 5+ operations needing intelligent routing
|
|
|
|
**Recommendation Logic**:
|
|
```
|
|
IF features_count <= 2 AND simple_operations:
|
|
RECOMMEND: Single command
|
|
ELSE IF features_count <= 5 AND independent_operations:
|
|
RECOMMEND: Namespace (commands directory without skill.md)
|
|
ELSE:
|
|
RECOMMEND: Skill with skill.md router
|
|
```
|
|
|
|
### Step 3: Agents Assessment
|
|
|
|
**Evaluate Need for Agents**:
|
|
|
|
Agents are appropriate when:
|
|
- Domain expertise would benefit users
|
|
- Automatic invocation based on context is valuable
|
|
- Guidance and recommendations are needed
|
|
- Analysis and decision-making support users
|
|
|
|
**Agent Design Questions**:
|
|
1. Does the plugin domain require specialized knowledge?
|
|
2. Would users benefit from conversational guidance?
|
|
3. Should the plugin proactively suggest actions?
|
|
4. Is there a workflow that needs expert orchestration?
|
|
|
|
**Recommendation**:
|
|
- **Yes to 2+ questions** → Include agent
|
|
- **Yes to 1 question** → Consider optional agent
|
|
- **No to all** → Commands only sufficient
|
|
|
|
**Agent Capabilities Mapping**:
|
|
Map features to agent capabilities:
|
|
- Code analysis → code-review, security-analysis
|
|
- Testing → test-generation, coverage-analysis
|
|
- Deployment → deployment-orchestration, rollback-management
|
|
- Documentation → doc-generation, api-documentation
|
|
|
|
### Step 4: Hooks Assessment
|
|
|
|
**Evaluate Need for Hooks**:
|
|
|
|
Hooks are appropriate when:
|
|
- Automation should trigger on specific events
|
|
- Workflow enforcement is needed
|
|
- Actions should happen transparently
|
|
- Quality gates need to be enforced
|
|
|
|
**Hook Event Mapping**:
|
|
- **PostToolUse**: After Write, Edit, Bash, etc.
|
|
- **PreToolUse**: Before Write, Edit, etc. (for validation)
|
|
- **SessionStart**: Plugin initialization
|
|
- **SessionEnd**: Cleanup and reporting
|
|
|
|
**Common Hook Patterns**:
|
|
- **Auto-format on Write**: PostToolUse with Write matcher
|
|
- **Lint before commit**: PreToolUse with Bash(git commit) matcher
|
|
- **Auto-test on code change**: PostToolUse with Edit matcher
|
|
- **Session report**: SessionEnd hook
|
|
|
|
**Recommendation Logic**:
|
|
```
|
|
IF automation == true OR workflow_enforcement_needed:
|
|
IDENTIFY triggering events
|
|
RECOMMEND appropriate hooks
|
|
ELSE:
|
|
RECOMMEND: Hooks not needed
|
|
```
|
|
|
|
### Step 5: MCP Servers Assessment
|
|
|
|
**Evaluate Need for MCP Servers**:
|
|
|
|
MCP servers are appropriate when:
|
|
- Plugin needs to integrate external tools not available in Claude Code
|
|
- Custom data sources must be accessed
|
|
- Specialized APIs need to be wrapped
|
|
- Real-time data or streaming is required
|
|
- Complex state management across sessions
|
|
|
|
**MCP Use Cases**:
|
|
- **Database Operations**: Dedicated database MCP server
|
|
- **Cloud Services**: AWS, GCP, Azure API wrappers
|
|
- **Custom Tools**: Internal tools integration
|
|
- **Data Processing**: Specialized data pipelines
|
|
- **Monitoring**: Metrics and logging services
|
|
|
|
**Recommendation Logic**:
|
|
```
|
|
IF external_tools specified:
|
|
FOR each tool:
|
|
CHECK if native Claude Code tool exists
|
|
IF not:
|
|
RECOMMEND MCP server
|
|
ELSE IF complex_external_integration:
|
|
RECOMMEND MCP server design
|
|
ELSE:
|
|
RECOMMEND: MCP servers not needed
|
|
```
|
|
|
|
### Step 6: Generate Component Recommendations
|
|
|
|
Create comprehensive component selection report with:
|
|
- Recommended components with justification
|
|
- Component interaction diagram
|
|
- Implementation priority
|
|
- Alternative approaches
|
|
- Trade-offs and considerations
|
|
|
|
## Output Format
|
|
|
|
```markdown
|
|
## Component Selection Recommendations
|
|
|
|
### Plugin Purpose
|
|
**Primary Goal**: {purpose}
|
|
**Features**: {features list}
|
|
**Automation Needed**: {yes/no}
|
|
**External Tools**: {tools list}
|
|
|
|
### Recommended Components
|
|
|
|
#### Commands ✅ Recommended / ❌ Not Needed
|
|
|
|
**Decision**: {Recommended|Not Needed}
|
|
|
|
**Rationale**: {explanation}
|
|
|
|
**Organization**:
|
|
- {Single Command|Namespace|Skill with Router}
|
|
|
|
**Operations**:
|
|
1. **{operation-name}**: {description}
|
|
- Invocation: `/{plugin-name} {operation} {args}`
|
|
- Complexity: {low|medium|high}
|
|
|
|
#### Agents ✅ Recommended / ⚠️ Optional / ❌ Not Needed
|
|
|
|
**Decision**: {Recommended|Optional|Not Needed}
|
|
|
|
**Rationale**: {explanation}
|
|
|
|
**Agent Design**:
|
|
- **Name**: {agent-name}
|
|
- **Description**: {when to invoke description}
|
|
- **Capabilities**: {capabilities list}
|
|
- **Proactive Triggers**: {trigger conditions}
|
|
|
|
#### Hooks ✅ Recommended / ❌ Not Needed
|
|
|
|
**Decision**: {Recommended|Not Needed}
|
|
|
|
**Rationale**: {explanation}
|
|
|
|
**Hook Configuration**:
|
|
- **Event**: {PostToolUse|PreToolUse|SessionStart|SessionEnd}
|
|
- **Matcher**: {regex pattern}
|
|
- **Action**: {what happens}
|
|
|
|
#### MCP Servers ✅ Recommended / ❌ Not Needed
|
|
|
|
**Decision**: {Recommended|Not Needed}
|
|
|
|
**Rationale**: {explanation}
|
|
|
|
**Server Design**:
|
|
- **Server Name**: {server-name}
|
|
- **Purpose**: {what it provides}
|
|
- **Tools Exposed**: {tool list}
|
|
|
|
### Component Interaction Flow
|
|
|
|
```
|
|
{Describe how components interact}
|
|
|
|
Example:
|
|
1. User invokes /{plugin-name} {operation}
|
|
2. Command validates input
|
|
3. Agent provides guidance if complex
|
|
4. Hook triggers on completion
|
|
5. MCP server performs external integration
|
|
```
|
|
|
|
### Implementation Priority
|
|
|
|
1. **Phase 1**: {Core components to build first}
|
|
2. **Phase 2**: {Enhancement components}
|
|
3. **Phase 3**: {Optional components}
|
|
|
|
### Alternative Approaches
|
|
|
|
**If simpler**: {simpler alternative}
|
|
**If more robust**: {more complex alternative}
|
|
|
|
### Trade-offs
|
|
|
|
**Pros**:
|
|
- {advantage 1}
|
|
- {advantage 2}
|
|
|
|
**Cons**:
|
|
- {consideration 1}
|
|
- {consideration 2}
|
|
```
|
|
|
|
## Error Handling
|
|
|
|
- **Unclear purpose** → Request clearer description of plugin goal
|
|
- **Feature list too broad** → Suggest focusing on core functionality
|
|
- **Conflicting requirements** → Highlight conflicts and suggest resolution
|
|
- **Missing critical info** → Ask targeted questions
|
|
|
|
## Examples
|
|
|
|
### Example 1: Code Quality Plugin
|
|
|
|
**Input**:
|
|
```
|
|
purpose:"Automated code quality enforcement"
|
|
features:"lint,format,security-scan,complexity-analysis"
|
|
automation:true
|
|
```
|
|
|
|
**Recommendations**:
|
|
- **Commands**: Yes (Skill with skill.md router, 4 operations)
|
|
- **Agents**: Yes (code-reviewer agent for proactive analysis)
|
|
- **Hooks**: Yes (PostToolUse on Write/Edit for auto-lint)
|
|
- **MCP Servers**: No (native tools sufficient)
|
|
|
|
### Example 2: Simple Greeting Plugin
|
|
|
|
**Input**:
|
|
```
|
|
purpose:"Greet users with personalized messages"
|
|
features:"greet"
|
|
automation:false
|
|
```
|
|
|
|
**Recommendations**:
|
|
- **Commands**: Yes (Single command)
|
|
- **Agents**: No (too simple)
|
|
- **Hooks**: No (user-initiated only)
|
|
- **MCP Servers**: No (no external integration)
|
|
|
|
**Request**: $ARGUMENTS
|