390 lines
8.8 KiB
Markdown
390 lines
8.8 KiB
Markdown
---
|
|
description: Suggest architectural patterns based on plugin complexity and requirements
|
|
---
|
|
|
|
# Recommend Architectural Patterns
|
|
|
|
## Parameters
|
|
|
|
**Required**:
|
|
- `complexity`: Plugin complexity level (format: low|moderate|high)
|
|
- `features`: Number of main features/operations (format: integer)
|
|
|
|
**Optional**:
|
|
- `state_management`: Whether state management is needed (format: true|false)
|
|
- `workflows`: Whether multi-step workflows are needed (format: true|false)
|
|
- `external_integration`: Whether external tools are involved (format: true|false)
|
|
|
|
## Workflow
|
|
|
|
### Step 1: Assess Complexity Level
|
|
|
|
**Complexity Classification**:
|
|
|
|
**Low Complexity**:
|
|
- 1-2 operations
|
|
- Stateless execution
|
|
- Simple input/output
|
|
- No external dependencies
|
|
- Direct functionality
|
|
|
|
**Moderate Complexity**:
|
|
- 3-5 operations
|
|
- Some state tracking
|
|
- Light orchestration needed
|
|
- Few external dependencies
|
|
- May have related operations
|
|
|
|
**High Complexity**:
|
|
- 6+ operations
|
|
- State management required
|
|
- Complex workflows
|
|
- Multiple external dependencies
|
|
- Operations compose together
|
|
|
|
### Step 2: Pattern Matching
|
|
|
|
**Pattern 1: Simple Plugin (Single Command)**
|
|
|
|
**When to Use**:
|
|
- Complexity: Low
|
|
- Features: 1-2
|
|
- State management: No
|
|
- Workflows: No
|
|
|
|
**Structure**:
|
|
```
|
|
plugin-name/
|
|
├── plugin.json
|
|
├── commands/
|
|
│ └── command.md
|
|
└── README.md
|
|
```
|
|
|
|
**Characteristics**:
|
|
- Single .md file in commands/
|
|
- No skill.md router
|
|
- Direct invocation: /{command-name}
|
|
- Straightforward implementation
|
|
|
|
**Example Use Cases**:
|
|
- Hello World plugin
|
|
- Simple formatters
|
|
- Basic converters
|
|
- Quick utilities
|
|
|
|
**Pattern 2: Namespace Plugin (Multiple Independent Commands)**
|
|
|
|
**When to Use**:
|
|
- Complexity: Low to Moderate
|
|
- Features: 3-5
|
|
- State management: No or minimal
|
|
- Workflows: Independent operations
|
|
- Commands don't need orchestration
|
|
|
|
**Structure**:
|
|
```
|
|
plugin-name/
|
|
├── plugin.json
|
|
├── commands/
|
|
│ ├── operation1.md
|
|
│ ├── operation2.md
|
|
│ ├── operation3.md
|
|
│ └── operation4.md
|
|
└── README.md
|
|
```
|
|
|
|
**Characteristics**:
|
|
- Multiple .md files, NO skill.md
|
|
- Each command independently invokable
|
|
- Namespace prefix: /{plugin-name}:operation
|
|
- Grouped by domain but independent
|
|
|
|
**Example Use Cases**:
|
|
- Multiple formatters (format-python, format-js, format-css)
|
|
- Independent utilities collection
|
|
- Toolbox plugins
|
|
|
|
**Pattern 3: Skill Plugin (Orchestrated Operations)**
|
|
|
|
**When to Use**:
|
|
- Complexity: Moderate to High
|
|
- Features: 5+
|
|
- State management: Yes
|
|
- Workflows: Operations share context
|
|
- Need intelligent routing
|
|
|
|
**Structure**:
|
|
```
|
|
plugin-name/
|
|
├── plugin.json
|
|
├── commands/
|
|
│ ├── skill.md (router)
|
|
│ ├── operation1.md
|
|
│ ├── operation2.md
|
|
│ ├── operation3.md
|
|
│ └── operation4.md
|
|
└── README.md
|
|
```
|
|
|
|
**Characteristics**:
|
|
- skill.md acts as intelligent router
|
|
- Sub-commands are instruction modules (not directly invokable)
|
|
- Single entry point: /{plugin-name} operation args
|
|
- Parses arguments and routes internally
|
|
|
|
**Example Use Cases**:
|
|
- Database management (backup, restore, migrate, verify)
|
|
- Deployment pipelines (build, test, deploy, rollback)
|
|
- Multi-step workflows
|
|
|
|
**Pattern 4: Script-Enhanced Plugin**
|
|
|
|
**When to Use**:
|
|
- Complexity: Moderate to High
|
|
- Features: Any number
|
|
- External tools: Yes
|
|
- Performance critical: Yes
|
|
- Complex logic better in scripts
|
|
|
|
**Structure**:
|
|
```
|
|
plugin-name/
|
|
├── plugin.json
|
|
├── commands/
|
|
│ ├── skill.md (if orchestrated)
|
|
│ ├── operation1.md
|
|
│ ├── operation2.md
|
|
│ └── .scripts/
|
|
│ ├── utility1.sh
|
|
│ ├── utility2.py
|
|
│ └── utility3.js
|
|
└── README.md
|
|
```
|
|
|
|
**Characteristics**:
|
|
- Commands leverage utility scripts
|
|
- Scripts handle complex/repeated logic
|
|
- Better performance for intensive tasks
|
|
- Reusable across operations
|
|
|
|
**Example Use Cases**:
|
|
- Database operations with connection pooling
|
|
- File processing pipelines
|
|
- External tool integrations
|
|
|
|
**Pattern 5: Agent-Enhanced Plugin**
|
|
|
|
**When to Use**:
|
|
- Complexity: Any
|
|
- Domain expertise needed: Yes
|
|
- Guidance beneficial: Yes
|
|
- Proactive behavior desired: Yes
|
|
|
|
**Structure**:
|
|
```
|
|
plugin-name/
|
|
├── plugin.json
|
|
├── commands/
|
|
│ └── {command files}
|
|
├── agents/
|
|
│ └── specialist.md
|
|
└── README.md
|
|
```
|
|
|
|
**Characteristics**:
|
|
- Agent provides domain expertise
|
|
- Proactive invocation based on context
|
|
- Conversational guidance
|
|
- Works alongside commands
|
|
|
|
**Example Use Cases**:
|
|
- Code review automation
|
|
- Security analysis
|
|
- Performance optimization
|
|
- Architecture guidance
|
|
|
|
**Pattern 6: Full-Featured Plugin**
|
|
|
|
**When to Use**:
|
|
- Complexity: High
|
|
- Features: 6+
|
|
- All capabilities needed: Yes
|
|
|
|
**Structure**:
|
|
```
|
|
plugin-name/
|
|
├── plugin.json
|
|
├── commands/
|
|
│ ├── skill.md
|
|
│ ├── {operations}
|
|
│ └── .scripts/
|
|
│ └── {utilities}
|
|
├── agents/
|
|
│ └── specialist.md
|
|
├── hooks/
|
|
│ └── hooks.json
|
|
└── README.md
|
|
```
|
|
|
|
**Characteristics**:
|
|
- Complete plugin with all components
|
|
- Commands + Agent + Hooks + Scripts
|
|
- Maximum functionality
|
|
- Production-grade plugin
|
|
|
|
**Example Use Cases**:
|
|
- Comprehensive testing frameworks
|
|
- Full deployment automation
|
|
- Complete quality assurance systems
|
|
|
|
### Step 3: Template Mapping
|
|
|
|
**Map pattern to template**:
|
|
|
|
- **Simple Plugin** → No template needed (direct implementation)
|
|
- **Namespace Plugin** → No template needed (direct implementation)
|
|
- **Skill Plugin (CRUD-like)** → simple-crud template
|
|
- **Skill Plugin (Workflow)** → workflow-orchestration template
|
|
- **Script-Enhanced** → script-enhanced template
|
|
- **MCP Integration** → mcp-integration template
|
|
|
|
### Step 4: Provide Recommendations
|
|
|
|
Generate recommendations with:
|
|
- Recommended pattern with justification
|
|
- Alternative patterns with trade-offs
|
|
- Template to use (if applicable)
|
|
- Structure diagram
|
|
- Implementation guidance
|
|
- Example usage
|
|
|
|
## Output Format
|
|
|
|
```markdown
|
|
## Architectural Pattern Recommendations
|
|
|
|
### Analysis
|
|
**Complexity Level**: {low|moderate|high}
|
|
**Features Count**: {number}
|
|
**State Management**: {needed|not needed}
|
|
**Workflows**: {needed|not needed}
|
|
**External Integration**: {needed|not needed}
|
|
|
|
### Recommended Pattern: {Pattern Name}
|
|
|
|
**Why This Pattern**:
|
|
{Detailed justification based on requirements}
|
|
|
|
**Template**: {template-name or "Direct implementation"}
|
|
|
|
**Structure**:
|
|
```
|
|
{Directory structure diagram}
|
|
```
|
|
|
|
**Key Characteristics**:
|
|
- {characteristic 1}
|
|
- {characteristic 2}
|
|
- {characteristic 3}
|
|
|
|
**Implementation Steps**:
|
|
1. {step 1}
|
|
2. {step 2}
|
|
3. {step 3}
|
|
|
|
**Usage After Implementation**:
|
|
```bash
|
|
{Example commands}
|
|
```
|
|
|
|
### Alternative Patterns
|
|
|
|
#### Alternative 1: {Pattern Name}
|
|
|
|
**When to Consider**:
|
|
{Conditions where this might be better}
|
|
|
|
**Trade-offs**:
|
|
- Pros: {advantages}
|
|
- Cons: {disadvantages}
|
|
|
|
#### Alternative 2: {Pattern Name}
|
|
|
|
**When to Consider**:
|
|
{Conditions where this might be better}
|
|
|
|
**Trade-offs**:
|
|
- Pros: {advantages}
|
|
- Cons: {disadvantages}
|
|
|
|
### Pattern Comparison
|
|
|
|
| Aspect | Recommended | Alt 1 | Alt 2 |
|
|
|--------|------------|-------|-------|
|
|
| Complexity | {rating} | {rating} | {rating} |
|
|
| Maintainability | {rating} | {rating} | {rating} |
|
|
| Extensibility | {rating} | {rating} | {rating} |
|
|
| Learning Curve | {rating} | {rating} | {rating} |
|
|
|
|
### Migration Path
|
|
|
|
**If Requirements Change**:
|
|
- **Scale Up**: {How to add more features}
|
|
- **Scale Down**: {How to simplify}
|
|
- **Pivot**: {How to change direction}
|
|
|
|
### Best Practices for This Pattern
|
|
|
|
1. {Best practice 1}
|
|
2. {Best practice 2}
|
|
3. {Best practice 3}
|
|
```
|
|
|
|
## Error Handling
|
|
|
|
- **Invalid complexity level** → Request valid value: low|moderate|high
|
|
- **Features count unrealistic** → Clarify actual feature count
|
|
- **Conflicting parameters** → Highlight conflicts and suggest resolution
|
|
- **Unclear requirements** → Ask clarifying questions
|
|
|
|
## Examples
|
|
|
|
### Example 1: Low Complexity, Few Features
|
|
|
|
**Input**:
|
|
```
|
|
complexity:low features:2 state_management:false workflows:false
|
|
```
|
|
|
|
**Recommendation**:
|
|
- **Pattern**: Simple Plugin (Single Command) or Namespace
|
|
- **Template**: Direct implementation
|
|
- **Rationale**: Few features, no orchestration needed
|
|
|
|
### Example 2: Moderate Complexity, Workflow
|
|
|
|
**Input**:
|
|
```
|
|
complexity:moderate features:5 state_management:true workflows:true
|
|
```
|
|
|
|
**Recommendation**:
|
|
- **Pattern**: Skill Plugin with skill.md router
|
|
- **Template**: workflow-orchestration
|
|
- **Rationale**: Multiple operations sharing state, needs orchestration
|
|
|
|
### Example 3: High Complexity, External Tools
|
|
|
|
**Input**:
|
|
```
|
|
complexity:high features:7 external_integration:true workflows:true
|
|
```
|
|
|
|
**Recommendation**:
|
|
- **Pattern**: Full-Featured Plugin (Commands + Scripts + Agent)
|
|
- **Template**: script-enhanced + workflow-orchestration
|
|
- **Rationale**: Complex workflows with external integration needs utility scripts and expert guidance
|
|
|
|
**Request**: $ARGUMENTS
|