@comfanion/workflow 3.7.2 → 3.9.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/package.json +1 -1
- package/src/build-info.json +1 -1
- package/src/opencode/config.yaml +1 -1
- package/src/opencode/skills/epic-writing/SKILL.md +63 -22
- package/src/opencode/skills/story-writing/SKILL.md +91 -35
- package/src/opencode/templates/epic-template.md +22 -9
- package/src/opencode/templates/story-template.md +77 -66
- package/src/opencode/workflows/dev-story/instructions.md +3 -3
package/package.json
CHANGED
package/src/build-info.json
CHANGED
package/src/opencode/config.yaml
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# PROJECT CONFIGURATION
|
|
7
7
|
# =============================================================================
|
|
8
8
|
project_name: "ai-wf"
|
|
9
|
-
version: "3.
|
|
9
|
+
version: "3.9.0"
|
|
10
10
|
|
|
11
11
|
# =============================================================================
|
|
12
12
|
# USER CONFIGURATION
|
|
@@ -18,6 +18,47 @@ Use this skill when you need to:
|
|
|
18
18
|
- Define epic-level acceptance criteria
|
|
19
19
|
- Track PRD coverage
|
|
20
20
|
|
|
21
|
+
## MANDATORY: Load Technical Context First
|
|
22
|
+
|
|
23
|
+
**Before writing ANY epic, you MUST read and understand:**
|
|
24
|
+
|
|
25
|
+
### 1. Project Architecture (REQUIRED)
|
|
26
|
+
```
|
|
27
|
+
Search and read in order:
|
|
28
|
+
1. CLAUDE.md (root) - Project patterns, conventions, tech stack
|
|
29
|
+
2. docs/architecture.md - System architecture, module boundaries
|
|
30
|
+
3. docs/architecture/[module]/ - Module-specific documentation
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 2. Module/Domain Documentation (REQUIRED)
|
|
34
|
+
```
|
|
35
|
+
For the specific module this epic covers:
|
|
36
|
+
1. docs/architecture/[module]/index.md - Module overview
|
|
37
|
+
2. docs/architecture/[module]/architecture.md - Module architecture
|
|
38
|
+
3. docs/architecture/[module]/data-model.md - Database schema
|
|
39
|
+
4. docs/architecture/[module]/api/ - API contracts
|
|
40
|
+
5. docs/architecture/[module]/events/ - Event schemas
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 3. PRD Requirements (REQUIRED)
|
|
44
|
+
```
|
|
45
|
+
1. docs/prd.md - Functional requirements (FR-XXX)
|
|
46
|
+
2. docs/requirements/ - Detailed requirements if exists
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Pre-Epic Checklist
|
|
50
|
+
|
|
51
|
+
Before writing epic, confirm you have read:
|
|
52
|
+
- [ ] CLAUDE.md - coding patterns and conventions
|
|
53
|
+
- [ ] Architecture document - system design
|
|
54
|
+
- [ ] Module documentation - specific module architecture
|
|
55
|
+
- [ ] PRD - requirements this epic implements
|
|
56
|
+
|
|
57
|
+
**⚠️ DO NOT proceed without reading technical documentation!**
|
|
58
|
+
**Epic MUST reference architecture sections and follow established patterns.**
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
21
62
|
## Template
|
|
22
63
|
|
|
23
64
|
Use template at: `@.opencode/templates/epic-template.md`
|
|
@@ -127,15 +168,15 @@ Track which FRs are covered:
|
|
|
127
168
|
|
|
128
169
|
```
|
|
129
170
|
EPIC (1-2 weeks)
|
|
130
|
-
└── STORY (
|
|
131
|
-
└── TASK (
|
|
171
|
+
└── STORY (2-5 days)
|
|
172
|
+
└── TASK (4-6 hours)
|
|
132
173
|
```
|
|
133
174
|
|
|
134
175
|
| Level | Duration | Count | Deliverable |
|
|
135
176
|
|-------|----------|-------|-------------|
|
|
136
177
|
| **Epic** | 1-2 weeks | 1 | Complete feature |
|
|
137
|
-
| **Story** |
|
|
138
|
-
| **Task** |
|
|
178
|
+
| **Story** | 2-5 days | 3-8 per epic | User-facing capability |
|
|
179
|
+
| **Task** | 4-6 hours | 3-6 per story | Atomic code change with tests |
|
|
139
180
|
|
|
140
181
|
### Story Decomposition Pattern
|
|
141
182
|
|
|
@@ -172,17 +213,17 @@ S01 (Domain) ──┬──► S02 (Repo Interface) ──► S04 (Repo Impl)
|
|
|
172
213
|
|
|
173
214
|
| Story | Tasks | Hours | Days |
|
|
174
215
|
|-------|-------|-------|------|
|
|
175
|
-
| S01 |
|
|
176
|
-
| S02 | 3 |
|
|
177
|
-
| S03 |
|
|
178
|
-
| S04 |
|
|
179
|
-
| S05 |
|
|
180
|
-
| S06 |
|
|
181
|
-
| S07 |
|
|
182
|
-
| **Total** | **
|
|
216
|
+
| S01 | 4 | 20h | 2.5d |
|
|
217
|
+
| S02 | 3 | 15h | 2d |
|
|
218
|
+
| S03 | 5 | 26h | 3d |
|
|
219
|
+
| S04 | 4 | 22h | 3d |
|
|
220
|
+
| S05 | 3 | 16h | 2d |
|
|
221
|
+
| S06 | 3 | 15h | 2d |
|
|
222
|
+
| S07 | 3 | 15h | 2d |
|
|
223
|
+
| **Total** | **25** | **129h** | **~16d** |
|
|
183
224
|
|
|
184
225
|
**Parallel Opportunities:** S02+S03, S04+S05
|
|
185
|
-
**With Parallelism:** ~
|
|
226
|
+
**With Parallelism:** ~10 days (2 weeks)
|
|
186
227
|
```
|
|
187
228
|
|
|
188
229
|
## Epic Sizing
|
|
@@ -191,14 +232,14 @@ S01 (Domain) ──┬──► S02 (Repo Interface) ──► S04 (Repo Impl)
|
|
|
191
232
|
|
|
192
233
|
- **Duration:** 1-2 weeks of work
|
|
193
234
|
- **Stories:** 3-8 stories per epic
|
|
194
|
-
- **Tasks:**
|
|
235
|
+
- **Tasks:** 15-35 tasks per epic (total across stories)
|
|
195
236
|
- **Scope:** One logical feature/capability
|
|
196
237
|
|
|
197
238
|
### Too Big? Split it!
|
|
198
239
|
|
|
199
240
|
Signs an epic is too big:
|
|
200
241
|
- More than 10 stories
|
|
201
|
-
- More than
|
|
242
|
+
- More than 40 tasks total
|
|
202
243
|
- Spans multiple sprints
|
|
203
244
|
- Multiple unrelated features
|
|
204
245
|
- Different team members for different parts
|
|
@@ -207,8 +248,8 @@ Signs an epic is too big:
|
|
|
207
248
|
|
|
208
249
|
Signs an epic is too small:
|
|
209
250
|
- Only 1-2 stories
|
|
210
|
-
- Less than
|
|
211
|
-
- Can be done in
|
|
251
|
+
- Less than 8 tasks
|
|
252
|
+
- Can be done in 3-4 days
|
|
212
253
|
- Part of a larger feature
|
|
213
254
|
|
|
214
255
|
### Parallel Execution Opportunities
|
|
@@ -220,11 +261,11 @@ Identify which stories can run in parallel:
|
|
|
220
261
|
|
|
221
262
|
| Phase | Stories (Parallel) | Duration |
|
|
222
263
|
|-------|-------------------|----------|
|
|
223
|
-
| 1 | S01 |
|
|
224
|
-
| 2 | S02, S03 |
|
|
225
|
-
| 3 | S04, S05 |
|
|
226
|
-
| 4 | S06 |
|
|
227
|
-
| 5 | S07 |
|
|
264
|
+
| 1 | S01 | 2.5d |
|
|
265
|
+
| 2 | S02, S03 | 3d |
|
|
266
|
+
| 3 | S04, S05 | 3d |
|
|
267
|
+
| 4 | S06 | 2d |
|
|
268
|
+
| 5 | S07 | 2d |
|
|
228
269
|
| **Total** | | **5d** |
|
|
229
270
|
|
|
230
271
|
**Sequential would be:** 6.5d
|
|
@@ -18,6 +18,67 @@ Use this skill when you need to:
|
|
|
18
18
|
- Define technical implementation tasks
|
|
19
19
|
- Specify test scenarios
|
|
20
20
|
|
|
21
|
+
## MANDATORY: Load Technical Standards First
|
|
22
|
+
|
|
23
|
+
**Before writing ANY story with tasks, you MUST read and understand:**
|
|
24
|
+
|
|
25
|
+
### 1. Coding Standards (REQUIRED)
|
|
26
|
+
```
|
|
27
|
+
Search and read in order:
|
|
28
|
+
1. CLAUDE.md (root) - Project patterns, code style, conventions
|
|
29
|
+
2. docs/coding-standards/ - Detailed coding standards
|
|
30
|
+
3. docs/coding-standards/testing-standards.md - Test patterns
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 2. Module Architecture (REQUIRED)
|
|
34
|
+
```
|
|
35
|
+
For the specific module this story covers:
|
|
36
|
+
1. docs/architecture/[module]/architecture.md - Module design
|
|
37
|
+
2. docs/architecture/[module]/data-model.md - Database schema
|
|
38
|
+
3. Existing code in src/services/[module]/ - Current patterns
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 3. Parent Epic (REQUIRED)
|
|
42
|
+
```
|
|
43
|
+
1. The epic this story belongs to - for context and dependencies
|
|
44
|
+
2. Other stories in the epic - for coordination
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Pre-Story Checklist
|
|
48
|
+
|
|
49
|
+
Before writing story tasks, confirm you have read:
|
|
50
|
+
- [ ] CLAUDE.md - coding patterns and file structure
|
|
51
|
+
- [ ] Coding standards - naming, error handling, testing
|
|
52
|
+
- [ ] Module architecture - component boundaries
|
|
53
|
+
- [ ] Parent epic - scope and dependencies
|
|
54
|
+
|
|
55
|
+
**⚠️ DO NOT write technical tasks without reading coding standards!**
|
|
56
|
+
**Tasks MUST follow project conventions and patterns from CLAUDE.md.**
|
|
57
|
+
|
|
58
|
+
### Task File Paths
|
|
59
|
+
|
|
60
|
+
When defining tasks, use EXACT paths following project structure:
|
|
61
|
+
```
|
|
62
|
+
src/services/[module]/
|
|
63
|
+
├── cmd/api/main.go
|
|
64
|
+
├── modules/[submodule]/
|
|
65
|
+
│ ├── domain/
|
|
66
|
+
│ │ ├── aggregate/[entity].go ← Domain entities
|
|
67
|
+
│ │ ├── valueobject/[vo].go ← Value objects
|
|
68
|
+
│ │ └── repository/[repo].go ← Repository interfaces
|
|
69
|
+
│ ├── application/
|
|
70
|
+
│ │ └── usecase/[UseCase]/ ← Use case (4 files)
|
|
71
|
+
│ │ ├── inport.go
|
|
72
|
+
│ │ ├── dto.go
|
|
73
|
+
│ │ ├── handler.go
|
|
74
|
+
│ │ └── mappers.go
|
|
75
|
+
│ └── infrastructure/
|
|
76
|
+
│ ├── repo/[entity]_postgres.go ← Repository impl
|
|
77
|
+
│ └── http/[handler].go ← HTTP handlers
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
21
82
|
## Template
|
|
22
83
|
|
|
23
84
|
Use template at: `@.opencode/templates/story-template.md`
|
|
@@ -126,7 +187,7 @@ Each story should have:
|
|
|
126
187
|
- **Authorization** - Permission checks
|
|
127
188
|
- **Edge cases** - Boundary conditions
|
|
128
189
|
|
|
129
|
-
## Atomic Tasks (
|
|
190
|
+
## Atomic Tasks (4-6 hours each)
|
|
130
191
|
|
|
131
192
|
### Task Decomposition Rules
|
|
132
193
|
|
|
@@ -134,7 +195,7 @@ Each story should have:
|
|
|
134
195
|
|
|
135
196
|
| Rule | Description |
|
|
136
197
|
|------|-------------|
|
|
137
|
-
| **
|
|
198
|
+
| **4-6 hours** | Each task should be 4-6 hours of focused work |
|
|
138
199
|
| **Single responsibility** | One clear deliverable per task |
|
|
139
200
|
| **Explicit dependencies** | Every task declares what it depends on |
|
|
140
201
|
| **Parallel opportunities** | Independent tasks can run in parallel |
|
|
@@ -178,28 +239,31 @@ Interface → Stub Implementation → Tests → Real Implementation
|
|
|
178
239
|
|
|
179
240
|
**TDD Task:**
|
|
180
241
|
```markdown
|
|
181
|
-
### T2: Implement {{Entity}} Aggregate
|
|
182
|
-
- **Estimate:**
|
|
242
|
+
### T2: Implement {{Entity}} Aggregate + Tests
|
|
243
|
+
- **Estimate:** 5h
|
|
183
244
|
- **Depends on:** T1
|
|
184
245
|
- **Methodology:** TDD
|
|
185
246
|
- **Deliverables:**
|
|
186
247
|
- [ ] Aggregate: `domain/aggregate/entity.go`
|
|
248
|
+
- [ ] Value objects: `domain/valueobject/*.go`
|
|
187
249
|
- **Validation Test:** `domain/aggregate/entity_test.go`
|
|
188
250
|
- [ ] Test creation happy path
|
|
189
|
-
- [ ] Test validation errors
|
|
251
|
+
- [ ] Test validation errors
|
|
252
|
+
- [ ] Test business rules
|
|
190
253
|
- [ ] **⚠️ ALL TESTS MUST PASS**
|
|
191
254
|
```
|
|
192
255
|
|
|
193
256
|
**STUB Task:**
|
|
194
257
|
```markdown
|
|
195
|
-
### T2: Implement Repository (Stub → Real)
|
|
196
|
-
- **Estimate:**
|
|
258
|
+
### T2: Implement Repository (Stub → Real) + Tests
|
|
259
|
+
- **Estimate:** 6h
|
|
197
260
|
- **Depends on:** T1
|
|
198
261
|
- **Methodology:** STUB
|
|
199
262
|
- **Deliverables:**
|
|
200
263
|
- [ ] Stub: `infrastructure/repo/entity_memory_repo.go`
|
|
201
264
|
- [ ] Real: `infrastructure/repo/entity_postgres_repo.go`
|
|
202
265
|
- **Validation Test:** `infrastructure/repo/entity_repo_test.go`
|
|
266
|
+
- [ ] Test Save, FindByID, List
|
|
203
267
|
- [ ] Test with stub first
|
|
204
268
|
- [ ] Replace stub with real
|
|
205
269
|
- [ ] **⚠️ ALL TESTS MUST PASS**
|
|
@@ -223,7 +287,7 @@ Interface → Stub Implementation → Tests → Real Implementation
|
|
|
223
287
|
|
|
224
288
|
```markdown
|
|
225
289
|
### T{N}: {Task Name}
|
|
226
|
-
- **Estimate:**
|
|
290
|
+
- **Estimate:** 4h | 5h | 6h
|
|
227
291
|
- **Depends on:** T1, T2 | - (none)
|
|
228
292
|
- **Blocks:** T5, T6 | - (none)
|
|
229
293
|
- **Type:** 🔴 RED | 🟢 GREEN | 🔵 REFACTOR | 📝 DOCS
|
|
@@ -253,16 +317,12 @@ T1 ──┬──► T2 ──► T4
|
|
|
253
317
|
```markdown
|
|
254
318
|
| ID | Task | Est | Depends On | Status |
|
|
255
319
|
|----|------|-----|------------|--------|
|
|
256
|
-
| T1 |
|
|
257
|
-
| T2 |
|
|
258
|
-
| T3 |
|
|
259
|
-
| T4 |
|
|
260
|
-
| T5 |
|
|
261
|
-
| T6 |
|
|
262
|
-
| T7 | Write HTTP handler test | 1h | T5 | ⬜ |
|
|
263
|
-
| T8 | Implement HTTP handler | 1h | T7 | ⬜ |
|
|
264
|
-
| T9 | Integration tests | 1.5h | T6, T8 | ⬜ |
|
|
265
|
-
| T10 | Refactor & docs | 1h | T9 | ⬜ |
|
|
320
|
+
| T1 | Domain layer (aggregates, value objects, tests) | 6h | - | ⬜ |
|
|
321
|
+
| T2 | Repository interface + use case tests | 5h | T1 | ⬜ |
|
|
322
|
+
| T3 | Use case implementation | 5h | T2 | ⬜ |
|
|
323
|
+
| T4 | Repository implementation (PostgreSQL) | 6h | T2 | ⬜ |
|
|
324
|
+
| T5 | HTTP handlers + tests | 5h | T3 | ⬜ |
|
|
325
|
+
| T6 | Integration tests + refactor | 5h | T4, T5 | ⬜ |
|
|
266
326
|
```
|
|
267
327
|
|
|
268
328
|
**Status:** ⬜ TODO | 🔄 IN_PROGRESS | ✅ DONE | ⏸️ BLOCKED
|
|
@@ -284,7 +344,7 @@ Phase 7: T9 (waits for T6, T8)
|
|
|
284
344
|
Phase 8: T10 (final)
|
|
285
345
|
|
|
286
346
|
**Critical Path:** T1 → T2 → T4 → T5 → T7 → T8 → T9 → T10
|
|
287
|
-
**Total Estimate:**
|
|
347
|
+
**Total Estimate:** 32h (4 days)
|
|
288
348
|
**Parallel Savings:** ~3h (25%)
|
|
289
349
|
```
|
|
290
350
|
|
|
@@ -293,16 +353,12 @@ Phase 8: T10 (final)
|
|
|
293
353
|
```markdown
|
|
294
354
|
| ID | Task | Est | Depends On | Type |
|
|
295
355
|
|----|------|-----|------------|------|
|
|
296
|
-
| T1 |
|
|
297
|
-
| T2 |
|
|
298
|
-
| T3 |
|
|
299
|
-
| T4 |
|
|
300
|
-
| T5 |
|
|
301
|
-
| T6 |
|
|
302
|
-
| T7 | Write HTTP handler test | 1h | T5 | 🔴 |
|
|
303
|
-
| T8 | Implement HTTP handler | 1h | T7 | 🟢 |
|
|
304
|
-
| T9 | Write integration tests | 1.5h | T6, T8 | 🔴 |
|
|
305
|
-
| T10 | Refactor & documentation | 1h | T9 | 🔵 |
|
|
356
|
+
| T1 | Domain layer: Product aggregate + value objects + tests | 6h | - | 🔴🟢 |
|
|
357
|
+
| T2 | Repository interface + CreateProduct use case tests | 5h | T1 | 🔴 |
|
|
358
|
+
| T3 | CreateProduct use case implementation | 5h | T2 | 🟢 |
|
|
359
|
+
| T4 | PostgreSQL repository implementation + tests | 6h | T2 | 🟢 |
|
|
360
|
+
| T5 | HTTP handler + tests | 5h | T3 | 🔴🟢 |
|
|
361
|
+
| T6 | Integration tests + refactor + documentation | 5h | T4, T5 | 🔵 |
|
|
306
362
|
|
|
307
363
|
**Graph:**
|
|
308
364
|
T1 ──► T2 ──┬──► T4 ──► T5 ──► T7 ──► T8 ──┬──► T9 ──► T10
|
|
@@ -312,18 +368,18 @@ T3 ─────────┴───────────► T6 ──
|
|
|
312
368
|
|
|
313
369
|
### Splitting Large Tasks
|
|
314
370
|
|
|
315
|
-
If a task exceeds
|
|
371
|
+
If a task exceeds 6h, consider splitting it. **Each task MUST have validation test.**
|
|
316
372
|
|
|
317
|
-
| Original (
|
|
318
|
-
|
|
319
|
-
| "
|
|
320
|
-
| "
|
|
373
|
+
| Original (8h+) | Split Into (with tests) |
|
|
374
|
+
|----------------|------------------------|
|
|
375
|
+
| "Full domain layer" (10h) | **T1:** Value objects + tests (4h)<br>**T2:** Aggregate + business rules + tests (6h) |
|
|
376
|
+
| "Full repository" (10h) | **T1:** Interface + Save/FindByID + tests (5h)<br>**T2:** List/Search + advanced queries + tests (5h) |
|
|
321
377
|
|
|
322
378
|
### Task Template with Validation
|
|
323
379
|
|
|
324
380
|
```markdown
|
|
325
381
|
### T{N}: {Task Name}
|
|
326
|
-
- **Estimate:**
|
|
382
|
+
- **Estimate:** 5h
|
|
327
383
|
- **Depends on:** T{N-1}
|
|
328
384
|
- **Methodology:** TDD | STUB
|
|
329
385
|
- **Deliverables:**
|
|
@@ -24,10 +24,23 @@
|
|
|
24
24
|
**Enables (unlocks these):**
|
|
25
25
|
- [Epic ID]: [brief reason]
|
|
26
26
|
|
|
27
|
+
### Technical Documentation (MANDATORY)
|
|
28
|
+
|
|
29
|
+
**Documents used to create this epic:**
|
|
30
|
+
- [ ] `CLAUDE.md` - Project patterns and conventions
|
|
31
|
+
- [ ] `docs/architecture.md` - Section: [specific section]
|
|
32
|
+
- [ ] `docs/architecture/{{module}}/` - Module documentation
|
|
33
|
+
- [ ] `index.md` - Module overview
|
|
34
|
+
- [ ] `architecture.md` - Module design
|
|
35
|
+
- [ ] `data-model.md` - Database schema
|
|
36
|
+
- [ ] `api/` - API contracts
|
|
37
|
+
- [ ] `events/` - Event schemas
|
|
38
|
+
|
|
27
39
|
### Architecture References
|
|
28
40
|
|
|
29
|
-
- [Link to architecture section]
|
|
30
|
-
- [Link to data model]
|
|
41
|
+
- [Link to architecture section that this epic implements]
|
|
42
|
+
- [Link to data model section]
|
|
43
|
+
- [Link to API contracts if applicable]
|
|
31
44
|
|
|
32
45
|
### PRD Coverage
|
|
33
46
|
|
|
@@ -71,8 +84,8 @@ S01 ──► S02 ──► S03 ──► S04
|
|
|
71
84
|
### Story Decomposition Rules
|
|
72
85
|
|
|
73
86
|
Each story MUST:
|
|
74
|
-
1. Be completable in
|
|
75
|
-
2. Have
|
|
87
|
+
1. Be completable in 2-5 days
|
|
88
|
+
2. Have 3-6 atomic tasks (4-6h each)
|
|
76
89
|
3. Have clear dependencies on other stories
|
|
77
90
|
4. Map to specific Acceptance Criteria
|
|
78
91
|
|
|
@@ -90,11 +103,11 @@ Each story MUST:
|
|
|
90
103
|
|
|
91
104
|
| Layer | Stories | Tasks | Hours |
|
|
92
105
|
|-------|---------|-------|-------|
|
|
93
|
-
| Domain | 1 |
|
|
94
|
-
| Application | 1 |
|
|
95
|
-
| Infrastructure | 2 |
|
|
96
|
-
| Testing | 1 |
|
|
97
|
-
| **Total** | **5** | **
|
|
106
|
+
| Domain | 1 | 4 | 20h |
|
|
107
|
+
| Application | 1 | 4 | 22h |
|
|
108
|
+
| Infrastructure | 2 | 5 | 28h |
|
|
109
|
+
| Testing | 1 | 3 | 15h |
|
|
110
|
+
| **Total** | **5** | **16** | **85h** |
|
|
98
111
|
|
|
99
112
|
---
|
|
100
113
|
|
|
@@ -55,7 +55,7 @@ METHODOLOGY: {{methodology}} (tdd | stub)
|
|
|
55
55
|
- STUB: Interface → Stub → Test → Full Implementation
|
|
56
56
|
|
|
57
57
|
RULES:
|
|
58
|
-
- Each task is
|
|
58
|
+
- Each task is 4-6 hours of focused work
|
|
59
59
|
- Each task includes TEST as validation gate
|
|
60
60
|
- Tasks have explicit dependencies
|
|
61
61
|
- Dev agent respects dependency order
|
|
@@ -98,108 +98,101 @@ T3 ───────────────┴──► T6
|
|
|
98
98
|
|
|
99
99
|
| ID | Task | Est | Deps | Test | Status |
|
|
100
100
|
|----|------|-----|------|------|--------|
|
|
101
|
-
| T1 | {{task_1}} |
|
|
102
|
-
| T2 | {{task_2}} |
|
|
103
|
-
| T3 | {{task_3}} |
|
|
104
|
-
| T4 | {{task_4}} |
|
|
105
|
-
| T5 | {{task_5}} |
|
|
106
|
-
| T6 | {{task_6}} | 1.5h | T3,T5 | integration | ⬜ |
|
|
101
|
+
| T1 | {{task_1}} | 5h | - | unit | ⬜ |
|
|
102
|
+
| T2 | {{task_2}} | 6h | T1 | unit | ⬜ |
|
|
103
|
+
| T3 | {{task_3}} | 5h | T2 | unit | ⬜ |
|
|
104
|
+
| T4 | {{task_4}} | 5h | T1 | unit | ⬜ |
|
|
105
|
+
| T5 | {{task_5}} | 5h | T3,T4 | integration | ⬜ |
|
|
107
106
|
|
|
108
107
|
**Status:** ⬜ TODO | 🔄 IN_PROGRESS | ✅ DONE | ⏸️ BLOCKED | ❌ FAILED
|
|
109
108
|
|
|
110
109
|
---
|
|
111
110
|
|
|
112
|
-
### T1:
|
|
113
|
-
- **Estimate:**
|
|
111
|
+
### T1: Domain Layer (Aggregates, Value Objects)
|
|
112
|
+
- **Estimate:** 6h
|
|
114
113
|
- **Depends on:** -
|
|
115
|
-
- **Blocks:** T2
|
|
114
|
+
- **Blocks:** T2
|
|
116
115
|
- **Deliverables:**
|
|
117
116
|
- [ ] Interface/contract defined
|
|
118
|
-
- [ ] Value objects
|
|
117
|
+
- [ ] Value objects with validation
|
|
118
|
+
- [ ] Aggregate with business rules
|
|
119
|
+
- [ ] Factory methods
|
|
119
120
|
- **Validation Test:**
|
|
120
|
-
- [ ]
|
|
121
|
+
- [ ] Value object tests (validation, equality)
|
|
122
|
+
- [ ] Aggregate creation tests
|
|
123
|
+
- [ ] Business rules tests
|
|
124
|
+
- [ ] **⚠️ ALL TESTS MUST PASS**
|
|
121
125
|
- **Notes:** {{implementation_hint}}
|
|
122
126
|
|
|
123
127
|
---
|
|
124
128
|
|
|
125
|
-
### T2:
|
|
126
|
-
- **Estimate:**
|
|
129
|
+
### T2: Repository Interface + Use Case Tests
|
|
130
|
+
- **Estimate:** 5h
|
|
127
131
|
- **Depends on:** T1
|
|
128
|
-
- **Blocks:** T3
|
|
132
|
+
- **Blocks:** T3, T4
|
|
129
133
|
- **Deliverables:**
|
|
130
|
-
- [ ]
|
|
131
|
-
- [ ]
|
|
134
|
+
- [ ] Repository interface (ports)
|
|
135
|
+
- [ ] Use case interface
|
|
136
|
+
- [ ] Use case DTOs (input/output)
|
|
137
|
+
- [ ] Use case tests (with mock repository)
|
|
132
138
|
- **Validation Test:**
|
|
133
|
-
- [ ]
|
|
134
|
-
- [ ]
|
|
135
|
-
- [ ] Test business rules
|
|
139
|
+
- [ ] Use case happy path test
|
|
140
|
+
- [ ] Use case error handling tests
|
|
136
141
|
- [ ] **⚠️ ALL TESTS MUST PASS**
|
|
137
142
|
- **Notes:** {{implementation_hint}}
|
|
138
143
|
|
|
139
144
|
---
|
|
140
145
|
|
|
141
|
-
### T3:
|
|
142
|
-
- **Estimate:**
|
|
146
|
+
### T3: Use Case Implementation
|
|
147
|
+
- **Estimate:** 5h
|
|
143
148
|
- **Depends on:** T2
|
|
144
|
-
- **Blocks:**
|
|
149
|
+
- **Blocks:** T5
|
|
145
150
|
- **Deliverables:**
|
|
146
|
-
- [ ] Use case handler
|
|
147
|
-
- [ ] Input/Output DTOs
|
|
151
|
+
- [ ] Use case handler implementation
|
|
148
152
|
- [ ] Mappers (entity ↔ DTO)
|
|
153
|
+
- [ ] Error handling
|
|
149
154
|
- **Validation Test:**
|
|
150
|
-
- [ ]
|
|
151
|
-
- [ ]
|
|
155
|
+
- [ ] All use case tests pass
|
|
156
|
+
- [ ] Edge cases covered
|
|
152
157
|
- [ ] **⚠️ ALL TESTS MUST PASS**
|
|
153
158
|
- **Notes:** {{implementation_hint}}
|
|
154
159
|
|
|
155
160
|
---
|
|
156
161
|
|
|
157
|
-
### T4:
|
|
158
|
-
- **Estimate:**
|
|
159
|
-
- **Depends on:**
|
|
162
|
+
### T4: Repository Implementation
|
|
163
|
+
- **Estimate:** 6h
|
|
164
|
+
- **Depends on:** T2
|
|
160
165
|
- **Blocks:** T5
|
|
161
166
|
- **Deliverables (TDD):**
|
|
162
|
-
- [ ] Write
|
|
163
|
-
- [ ]
|
|
167
|
+
- [ ] Write repository tests first
|
|
168
|
+
- [ ] PostgreSQL repository implementation
|
|
164
169
|
- **Deliverables (STUB):**
|
|
165
170
|
- [ ] In-memory stub first
|
|
166
|
-
- [ ]
|
|
171
|
+
- [ ] PostgreSQL implementation
|
|
167
172
|
- **Validation Test:**
|
|
168
173
|
- [ ] Test Save
|
|
169
|
-
- [ ] Test FindByID
|
|
170
|
-
- [ ] Test
|
|
171
|
-
- [ ] **⚠️ ALL TESTS MUST PASS**
|
|
172
|
-
- **Notes:** {{implementation_hint}}
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
|
|
176
|
-
### T5: Implement API Handler
|
|
177
|
-
- **Estimate:** 1h
|
|
178
|
-
- **Depends on:** T4
|
|
179
|
-
- **Blocks:** T6
|
|
180
|
-
- **Deliverables:**
|
|
181
|
-
- [ ] API handler/controller
|
|
182
|
-
- [ ] Routes registered
|
|
183
|
-
- **Validation Test:**
|
|
184
|
-
- [ ] Test 201 Created
|
|
185
|
-
- [ ] Test 400 Bad Request
|
|
186
|
-
- [ ] Test 403 Forbidden
|
|
174
|
+
- [ ] Test FindByID (found/not found)
|
|
175
|
+
- [ ] Test List with filters
|
|
187
176
|
- [ ] **⚠️ ALL TESTS MUST PASS**
|
|
188
177
|
- **Notes:** {{implementation_hint}}
|
|
189
178
|
|
|
190
179
|
---
|
|
191
180
|
|
|
192
|
-
###
|
|
193
|
-
- **Estimate:**
|
|
194
|
-
- **Depends on:** T3,
|
|
181
|
+
### T5: HTTP Handlers + Integration Tests
|
|
182
|
+
- **Estimate:** 5h
|
|
183
|
+
- **Depends on:** T3, T4
|
|
195
184
|
- **Blocks:** -
|
|
196
185
|
- **Deliverables:**
|
|
197
|
-
- [ ]
|
|
198
|
-
- [ ]
|
|
186
|
+
- [ ] HTTP handler/controller
|
|
187
|
+
- [ ] Routes registered
|
|
188
|
+
- [ ] Request/response validation
|
|
189
|
+
- [ ] Integration tests
|
|
199
190
|
- [ ] Documentation updated
|
|
200
191
|
- **Validation Test:**
|
|
192
|
+
- [ ] Test 201 Created
|
|
193
|
+
- [ ] Test 400 Bad Request (validation)
|
|
194
|
+
- [ ] Test 404 Not Found
|
|
201
195
|
- [ ] E2E: API → Service → Repo → DB
|
|
202
|
-
- [ ] Event published (if applicable)
|
|
203
196
|
- [ ] **⚠️ ALL TESTS MUST PASS**
|
|
204
197
|
- [ ] **⚠️ NO REGRESSIONS**
|
|
205
198
|
- **Notes:** {{implementation_hint}}
|
|
@@ -210,14 +203,14 @@ T3 ───────────────┴──► T6
|
|
|
210
203
|
|
|
211
204
|
| Phase | Tasks (Parallel) | Duration | Tests Required |
|
|
212
205
|
|-------|-----------------|----------|----------------|
|
|
213
|
-
| 1 | T1 |
|
|
214
|
-
| 2 | T2
|
|
215
|
-
| 3 | T3,
|
|
216
|
-
| 4 |
|
|
217
|
-
| **Total** | | **
|
|
206
|
+
| 1 | T1 | 6h | Domain layer tests |
|
|
207
|
+
| 2 | T2 | 5h | Use case tests |
|
|
208
|
+
| 3 | T3, T4 | 6h | Implementation tests |
|
|
209
|
+
| 4 | T5 | 5h | Integration tests |
|
|
210
|
+
| **Total** | | **22h** | **All green** |
|
|
218
211
|
|
|
219
|
-
**Critical Path:** T1 → T2 → T3 →
|
|
220
|
-
**With Parallelism:** ~
|
|
212
|
+
**Critical Path:** T1 → T2 → T3 → T5 = 21h (~3 days)
|
|
213
|
+
**With Parallelism (T3 || T4):** ~2.5 days
|
|
221
214
|
|
|
222
215
|
---
|
|
223
216
|
|
|
@@ -296,6 +289,22 @@ Settings → Editor → TODO → Add Pattern:
|
|
|
296
289
|
|
|
297
290
|
<!-- Context for the developer implementing this story -->
|
|
298
291
|
|
|
292
|
+
### Coding Standards Applied (MANDATORY)
|
|
293
|
+
|
|
294
|
+
**Standards documents used for this story:**
|
|
295
|
+
- [ ] `CLAUDE.md` - Project patterns, file structure, conventions
|
|
296
|
+
- [ ] `docs/coding-standards/` - Detailed coding standards
|
|
297
|
+
- [ ] Naming conventions
|
|
298
|
+
- [ ] Error handling patterns
|
|
299
|
+
- [ ] Testing patterns
|
|
300
|
+
- [ ] `docs/architecture/{{module}}/architecture.md` - Module-specific patterns
|
|
301
|
+
|
|
302
|
+
**Key patterns from CLAUDE.md:**
|
|
303
|
+
- File naming: `{{file_naming_pattern}}`
|
|
304
|
+
- Package structure: `{{package_structure}}`
|
|
305
|
+
- Error handling: `{{error_handling_pattern}}`
|
|
306
|
+
- Test file naming: `{{test_naming_pattern}}`
|
|
307
|
+
|
|
299
308
|
### Architecture Requirements
|
|
300
309
|
- Follow hexagonal architecture patterns
|
|
301
310
|
- Domain layer must not import infrastructure
|
|
@@ -314,10 +323,12 @@ Settings → Editor → TODO → Add Pattern:
|
|
|
314
323
|
### Reference Files
|
|
315
324
|
- `src/path/to/related/file` - [why relevant]
|
|
316
325
|
- `docs/architecture.md#section` - [architecture guidance]
|
|
326
|
+
- `CLAUDE.md#section` - [coding patterns]
|
|
317
327
|
|
|
318
328
|
### Patterns to Follow
|
|
319
|
-
-
|
|
320
|
-
- Follow
|
|
329
|
+
- **MANDATORY:** Follow patterns from `CLAUDE.md`
|
|
330
|
+
- **MANDATORY:** Follow `docs/coding-standards/`
|
|
331
|
+
- Match existing code style in module
|
|
321
332
|
|
|
322
333
|
### API/Interface
|
|
323
334
|
```
|
|
@@ -363,9 +363,9 @@ Read from `config.yaml → development.methodology`:
|
|
|
363
363
|
<output>
|
|
364
364
|
| ID | Task | Est | Depends On | Status |
|
|
365
365
|
|----|------|-----|------------|--------|
|
|
366
|
-
| T1 | ... |
|
|
367
|
-
| T2 | ... |
|
|
368
|
-
| T3 | ... |
|
|
366
|
+
| T1 | ... | 5h | - | ✅ |
|
|
367
|
+
| T2 | ... | 6h | T1 | 🔄 | ← Current
|
|
368
|
+
| T3 | ... | 5h | T1 | ⬜ | ← Can run parallel with T2
|
|
369
369
|
</output>
|
|
370
370
|
</step>
|
|
371
371
|
```
|