prjct-cli 0.10.10 → 0.10.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +88 -0
- package/core/__tests__/agentic/prompt-builder.test.js +7 -3
- package/core/agentic/agent-router.js +79 -372
- package/core/commands.js +128 -470
- package/core/domain/agent-matcher.js +71 -185
- package/core/domain/architecture-generator.js +51 -519
- package/core/domain/task-analyzer.js +11 -36
- package/package.json +1 -1
- package/templates/agent-assignment.md +72 -0
- package/templates/analysis/bug-severity.md +74 -0
- package/templates/analysis/complexity.md +54 -0
- package/templates/analysis/health.md +66 -0
- package/templates/analysis/intent.md +66 -0
- package/templates/analysis/task-breakdown.md +53 -0
- package/templates/architect/discovery.md +67 -0
- package/templates/architect/phases.md +59 -0
- package/templates/design/api.md +95 -0
- package/templates/design/architecture.md +77 -0
- package/templates/design/component.md +89 -0
- package/templates/design/database.md +78 -0
- package/templates/design/flow.md +94 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agent-assignment
|
|
3
|
+
description: Assign the best agent for a task
|
|
4
|
+
allowed-tools: [Read]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Agent Assignment
|
|
8
|
+
|
|
9
|
+
Select the best agent for the given task based on semantic understanding.
|
|
10
|
+
|
|
11
|
+
## Input
|
|
12
|
+
|
|
13
|
+
- **Task**: {{task}}
|
|
14
|
+
- **Available Agents**: {{agents}}
|
|
15
|
+
- **Project Context**: {{context}}
|
|
16
|
+
|
|
17
|
+
## Instructions
|
|
18
|
+
|
|
19
|
+
1. **Understand the Task**
|
|
20
|
+
- What domain does this task belong to?
|
|
21
|
+
- What skills are required?
|
|
22
|
+
- What is the complexity level?
|
|
23
|
+
|
|
24
|
+
2. **Analyze Available Agents**
|
|
25
|
+
- Read each agent's expertise and domain
|
|
26
|
+
- Consider their skills and past success
|
|
27
|
+
- Match capabilities to task requirements
|
|
28
|
+
|
|
29
|
+
3. **Select Best Agent**
|
|
30
|
+
- Choose the agent with highest relevance
|
|
31
|
+
- If multiple agents fit, prefer the specialist over generalist
|
|
32
|
+
- If no good match, use 'generalist' or 'full-stack'
|
|
33
|
+
|
|
34
|
+
## Decision Criteria
|
|
35
|
+
|
|
36
|
+
- **Domain Match**: Does the agent's domain align with the task?
|
|
37
|
+
- **Skills Match**: Does the agent have the required skills?
|
|
38
|
+
- **Complexity Fit**: Is the agent appropriate for this complexity level?
|
|
39
|
+
|
|
40
|
+
## Output Format
|
|
41
|
+
|
|
42
|
+
Return JSON with your decision:
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"agent": "agent-name",
|
|
47
|
+
"confidence": 0.85,
|
|
48
|
+
"reason": "Brief explanation of why this agent was selected",
|
|
49
|
+
"domain": "detected domain of the task"
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Examples
|
|
54
|
+
|
|
55
|
+
**Task**: "Implement React login component with form validation"
|
|
56
|
+
**Decision**: `{ "agent": "frontend-specialist", "confidence": 0.95, "reason": "React component work requires frontend expertise", "domain": "frontend" }`
|
|
57
|
+
|
|
58
|
+
**Task**: "Fix database connection timeout issue"
|
|
59
|
+
**Decision**: `{ "agent": "backend-specialist", "confidence": 0.90, "reason": "Database issues require backend/infrastructure knowledge", "domain": "backend" }`
|
|
60
|
+
|
|
61
|
+
**Task**: "Write unit tests for user service"
|
|
62
|
+
**Decision**: `{ "agent": "qa-specialist", "confidence": 0.85, "reason": "Testing tasks benefit from QA expertise", "domain": "qa" }`
|
|
63
|
+
|
|
64
|
+
**Task**: "Update README documentation"
|
|
65
|
+
**Decision**: `{ "agent": "generalist", "confidence": 0.70, "reason": "Documentation is general task, no specialist needed", "domain": "docs" }`
|
|
66
|
+
|
|
67
|
+
## Guidelines
|
|
68
|
+
|
|
69
|
+
- Prefer specialists when task clearly fits their domain
|
|
70
|
+
- Use generalist only when no specialist matches
|
|
71
|
+
- Higher confidence = stronger match
|
|
72
|
+
- Always provide a reason for transparency
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bug-severity
|
|
3
|
+
description: Assess bug severity from description
|
|
4
|
+
allowed-tools: [Read]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Bug Severity Assessment
|
|
8
|
+
|
|
9
|
+
Analyze the bug description to determine its severity and priority.
|
|
10
|
+
|
|
11
|
+
## Input
|
|
12
|
+
- Bug: {{description}}
|
|
13
|
+
- Context (if available)
|
|
14
|
+
|
|
15
|
+
## Severity Levels
|
|
16
|
+
|
|
17
|
+
### CRITICAL
|
|
18
|
+
- System crash or data loss
|
|
19
|
+
- Security vulnerability
|
|
20
|
+
- Blocks all users
|
|
21
|
+
- Production is down
|
|
22
|
+
|
|
23
|
+
### HIGH
|
|
24
|
+
- Major feature broken
|
|
25
|
+
- Significant user impact
|
|
26
|
+
- Workaround difficult
|
|
27
|
+
- Affects many users
|
|
28
|
+
|
|
29
|
+
### MEDIUM
|
|
30
|
+
- Feature partially broken
|
|
31
|
+
- Workaround exists
|
|
32
|
+
- Limited user impact
|
|
33
|
+
- Non-essential functionality
|
|
34
|
+
|
|
35
|
+
### LOW
|
|
36
|
+
- Minor inconvenience
|
|
37
|
+
- Cosmetic issue
|
|
38
|
+
- Edge case only
|
|
39
|
+
- Easy workaround
|
|
40
|
+
|
|
41
|
+
## Analysis Steps
|
|
42
|
+
|
|
43
|
+
1. **Assess Impact**
|
|
44
|
+
- Who is affected?
|
|
45
|
+
- How many users?
|
|
46
|
+
- Is there data loss risk?
|
|
47
|
+
|
|
48
|
+
2. **Check Urgency**
|
|
49
|
+
- Is production affected?
|
|
50
|
+
- Is there a deadline?
|
|
51
|
+
- Are users blocked?
|
|
52
|
+
|
|
53
|
+
3. **Evaluate Workaround**
|
|
54
|
+
- Can users continue working?
|
|
55
|
+
- How hard is the workaround?
|
|
56
|
+
|
|
57
|
+
## Output Format
|
|
58
|
+
|
|
59
|
+
Return JSON:
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"severity": "critical|high|medium|low",
|
|
63
|
+
"priority": 1-4,
|
|
64
|
+
"reasoning": "<brief explanation>",
|
|
65
|
+
"suggestedAction": "<what to do next>"
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Guidelines
|
|
70
|
+
|
|
71
|
+
- Err on the side of higher severity if unsure
|
|
72
|
+
- Security issues are always CRITICAL
|
|
73
|
+
- Data loss is always CRITICAL
|
|
74
|
+
- User-reported = add weight
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: complexity-analysis
|
|
3
|
+
description: Analyze task complexity semantically
|
|
4
|
+
allowed-tools: [Read]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Task Complexity Analysis
|
|
8
|
+
|
|
9
|
+
Analyze the given task description and determine its complexity level.
|
|
10
|
+
|
|
11
|
+
## Input
|
|
12
|
+
- Task: {{task}}
|
|
13
|
+
- Project context (if available)
|
|
14
|
+
|
|
15
|
+
## Analysis Steps
|
|
16
|
+
|
|
17
|
+
1. **Understand the Task**
|
|
18
|
+
- What is being asked?
|
|
19
|
+
- What systems/files are affected?
|
|
20
|
+
- Are there dependencies?
|
|
21
|
+
|
|
22
|
+
2. **Evaluate Scope**
|
|
23
|
+
- Single file change → LOW
|
|
24
|
+
- Multiple files, same module → MEDIUM
|
|
25
|
+
- Cross-module or architectural → HIGH
|
|
26
|
+
|
|
27
|
+
3. **Assess Risk**
|
|
28
|
+
- Read-only or additive → LOW risk
|
|
29
|
+
- Modifying existing logic → MEDIUM risk
|
|
30
|
+
- Refactoring or migration → HIGH risk
|
|
31
|
+
|
|
32
|
+
4. **Consider Dependencies**
|
|
33
|
+
- No external deps → LOW
|
|
34
|
+
- Some integration → MEDIUM
|
|
35
|
+
- Multiple systems → HIGH
|
|
36
|
+
|
|
37
|
+
## Output Format
|
|
38
|
+
|
|
39
|
+
Return JSON:
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"complexity": "low|medium|high",
|
|
43
|
+
"type": "feature|bugfix|refactor|testing|docs|chore",
|
|
44
|
+
"estimatedHours": <number>,
|
|
45
|
+
"reasoning": "<brief explanation>"
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Guidelines
|
|
50
|
+
|
|
51
|
+
- Be realistic, not optimistic
|
|
52
|
+
- Consider testing time in estimates
|
|
53
|
+
- If unsure, lean toward higher complexity
|
|
54
|
+
- Don't use keyword matching - analyze semantically
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: health-score
|
|
3
|
+
description: Calculate project health score
|
|
4
|
+
allowed-tools: [Read]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Project Health Score
|
|
8
|
+
|
|
9
|
+
Evaluate the project's health based on activity metrics.
|
|
10
|
+
|
|
11
|
+
## Input
|
|
12
|
+
- Active task: {{hasActiveTask}}
|
|
13
|
+
- Queue size: {{queueSize}}
|
|
14
|
+
- Recent ships: {{recentShips}}
|
|
15
|
+
- Ideas count: {{ideasCount}}
|
|
16
|
+
- Days since last ship: {{daysSinceShip}}
|
|
17
|
+
|
|
18
|
+
## Health Factors
|
|
19
|
+
|
|
20
|
+
### Momentum (40%)
|
|
21
|
+
- Active task = good
|
|
22
|
+
- Regular shipping = good
|
|
23
|
+
- Long gaps = concerning
|
|
24
|
+
|
|
25
|
+
### Focus (30%)
|
|
26
|
+
- Queue < 10 = focused
|
|
27
|
+
- Queue 10-20 = busy
|
|
28
|
+
- Queue > 20 = overloaded
|
|
29
|
+
|
|
30
|
+
### Progress (20%)
|
|
31
|
+
- Ships this week > 0 = active
|
|
32
|
+
- Ships this month > 2 = productive
|
|
33
|
+
- No ships in 7+ days = stalled
|
|
34
|
+
|
|
35
|
+
### Planning (10%)
|
|
36
|
+
- Ideas captured = thinking ahead
|
|
37
|
+
- Too many ideas = unfocused
|
|
38
|
+
|
|
39
|
+
## Score Calculation
|
|
40
|
+
|
|
41
|
+
Evaluate each factor and combine:
|
|
42
|
+
|
|
43
|
+
| Score | Label | Meaning |
|
|
44
|
+
|-------|-------|---------|
|
|
45
|
+
| 80-100 | Excellent | High momentum, focused, shipping |
|
|
46
|
+
| 60-79 | Good | Active, some room to improve |
|
|
47
|
+
| 40-59 | Fair | Slowing down, needs attention |
|
|
48
|
+
| 0-39 | Low | Stalled, intervention needed |
|
|
49
|
+
|
|
50
|
+
## Output Format
|
|
51
|
+
|
|
52
|
+
Return JSON:
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"score": <0-100>,
|
|
56
|
+
"label": "Excellent|Good|Fair|Low",
|
|
57
|
+
"momentum": "<assessment>",
|
|
58
|
+
"suggestions": ["<action 1>", "<action 2>"]
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Guidelines
|
|
63
|
+
|
|
64
|
+
- Be encouraging but honest
|
|
65
|
+
- Suggest specific actions
|
|
66
|
+
- Focus on momentum, not perfection
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: intent-detection
|
|
3
|
+
description: Detect user intent from natural language
|
|
4
|
+
allowed-tools: []
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Intent Detection
|
|
8
|
+
|
|
9
|
+
Analyze user input to determine their intent and map to appropriate action.
|
|
10
|
+
|
|
11
|
+
## Input
|
|
12
|
+
- User message: {{message}}
|
|
13
|
+
|
|
14
|
+
## Intent Categories
|
|
15
|
+
|
|
16
|
+
### Work Intents
|
|
17
|
+
- **start_task**: User wants to begin working on something
|
|
18
|
+
- **complete_task**: User finished current work
|
|
19
|
+
- **ship**: User wants to release/deploy
|
|
20
|
+
- **pause**: User needs to pause current work
|
|
21
|
+
|
|
22
|
+
### Planning Intents
|
|
23
|
+
- **add_feature**: User has a new feature idea
|
|
24
|
+
- **add_idea**: Quick thought to capture
|
|
25
|
+
- **add_bug**: Report a problem
|
|
26
|
+
- **view_queue**: See what's next
|
|
27
|
+
|
|
28
|
+
### Status Intents
|
|
29
|
+
- **check_progress**: View metrics/status
|
|
30
|
+
- **get_recap**: Project overview
|
|
31
|
+
- **get_help**: Need guidance
|
|
32
|
+
|
|
33
|
+
### System Intents
|
|
34
|
+
- **sync**: Update project state
|
|
35
|
+
- **analyze**: Analyze codebase
|
|
36
|
+
- **cleanup**: Clean up files
|
|
37
|
+
|
|
38
|
+
## Analysis
|
|
39
|
+
|
|
40
|
+
Look for semantic meaning, not keywords:
|
|
41
|
+
- "I'm done" → complete_task
|
|
42
|
+
- "Let's ship this" → ship
|
|
43
|
+
- "Quick thought..." → add_idea
|
|
44
|
+
- "What should I do?" → get_help OR view_queue
|
|
45
|
+
|
|
46
|
+
## Output Format
|
|
47
|
+
|
|
48
|
+
Return JSON:
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"intent": "<intent_name>",
|
|
52
|
+
"confidence": <0.0-1.0>,
|
|
53
|
+
"parameters": {
|
|
54
|
+
"task": "<extracted task if any>",
|
|
55
|
+
"feature": "<extracted feature if any>"
|
|
56
|
+
},
|
|
57
|
+
"suggestedCommand": "/p:<command>"
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Guidelines
|
|
62
|
+
|
|
63
|
+
- Use semantic understanding, not regex
|
|
64
|
+
- Extract relevant parameters
|
|
65
|
+
- High confidence (>0.8) for clear intents
|
|
66
|
+
- Ask for clarification if < 0.5
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: task-breakdown
|
|
3
|
+
description: Break down a feature into actionable tasks
|
|
4
|
+
allowed-tools: [Read, Glob, Grep]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Feature Task Breakdown
|
|
8
|
+
|
|
9
|
+
Analyze the feature description and break it into concrete, actionable tasks.
|
|
10
|
+
|
|
11
|
+
## Input
|
|
12
|
+
- Feature: {{feature}}
|
|
13
|
+
- Project path: {{projectPath}}
|
|
14
|
+
|
|
15
|
+
## Analysis Steps
|
|
16
|
+
|
|
17
|
+
1. **Understand the Feature**
|
|
18
|
+
- Read related code if paths are obvious
|
|
19
|
+
- Identify affected systems
|
|
20
|
+
- Note existing patterns to follow
|
|
21
|
+
|
|
22
|
+
2. **Identify Components**
|
|
23
|
+
- What new files/modules are needed?
|
|
24
|
+
- What existing code needs modification?
|
|
25
|
+
- What tests are required?
|
|
26
|
+
|
|
27
|
+
3. **Order by Dependencies**
|
|
28
|
+
- Foundation tasks first (models, types, interfaces)
|
|
29
|
+
- Core logic second
|
|
30
|
+
- Integration third
|
|
31
|
+
- Tests and polish last
|
|
32
|
+
|
|
33
|
+
4. **Size Each Task**
|
|
34
|
+
- Each task should be 20-60 minutes
|
|
35
|
+
- If larger, break down further
|
|
36
|
+
- If smaller, combine with related task
|
|
37
|
+
|
|
38
|
+
## Output Format
|
|
39
|
+
|
|
40
|
+
Return a numbered task list:
|
|
41
|
+
```
|
|
42
|
+
1. [20m] Task description - specific action
|
|
43
|
+
2. [30m] Another task - what exactly to do
|
|
44
|
+
3. [45m] Final task - clear deliverable
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Guidelines
|
|
48
|
+
|
|
49
|
+
- Tasks must be specific and actionable
|
|
50
|
+
- Include time estimates in brackets
|
|
51
|
+
- Order matters - dependencies first
|
|
52
|
+
- Don't assume - if unsure, read code first
|
|
53
|
+
- Match project patterns (read existing code)
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: architect-discovery
|
|
3
|
+
description: Discovery phase for architecture generation
|
|
4
|
+
allowed-tools: [Read, AskUserQuestion]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Discovery Phase
|
|
8
|
+
|
|
9
|
+
Conduct discovery for the given idea to understand requirements and constraints.
|
|
10
|
+
|
|
11
|
+
## Input
|
|
12
|
+
- Idea: {{idea}}
|
|
13
|
+
- Context: {{context}}
|
|
14
|
+
|
|
15
|
+
## Discovery Steps
|
|
16
|
+
|
|
17
|
+
1. **Understand the Problem**
|
|
18
|
+
- What problem does this solve?
|
|
19
|
+
- Who experiences this problem?
|
|
20
|
+
- How critical is it?
|
|
21
|
+
|
|
22
|
+
2. **Identify Target Users**
|
|
23
|
+
- Who are the primary users?
|
|
24
|
+
- What are their goals?
|
|
25
|
+
- What's their technical level?
|
|
26
|
+
|
|
27
|
+
3. **Define Constraints**
|
|
28
|
+
- Budget limitations?
|
|
29
|
+
- Timeline requirements?
|
|
30
|
+
- Team size?
|
|
31
|
+
- Regulatory needs?
|
|
32
|
+
|
|
33
|
+
4. **Set Success Metrics**
|
|
34
|
+
- How will we measure success?
|
|
35
|
+
- What's the MVP threshold?
|
|
36
|
+
- Key performance indicators?
|
|
37
|
+
|
|
38
|
+
## Output Format
|
|
39
|
+
|
|
40
|
+
Return structured discovery:
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"problem": {
|
|
44
|
+
"statement": "...",
|
|
45
|
+
"painPoints": ["..."],
|
|
46
|
+
"impact": "high|medium|low"
|
|
47
|
+
},
|
|
48
|
+
"users": {
|
|
49
|
+
"primary": { "persona": "...", "goals": ["..."] },
|
|
50
|
+
"secondary": [...]
|
|
51
|
+
},
|
|
52
|
+
"constraints": {
|
|
53
|
+
"budget": "...",
|
|
54
|
+
"timeline": "...",
|
|
55
|
+
"teamSize": 1
|
|
56
|
+
},
|
|
57
|
+
"successMetrics": {
|
|
58
|
+
"primary": "...",
|
|
59
|
+
"mvpThreshold": "..."
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Guidelines
|
|
65
|
+
- Ask clarifying questions if needed
|
|
66
|
+
- Be realistic about constraints
|
|
67
|
+
- Focus on MVP scope
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: architect-phases
|
|
3
|
+
description: Determine which architecture phases are needed
|
|
4
|
+
allowed-tools: [Read]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Architecture Phase Selection
|
|
8
|
+
|
|
9
|
+
Analyze the idea and context to determine which phases are needed.
|
|
10
|
+
|
|
11
|
+
## Input
|
|
12
|
+
- Idea: {{idea}}
|
|
13
|
+
- Discovery results: {{discovery}}
|
|
14
|
+
|
|
15
|
+
## Available Phases
|
|
16
|
+
|
|
17
|
+
1. **discovery** - Problem definition, users, constraints
|
|
18
|
+
2. **user-flows** - User journeys and interactions
|
|
19
|
+
3. **domain-modeling** - Entities and relationships
|
|
20
|
+
4. **api-design** - API contracts and endpoints
|
|
21
|
+
5. **architecture** - System components and patterns
|
|
22
|
+
6. **data-design** - Database schema and storage
|
|
23
|
+
7. **tech-stack** - Technology choices
|
|
24
|
+
8. **roadmap** - Implementation plan
|
|
25
|
+
|
|
26
|
+
## Phase Selection Rules
|
|
27
|
+
|
|
28
|
+
**Always include**:
|
|
29
|
+
- discovery (foundation)
|
|
30
|
+
- roadmap (execution plan)
|
|
31
|
+
|
|
32
|
+
**Include if building**:
|
|
33
|
+
- user-flows: Has UI/UX
|
|
34
|
+
- domain-modeling: Has data entities
|
|
35
|
+
- api-design: Has backend API
|
|
36
|
+
- architecture: Complex system
|
|
37
|
+
- data-design: Needs database
|
|
38
|
+
- tech-stack: Greenfield project
|
|
39
|
+
|
|
40
|
+
**Skip if**:
|
|
41
|
+
- Simple script: Skip most phases
|
|
42
|
+
- Frontend only: Skip api-design, data-design
|
|
43
|
+
- CLI tool: Skip user-flows
|
|
44
|
+
- Existing stack: Skip tech-stack
|
|
45
|
+
|
|
46
|
+
## Output Format
|
|
47
|
+
|
|
48
|
+
Return array of needed phases:
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"phases": ["discovery", "domain-modeling", "api-design", "roadmap"],
|
|
52
|
+
"reasoning": "Simple CRUD app needs data model and API"
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Guidelines
|
|
57
|
+
- Don't over-architect
|
|
58
|
+
- Match complexity to project
|
|
59
|
+
- MVP first, expand later
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-design
|
|
3
|
+
description: Design API endpoints and contracts
|
|
4
|
+
allowed-tools: [Read, Glob, Grep]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# API Design
|
|
8
|
+
|
|
9
|
+
Design RESTful API endpoints for the given feature.
|
|
10
|
+
|
|
11
|
+
## Input
|
|
12
|
+
- Target: {{target}}
|
|
13
|
+
- Requirements: {{requirements}}
|
|
14
|
+
|
|
15
|
+
## Analysis Steps
|
|
16
|
+
|
|
17
|
+
1. **Identify Resources**
|
|
18
|
+
- What entities are involved?
|
|
19
|
+
- What operations are needed?
|
|
20
|
+
- What relationships exist?
|
|
21
|
+
|
|
22
|
+
2. **Review Existing APIs**
|
|
23
|
+
- Read existing route files
|
|
24
|
+
- Match naming conventions
|
|
25
|
+
- Use consistent patterns
|
|
26
|
+
|
|
27
|
+
3. **Design Endpoints**
|
|
28
|
+
- RESTful resource naming
|
|
29
|
+
- Appropriate HTTP methods
|
|
30
|
+
- Request/response shapes
|
|
31
|
+
|
|
32
|
+
4. **Define Validation**
|
|
33
|
+
- Input validation rules
|
|
34
|
+
- Error responses
|
|
35
|
+
- Edge cases
|
|
36
|
+
|
|
37
|
+
## Output Format
|
|
38
|
+
|
|
39
|
+
```markdown
|
|
40
|
+
# API Design: {target}
|
|
41
|
+
|
|
42
|
+
## Endpoints
|
|
43
|
+
|
|
44
|
+
### GET /api/{resource}
|
|
45
|
+
**Description**: List all resources
|
|
46
|
+
|
|
47
|
+
**Query Parameters**:
|
|
48
|
+
- `limit`: number (default: 20)
|
|
49
|
+
- `offset`: number (default: 0)
|
|
50
|
+
|
|
51
|
+
**Response** (200):
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"data": [...],
|
|
55
|
+
"total": 100,
|
|
56
|
+
"limit": 20,
|
|
57
|
+
"offset": 0
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### POST /api/{resource}
|
|
62
|
+
**Description**: Create resource
|
|
63
|
+
|
|
64
|
+
**Request Body**:
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"field": "value"
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**Response** (201):
|
|
72
|
+
```json
|
|
73
|
+
{
|
|
74
|
+
"id": "...",
|
|
75
|
+
"field": "value"
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Errors**:
|
|
80
|
+
- 400: Invalid input
|
|
81
|
+
- 401: Unauthorized
|
|
82
|
+
- 409: Conflict
|
|
83
|
+
|
|
84
|
+
## Authentication
|
|
85
|
+
- Method: Bearer token / API key
|
|
86
|
+
- Required for: POST, PUT, DELETE
|
|
87
|
+
|
|
88
|
+
## Rate Limiting
|
|
89
|
+
- 100 requests/minute per user
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Guidelines
|
|
93
|
+
- Follow REST conventions
|
|
94
|
+
- Use consistent error format
|
|
95
|
+
- Document all parameters
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: architecture-design
|
|
3
|
+
description: Design system architecture
|
|
4
|
+
allowed-tools: [Read, Glob, Grep]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Architecture Design
|
|
8
|
+
|
|
9
|
+
Design the system architecture for the given requirements.
|
|
10
|
+
|
|
11
|
+
## Input
|
|
12
|
+
- Target: {{target}}
|
|
13
|
+
- Requirements: {{requirements}}
|
|
14
|
+
- Project context
|
|
15
|
+
|
|
16
|
+
## Analysis Steps
|
|
17
|
+
|
|
18
|
+
1. **Understand Requirements**
|
|
19
|
+
- What problem are we solving?
|
|
20
|
+
- What are the constraints?
|
|
21
|
+
- What scale do we need?
|
|
22
|
+
|
|
23
|
+
2. **Review Existing Architecture**
|
|
24
|
+
- Read current codebase structure
|
|
25
|
+
- Identify existing patterns
|
|
26
|
+
- Note integration points
|
|
27
|
+
|
|
28
|
+
3. **Design Components**
|
|
29
|
+
- Core modules and responsibilities
|
|
30
|
+
- Data flow between components
|
|
31
|
+
- External dependencies
|
|
32
|
+
|
|
33
|
+
4. **Define Interfaces**
|
|
34
|
+
- API contracts
|
|
35
|
+
- Data structures
|
|
36
|
+
- Event/message formats
|
|
37
|
+
|
|
38
|
+
## Output Format
|
|
39
|
+
|
|
40
|
+
Generate markdown document:
|
|
41
|
+
|
|
42
|
+
```markdown
|
|
43
|
+
# Architecture: {target}
|
|
44
|
+
|
|
45
|
+
## Overview
|
|
46
|
+
Brief description of the architecture.
|
|
47
|
+
|
|
48
|
+
## Components
|
|
49
|
+
- **Component A**: Responsibility
|
|
50
|
+
- **Component B**: Responsibility
|
|
51
|
+
|
|
52
|
+
## Data Flow
|
|
53
|
+
```
|
|
54
|
+
[Diagram using ASCII or mermaid]
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Interfaces
|
|
58
|
+
### API Endpoints
|
|
59
|
+
- `GET /resource` - Description
|
|
60
|
+
- `POST /resource` - Description
|
|
61
|
+
|
|
62
|
+
### Data Models
|
|
63
|
+
- `Model`: { field: type }
|
|
64
|
+
|
|
65
|
+
## Dependencies
|
|
66
|
+
- External service X
|
|
67
|
+
- Library Y
|
|
68
|
+
|
|
69
|
+
## Decisions
|
|
70
|
+
- Decision 1: Rationale
|
|
71
|
+
- Decision 2: Rationale
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Guidelines
|
|
75
|
+
- Match existing project patterns
|
|
76
|
+
- Keep it simple - avoid over-engineering
|
|
77
|
+
- Document decisions and trade-offs
|