aiag-cli 2.2.2 → 2.3.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/README.md +72 -37
- package/dist/cli.js +30 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/auto.js +45 -41
- package/dist/commands/auto.js.map +1 -1
- package/dist/commands/feature.d.ts +11 -0
- package/dist/commands/feature.d.ts.map +1 -0
- package/dist/commands/feature.js +153 -0
- package/dist/commands/feature.js.map +1 -0
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +29 -78
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/prd.d.ts +12 -0
- package/dist/commands/prd.d.ts.map +1 -0
- package/dist/commands/prd.js +179 -0
- package/dist/commands/prd.js.map +1 -0
- package/dist/prompts/coding.d.ts.map +1 -1
- package/dist/prompts/coding.js +12 -0
- package/dist/prompts/coding.js.map +1 -1
- package/dist/prompts/index.d.ts +2 -0
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +2 -0
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/initializer.d.ts.map +1 -1
- package/dist/prompts/initializer.js +6 -0
- package/dist/prompts/initializer.js.map +1 -1
- package/dist/prompts/prd.d.ts +28 -0
- package/dist/prompts/prd.d.ts.map +1 -0
- package/dist/prompts/prd.js +105 -0
- package/dist/prompts/prd.js.map +1 -0
- package/dist/skills/index.d.ts +12 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +12 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/installer.d.ts +38 -0
- package/dist/skills/installer.d.ts.map +1 -0
- package/dist/skills/installer.js +153 -0
- package/dist/skills/installer.js.map +1 -0
- package/dist/skills/loader.d.ts +34 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +134 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/skills/runner.d.ts +14 -0
- package/dist/skills/runner.d.ts.map +1 -0
- package/dist/skills/runner.js +238 -0
- package/dist/skills/runner.js.map +1 -0
- package/dist/types.d.ts +127 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/prd.d.ts +21 -0
- package/dist/utils/prd.d.ts.map +1 -1
- package/dist/utils/prd.js +69 -0
- package/dist/utils/prd.js.map +1 -1
- package/dist/utils/taskmasterConverter.d.ts +72 -0
- package/dist/utils/taskmasterConverter.d.ts.map +1 -0
- package/dist/utils/taskmasterConverter.js +401 -0
- package/dist/utils/taskmasterConverter.js.map +1 -0
- package/dist/utils/taskmasterParser.d.ts +35 -0
- package/dist/utils/taskmasterParser.d.ts.map +1 -0
- package/dist/utils/taskmasterParser.js +259 -0
- package/dist/utils/taskmasterParser.js.map +1 -0
- package/package.json +1 -1
- package/templates/skills/prd-taskmaster/.taskmaster/docs/prd.md +2571 -0
- package/templates/skills/prd-taskmaster/.taskmaster/scripts/execution-state.py +87 -0
- package/templates/skills/prd-taskmaster/.taskmaster/scripts/learn-accuracy.py +113 -0
- package/templates/skills/prd-taskmaster/.taskmaster/scripts/rollback.sh +71 -0
- package/templates/skills/prd-taskmaster/.taskmaster/scripts/security-audit.py +130 -0
- package/templates/skills/prd-taskmaster/.taskmaster/scripts/track-time.py +133 -0
- package/templates/skills/prd-taskmaster/LICENSE +21 -0
- package/templates/skills/prd-taskmaster/README.md +608 -0
- package/templates/skills/prd-taskmaster/SKILL.md +1258 -0
- package/templates/skills/prd-taskmaster/reference/taskmaster-integration-guide.md +645 -0
- package/templates/skills/prd-taskmaster/reference/validation-checklist.md +394 -0
- package/templates/skills/prd-taskmaster/scripts/setup-taskmaster.sh +112 -0
- package/templates/skills/prd-taskmaster/templates/CLAUDE.md.template +635 -0
- package/templates/skills/prd-taskmaster/templates/taskmaster-prd-comprehensive.md +983 -0
- package/templates/skills/prd-taskmaster/templates/taskmaster-prd-minimal.md +103 -0
|
@@ -0,0 +1,645 @@
|
|
|
1
|
+
# Taskmaster Integration Guide
|
|
2
|
+
|
|
3
|
+
Complete guide for optimizing PRDs for taskmaster AI task generation.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
1. [What is Taskmaster](#what-is-taskmaster)
|
|
8
|
+
2. [Why PRD Quality Matters](#why-prd-quality-matters)
|
|
9
|
+
3. [Writing for Task Generation](#writing-for-task-generation)
|
|
10
|
+
4. [Task Breakdown Best Practices](#task-breakdown-best-practices)
|
|
11
|
+
5. [Common Patterns](#common-patterns)
|
|
12
|
+
6. [Troubleshooting](#troubleshooting)
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## What is Taskmaster
|
|
17
|
+
|
|
18
|
+
Taskmaster AI is a task management system designed for AI-driven development workflows ("vibe coding").
|
|
19
|
+
|
|
20
|
+
**Core Concept:**
|
|
21
|
+
- You provide a comprehensive PRD
|
|
22
|
+
- Taskmaster breaks it into actionable tasks
|
|
23
|
+
- AI agents implement tasks one by one
|
|
24
|
+
- Better PRD = Better tasks = Better outcomes
|
|
25
|
+
|
|
26
|
+
**Key Features:**
|
|
27
|
+
- Automatic task generation from PRDs
|
|
28
|
+
- Dependency tracking
|
|
29
|
+
- Progress monitoring
|
|
30
|
+
- Integration with AI coding tools
|
|
31
|
+
|
|
32
|
+
**Why This Matters:**
|
|
33
|
+
> "Planning is 95% of the work with vibe coding"
|
|
34
|
+
|
|
35
|
+
A vague PRD generates vague tasks → Poor implementation
|
|
36
|
+
A detailed PRD generates specific tasks → Successful implementation
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Why PRD Quality Matters
|
|
41
|
+
|
|
42
|
+
### The Task Generation Chain
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
PRD Quality → Task Quality → Implementation Quality → Project Success
|
|
46
|
+
|
|
47
|
+
Good PRD:
|
|
48
|
+
✅ "API response time must be < 200ms for 95th percentile"
|
|
49
|
+
→ Task: "Optimize database queries to achieve < 100ms query time"
|
|
50
|
+
→ Implementation: Specific, measurable, achievable
|
|
51
|
+
|
|
52
|
+
Bad PRD:
|
|
53
|
+
❌ "API should be fast"
|
|
54
|
+
→ Task: "Make API faster"
|
|
55
|
+
→ Implementation: Vague, unmeasurable, unclear
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### What Taskmaster Needs
|
|
59
|
+
|
|
60
|
+
**To generate good tasks, taskmaster needs:**
|
|
61
|
+
|
|
62
|
+
1. **Clear Requirements**
|
|
63
|
+
- Each requirement is atomic (one thing)
|
|
64
|
+
- Testable (can verify completion)
|
|
65
|
+
- Specific (no vague language)
|
|
66
|
+
|
|
67
|
+
2. **Acceptance Criteria**
|
|
68
|
+
- Concrete conditions that must be true
|
|
69
|
+
- Becomes task completion criteria
|
|
70
|
+
- Measurable and verifiable
|
|
71
|
+
|
|
72
|
+
3. **Technical Details**
|
|
73
|
+
- API specifications with examples
|
|
74
|
+
- Database schemas
|
|
75
|
+
- Integration points
|
|
76
|
+
- Error handling approach
|
|
77
|
+
|
|
78
|
+
4. **Dependencies**
|
|
79
|
+
- What must be built first
|
|
80
|
+
- What can be parallel
|
|
81
|
+
- External dependencies
|
|
82
|
+
|
|
83
|
+
5. **Complexity Estimates**
|
|
84
|
+
- Helps taskmaster schedule work
|
|
85
|
+
- Identifies Large tasks to break down
|
|
86
|
+
- Sets realistic expectations
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Writing for Task Generation
|
|
91
|
+
|
|
92
|
+
### Requirement Format
|
|
93
|
+
|
|
94
|
+
**Best Format for Taskmaster:**
|
|
95
|
+
|
|
96
|
+
```markdown
|
|
97
|
+
#### REQ-001: [Clear, Descriptive Title]
|
|
98
|
+
|
|
99
|
+
**Description:** [What the system must do, in detail]
|
|
100
|
+
|
|
101
|
+
**Acceptance Criteria:**
|
|
102
|
+
- [ ] [Specific, testable criterion 1]
|
|
103
|
+
- [ ] [Specific, testable criterion 2]
|
|
104
|
+
- [ ] [Specific, testable criterion 3]
|
|
105
|
+
- [ ] [Edge case criterion]
|
|
106
|
+
- [ ] [Error handling criterion]
|
|
107
|
+
|
|
108
|
+
**Technical Specification:**
|
|
109
|
+
[Code examples, API schemas, database schemas]
|
|
110
|
+
|
|
111
|
+
**Task Breakdown:**
|
|
112
|
+
- Implement [component]: Small (2-4h)
|
|
113
|
+
- Add [feature]: Medium (4-8h)
|
|
114
|
+
- Test [functionality]: Small (2-4h)
|
|
115
|
+
|
|
116
|
+
**Dependencies:** [None | REQ-XXX | External service]
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Why This Works:**
|
|
120
|
+
- Title → Task name
|
|
121
|
+
- Description → Task description
|
|
122
|
+
- Acceptance criteria → Completion criteria
|
|
123
|
+
- Technical spec → Implementation guidance
|
|
124
|
+
- Task breakdown → Subtasks
|
|
125
|
+
- Dependencies → Task sequencing
|
|
126
|
+
|
|
127
|
+
### Acceptance Criteria Best Practices
|
|
128
|
+
|
|
129
|
+
**Good Acceptance Criteria:**
|
|
130
|
+
```
|
|
131
|
+
✅ "POST /api/users returns 201 status code with user ID"
|
|
132
|
+
✅ "Invalid email returns 400 with error message 'INVALID_EMAIL'"
|
|
133
|
+
✅ "Password must be hashed using bcrypt with cost factor 12"
|
|
134
|
+
✅ "API response time < 200ms for 95th percentile under 1000 req/s load"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Bad Acceptance Criteria:**
|
|
138
|
+
```
|
|
139
|
+
❌ "API should work correctly"
|
|
140
|
+
❌ "Handle errors properly"
|
|
141
|
+
❌ "Be secure"
|
|
142
|
+
❌ "Perform well"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Formula:**
|
|
146
|
+
```
|
|
147
|
+
[Action] [Specific Condition] [Measurable Outcome]
|
|
148
|
+
|
|
149
|
+
Examples:
|
|
150
|
+
- POST /api/users [Action]
|
|
151
|
+
- with valid data [Condition]
|
|
152
|
+
- returns 201 status [Outcome]
|
|
153
|
+
|
|
154
|
+
- Password [Action]
|
|
155
|
+
- during user registration [Condition]
|
|
156
|
+
- must be hashed with bcrypt cost 12 [Outcome]
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Technical Specifications
|
|
160
|
+
|
|
161
|
+
**API Endpoints:**
|
|
162
|
+
|
|
163
|
+
Always include:
|
|
164
|
+
- HTTP method and path
|
|
165
|
+
- Request headers
|
|
166
|
+
- Request body (JSON example)
|
|
167
|
+
- Success response (status + body)
|
|
168
|
+
- Error responses (all cases)
|
|
169
|
+
|
|
170
|
+
```markdown
|
|
171
|
+
### Endpoint: Create User
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
POST /api/v1/users
|
|
175
|
+
|
|
176
|
+
Headers:
|
|
177
|
+
Content-Type: application/json
|
|
178
|
+
Authorization: Bearer {token}
|
|
179
|
+
|
|
180
|
+
Request:
|
|
181
|
+
{
|
|
182
|
+
"email": "user@example.com",
|
|
183
|
+
"password": "SecurePass123!",
|
|
184
|
+
"profile": {
|
|
185
|
+
"firstName": "Jane",
|
|
186
|
+
"lastName": "Doe"
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
Response (201 Created):
|
|
191
|
+
{
|
|
192
|
+
"id": "uuid-1234",
|
|
193
|
+
"email": "user@example.com",
|
|
194
|
+
"createdAt": "2025-01-15T10:30:00Z"
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
Error (400 Bad Request):
|
|
198
|
+
{
|
|
199
|
+
"error": "INVALID_EMAIL",
|
|
200
|
+
"message": "Email format is invalid",
|
|
201
|
+
"field": "email"
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
Error (409 Conflict):
|
|
205
|
+
{
|
|
206
|
+
"error": "EMAIL_EXISTS",
|
|
207
|
+
"message": "User with this email already exists"
|
|
208
|
+
}
|
|
209
|
+
```\
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
**Database Schemas:**
|
|
213
|
+
|
|
214
|
+
Always include:
|
|
215
|
+
- Table name
|
|
216
|
+
- All columns with types
|
|
217
|
+
- Constraints (NOT NULL, UNIQUE, etc.)
|
|
218
|
+
- Indexes
|
|
219
|
+
- Foreign keys
|
|
220
|
+
|
|
221
|
+
```markdown
|
|
222
|
+
### Database Schema
|
|
223
|
+
|
|
224
|
+
```sql
|
|
225
|
+
CREATE TABLE users (
|
|
226
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
227
|
+
email VARCHAR(255) NOT NULL UNIQUE,
|
|
228
|
+
password_hash VARCHAR(255) NOT NULL,
|
|
229
|
+
first_name VARCHAR(100),
|
|
230
|
+
last_name VARCHAR(100),
|
|
231
|
+
created_at TIMESTAMP DEFAULT NOW(),
|
|
232
|
+
updated_at TIMESTAMP DEFAULT NOW()
|
|
233
|
+
);
|
|
234
|
+
|
|
235
|
+
CREATE INDEX idx_users_email ON users(email);
|
|
236
|
+
CREATE INDEX idx_users_created_at ON users(created_at);
|
|
237
|
+
```\
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Task Breakdown Best Practices
|
|
243
|
+
|
|
244
|
+
### Task Sizing
|
|
245
|
+
|
|
246
|
+
**Small (2-4 hours):**
|
|
247
|
+
- Clear requirements
|
|
248
|
+
- No external dependencies
|
|
249
|
+
- Minimal complexity
|
|
250
|
+
- Examples:
|
|
251
|
+
- Add database column
|
|
252
|
+
- Create simple API endpoint
|
|
253
|
+
- Write unit tests for one function
|
|
254
|
+
|
|
255
|
+
**Medium (4-8 hours):**
|
|
256
|
+
- Moderate complexity
|
|
257
|
+
- Few dependencies
|
|
258
|
+
- Some unknowns
|
|
259
|
+
- Examples:
|
|
260
|
+
- Implement authentication middleware
|
|
261
|
+
- Create UI component with state
|
|
262
|
+
- Integration test for feature
|
|
263
|
+
|
|
264
|
+
**Large (8-16 hours):**
|
|
265
|
+
- High complexity
|
|
266
|
+
- Multiple dependencies
|
|
267
|
+
- Significant unknowns
|
|
268
|
+
- Examples:
|
|
269
|
+
- Complete login flow (UI + API + DB)
|
|
270
|
+
- Payment integration
|
|
271
|
+
- Complex algorithm implementation
|
|
272
|
+
|
|
273
|
+
**Extra Large (16+ hours):**
|
|
274
|
+
- Should be broken down further
|
|
275
|
+
- Taskmaster will struggle with these
|
|
276
|
+
- Split into multiple Medium tasks
|
|
277
|
+
|
|
278
|
+
### Dependency Mapping
|
|
279
|
+
|
|
280
|
+
**Format:**
|
|
281
|
+
```
|
|
282
|
+
Task 1 (Foundation) → Task 2 (Core) → Task 3 (Enhancement)
|
|
283
|
+
↘ Task 4 (Alternative) ↗
|
|
284
|
+
|
|
285
|
+
Dependencies:
|
|
286
|
+
- Task 2 depends on Task 1
|
|
287
|
+
- Task 3 depends on Task 2
|
|
288
|
+
- Task 4 depends on Task 1
|
|
289
|
+
- Task 3 also depends on Task 4
|
|
290
|
+
|
|
291
|
+
Critical Path: Task 1 → Task 2 → Task 3
|
|
292
|
+
Parallelizable: Task 2 and Task 4 (both depend only on Task 1)
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
**Why This Matters:**
|
|
296
|
+
- Taskmaster schedules tasks based on dependencies
|
|
297
|
+
- Parallel tasks can be worked on simultaneously
|
|
298
|
+
- Critical path determines minimum timeline
|
|
299
|
+
|
|
300
|
+
### Implementation Phases
|
|
301
|
+
|
|
302
|
+
**Best Practice:** Group related tasks into phases
|
|
303
|
+
|
|
304
|
+
```markdown
|
|
305
|
+
### Phase 1: Foundation (Week 1)
|
|
306
|
+
Goal: Database and core services ready
|
|
307
|
+
|
|
308
|
+
Tasks:
|
|
309
|
+
- Task 1.1: Create database schema
|
|
310
|
+
- Task 1.2: Implement data models
|
|
311
|
+
- Task 1.3: Create base API structure
|
|
312
|
+
|
|
313
|
+
Validation: Can create/read records from database
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
### Phase 2: Core Features (Week 2-3)
|
|
318
|
+
Goal: Main functionality working
|
|
319
|
+
|
|
320
|
+
Tasks:
|
|
321
|
+
- Task 2.1: Implement authentication
|
|
322
|
+
- Task 2.2: Build user management APIs
|
|
323
|
+
- Task 2.3: Create dashboard UI
|
|
324
|
+
|
|
325
|
+
Validation: User can login and access dashboard
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
### Phase 3: Enhancements (Week 4)
|
|
330
|
+
Goal: Polish and optimization
|
|
331
|
+
|
|
332
|
+
Tasks:
|
|
333
|
+
- Task 3.1: Add error handling
|
|
334
|
+
- Task 3.2: Performance optimization
|
|
335
|
+
- Task 3.3: Comprehensive testing
|
|
336
|
+
|
|
337
|
+
Validation: All tests passing, performance targets met
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
**Benefits:**
|
|
341
|
+
- Clear milestones
|
|
342
|
+
- Validation checkpoints
|
|
343
|
+
- Logical progression
|
|
344
|
+
- Easier to track progress
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## Common Patterns
|
|
349
|
+
|
|
350
|
+
### Pattern 1: CRUD API Feature
|
|
351
|
+
|
|
352
|
+
**PRD Structure:**
|
|
353
|
+
```markdown
|
|
354
|
+
## Functional Requirements
|
|
355
|
+
|
|
356
|
+
### REQ-001: Create [Resource]
|
|
357
|
+
- API: POST /api/[resource]
|
|
358
|
+
- Input validation
|
|
359
|
+
- Database insertion
|
|
360
|
+
- Response format
|
|
361
|
+
|
|
362
|
+
Task Breakdown:
|
|
363
|
+
- Create database schema (Small, 2h)
|
|
364
|
+
- Implement create endpoint (Medium, 5h)
|
|
365
|
+
- Add validation middleware (Small, 3h)
|
|
366
|
+
- Write tests (Small, 3h)
|
|
367
|
+
|
|
368
|
+
Dependencies: None
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
### REQ-002: Read [Resource]
|
|
373
|
+
- API: GET /api/[resource]/:id
|
|
374
|
+
- Error handling (404 if not found)
|
|
375
|
+
- Response format
|
|
376
|
+
|
|
377
|
+
Task Breakdown:
|
|
378
|
+
- Implement get endpoint (Small, 3h)
|
|
379
|
+
- Add caching (Small, 2h)
|
|
380
|
+
- Write tests (Small, 2h)
|
|
381
|
+
|
|
382
|
+
Dependencies: REQ-001 (database must exist)
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
### REQ-003: Update [Resource]
|
|
387
|
+
Task Breakdown: ...
|
|
388
|
+
Dependencies: REQ-001, REQ-002
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
### REQ-004: Delete [Resource]
|
|
393
|
+
Task Breakdown: ...
|
|
394
|
+
Dependencies: REQ-001, REQ-002
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
**Taskmaster Output:**
|
|
398
|
+
```
|
|
399
|
+
Phase 1: Create & Read
|
|
400
|
+
- Task 1.1: Database schema
|
|
401
|
+
- Task 1.2: Create endpoint
|
|
402
|
+
- Task 1.3: Validation middleware
|
|
403
|
+
- Task 1.4: Get endpoint
|
|
404
|
+
- Task 1.5: Caching
|
|
405
|
+
- Tasks 1.6-1.7: Tests
|
|
406
|
+
|
|
407
|
+
Phase 2: Update & Delete
|
|
408
|
+
- Task 2.1: Update endpoint
|
|
409
|
+
- Task 2.2: Delete endpoint
|
|
410
|
+
- Tasks 2.3-2.4: Tests
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
### Pattern 2: UI Component Feature
|
|
414
|
+
|
|
415
|
+
**PRD Structure:**
|
|
416
|
+
```markdown
|
|
417
|
+
## User Story
|
|
418
|
+
|
|
419
|
+
As a user, I want to [action] so that I can [benefit].
|
|
420
|
+
|
|
421
|
+
Acceptance Criteria:
|
|
422
|
+
- [ ] Component renders with correct data
|
|
423
|
+
- [ ] User can [interact]
|
|
424
|
+
- [ ] Component handles loading state
|
|
425
|
+
- [ ] Component handles error state
|
|
426
|
+
- [ ] Component is keyboard accessible
|
|
427
|
+
- [ ] Component is responsive (mobile/desktop)
|
|
428
|
+
|
|
429
|
+
## Technical Specification
|
|
430
|
+
|
|
431
|
+
Component: [ComponentName]
|
|
432
|
+
Props: [List props with types]
|
|
433
|
+
State: [Internal state if any]
|
|
434
|
+
API calls: [Which endpoints]
|
|
435
|
+
|
|
436
|
+
File structure:
|
|
437
|
+
- src/components/[Component]/index.tsx
|
|
438
|
+
- src/components/[Component]/[Component].module.css
|
|
439
|
+
- src/components/[Component]/[Component].test.tsx
|
|
440
|
+
|
|
441
|
+
## Task Breakdown
|
|
442
|
+
|
|
443
|
+
- Create component skeleton (Small, 2h)
|
|
444
|
+
- Implement data fetching (Small, 3h)
|
|
445
|
+
- Add UI elements (Medium, 6h)
|
|
446
|
+
- Implement interactions (Medium, 5h)
|
|
447
|
+
- Add loading/error states (Small, 3h)
|
|
448
|
+
- Accessibility testing (Small, 2h)
|
|
449
|
+
- Responsive design (Small, 3h)
|
|
450
|
+
- Write tests (Small, 4h)
|
|
451
|
+
|
|
452
|
+
Total: ~28 hours across 8 tasks
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
### Pattern 3: Integration Feature
|
|
456
|
+
|
|
457
|
+
**PRD Structure:**
|
|
458
|
+
```markdown
|
|
459
|
+
## External Service Integration
|
|
460
|
+
|
|
461
|
+
Service: [Name]
|
|
462
|
+
Purpose: [What it does]
|
|
463
|
+
Documentation: [Link]
|
|
464
|
+
|
|
465
|
+
## Requirements
|
|
466
|
+
|
|
467
|
+
### REQ-001: Service Authentication
|
|
468
|
+
- OAuth 2.0 flow
|
|
469
|
+
- Token storage and refresh
|
|
470
|
+
- Error handling
|
|
471
|
+
|
|
472
|
+
Task Breakdown:
|
|
473
|
+
- Implement OAuth flow (Large, 10h)
|
|
474
|
+
- Add token refresh logic (Medium, 5h)
|
|
475
|
+
- Error handling (Small, 3h)
|
|
476
|
+
|
|
477
|
+
---
|
|
478
|
+
|
|
479
|
+
### REQ-002: Data Synchronization
|
|
480
|
+
- Fetch data from service
|
|
481
|
+
- Transform to our format
|
|
482
|
+
- Store in database
|
|
483
|
+
|
|
484
|
+
Task Breakdown:
|
|
485
|
+
- Implement fetch logic (Medium, 6h)
|
|
486
|
+
- Data transformation (Medium, 5h)
|
|
487
|
+
- Database storage (Small, 3h)
|
|
488
|
+
|
|
489
|
+
---
|
|
490
|
+
|
|
491
|
+
### REQ-003: Failure Handling
|
|
492
|
+
- What if service is down?
|
|
493
|
+
- Retry strategy
|
|
494
|
+
- Fallback behavior
|
|
495
|
+
|
|
496
|
+
Task Breakdown:
|
|
497
|
+
- Circuit breaker pattern (Medium, 6h)
|
|
498
|
+
- Retry logic with exponential backoff (Small, 4h)
|
|
499
|
+
- Fallback implementation (Small, 3h)
|
|
500
|
+
|
|
501
|
+
Dependencies:
|
|
502
|
+
- REQ-002 depends on REQ-001 (auth first)
|
|
503
|
+
- REQ-003 depends on REQ-002 (failures happen during sync)
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
---
|
|
507
|
+
|
|
508
|
+
## Troubleshooting
|
|
509
|
+
|
|
510
|
+
### Issue: Taskmaster Generates Vague Tasks
|
|
511
|
+
|
|
512
|
+
**Symptom:**
|
|
513
|
+
```
|
|
514
|
+
Task: "Implement feature X"
|
|
515
|
+
Task: "Make API work"
|
|
516
|
+
Task: "Fix bugs"
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
**Root Cause:** PRD requirements are too vague
|
|
520
|
+
|
|
521
|
+
**Solution:** Add specific acceptance criteria and technical details
|
|
522
|
+
|
|
523
|
+
**Before:**
|
|
524
|
+
```
|
|
525
|
+
REQ-001: User authentication
|
|
526
|
+
Description: Users should be able to login
|
|
527
|
+
```
|
|
528
|
+
|
|
529
|
+
**After:**
|
|
530
|
+
```
|
|
531
|
+
REQ-001: User Authentication via JWT
|
|
532
|
+
|
|
533
|
+
Description: System must authenticate users via email/password and return JWT token valid for 24 hours.
|
|
534
|
+
|
|
535
|
+
Acceptance Criteria:
|
|
536
|
+
- [ ] POST /api/auth/login accepts email and password
|
|
537
|
+
- [ ] Returns JWT token if credentials valid
|
|
538
|
+
- [ ] Token expires after 24 hours
|
|
539
|
+
- [ ] Invalid credentials return 401 with error message
|
|
540
|
+
- [ ] Successful login tracked in audit log
|
|
541
|
+
|
|
542
|
+
Technical Specification:
|
|
543
|
+
- JWT signed with RS256 algorithm
|
|
544
|
+
- Token contains: user_id, email, exp
|
|
545
|
+
- Passwords hashed with bcrypt (cost 12)
|
|
546
|
+
```
|
|
547
|
+
|
|
548
|
+
### Issue: Tasks Have Wrong Dependencies
|
|
549
|
+
|
|
550
|
+
**Symptom:** Taskmaster tries to run Task B before Task A, but B depends on A
|
|
551
|
+
|
|
552
|
+
**Root Cause:** Dependencies not documented in PRD
|
|
553
|
+
|
|
554
|
+
**Solution:** Explicitly state dependencies for each requirement
|
|
555
|
+
|
|
556
|
+
```markdown
|
|
557
|
+
### REQ-003: User Dashboard API
|
|
558
|
+
|
|
559
|
+
**Dependencies:**
|
|
560
|
+
- REQ-001: Authentication (users must be authenticated to access dashboard)
|
|
561
|
+
- REQ-002: User model (dashboard displays user data)
|
|
562
|
+
|
|
563
|
+
Task Breakdown:
|
|
564
|
+
- Implement dashboard endpoint (Medium, 6h)
|
|
565
|
+
Dependencies: REQ-001, REQ-002
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
### Issue: Tasks Are Too Large
|
|
569
|
+
|
|
570
|
+
**Symptom:** Taskmaster creates tasks estimated at 20+ hours
|
|
571
|
+
|
|
572
|
+
**Root Cause:** Requirements are too broad
|
|
573
|
+
|
|
574
|
+
**Solution:** Break requirements into smaller, atomic pieces
|
|
575
|
+
|
|
576
|
+
**Before:**
|
|
577
|
+
```
|
|
578
|
+
REQ-001: Complete user management system
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
**After:**
|
|
582
|
+
```
|
|
583
|
+
REQ-001: User registration
|
|
584
|
+
REQ-002: User login
|
|
585
|
+
REQ-003: User profile management
|
|
586
|
+
REQ-004: Password reset
|
|
587
|
+
REQ-005: Email verification
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
### Issue: Duplicate Tasks Generated
|
|
591
|
+
|
|
592
|
+
**Symptom:** Taskmaster creates multiple tasks for the same thing
|
|
593
|
+
|
|
594
|
+
**Root Cause:** Requirements overlap or repeat
|
|
595
|
+
|
|
596
|
+
**Solution:** Review PRD for duplicate requirements, consolidate
|
|
597
|
+
|
|
598
|
+
**Check for:**
|
|
599
|
+
- Same API endpoint in multiple requirements
|
|
600
|
+
- Same database table in multiple places
|
|
601
|
+
- Repeated acceptance criteria
|
|
602
|
+
|
|
603
|
+
---
|
|
604
|
+
|
|
605
|
+
## Checklist for Taskmaster-Ready PRD
|
|
606
|
+
|
|
607
|
+
Before generating tasks, verify:
|
|
608
|
+
|
|
609
|
+
**Requirements:**
|
|
610
|
+
- [ ] Each requirement has unique ID (REQ-001, REQ-002, ...)
|
|
611
|
+
- [ ] Each requirement is atomic (does one thing)
|
|
612
|
+
- [ ] All requirements have acceptance criteria (minimum 3 per requirement)
|
|
613
|
+
- [ ] Acceptance criteria are specific and testable
|
|
614
|
+
- [ ] No vague language ("fast", "good", "user-friendly")
|
|
615
|
+
|
|
616
|
+
**Technical Details:**
|
|
617
|
+
- [ ] API endpoints have request/response examples
|
|
618
|
+
- [ ] Database schemas include all columns, types, constraints
|
|
619
|
+
- [ ] Integration points documented with service details
|
|
620
|
+
- [ ] Error handling approach specified
|
|
621
|
+
|
|
622
|
+
**Task Breakdown:**
|
|
623
|
+
- [ ] Each requirement suggests task breakdown
|
|
624
|
+
- [ ] Tasks are sized (Small/Medium/Large)
|
|
625
|
+
- [ ] Task dependencies identified
|
|
626
|
+
- [ ] Implementation phases defined
|
|
627
|
+
|
|
628
|
+
**Validation:**
|
|
629
|
+
- [ ] Each phase has validation checkpoint
|
|
630
|
+
- [ ] Success criteria defined for each phase
|
|
631
|
+
- [ ] Testing strategy included
|
|
632
|
+
|
|
633
|
+
**If all checked:** Your PRD is ready for taskmaster! ✅
|
|
634
|
+
|
|
635
|
+
---
|
|
636
|
+
|
|
637
|
+
## Additional Resources
|
|
638
|
+
|
|
639
|
+
- Taskmaster Documentation: https://docs.task-master.dev/
|
|
640
|
+
- Taskmaster GitHub: https://github.com/eyaltoledano/claude-task-master
|
|
641
|
+
- Best Practices: https://docs.task-master.dev/getting-started/best-practices
|
|
642
|
+
|
|
643
|
+
---
|
|
644
|
+
|
|
645
|
+
**Remember:** The quality of your PRD directly determines the quality of generated tasks. Invest time in a comprehensive, detailed PRD, and taskmaster will generate high-quality, actionable tasks that lead to successful implementation.
|