bobs-workshop 0.3.3 → 3.1.0
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/LICENSE +2 -2
- package/README.md +199 -210
- package/bin/bobs-workshop.js +109 -0
- package/config/agents.json +27 -0
- package/dist/plugins/bobs-workshop.js +34 -0
- package/dist/tools/background-agent/cancel.d.ts +3 -0
- package/dist/tools/background-agent/cancel.d.ts.map +1 -0
- package/dist/tools/background-agent/cancel.js +52 -0
- package/dist/tools/background-agent/concurrency.d.ts +15 -0
- package/dist/tools/background-agent/concurrency.d.ts.map +1 -0
- package/dist/tools/background-agent/concurrency.js +61 -0
- package/dist/tools/background-agent/index.d.ts +8 -0
- package/dist/tools/background-agent/index.d.ts.map +1 -0
- package/dist/tools/background-agent/index.js +7 -0
- package/dist/tools/background-agent/launch.d.ts +6 -0
- package/dist/tools/background-agent/launch.d.ts.map +1 -0
- package/dist/tools/background-agent/launch.js +33 -0
- package/dist/tools/background-agent/list.d.ts +7 -0
- package/dist/tools/background-agent/list.d.ts.map +1 -0
- package/dist/tools/background-agent/list.js +40 -0
- package/dist/tools/background-agent/manager.d.ts +29 -0
- package/dist/tools/background-agent/manager.d.ts.map +1 -0
- package/dist/tools/background-agent/manager.js +377 -0
- package/dist/tools/background-agent/output.d.ts +3 -0
- package/dist/tools/background-agent/output.d.ts.map +1 -0
- package/dist/tools/background-agent/output.js +41 -0
- package/dist/tools/background-agent/types.d.ts +46 -0
- package/dist/tools/background-agent/types.d.ts.map +1 -0
- package/dist/tools/background-agent/types.js +1 -0
- package/dist/tools/index.d.ts +9 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +8 -0
- package/dist/tools/manual/index.d.ts +3 -0
- package/dist/tools/manual/index.d.ts.map +1 -0
- package/dist/tools/manual/index.js +2 -0
- package/dist/tools/manual/manual-update.d.ts +4 -0
- package/dist/tools/manual/manual-update.d.ts.map +1 -0
- package/dist/tools/manual/manual-update.js +190 -0
- package/dist/tools/manual/verify-manual.d.ts +4 -0
- package/dist/tools/manual/verify-manual.d.ts.map +1 -0
- package/dist/tools/manual/verify-manual.js +46 -0
- package/package.json +34 -66
- package/postinstall.js +190 -0
- package/src/agents/alice.md +466 -0
- package/src/agents/bob-rev.md +493 -0
- package/src/agents/bob-send.md +277 -0
- package/src/agents/bob.md +442 -0
- package/src/agents/trace.md +451 -0
- package/src/plugins/bobs-workshop.ts +45 -0
- package/src/skills/api-patterns/SKILL.md +376 -0
- package/src/skills/architecture/SKILL.md +271 -0
- package/src/skills/bobs-workshop/performance/icon.svg +3 -0
- package/src/skills/brainstorming/SKILL.md +210 -0
- package/src/skills/clean-code/SKILL.md +151 -0
- package/src/skills/code-review-checklist/SKILL.md +220 -0
- package/src/skills/database-design/SKILL.md +271 -0
- package/src/skills/exploration/SKILL.md +257 -0
- package/src/skills/frontend-ui-ux/SKILL.md +78 -0
- package/src/skills/git-master/SKILL.md +1105 -0
- package/src/skills/performance/SKILL.md +144 -0
- package/src/skills/performance/icon.svg +3 -0
- package/src/skills/plan-writing/SKILL.md +225 -0
- package/src/skills/security/SKILL.md +410 -0
- package/src/skills/simplification/SKILL.md +238 -0
- package/src/skills/systematic-debugging/SKILL.md +175 -0
- package/src/skills/testing-patterns/SKILL.md +305 -0
- package/src/skills/verification/SKILL.md +286 -0
- package/src/tools/background-agent/cancel.ts +67 -0
- package/src/tools/background-agent/concurrency.ts +71 -0
- package/src/tools/background-agent/index.ts +7 -0
- package/src/tools/background-agent/launch.ts +39 -0
- package/src/tools/background-agent/list.ts +50 -0
- package/src/tools/background-agent/manager.ts +455 -0
- package/src/tools/background-agent/output.ts +57 -0
- package/src/tools/background-agent/types.ts +55 -0
- package/src/tools/index.ts +8 -0
- package/src/tools/manual/index.ts +2 -0
- package/src/tools/manual/manual-update.ts +197 -0
- package/src/tools/manual/verify-manual.ts +55 -0
- package/uninstall.js +64 -0
- package/Claude.md +0 -162
- package/bin/bobs-mcp-server.js +0 -11
- package/bin/bobs-mcp.js +0 -130
- package/dist/api/taskLogger.js +0 -106
- package/dist/api/taskLogger.js.map +0 -1
- package/dist/cli/checker.js +0 -401
- package/dist/cli/checker.js.map +0 -1
- package/dist/cli/cleanup.js +0 -131
- package/dist/cli/cleanup.js.map +0 -1
- package/dist/cli/debug.js +0 -157
- package/dist/cli/debug.js.map +0 -1
- package/dist/cli/health.js +0 -97
- package/dist/cli/health.js.map +0 -1
- package/dist/cli/setup.js +0 -81
- package/dist/cli/setup.js.map +0 -1
- package/dist/cli/workshop.js +0 -42
- package/dist/cli/workshop.js.map +0 -1
- package/dist/dashboard/server.js +0 -1203
- package/dist/dashboard/server.js.map +0 -1
- package/dist/index.js +0 -960
- package/dist/index.js.map +0 -1
- package/dist/prompts/architect.js +0 -221
- package/dist/prompts/architect.js.map +0 -1
- package/dist/prompts/debugger.js +0 -257
- package/dist/prompts/debugger.js.map +0 -1
- package/dist/prompts/engineer.js +0 -249
- package/dist/prompts/engineer.js.map +0 -1
- package/dist/prompts/orchestrator.js +0 -304
- package/dist/prompts/orchestrator.js.map +0 -1
- package/dist/prompts/reviewer.js +0 -289
- package/dist/prompts/reviewer.js.map +0 -1
- package/dist/services/activitySummarizer.js +0 -388
- package/dist/services/activitySummarizer.js.map +0 -1
- package/dist/services/changeValidator.js +0 -396
- package/dist/services/changeValidator.js.map +0 -1
- package/dist/services/claudeOrchestrator.js +0 -343
- package/dist/services/claudeOrchestrator.js.map +0 -1
- package/dist/services/fileMonitor.js +0 -250
- package/dist/services/fileMonitor.js.map +0 -1
- package/dist/services/implementationSummarizer.js +0 -306
- package/dist/services/implementationSummarizer.js.map +0 -1
- package/dist/services/liveMonitor.js +0 -315
- package/dist/services/liveMonitor.js.map +0 -1
- package/dist/services/mcpAuditLogger.js +0 -104
- package/dist/services/mcpAuditLogger.js.map +0 -1
- package/dist/services/mcpLogger.js +0 -223
- package/dist/services/mcpLogger.js.map +0 -1
- package/dist/services/tmuxManager.js +0 -541
- package/dist/services/tmuxManager.js.map +0 -1
- package/dist/tools/approvalTools.js +0 -244
- package/dist/tools/approvalTools.js.map +0 -1
- package/dist/tools/autoDebugger.js +0 -147
- package/dist/tools/autoDebugger.js.map +0 -1
- package/dist/tools/cleanupService.js +0 -221
- package/dist/tools/cleanupService.js.map +0 -1
- package/dist/tools/dashboardTools.js +0 -342
- package/dist/tools/dashboardTools.js.map +0 -1
- package/dist/tools/developmentNudges.js +0 -336
- package/dist/tools/developmentNudges.js.map +0 -1
- package/dist/tools/gitTools.js +0 -741
- package/dist/tools/gitTools.js.map +0 -1
- package/dist/tools/orchestratorTools.js +0 -832
- package/dist/tools/orchestratorTools.js.map +0 -1
- package/dist/tools/searchCache.js +0 -64
- package/dist/tools/searchCache.js.map +0 -1
- package/dist/tools/searchTools.js +0 -1107
- package/dist/tools/searchTools.js.map +0 -1
- package/dist/tools/semgrep-patterns.js +0 -296
- package/dist/tools/semgrep-patterns.js.map +0 -1
- package/dist/tools/specTools.js +0 -332
- package/dist/tools/specTools.js.map +0 -1
- package/dist/tools/structural/__tests__/orchestrator.test.js +0 -61
- package/dist/tools/structural/__tests__/orchestrator.test.js.map +0 -1
- package/dist/tools/structural/cache.js +0 -226
- package/dist/tools/structural/cache.js.map +0 -1
- package/dist/tools/structural/engines/python/index.js +0 -118
- package/dist/tools/structural/engines/python/index.js.map +0 -1
- package/dist/tools/structural/engines/typescript/__tests__/typescript-engine.test.js +0 -97
- package/dist/tools/structural/engines/typescript/__tests__/typescript-engine.test.js.map +0 -1
- package/dist/tools/structural/engines/typescript/analyzer.js +0 -433
- package/dist/tools/structural/engines/typescript/analyzer.js.map +0 -1
- package/dist/tools/structural/engines/typescript/index.js +0 -381
- package/dist/tools/structural/engines/typescript/index.js.map +0 -1
- package/dist/tools/structural/engines/typescript/utils.js +0 -279
- package/dist/tools/structural/engines/typescript/utils.js.map +0 -1
- package/dist/tools/structural/index.js +0 -248
- package/dist/tools/structural/index.js.map +0 -1
- package/dist/tools/structural/types.js +0 -18
- package/dist/tools/structural/types.js.map +0 -1
- package/dist/tools/tmuxTools.js +0 -100
- package/dist/tools/tmuxTools.js.map +0 -1
- package/dist/tools/workRecorder.js +0 -215
- package/dist/tools/workRecorder.js.map +0 -1
- package/dist/tools/worktreeTools.js +0 -705
- package/dist/tools/worktreeTools.js.map +0 -1
- package/dist/utils/__tests__/integration.test.js +0 -57
- package/dist/utils/__tests__/integration.test.js.map +0 -1
- package/dist/utils/__tests__/serverDetection.test.js +0 -151
- package/dist/utils/__tests__/serverDetection.test.js.map +0 -1
- package/dist/utils/errorHandling.js +0 -336
- package/dist/utils/errorHandling.js.map +0 -1
- package/dist/utils/processManager.js +0 -172
- package/dist/utils/processManager.js.map +0 -1
- package/dist/utils/reliability.js +0 -263
- package/dist/utils/reliability.js.map +0 -1
- package/dist/utils/responseFormatter.js +0 -250
- package/dist/utils/responseFormatter.js.map +0 -1
- package/dist/utils/serverDetection.js +0 -133
- package/dist/utils/serverDetection.js.map +0 -1
- package/dist/utils/specMigration.js +0 -105
- package/dist/utils/specMigration.js.map +0 -1
- package/dist/validation/schemas.js +0 -299
- package/dist/validation/schemas.js.map +0 -1
- package/public/.well-known/mcp/manifest.json +0 -473
- package/public/index.html +0 -3157
- package/public/index.html.backup +0 -2805
- package/public/index.html.backup2 +0 -1292
- package/scripts/cleanup-system-logs.ts +0 -121
- package/scripts/init-workspace.js +0 -63
- package/scripts/install-search-tools.js +0 -116
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: performance
|
|
3
|
+
description: Performance analysis, bottleneck identification, and optimization strategies.
|
|
4
|
+
---
|
|
5
|
+
# Performance Analysis Skill
|
|
6
|
+
|
|
7
|
+
**Skill ID**: performance
|
|
8
|
+
**Category**: Code Quality & Optimization
|
|
9
|
+
**Icon**: 📈
|
|
10
|
+
**Agents**: bob-eng, bob-fix
|
|
11
|
+
|
|
12
|
+
## Overview
|
|
13
|
+
|
|
14
|
+
This skill provides performance analysis capabilities for identifying bottlenecks, anti-patterns, and optimization opportunities in code. Use this skill during implementation to avoid performance issues, and during debugging to identify root causes.
|
|
15
|
+
|
|
16
|
+
## When to Use
|
|
17
|
+
|
|
18
|
+
Use the `performance` skill when:
|
|
19
|
+
|
|
20
|
+
- Writing or reviewing loops and iterations
|
|
21
|
+
- Working with data structures and algorithms
|
|
22
|
+
- Analyzing I/O operations (file, network, database)
|
|
23
|
+
- Reviewing caching strategies
|
|
24
|
+
- Identifying memory allocation patterns
|
|
25
|
+
- Analyzing async/await usage
|
|
26
|
+
- Reviewing dependency usage patterns
|
|
27
|
+
|
|
28
|
+
## Analysis Patterns
|
|
29
|
+
|
|
30
|
+
### 1. Loop Optimization
|
|
31
|
+
|
|
32
|
+
**Check for**:
|
|
33
|
+
- Nested loops with high complexity
|
|
34
|
+
- Repeated calculations in loops
|
|
35
|
+
- Inefficient data structure access patterns
|
|
36
|
+
- Missing break/continue conditions
|
|
37
|
+
|
|
38
|
+
### 2. Memory Allocation
|
|
39
|
+
|
|
40
|
+
**Check for**:
|
|
41
|
+
- Unnecessary object/array creation in hot paths
|
|
42
|
+
- String concatenation in loops
|
|
43
|
+
- Missing cleanup/disposal patterns
|
|
44
|
+
- Closure captures that prevent garbage collection
|
|
45
|
+
|
|
46
|
+
### 3. Async Operations
|
|
47
|
+
|
|
48
|
+
**Check for**:
|
|
49
|
+
- Sequential awaits that could be parallel
|
|
50
|
+
- Missing error handling in async flows
|
|
51
|
+
- Uncontrolled concurrency
|
|
52
|
+
- Memory leaks in async patterns
|
|
53
|
+
|
|
54
|
+
### 4. Data Structure Selection
|
|
55
|
+
|
|
56
|
+
**Check for**:
|
|
57
|
+
- Array operations that should use Set/Map
|
|
58
|
+
- Linear searches that could use indexing
|
|
59
|
+
- Object property access that could use Map
|
|
60
|
+
- Repeated sorting of same data
|
|
61
|
+
|
|
62
|
+
## Common Performance Anti-Patterns
|
|
63
|
+
|
|
64
|
+
### Anti-Pattern 1: Fetch Loops
|
|
65
|
+
```typescript
|
|
66
|
+
// BAD: N+1 queries
|
|
67
|
+
for (const order of orders) {
|
|
68
|
+
const items = await db.query('SELECT * FROM items WHERE order_id = ?', order.id);
|
|
69
|
+
order.items = items;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// GOOD: Single query with JOIN
|
|
73
|
+
const orders = await db.query(`
|
|
74
|
+
SELECT o.*, i.* FROM orders o
|
|
75
|
+
LEFT JOIN items i ON i.order_id = o.id
|
|
76
|
+
`);
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Anti-Pattern 2: In-Memory Filtering
|
|
80
|
+
```typescript
|
|
81
|
+
// BAD: Brings all data, filters in memory
|
|
82
|
+
const allUsers = await db.query('SELECT * FROM users');
|
|
83
|
+
const active = allUsers.filter(u => u.active);
|
|
84
|
+
|
|
85
|
+
// GOOD: Filters at database
|
|
86
|
+
const active = await db.query('SELECT * FROM users WHERE active = true');
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Performance Checklist
|
|
90
|
+
|
|
91
|
+
When analyzing code, check for:
|
|
92
|
+
|
|
93
|
+
- [ ] **Complexity**: Are there O(n²) or worse patterns?
|
|
94
|
+
- [ ] **Memory**: Are objects being created unnecessarily?
|
|
95
|
+
- [ ] **I/O**: Are operations blocking or synchronous?
|
|
96
|
+
- [ ] **Concurrency**: Are async operations parallelized when possible?
|
|
97
|
+
- [ ] **Data Structures**: Is the right structure being used?
|
|
98
|
+
- [ ] **Caching**: Can results be cached or memoized?
|
|
99
|
+
- [ ] **Batching**: Can operations be batched?
|
|
100
|
+
- [ ] **Lazy Loading**: Can expensive operations be deferred?
|
|
101
|
+
|
|
102
|
+
## Optimization Strategies
|
|
103
|
+
|
|
104
|
+
### Strategy 1: Lazy Evaluation
|
|
105
|
+
```typescript
|
|
106
|
+
// Eager: Always computes
|
|
107
|
+
const fullName = `${user.firstName} ${user.lastName}`;
|
|
108
|
+
|
|
109
|
+
// Lazy: Computes only when needed
|
|
110
|
+
const getFullName = () => `${user.firstName} ${user.lastName}`;
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Strategy 2: Memoization
|
|
114
|
+
```typescript
|
|
115
|
+
function memoize<T, R>(fn: (arg: T) => R): (arg: T) => R {
|
|
116
|
+
const cache = new Map<T, R>();
|
|
117
|
+
return (arg: T): R => {
|
|
118
|
+
if (cache.has(arg)) return cache.get(arg)!;
|
|
119
|
+
const result = fn(arg);
|
|
120
|
+
cache.set(arg, result);
|
|
121
|
+
return result;
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Strategy 3: Batch Processing
|
|
127
|
+
```typescript
|
|
128
|
+
async function processItems(items: Item[]): Promise<void> {
|
|
129
|
+
const CHUNK_SIZE = 100;
|
|
130
|
+
for (let i = 0; i < items.length; i += CHUNK_SIZE) {
|
|
131
|
+
const chunk = items.slice(i, i + CHUNK_SIZE);
|
|
132
|
+
await processChunk(chunk);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Integration with Other Skills
|
|
138
|
+
|
|
139
|
+
| Skill | Use Case |
|
|
140
|
+
|-------|----------|
|
|
141
|
+
| `exploration` | Identify hot paths in codebase |
|
|
142
|
+
| `quality` | Combined quality + performance review |
|
|
143
|
+
| `design` | Performance-aware architecture decisions |
|
|
144
|
+
| `verification` | Validate performance improvements |
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-writing
|
|
3
|
+
description: Structured task planning with clear breakdowns, dependencies, and verification criteria.
|
|
4
|
+
metadata:
|
|
5
|
+
recommended_for: alice
|
|
6
|
+
category: planning
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Plan Writing
|
|
10
|
+
|
|
11
|
+
> Source: obra/superpowers
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
This skill provides a framework for breaking down work into clear, actionable tasks with verification criteria.
|
|
15
|
+
|
|
16
|
+
## Task Breakdown Principles
|
|
17
|
+
|
|
18
|
+
### 1. Small, Focused Tasks
|
|
19
|
+
- Each task should take 2-5 minutes
|
|
20
|
+
- One clear outcome per task
|
|
21
|
+
- Independently verifiable
|
|
22
|
+
|
|
23
|
+
### 2. Clear Verification
|
|
24
|
+
- How do you know it's done?
|
|
25
|
+
- What can you check/test?
|
|
26
|
+
- What's the expected output?
|
|
27
|
+
|
|
28
|
+
### 3. Logical Ordering
|
|
29
|
+
- Dependencies identified
|
|
30
|
+
- Parallel work where possible
|
|
31
|
+
- Critical path highlighted
|
|
32
|
+
- **Phase X: Verification is always LAST**
|
|
33
|
+
|
|
34
|
+
### 4. Dynamic Naming in Project Root
|
|
35
|
+
- Plan files are saved as `{task-slug}.md` in the PROJECT ROOT
|
|
36
|
+
- Name derived from task (e.g., "add auth" → `auth-feature.md`)
|
|
37
|
+
- **NEVER** inside `.claude/`, `docs/`, or temp folders
|
|
38
|
+
|
|
39
|
+
## Planning Principles (NOT Templates!)
|
|
40
|
+
|
|
41
|
+
> 🔴 **NO fixed templates. Each plan is UNIQUE to the task.**
|
|
42
|
+
|
|
43
|
+
### Principle 1: Keep It SHORT
|
|
44
|
+
|
|
45
|
+
| ❌ Wrong | ✅ Right |
|
|
46
|
+
|----------|----------|
|
|
47
|
+
| 50 tasks with sub-sub-tasks | 5-10 clear tasks max |
|
|
48
|
+
| Every micro-step listed | Only actionable items |
|
|
49
|
+
| Verbose descriptions | One-line per task |
|
|
50
|
+
|
|
51
|
+
> **Rule:** If plan is longer than 1 page, it's too long. Simplify.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
### Principle 2: Be SPECIFIC, Not Generic
|
|
56
|
+
|
|
57
|
+
| ❌ Wrong | ✅ Right |
|
|
58
|
+
|----------|----------|
|
|
59
|
+
| "Set up project" | "Run `npx create-next-app`" |
|
|
60
|
+
| "Add authentication" | "Install next-auth, create `/api/auth/[...nextauth].ts`" |
|
|
61
|
+
| "Style the UI" | "Add Tailwind classes to `Header.tsx`" |
|
|
62
|
+
|
|
63
|
+
> **Rule:** Each task should have a clear, verifiable outcome.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
### Principle 3: Dynamic Content Based on Project Type
|
|
68
|
+
|
|
69
|
+
**For NEW PROJECT:**
|
|
70
|
+
- What tech stack? (decide first)
|
|
71
|
+
- What's the MVP? (minimal features)
|
|
72
|
+
- What's the file structure?
|
|
73
|
+
|
|
74
|
+
**For FEATURE ADDITION:**
|
|
75
|
+
- Which files are affected?
|
|
76
|
+
- What dependencies needed?
|
|
77
|
+
- How to verify it works?
|
|
78
|
+
|
|
79
|
+
**For BUG FIX:**
|
|
80
|
+
- What's the root cause?
|
|
81
|
+
- What file/line to change?
|
|
82
|
+
- How to test the fix?
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
### Principle 4: Scripts Are Project-Specific
|
|
87
|
+
|
|
88
|
+
> 🔴 **DO NOT copy-paste script commands. Choose based on project type.**
|
|
89
|
+
|
|
90
|
+
| Project Type | Relevant Scripts |
|
|
91
|
+
|--------------|------------------|
|
|
92
|
+
| Frontend/React | `ux_audit.py`, `accessibility_checker.py` |
|
|
93
|
+
| Backend/API | `api_validator.py`, `security_scan.py` |
|
|
94
|
+
| Mobile | `mobile_audit.py` |
|
|
95
|
+
| Database | `schema_validator.py` |
|
|
96
|
+
| Full-stack | Mix of above based on what you touched |
|
|
97
|
+
|
|
98
|
+
**Wrong:** Adding all scripts to every plan
|
|
99
|
+
**Right:** Only scripts relevant to THIS task
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
### Principle 5: Verification is Simple
|
|
104
|
+
|
|
105
|
+
| ❌ Wrong | ✅ Right |
|
|
106
|
+
|----------|----------|
|
|
107
|
+
| "Verify the component works correctly" | "Run `npm run dev`, click button, see toast" |
|
|
108
|
+
| "Test the API" | "curl localhost:3000/api/users returns 200" |
|
|
109
|
+
| "Check styles" | "Open browser, verify dark mode toggle works" |
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Plan Structure (Flexible, Not Fixed!)
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
# [Task Name]
|
|
117
|
+
|
|
118
|
+
## Goal
|
|
119
|
+
One sentence: What are we building/fixing?
|
|
120
|
+
|
|
121
|
+
## Tasks
|
|
122
|
+
- [ ] Task 1: [Specific action] → Verify: [How to check]
|
|
123
|
+
- [ ] Task 2: [Specific action] → Verify: [How to check]
|
|
124
|
+
- [ ] Task 3: [Specific action] → Verify: [How to check]
|
|
125
|
+
|
|
126
|
+
## Done When
|
|
127
|
+
- [ ] [Main success criteria]
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
> **That's it.** No phases, no sub-sections unless truly needed.
|
|
131
|
+
> Keep it minimal. Add complexity only when required.
|
|
132
|
+
|
|
133
|
+
## Notes
|
|
134
|
+
[Any important considerations]
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Best Practices (Quick Reference)
|
|
140
|
+
|
|
141
|
+
1. **Start with goal** - What are we building/fixing?
|
|
142
|
+
2. **Max 10 tasks** - If more, break into multiple plans
|
|
143
|
+
3. **Each task verifiable** - Clear "done" criteria
|
|
144
|
+
4. **Project-specific** - No copy-paste templates
|
|
145
|
+
5. **Update as you go** - Mark `[x]` when complete
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## When to Use
|
|
150
|
+
|
|
151
|
+
- New project from scratch
|
|
152
|
+
- Adding a feature
|
|
153
|
+
- Fixing a bug (if complex)
|
|
154
|
+
- Refactoring multiple files
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Bob's Workshop Integration
|
|
159
|
+
|
|
160
|
+
This skill is used by **alice (architect)** agent during the PLAN phase.
|
|
161
|
+
|
|
162
|
+
### MANUAL Integration
|
|
163
|
+
|
|
164
|
+
Add implementation plan to MANUAL:
|
|
165
|
+
```markdown
|
|
166
|
+
## 🚀 Implementation Plan
|
|
167
|
+
|
|
168
|
+
### Layered Tasks
|
|
169
|
+
|
|
170
|
+
#### DB-001: Database Schema
|
|
171
|
+
- [ ] Create `users` table → Verify: Schema matches design doc
|
|
172
|
+
- [ ] Add indexes → Verify: Queries run efficiently
|
|
173
|
+
- [ ] Write migration → Verify: `npm run migrate` succeeds
|
|
174
|
+
|
|
175
|
+
#### BE-001: Backend API
|
|
176
|
+
- [ ] Create `/api/users` endpoint → Verify: Returns 200
|
|
177
|
+
- [ ] Add auth middleware → Verify: Protects routes
|
|
178
|
+
- [ ] Write unit tests → Verify: All tests pass
|
|
179
|
+
|
|
180
|
+
#### FE-001: Frontend Components
|
|
181
|
+
- [ ] Create UserList component → Verify: Renders users
|
|
182
|
+
- [ ] Add edit button → Verify: Opens modal
|
|
183
|
+
- [ ] Style with Tailwind → Verify: Matches design
|
|
184
|
+
|
|
185
|
+
#### TEST-001: Integration Tests
|
|
186
|
+
- [ ] Add E2E test for user flow → Verify: Playwright passes
|
|
187
|
+
- [ ] Add API integration test → Verify: All endpoints tested
|
|
188
|
+
|
|
189
|
+
### Dependencies
|
|
190
|
+
- DB-001 must complete before BE-001
|
|
191
|
+
- BE-001 must complete before TEST-001
|
|
192
|
+
- FE-001 and BE-001 can run in parallel
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Task Size Guidelines
|
|
196
|
+
|
|
197
|
+
Each task should be:
|
|
198
|
+
- **2-5 minutes** to implement
|
|
199
|
+
- **1 file or small set of files** to edit
|
|
200
|
+
- **1 clear outcome** to verify
|
|
201
|
+
- **Independently testable** when possible
|
|
202
|
+
|
|
203
|
+
### Verification Criteria Format
|
|
204
|
+
|
|
205
|
+
For each task, include:
|
|
206
|
+
```markdown
|
|
207
|
+
- [ ] [Task description] → Verify: [Specific check]
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Examples:
|
|
211
|
+
```markdown
|
|
212
|
+
- [ ] Create UserList component → Verify: Renders in browser at `/users`
|
|
213
|
+
- [ ] Add delete function → Verify: Clicking delete removes user from list
|
|
214
|
+
- [ ] Add error handling → Verify: Error shows toast notification
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Handoff Format
|
|
218
|
+
|
|
219
|
+
When plan is complete:
|
|
220
|
+
```markdown
|
|
221
|
+
## 🤝 Agent Handoffs
|
|
222
|
+
|
|
223
|
+
🤝 alice: Implementation plan complete - 12 tasks across 4 layers
|
|
224
|
+
🤝 alice → bob-eng: MANUAL ready - proceeding to BUILD phase
|
|
225
|
+
```
|