bobs-workshop 0.3.2 → 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.
Files changed (200) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +199 -210
  3. package/bin/bobs-workshop.js +109 -0
  4. package/config/agents.json +27 -0
  5. package/dist/plugins/bobs-workshop.js +34 -0
  6. package/dist/tools/background-agent/cancel.d.ts +3 -0
  7. package/dist/tools/background-agent/cancel.d.ts.map +1 -0
  8. package/dist/tools/background-agent/cancel.js +52 -0
  9. package/dist/tools/background-agent/concurrency.d.ts +15 -0
  10. package/dist/tools/background-agent/concurrency.d.ts.map +1 -0
  11. package/dist/tools/background-agent/concurrency.js +61 -0
  12. package/dist/tools/background-agent/index.d.ts +8 -0
  13. package/dist/tools/background-agent/index.d.ts.map +1 -0
  14. package/dist/tools/background-agent/index.js +7 -0
  15. package/dist/tools/background-agent/launch.d.ts +6 -0
  16. package/dist/tools/background-agent/launch.d.ts.map +1 -0
  17. package/dist/tools/background-agent/launch.js +33 -0
  18. package/dist/tools/background-agent/list.d.ts +7 -0
  19. package/dist/tools/background-agent/list.d.ts.map +1 -0
  20. package/dist/tools/background-agent/list.js +40 -0
  21. package/dist/tools/background-agent/manager.d.ts +29 -0
  22. package/dist/tools/background-agent/manager.d.ts.map +1 -0
  23. package/dist/tools/background-agent/manager.js +377 -0
  24. package/dist/tools/background-agent/output.d.ts +3 -0
  25. package/dist/tools/background-agent/output.d.ts.map +1 -0
  26. package/dist/tools/background-agent/output.js +41 -0
  27. package/dist/tools/background-agent/types.d.ts +46 -0
  28. package/dist/tools/background-agent/types.d.ts.map +1 -0
  29. package/dist/tools/background-agent/types.js +1 -0
  30. package/dist/tools/index.d.ts +9 -0
  31. package/dist/tools/index.d.ts.map +1 -0
  32. package/dist/tools/index.js +8 -0
  33. package/dist/tools/manual/index.d.ts +3 -0
  34. package/dist/tools/manual/index.d.ts.map +1 -0
  35. package/dist/tools/manual/index.js +2 -0
  36. package/dist/tools/manual/manual-update.d.ts +4 -0
  37. package/dist/tools/manual/manual-update.d.ts.map +1 -0
  38. package/dist/tools/manual/manual-update.js +190 -0
  39. package/dist/tools/manual/verify-manual.d.ts +4 -0
  40. package/dist/tools/manual/verify-manual.d.ts.map +1 -0
  41. package/dist/tools/manual/verify-manual.js +46 -0
  42. package/package.json +35 -67
  43. package/postinstall.js +190 -0
  44. package/src/agents/alice.md +466 -0
  45. package/src/agents/bob-rev.md +493 -0
  46. package/src/agents/bob-send.md +277 -0
  47. package/src/agents/bob.md +442 -0
  48. package/src/agents/trace.md +451 -0
  49. package/src/plugins/bobs-workshop.ts +45 -0
  50. package/src/skills/api-patterns/SKILL.md +376 -0
  51. package/src/skills/architecture/SKILL.md +271 -0
  52. package/src/skills/bobs-workshop/performance/icon.svg +3 -0
  53. package/src/skills/brainstorming/SKILL.md +210 -0
  54. package/src/skills/clean-code/SKILL.md +151 -0
  55. package/src/skills/code-review-checklist/SKILL.md +220 -0
  56. package/src/skills/database-design/SKILL.md +271 -0
  57. package/src/skills/exploration/SKILL.md +257 -0
  58. package/src/skills/frontend-ui-ux/SKILL.md +78 -0
  59. package/src/skills/git-master/SKILL.md +1105 -0
  60. package/src/skills/performance/SKILL.md +144 -0
  61. package/src/skills/performance/icon.svg +3 -0
  62. package/src/skills/plan-writing/SKILL.md +225 -0
  63. package/src/skills/security/SKILL.md +410 -0
  64. package/src/skills/simplification/SKILL.md +238 -0
  65. package/src/skills/systematic-debugging/SKILL.md +175 -0
  66. package/src/skills/testing-patterns/SKILL.md +305 -0
  67. package/src/skills/verification/SKILL.md +286 -0
  68. package/src/tools/background-agent/cancel.ts +67 -0
  69. package/src/tools/background-agent/concurrency.ts +71 -0
  70. package/src/tools/background-agent/index.ts +7 -0
  71. package/src/tools/background-agent/launch.ts +39 -0
  72. package/src/tools/background-agent/list.ts +50 -0
  73. package/src/tools/background-agent/manager.ts +455 -0
  74. package/src/tools/background-agent/output.ts +57 -0
  75. package/src/tools/background-agent/types.ts +55 -0
  76. package/src/tools/index.ts +8 -0
  77. package/src/tools/manual/index.ts +2 -0
  78. package/src/tools/manual/manual-update.ts +197 -0
  79. package/src/tools/manual/verify-manual.ts +55 -0
  80. package/uninstall.js +64 -0
  81. package/Claude.md +0 -162
  82. package/bin/bobs-mcp-server.js +0 -11
  83. package/bin/bobs-mcp.js +0 -130
  84. package/dist/api/taskLogger.js +0 -106
  85. package/dist/api/taskLogger.js.map +0 -1
  86. package/dist/cli/checker.js +0 -401
  87. package/dist/cli/checker.js.map +0 -1
  88. package/dist/cli/cleanup.js +0 -131
  89. package/dist/cli/cleanup.js.map +0 -1
  90. package/dist/cli/debug.js +0 -157
  91. package/dist/cli/debug.js.map +0 -1
  92. package/dist/cli/health.js +0 -97
  93. package/dist/cli/health.js.map +0 -1
  94. package/dist/cli/setup.js +0 -81
  95. package/dist/cli/setup.js.map +0 -1
  96. package/dist/cli/workshop.js +0 -42
  97. package/dist/cli/workshop.js.map +0 -1
  98. package/dist/dashboard/server.js +0 -1203
  99. package/dist/dashboard/server.js.map +0 -1
  100. package/dist/index.js +0 -960
  101. package/dist/index.js.map +0 -1
  102. package/dist/prompts/architect.js +0 -221
  103. package/dist/prompts/architect.js.map +0 -1
  104. package/dist/prompts/debugger.js +0 -257
  105. package/dist/prompts/debugger.js.map +0 -1
  106. package/dist/prompts/engineer.js +0 -249
  107. package/dist/prompts/engineer.js.map +0 -1
  108. package/dist/prompts/orchestrator.js +0 -304
  109. package/dist/prompts/orchestrator.js.map +0 -1
  110. package/dist/prompts/reviewer.js +0 -289
  111. package/dist/prompts/reviewer.js.map +0 -1
  112. package/dist/services/activitySummarizer.js +0 -388
  113. package/dist/services/activitySummarizer.js.map +0 -1
  114. package/dist/services/changeValidator.js +0 -396
  115. package/dist/services/changeValidator.js.map +0 -1
  116. package/dist/services/claudeOrchestrator.js +0 -343
  117. package/dist/services/claudeOrchestrator.js.map +0 -1
  118. package/dist/services/fileMonitor.js +0 -250
  119. package/dist/services/fileMonitor.js.map +0 -1
  120. package/dist/services/implementationSummarizer.js +0 -306
  121. package/dist/services/implementationSummarizer.js.map +0 -1
  122. package/dist/services/liveMonitor.js +0 -315
  123. package/dist/services/liveMonitor.js.map +0 -1
  124. package/dist/services/mcpAuditLogger.js +0 -104
  125. package/dist/services/mcpAuditLogger.js.map +0 -1
  126. package/dist/services/mcpLogger.js +0 -223
  127. package/dist/services/mcpLogger.js.map +0 -1
  128. package/dist/services/tmuxManager.js +0 -541
  129. package/dist/services/tmuxManager.js.map +0 -1
  130. package/dist/tools/approvalTools.js +0 -244
  131. package/dist/tools/approvalTools.js.map +0 -1
  132. package/dist/tools/autoDebugger.js +0 -147
  133. package/dist/tools/autoDebugger.js.map +0 -1
  134. package/dist/tools/cleanupService.js +0 -221
  135. package/dist/tools/cleanupService.js.map +0 -1
  136. package/dist/tools/dashboardTools.js +0 -342
  137. package/dist/tools/dashboardTools.js.map +0 -1
  138. package/dist/tools/developmentNudges.js +0 -336
  139. package/dist/tools/developmentNudges.js.map +0 -1
  140. package/dist/tools/gitTools.js +0 -741
  141. package/dist/tools/gitTools.js.map +0 -1
  142. package/dist/tools/orchestratorTools.js +0 -832
  143. package/dist/tools/orchestratorTools.js.map +0 -1
  144. package/dist/tools/searchCache.js +0 -64
  145. package/dist/tools/searchCache.js.map +0 -1
  146. package/dist/tools/searchTools.js +0 -1107
  147. package/dist/tools/searchTools.js.map +0 -1
  148. package/dist/tools/semgrep-patterns.js +0 -296
  149. package/dist/tools/semgrep-patterns.js.map +0 -1
  150. package/dist/tools/specTools.js +0 -332
  151. package/dist/tools/specTools.js.map +0 -1
  152. package/dist/tools/structural/__tests__/orchestrator.test.js +0 -61
  153. package/dist/tools/structural/__tests__/orchestrator.test.js.map +0 -1
  154. package/dist/tools/structural/cache.js +0 -226
  155. package/dist/tools/structural/cache.js.map +0 -1
  156. package/dist/tools/structural/engines/python/index.js +0 -118
  157. package/dist/tools/structural/engines/python/index.js.map +0 -1
  158. package/dist/tools/structural/engines/typescript/__tests__/typescript-engine.test.js +0 -97
  159. package/dist/tools/structural/engines/typescript/__tests__/typescript-engine.test.js.map +0 -1
  160. package/dist/tools/structural/engines/typescript/analyzer.js +0 -433
  161. package/dist/tools/structural/engines/typescript/analyzer.js.map +0 -1
  162. package/dist/tools/structural/engines/typescript/index.js +0 -381
  163. package/dist/tools/structural/engines/typescript/index.js.map +0 -1
  164. package/dist/tools/structural/engines/typescript/utils.js +0 -279
  165. package/dist/tools/structural/engines/typescript/utils.js.map +0 -1
  166. package/dist/tools/structural/index.js +0 -248
  167. package/dist/tools/structural/index.js.map +0 -1
  168. package/dist/tools/structural/types.js +0 -18
  169. package/dist/tools/structural/types.js.map +0 -1
  170. package/dist/tools/tmuxTools.js +0 -100
  171. package/dist/tools/tmuxTools.js.map +0 -1
  172. package/dist/tools/workRecorder.js +0 -215
  173. package/dist/tools/workRecorder.js.map +0 -1
  174. package/dist/tools/worktreeTools.js +0 -705
  175. package/dist/tools/worktreeTools.js.map +0 -1
  176. package/dist/utils/__tests__/integration.test.js +0 -57
  177. package/dist/utils/__tests__/integration.test.js.map +0 -1
  178. package/dist/utils/__tests__/serverDetection.test.js +0 -151
  179. package/dist/utils/__tests__/serverDetection.test.js.map +0 -1
  180. package/dist/utils/errorHandling.js +0 -336
  181. package/dist/utils/errorHandling.js.map +0 -1
  182. package/dist/utils/processManager.js +0 -172
  183. package/dist/utils/processManager.js.map +0 -1
  184. package/dist/utils/reliability.js +0 -263
  185. package/dist/utils/reliability.js.map +0 -1
  186. package/dist/utils/responseFormatter.js +0 -250
  187. package/dist/utils/responseFormatter.js.map +0 -1
  188. package/dist/utils/serverDetection.js +0 -133
  189. package/dist/utils/serverDetection.js.map +0 -1
  190. package/dist/utils/specMigration.js +0 -105
  191. package/dist/utils/specMigration.js.map +0 -1
  192. package/dist/validation/schemas.js +0 -299
  193. package/dist/validation/schemas.js.map +0 -1
  194. package/public/.well-known/mcp/manifest.json +0 -473
  195. package/public/index.html +0 -3157
  196. package/public/index.html.backup +0 -2805
  197. package/public/index.html.backup2 +0 -1292
  198. package/scripts/cleanup-system-logs.ts +0 -121
  199. package/scripts/init-workspace.js +0 -63
  200. 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,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#10b981" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
2
+ <path d="M22 12h-4l-3 9L9 3l-3 9H2"/>
3
+ </svg>
@@ -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
+ ```