@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@comfanion/workflow",
3
- "version": "3.7.2",
3
+ "version": "3.9.0",
4
4
  "description": "Initialize OpenCode Workflow system for AI-assisted development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "3.0.0",
3
- "buildDate": "2026-01-23T16:50:19.585Z",
3
+ "buildDate": "2026-01-23T17:06:57.357Z",
4
4
  "files": [
5
5
  "config.yaml",
6
6
  "FLOW.yaml",
@@ -6,7 +6,7 @@
6
6
  # PROJECT CONFIGURATION
7
7
  # =============================================================================
8
8
  project_name: "ai-wf"
9
- version: "3.7.2"
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 (1-3 days)
131
- └── TASK (1-2 hours)
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** | 1-3 days | 3-8 per epic | User-facing capability |
138
- | **Task** | 1-2 hours | 4-10 per story | Atomic code change |
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 | 6 | 8h | 1d |
176
- | S02 | 3 | 4h | 0.5d |
177
- | S03 | 8 | 12h | 1.5d |
178
- | S04 | 6 | 9h | 1d |
179
- | S05 | 5 | 7h | 1d |
180
- | S06 | 4 | 5h | 0.5d |
181
- | S07 | 4 | 6h | 1d |
182
- | **Total** | **36** | **51h** | **6.5d** |
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:** ~5 days
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:** 25-60 tasks per epic (total across stories)
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 80 tasks total
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 15 tasks
211
- - Can be done in 2-3 days
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 | 1d |
224
- | 2 | S02, S03 | 1.5d |
225
- | 3 | S04, S05 | 1d |
226
- | 4 | S06 | 0.5d |
227
- | 5 | S07 | 1d |
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 (1-2 hours each)
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
- | **Max 2 hours** | No task should exceed 2 hours of work |
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:** 1.5h
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:** 1.5h
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:** 1h | 1.5h | 2h
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 | Write aggregate test | 1h | - | ⬜ |
257
- | T2 | Implement aggregate | 1.5h | T1 | ⬜ |
258
- | T3 | Write repository interface | 0.5h | T1 | ⬜ |
259
- | T4 | Write use case test | 1h | T2 | ⬜ |
260
- | T5 | Implement use case | 1.5h | T3, T4 | ⬜ |
261
- | T6 | Implement repository | 1.5h | T3 | ⬜ |
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:** 12h
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 | Write Product aggregate test | 1h | - | 🔴 |
297
- | T2 | Implement Product aggregate | 1.5h | T1 | 🟢 |
298
- | T3 | Write ProductRepository interface | 0.5h | - | 📝 |
299
- | T4 | Write CreateProduct use case test | 1h | T2, T3 | 🔴 |
300
- | T5 | Implement CreateProduct handler | 1.5h | T4 | 🟢 |
301
- | T6 | Implement PostgreSQL repository | 1.5h | T3 | 🟢 |
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 2h, split it. **Each split task MUST have validation test.**
371
+ If a task exceeds 6h, consider splitting it. **Each task MUST have validation test.**
316
372
 
317
- | Original (4h) | Split Into (with tests) |
318
- |---------------|------------------------|
319
- | "Implement repository" | **T1:** Interface + contract test (0.5h)<br>**T2:** Save method + test (1h)<br>**T3:** FindByID + test (1h)<br>**T4:** List + test (1.5h) |
320
- | "Write aggregate" | **T1:** Value objects + tests (1h)<br>**T2:** Aggregate + creation test (1h)<br>**T3:** Business rules + tests (1h) |
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:** 1.5h
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 1-3 days
75
- 2. Have 4-10 atomic tasks (1-2h each)
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 | 6 | 8h |
94
- | Application | 1 | 8 | 12h |
95
- | Infrastructure | 2 | 9 | 14h |
96
- | Testing | 1 | 4 | 6h |
97
- | **Total** | **5** | **27** | **40h** |
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 1-2 hours max
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}} | 1h | - | unit | ⬜ |
102
- | T2 | {{task_2}} | 1.5h | T1 | unit | ⬜ |
103
- | T3 | {{task_3}} | 1h | T2 | unit | ⬜ |
104
- | T4 | {{task_4}} | 1.5h | T1 | unit | ⬜ |
105
- | T5 | {{task_5}} | 1h | T4 | unit | ⬜ |
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: Define {{entity}} Interface
113
- - **Estimate:** 1h
111
+ ### T1: Domain Layer (Aggregates, Value Objects)
112
+ - **Estimate:** 6h
114
113
  - **Depends on:** -
115
- - **Blocks:** T2, T4
114
+ - **Blocks:** T2
116
115
  - **Deliverables:**
117
116
  - [ ] Interface/contract defined
118
- - [ ] Value objects defined (if needed)
117
+ - [ ] Value objects with validation
118
+ - [ ] Aggregate with business rules
119
+ - [ ] Factory methods
119
120
  - **Validation Test:**
120
- - [ ] Contract test (compile/type check)
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: Implement {{entity}} Entity/Model
126
- - **Estimate:** 1.5h
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
- - [ ] Entity/model with business logic
131
- - [ ] Factory method with validation
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
- - [ ] Test creation happy path
134
- - [ ] Test validation errors
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: Implement Use Case / Service
142
- - **Estimate:** 1h
146
+ ### T3: Use Case Implementation
147
+ - **Estimate:** 5h
143
148
  - **Depends on:** T2
144
- - **Blocks:** T6
149
+ - **Blocks:** T5
145
150
  - **Deliverables:**
146
- - [ ] Use case handler/service
147
- - [ ] Input/Output DTOs
151
+ - [ ] Use case handler implementation
148
152
  - [ ] Mappers (entity ↔ DTO)
153
+ - [ ] Error handling
149
154
  - **Validation Test:**
150
- - [ ] Test happy path (mock repository)
151
- - [ ] Test validation errors
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: Implement Repository / Data Access
158
- - **Estimate:** 1.5h
159
- - **Depends on:** T1
162
+ ### T4: Repository Implementation
163
+ - **Estimate:** 6h
164
+ - **Depends on:** T2
160
165
  - **Blocks:** T5
161
166
  - **Deliverables (TDD):**
162
- - [ ] Write test first
163
- - [ ] Implement repository
167
+ - [ ] Write repository tests first
168
+ - [ ] PostgreSQL repository implementation
164
169
  - **Deliverables (STUB):**
165
170
  - [ ] In-memory stub first
166
- - [ ] Real implementation
171
+ - [ ] PostgreSQL implementation
167
172
  - **Validation Test:**
168
173
  - [ ] Test Save
169
- - [ ] Test FindByID
170
- - [ ] Test FindByID not found
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
- ### T6: Integration Test & Refactor
193
- - **Estimate:** 1.5h
194
- - **Depends on:** T3, T5
181
+ ### T5: HTTP Handlers + Integration Tests
182
+ - **Estimate:** 5h
183
+ - **Depends on:** T3, T4
195
184
  - **Blocks:** -
196
185
  - **Deliverables:**
197
- - [ ] Integration test
198
- - [ ] Code refactored, no smells
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 | 1h | Interface contract |
214
- | 2 | T2, T4 | 1.5h | Unit tests |
215
- | 3 | T3, T5 | 1h | Unit tests |
216
- | 4 | T6 | 1.5h | Integration tests |
217
- | **Total** | | **5h** | **All green** |
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 → T6 = 5h
220
- **With Parallelism:** ~4h
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
- - See `CLAUDE.md` or `docs/coding-standards/` for coding standards
320
- - Follow project architecture patterns
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 | ... | 1h | - | ✅ |
367
- | T2 | ... | 1.5h | T1 | 🔄 | ← Current
368
- | T3 | ... | 1h | T1 | ⬜ | ← Can run parallel with T2
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
  ```