claude-autopm 1.17.0 → 1.20.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 (76) hide show
  1. package/README.md +159 -0
  2. package/autopm/.claude/agents/core/mcp-manager.md +1 -1
  3. package/autopm/.claude/commands/pm/context.md +11 -0
  4. package/autopm/.claude/commands/pm/epic-decompose.md +25 -2
  5. package/autopm/.claude/commands/pm/epic-oneshot.md +13 -0
  6. package/autopm/.claude/commands/pm/epic-start.md +19 -0
  7. package/autopm/.claude/commands/pm/epic-sync-modular.md +10 -10
  8. package/autopm/.claude/commands/pm/epic-sync.md +14 -14
  9. package/autopm/.claude/commands/pm/issue-start.md +50 -5
  10. package/autopm/.claude/commands/pm/issue-sync.md +15 -15
  11. package/autopm/.claude/commands/pm/what-next.md +11 -0
  12. package/autopm/.claude/mcp/MCP-REGISTRY.md +1 -1
  13. package/autopm/.claude/scripts/azure/active-work.js +2 -2
  14. package/autopm/.claude/scripts/azure/blocked.js +13 -13
  15. package/autopm/.claude/scripts/azure/daily.js +1 -1
  16. package/autopm/.claude/scripts/azure/dashboard.js +1 -1
  17. package/autopm/.claude/scripts/azure/feature-list.js +2 -2
  18. package/autopm/.claude/scripts/azure/feature-status.js +1 -1
  19. package/autopm/.claude/scripts/azure/next-task.js +1 -1
  20. package/autopm/.claude/scripts/azure/search.js +1 -1
  21. package/autopm/.claude/scripts/azure/setup.js +15 -15
  22. package/autopm/.claude/scripts/azure/sprint-report.js +2 -2
  23. package/autopm/.claude/scripts/azure/sync.js +1 -1
  24. package/autopm/.claude/scripts/azure/us-list.js +1 -1
  25. package/autopm/.claude/scripts/azure/us-status.js +1 -1
  26. package/autopm/.claude/scripts/azure/validate.js +13 -13
  27. package/autopm/.claude/scripts/lib/frontmatter-utils.sh +42 -7
  28. package/autopm/.claude/scripts/lib/logging-utils.sh +20 -16
  29. package/autopm/.claude/scripts/lib/validation-utils.sh +1 -1
  30. package/autopm/.claude/scripts/pm/context.js +338 -0
  31. package/autopm/.claude/scripts/pm/issue-sync/format-comment.sh +3 -3
  32. package/autopm/.claude/scripts/pm/lib/README.md +85 -0
  33. package/autopm/.claude/scripts/pm/lib/logger.js +78 -0
  34. package/autopm/.claude/scripts/pm/next.js +25 -1
  35. package/autopm/.claude/scripts/pm/what-next.js +660 -0
  36. package/bin/autopm.js +25 -0
  37. package/bin/commands/team.js +86 -0
  38. package/package.json +1 -1
  39. package/lib/agentExecutor.js.deprecated +0 -101
  40. package/lib/azure/cache.js +0 -80
  41. package/lib/azure/client.js +0 -77
  42. package/lib/azure/formatter.js +0 -177
  43. package/lib/commandHelpers.js +0 -177
  44. package/lib/context/manager.js +0 -290
  45. package/lib/documentation/manager.js +0 -528
  46. package/lib/github/workflow-manager.js +0 -546
  47. package/lib/helpers/azure-batch-api.js +0 -133
  48. package/lib/helpers/azure-cache-manager.js +0 -287
  49. package/lib/helpers/azure-parallel-processor.js +0 -158
  50. package/lib/helpers/azure-work-item-create.js +0 -278
  51. package/lib/helpers/gh-issue-create.js +0 -250
  52. package/lib/helpers/interactive-prompt.js +0 -336
  53. package/lib/helpers/output-manager.js +0 -335
  54. package/lib/helpers/progress-indicator.js +0 -258
  55. package/lib/performance/benchmarker.js +0 -429
  56. package/lib/pm/epic-decomposer.js +0 -273
  57. package/lib/pm/epic-syncer.js +0 -221
  58. package/lib/prdMetadata.js +0 -270
  59. package/lib/providers/azure/index.js +0 -234
  60. package/lib/providers/factory.js +0 -87
  61. package/lib/providers/github/index.js +0 -204
  62. package/lib/providers/interface.js +0 -73
  63. package/lib/python/scaffold-manager.js +0 -576
  64. package/lib/react/scaffold-manager.js +0 -745
  65. package/lib/regression/analyzer.js +0 -578
  66. package/lib/release/manager.js +0 -324
  67. package/lib/tailwind/manager.js +0 -486
  68. package/lib/traefik/manager.js +0 -484
  69. package/lib/utils/colors.js +0 -126
  70. package/lib/utils/config.js +0 -317
  71. package/lib/utils/filesystem.js +0 -316
  72. package/lib/utils/logger.js +0 -135
  73. package/lib/utils/prompts.js +0 -294
  74. package/lib/utils/shell.js +0 -237
  75. package/lib/validators/email-validator.js +0 -337
  76. package/lib/workflow/manager.js +0 -449
package/README.md CHANGED
@@ -269,6 +269,165 @@ autopm pm:epic-sync user-auth
269
269
 
270
270
  **That's it!** You're now using structured, spec-driven development with AI agents.
271
271
 
272
+ ## 📋 Complete PM Workflow Guide
273
+
274
+ ### Understanding the Process: PRD → Epic → Tasks
275
+
276
+ ClaudeAutoPM follows a structured workflow from requirements to implementation:
277
+
278
+ ```
279
+ PRD (Product Requirements)
280
+
281
+ Epic Split (Optional - for complex projects)
282
+
283
+ Task Decomposition
284
+
285
+ GitHub/Azure Sync
286
+
287
+ Development & Tracking
288
+ ```
289
+
290
+ ### Quick Decision Guide
291
+
292
+ **When to use ONE epic (`/pm:epic-decompose`):**
293
+ - ✅ Simple feature (1-2 weeks)
294
+ - ✅ Single component (frontend OR backend)
295
+ - ✅ One developer
296
+ - ✅ Examples: "Add user profile page", "Create REST API endpoint"
297
+
298
+ **When to use MULTIPLE epics (`/pm:epic-split`):**
299
+ - ✅ Complex project (2+ months)
300
+ - ✅ Multiple components (frontend + backend + infrastructure)
301
+ - ✅ Multiple teams working in parallel
302
+ - ✅ Examples: "E-commerce platform", "Social media dashboard"
303
+
304
+ ### Workflow Examples
305
+
306
+ <details>
307
+ <summary><b>Simple Feature Workflow</b> - Single epic, quick delivery</summary>
308
+
309
+ ```bash
310
+ # 1. Create PRD
311
+ /pm:prd-new user-profile
312
+
313
+ # 2. Parse and analyze
314
+ /pm:prd-parse user-profile
315
+
316
+ # 3. Decompose into tasks (ONE epic)
317
+ /pm:epic-decompose user-profile
318
+ # Creates: .claude/epics/user-profile/
319
+ # ├── epic.md
320
+ # ├── 001.md # Create profile component
321
+ # ├── 002.md # Add avatar upload
322
+ # ├── 003.md # Implement edit form
323
+ # └── 004.md # Add validation
324
+
325
+ # 4. Sync with GitHub/Azure
326
+ /pm:epic-sync user-profile
327
+
328
+ # 5. Start working
329
+ /pm:next # Get next task
330
+ /pm:issue-start #123 # Begin work
331
+ # ... development ...
332
+ /pm:issue-close #123 # Complete task
333
+ ```
334
+ </details>
335
+
336
+ <details>
337
+ <summary><b>Complex Project Workflow</b> - Multiple epics, phased delivery</summary>
338
+
339
+ ```bash
340
+ # 1. Create PRD
341
+ /pm:prd-new ecommerce-platform
342
+
343
+ # 2. Parse and analyze
344
+ /pm:prd-parse ecommerce-platform
345
+
346
+ # 3. Split into multiple epics (AUTOMATIC)
347
+ /pm:epic-split ecommerce-platform
348
+ # Automatically creates 6 epics:
349
+ # Epic 1: Infrastructure (Docker, DB, Redis) - P0, 1w
350
+ # Epic 2: Auth Backend (JWT, users, RBAC) - P0, 2w
351
+ # Epic 3: Product API (catalog, orders) - P0, 3w
352
+ # Epic 4: Frontend Foundation (React setup) - P0, 1w
353
+ # Epic 5: E-commerce UI (pages, cart) - P1, 3w
354
+ # Epic 6: Testing & Deployment (CI/CD) - P1, 1w
355
+
356
+ # 4. Decompose EACH epic into tasks
357
+ /pm:epic-decompose ecommerce-platform/01-infrastructure # 12 tasks
358
+ /pm:epic-decompose ecommerce-platform/02-auth-backend # 15 tasks
359
+ /pm:epic-decompose ecommerce-platform/03-product-api # 20 tasks
360
+ /pm:epic-decompose ecommerce-platform/04-frontend # 10 tasks
361
+ /pm:epic-decompose ecommerce-platform/05-ui # 25 tasks
362
+ /pm:epic-decompose ecommerce-platform/06-testing # 8 tasks
363
+ # TOTAL: ~90 tasks across 6 epics
364
+
365
+ # 5. Sync ALL epics at once
366
+ /pm:epic-sync ecommerce-platform
367
+
368
+ # 6. Parallel team work
369
+ /pm:next # Team 1: Infrastructure (P0)
370
+ /pm:next # Team 2: Auth Backend (P0, parallel)
371
+ /pm:next # Team 3: Frontend Foundation (P0, parallel)
372
+ ```
373
+ </details>
374
+
375
+ <details>
376
+ <summary><b>Multiple PRDs Workflow</b> - Independent features</summary>
377
+
378
+ ```bash
379
+ # Create multiple independent features
380
+ /pm:prd-new login-page
381
+ /pm:prd-new payment-system
382
+ /pm:prd-new notifications
383
+
384
+ # Process each independently
385
+ /pm:prd-parse login-page
386
+ /pm:epic-decompose login-page # 5 tasks
387
+ /pm:epic-sync login-page
388
+
389
+ /pm:prd-parse payment-system
390
+ /pm:epic-decompose payment-system # 8 tasks
391
+ /pm:epic-sync payment-system
392
+
393
+ /pm:prd-parse notifications
394
+ /pm:epic-decompose notifications # 4 tasks
395
+ /pm:epic-sync notifications
396
+
397
+ # /pm:next automatically picks highest priority across ALL epics
398
+ ```
399
+ </details>
400
+
401
+ ### Key Commands Reference
402
+
403
+ | Command | Purpose | When to Use |
404
+ |---------|---------|-------------|
405
+ | `/pm:prd-new <name>` | Create PRD | Always start here |
406
+ | `/pm:prd-parse <name>` | Analyze PRD | After writing requirements |
407
+ | `/pm:epic-split <name>` | Create multiple epics | Complex, multi-component projects |
408
+ | `/pm:epic-decompose <name>` | Break into tasks | Always (once per epic) |
409
+ | `/pm:epic-sync <name>` | Sync with GitHub/Azure | After decomposition |
410
+ | `/pm:context` | Show current state | Check progress anytime |
411
+ | `/pm:next` | Get next task | Ready to work |
412
+ | `/pm:issue-start #N` | Start task | Before coding |
413
+ | `/pm:issue-close #N` | Complete task | After finishing |
414
+
415
+ ### FAQ
416
+
417
+ **Q: Can I create multiple PRDs at once?**
418
+ A: Yes! Each PRD is independent. Create as many as you need.
419
+
420
+ **Q: How do I decide between epic-split and epic-decompose?**
421
+ A: Use epic-split for multi-component projects (frontend + backend + infra). Use epic-decompose for single-component features.
422
+
423
+ **Q: Do I need to decompose ALL epics after split?**
424
+ A: Yes, before syncing. But you can decompose them one at a time as needed.
425
+
426
+ **Q: How do I check my progress?**
427
+ A: Use `/pm:context` to see current project, epics, and task progress.
428
+
429
+ 📖 **Full Workflow Guide:** See [PM-WORKFLOW-GUIDE.md](PM-WORKFLOW-GUIDE.md) for detailed examples and decision flows.
430
+
272
431
  ## 🎯 Core Workflow: Crawl → Walk → Run
273
432
 
274
433
  ### Crawl: Basic Commands
@@ -28,7 +28,7 @@ Each MCP server is defined in a Markdown file with:
28
28
  - **monitoring**: Observability and metrics
29
29
 
30
30
  ### Configuration Management
31
- - Servers defined in `autopm/.claude/mcp/*.md`
31
+ - Servers defined in `.claude/mcp/*.md`
32
32
  - Active servers tracked in `.claude/config.json`
33
33
  - Runtime config generated to `.claude/mcp-servers.json`
34
34
  - Environment variables in `.claude/.env`
@@ -0,0 +1,11 @@
1
+ ---
2
+ allowed-tools: Bash
3
+ ---
4
+
5
+ Run `node .claude/scripts/pm/context.js` using the Bash tool and show me the complete output.
6
+
7
+ - DO NOT truncate.
8
+ - DO NOT collapse.
9
+ - DO NOT abbreviate.
10
+ - Show ALL lines in full.
11
+ - DO NOT print any other comments.
@@ -50,6 +50,19 @@ Do not bother the user with preflight checks progress ("I'm not going to ...").
50
50
  - For each epic, check if status is already "completed"
51
51
  - If any epic is completed, warn user: "⚠️ Epic(s) marked as completed. Are you sure you want to decompose again?"
52
52
 
53
+ ## ⚠️ TDD REMINDER
54
+
55
+ **CRITICAL: All tasks MUST follow Test-Driven Development (TDD).**
56
+
57
+ When creating tasks, ensure each task includes:
58
+ - TDD Requirements section (RED-GREEN-REFACTOR cycle)
59
+ - "Tests written FIRST" as first item in Definition of Done
60
+ - References to `.claude/rules/tdd.enforcement.md`
61
+
62
+ Every generated task file will remind developers to write tests first.
63
+
64
+ ---
65
+
53
66
  ## Instructions
54
67
 
55
68
  You are decomposing epic(s) into specific, actionable tasks for: **$ARGUMENTS**
@@ -123,6 +136,14 @@ conflicts_with: [] # Tasks that modify same files, e.g., [003, 004]
123
136
  ## Description
124
137
  Clear, concise description of what needs to be done
125
138
 
139
+ ## ⚠️ TDD Requirements
140
+ **This project uses Test-Driven Development. You MUST:**
141
+ 1. 🔴 RED: Write failing test first
142
+ 2. 🟢 GREEN: Write minimal code to make test pass
143
+ 3. 🔵 REFACTOR: Clean up code while keeping tests green
144
+
145
+ See `.claude/rules/tdd.enforcement.md` for complete requirements.
146
+
126
147
  ## Acceptance Criteria
127
148
  - [ ] Specific criterion 1
128
149
  - [ ] Specific criterion 2
@@ -143,8 +164,10 @@ Clear, concise description of what needs to be done
143
164
  - Parallel: true/false (can run in parallel with other tasks)
144
165
 
145
166
  ## Definition of Done
146
- - [ ] Code implemented
147
- - [ ] Tests written and passing
167
+ - [ ] Tests written FIRST (RED phase)
168
+ - [ ] Code implemented (GREEN phase)
169
+ - [ ] Code refactored (REFACTOR phase)
170
+ - [ ] All tests passing
148
171
  - [ ] Documentation updated
149
172
  - [ ] Code reviewed
150
173
  - [ ] Deployed to staging
@@ -11,6 +11,19 @@ Decompose epic into tasks and sync to GitHub in one operation.
11
11
  /pm:epic-oneshot <feature_name>
12
12
  ```
13
13
 
14
+ ## ⚠️ TDD REMINDER
15
+
16
+ **CRITICAL: All tasks generated will include TDD requirements.**
17
+
18
+ This command will create tasks that REQUIRE Test-Driven Development:
19
+ - Each task includes TDD Requirements section
20
+ - Definition of Done starts with "Tests written FIRST"
21
+ - All agents must follow RED-GREEN-REFACTOR cycle
22
+
23
+ See `.claude/rules/tdd.enforcement.md` for complete requirements.
24
+
25
+ ---
26
+
14
27
  ## Instructions
15
28
 
16
29
  ### 1. Validate Prerequisites
@@ -33,6 +33,25 @@ Launch parallel agents to work on epic tasks using the unified branch strategy.
33
33
  ```
34
34
  If output is not empty: "❌ You have uncommitted changes. Please commit or stash them before starting an epic"
35
35
 
36
+ ## ⚠️ TDD REMINDER - READ THIS FIRST
37
+
38
+ **CRITICAL: This project follows Test-Driven Development (TDD).**
39
+
40
+ Before ANY coding work begins on this epic, you MUST follow the RED-GREEN-REFACTOR cycle:
41
+
42
+ 1. **RED Phase**: Write failing test that describes the desired behavior
43
+ 2. **GREEN Phase**: Write minimum code to make test pass
44
+ 3. **REFACTOR Phase**: Clean up code while keeping tests green
45
+
46
+ **For this epic:**
47
+ - All tasks have TDD requirements section
48
+ - Every agent must start with test creation
49
+ - No implementation without tests first
50
+
51
+ See `.claude/rules/tdd.enforcement.md` for complete TDD requirements.
52
+
53
+ ---
54
+
36
55
  ## Instructions
37
56
 
38
57
  ### 1. Create or Enter Branch
@@ -33,7 +33,7 @@ This is handled automatically by our modular scripts, but you can run the check
33
33
 
34
34
  ```bash
35
35
  # Check repository protection (built into all scripts)
36
- bash autopm/.claude/scripts/lib/github-utils.sh
36
+ bash .claude/scripts/lib/github-utils.sh
37
37
  ```
38
38
 
39
39
  The scripts will automatically:
@@ -47,7 +47,7 @@ Create the main GitHub issue for the epic:
47
47
 
48
48
  ```bash
49
49
  # Create epic issue with proper stats and labels
50
- epic_number=$(bash autopm/.claude/scripts/pm/epic-sync/create-epic-issue.sh "$ARGUMENTS")
50
+ epic_number=$(bash .claude/scripts/pm/epic-sync/create-epic-issue.sh "$ARGUMENTS")
51
51
 
52
52
  echo "✅ Epic issue created: #$epic_number"
53
53
  ```
@@ -65,7 +65,7 @@ Create GitHub issues for all tasks with automatic parallel processing:
65
65
 
66
66
  ```bash
67
67
  # Create task issues (automatically chooses sequential/parallel)
68
- task_mapping_file=$(bash autopm/.claude/scripts/pm/epic-sync/create-task-issues.sh "$ARGUMENTS" "$epic_number")
68
+ task_mapping_file=$(bash .claude/scripts/pm/epic-sync/create-task-issues.sh "$ARGUMENTS" "$epic_number")
69
69
 
70
70
  echo "✅ Task issues created. Mapping: $task_mapping_file"
71
71
  ```
@@ -90,7 +90,7 @@ Update all task dependencies and rename files to use GitHub issue numbers:
90
90
 
91
91
  ```bash
92
92
  # Update references and rename files
93
- bash autopm/.claude/scripts/pm/epic-sync/update-references.sh "$ARGUMENTS" "$task_mapping_file"
93
+ bash .claude/scripts/pm/epic-sync/update-references.sh "$ARGUMENTS" "$task_mapping_file"
94
94
 
95
95
  echo "✅ Task references updated and files renamed"
96
96
  ```
@@ -109,7 +109,7 @@ Update the epic.md file with GitHub information and real task IDs:
109
109
 
110
110
  ```bash
111
111
  # Update epic file with GitHub info and real task IDs
112
- bash autopm/.claude/scripts/pm/epic-sync/update-epic-file.sh "$ARGUMENTS" "$epic_number"
112
+ bash .claude/scripts/pm/epic-sync/update-epic-file.sh "$ARGUMENTS" "$epic_number"
113
113
 
114
114
  echo "✅ Epic file updated with GitHub information"
115
115
  ```
@@ -151,7 +151,7 @@ echo "🚀 Starting modular epic sync for: $EPIC_NAME"
151
151
 
152
152
  # Step 1: Create epic issue
153
153
  echo "📝 Creating epic issue..."
154
- epic_number=$(bash autopm/.claude/scripts/pm/epic-sync/create-epic-issue.sh "$EPIC_NAME")
154
+ epic_number=$(bash .claude/scripts/pm/epic-sync/create-epic-issue.sh "$EPIC_NAME")
155
155
 
156
156
  if [[ -z "$epic_number" ]]; then
157
157
  echo "❌ Failed to create epic issue"
@@ -162,7 +162,7 @@ echo "✅ Epic issue created: #$epic_number"
162
162
 
163
163
  # Step 2: Create task issues
164
164
  echo "📋 Creating task issues..."
165
- task_mapping_file=$(bash autopm/.claude/scripts/pm/epic-sync/create-task-issues.sh "$EPIC_NAME" "$epic_number")
165
+ task_mapping_file=$(bash .claude/scripts/pm/epic-sync/create-task-issues.sh "$EPIC_NAME" "$epic_number")
166
166
 
167
167
  if [[ ! -f "$task_mapping_file" ]]; then
168
168
  echo "❌ Failed to create task issues"
@@ -174,13 +174,13 @@ echo "✅ Created $task_count task issues"
174
174
 
175
175
  # Step 3: Update references
176
176
  echo "🔗 Updating task references..."
177
- bash autopm/.claude/scripts/pm/epic-sync/update-references.sh "$EPIC_NAME" "$task_mapping_file"
177
+ bash .claude/scripts/pm/epic-sync/update-references.sh "$EPIC_NAME" "$task_mapping_file"
178
178
 
179
179
  echo "✅ Task references updated"
180
180
 
181
181
  # Step 4: Update epic file
182
182
  echo "📄 Updating epic file..."
183
- bash autopm/.claude/scripts/pm/epic-sync/update-epic-file.sh "$EPIC_NAME" "$epic_number"
183
+ bash .claude/scripts/pm/epic-sync/update-epic-file.sh "$EPIC_NAME" "$epic_number"
184
184
 
185
185
  echo "✅ Epic file updated"
186
186
 
@@ -303,7 +303,7 @@ Enable debug logging for detailed troubleshooting:
303
303
 
304
304
  ```bash
305
305
  export AUTOPM_LOG_LEVEL=0 # Enable debug logging
306
- bash autopm/.claude/scripts/pm/epic-sync/create-epic-issue.sh "$EPIC_NAME"
306
+ bash .claude/scripts/pm/epic-sync/create-epic-issue.sh "$EPIC_NAME"
307
307
  ```
308
308
 
309
309
  ## Migration from Legacy Epic Sync
@@ -52,7 +52,7 @@ This is handled automatically by our modular scripts, but you can run the check
52
52
 
53
53
  ```bash
54
54
  # Check repository protection (built into all scripts)
55
- bash autopm/.claude/scripts/lib/github-utils.sh
55
+ bash .claude/scripts/lib/github-utils.sh
56
56
  ```
57
57
 
58
58
  The scripts will automatically:
@@ -66,7 +66,7 @@ Create the main GitHub issue for the epic:
66
66
 
67
67
  ```bash
68
68
  # Create epic issue with proper stats and labels
69
- epic_number=$(bash autopm/.claude/scripts/pm/epic-sync/create-epic-issue.sh "$ARGUMENTS")
69
+ epic_number=$(bash .claude/scripts/pm/epic-sync/create-epic-issue.sh "$ARGUMENTS")
70
70
 
71
71
  echo "✅ Epic issue created: #$epic_number"
72
72
  ```
@@ -84,7 +84,7 @@ Create GitHub issues for all tasks with automatic parallel processing:
84
84
 
85
85
  ```bash
86
86
  # Create task issues (automatically chooses sequential/parallel)
87
- task_mapping_file=$(bash autopm/.claude/scripts/pm/epic-sync/create-task-issues.sh "$ARGUMENTS" "$epic_number")
87
+ task_mapping_file=$(bash .claude/scripts/pm/epic-sync/create-task-issues.sh "$ARGUMENTS" "$epic_number")
88
88
 
89
89
  echo "✅ Task issues created. Mapping: $task_mapping_file"
90
90
  ```
@@ -109,7 +109,7 @@ Update all task dependencies and rename files to use GitHub issue numbers:
109
109
 
110
110
  ```bash
111
111
  # Update references and rename files
112
- bash autopm/.claude/scripts/pm/epic-sync/update-references.sh "$ARGUMENTS" "$task_mapping_file"
112
+ bash .claude/scripts/pm/epic-sync/update-references.sh "$ARGUMENTS" "$task_mapping_file"
113
113
 
114
114
  echo "✅ Task references updated and files renamed"
115
115
  ```
@@ -128,7 +128,7 @@ Update the epic.md file with GitHub information and real task IDs:
128
128
 
129
129
  ```bash
130
130
  # Update epic file with GitHub info and real task IDs
131
- bash autopm/.claude/scripts/pm/epic-sync/update-epic-file.sh "$ARGUMENTS" "$epic_number"
131
+ bash .claude/scripts/pm/epic-sync/update-epic-file.sh "$ARGUMENTS" "$epic_number"
132
132
 
133
133
  echo "✅ Epic file updated with GitHub information"
134
134
  ```
@@ -172,7 +172,7 @@ echo "🚀 Starting modular epic sync for: $EPIC_NAME"
172
172
 
173
173
  # Step 1: Create epic issue
174
174
  echo "📝 Creating epic issue..."
175
- epic_number=$(bash autopm/.claude/scripts/pm/epic-sync/create-epic-issue.sh "$EPIC_NAME")
175
+ epic_number=$(bash .claude/scripts/pm/epic-sync/create-epic-issue.sh "$EPIC_NAME")
176
176
 
177
177
  if [[ -z "$epic_number" ]]; then
178
178
  echo "❌ Failed to create epic issue"
@@ -183,7 +183,7 @@ echo "✅ Epic issue created: #$epic_number"
183
183
 
184
184
  # Step 2: Create task issues
185
185
  echo "📋 Creating task issues..."
186
- task_mapping_file=$(bash autopm/.claude/scripts/pm/epic-sync/create-task-issues.sh "$EPIC_NAME" "$epic_number")
186
+ task_mapping_file=$(bash .claude/scripts/pm/epic-sync/create-task-issues.sh "$EPIC_NAME" "$epic_number")
187
187
 
188
188
  if [[ ! -f "$task_mapping_file" ]]; then
189
189
  echo "❌ Failed to create task issues"
@@ -195,13 +195,13 @@ echo "✅ Created $task_count task issues"
195
195
 
196
196
  # Step 3: Update references
197
197
  echo "🔗 Updating task references..."
198
- bash autopm/.claude/scripts/pm/epic-sync/update-references.sh "$EPIC_NAME" "$task_mapping_file"
198
+ bash .claude/scripts/pm/epic-sync/update-references.sh "$EPIC_NAME" "$task_mapping_file"
199
199
 
200
200
  echo "✅ Task references updated"
201
201
 
202
202
  # Step 4: Update epic file
203
203
  echo "📄 Updating epic file..."
204
- bash autopm/.claude/scripts/pm/epic-sync/update-epic-file.sh "$EPIC_NAME" "$epic_number"
204
+ bash .claude/scripts/pm/epic-sync/update-epic-file.sh "$EPIC_NAME" "$epic_number"
205
205
 
206
206
  echo "✅ Epic file updated"
207
207
 
@@ -269,7 +269,7 @@ for epic_dir in $epic_dirs; do
269
269
 
270
270
  # Step 1: Create epic issue
271
271
  echo "📝 Creating epic issue..."
272
- epic_number=$(bash autopm/.claude/scripts/pm/epic-sync/create-epic-issue.sh "$FEATURE_NAME/$epic_name")
272
+ epic_number=$(bash .claude/scripts/pm/epic-sync/create-epic-issue.sh "$FEATURE_NAME/$epic_name")
273
273
 
274
274
  if [[ -z "$epic_number" ]]; then
275
275
  echo "⚠️ Failed to create epic issue for $epic_name"
@@ -281,7 +281,7 @@ for epic_dir in $epic_dirs; do
281
281
 
282
282
  # Step 2: Create task issues for this epic
283
283
  echo "📋 Creating task issues..."
284
- task_mapping_file=$(bash autopm/.claude/scripts/pm/epic-sync/create-task-issues.sh "$FEATURE_NAME/$epic_name" "$epic_number")
284
+ task_mapping_file=$(bash .claude/scripts/pm/epic-sync/create-task-issues.sh "$FEATURE_NAME/$epic_name" "$epic_number")
285
285
 
286
286
  if [[ -f "$task_mapping_file" ]]; then
287
287
  task_count=$(wc -l < "$task_mapping_file")
@@ -290,10 +290,10 @@ for epic_dir in $epic_dirs; do
290
290
 
291
291
  # Step 3: Update references
292
292
  echo "🔗 Updating task references..."
293
- bash autopm/.claude/scripts/pm/epic-sync/update-references.sh "$FEATURE_NAME/$epic_name" "$task_mapping_file"
293
+ bash .claude/scripts/pm/epic-sync/update-references.sh "$FEATURE_NAME/$epic_name" "$task_mapping_file"
294
294
 
295
295
  # Step 4: Update epic file
296
- bash autopm/.claude/scripts/pm/epic-sync/update-epic-file.sh "$FEATURE_NAME/$epic_name" "$epic_number"
296
+ bash .claude/scripts/pm/epic-sync/update-epic-file.sh "$FEATURE_NAME/$epic_name" "$epic_number"
297
297
  fi
298
298
  done
299
299
 
@@ -418,7 +418,7 @@ Enable debug logging for detailed troubleshooting:
418
418
 
419
419
  ```bash
420
420
  export AUTOPM_LOG_LEVEL=0 # Enable debug logging
421
- bash autopm/.claude/scripts/pm/epic-sync/create-epic-issue.sh "$EPIC_NAME"
421
+ bash .claude/scripts/pm/epic-sync/create-epic-issue.sh "$EPIC_NAME"
422
422
  ```
423
423
 
424
424
  ## Migration from Legacy Epic Sync
@@ -33,6 +33,26 @@ Begin work on a GitHub issue with parallel agents based on work stream analysis.
33
33
  ` ``
34
34
  If no analysis exists and no --analyze flag, stop execution.
35
35
 
36
+ ## ⚠️ TDD REMINDER - READ THIS FIRST
37
+
38
+ **CRITICAL: This project follows Test-Driven Development (TDD).**
39
+
40
+ Before ANY coding work begins, you MUST follow the RED-GREEN-REFACTOR cycle:
41
+
42
+ 1. **RED Phase**: Write failing test that describes the desired behavior
43
+ 2. **GREEN Phase**: Write minimum code to make test pass
44
+ 3. **REFACTOR Phase**: Clean up code while keeping tests green
45
+
46
+ **For this issue:**
47
+ - Read the task requirements from the task file
48
+ - Identify what tests are needed BEFORE any implementation
49
+ - All agents must start with test creation
50
+ - No implementation without tests first
51
+
52
+ See `.claude/rules/tdd.enforcement.md` for complete TDD requirements.
53
+
54
+ ---
55
+
36
56
  ## Instructions
37
57
 
38
58
  ### 1. Ensure Branch Exists
@@ -103,12 +123,30 @@ Task:
103
123
  description: "Issue #$ARGUMENTS Stream {X}"
104
124
  subagent_type: "{agent_type}"
105
125
  prompt: |
106
- **CRITICAL RULE: This project uses 'Docker-first development'.**
126
+ **🚨 CRITICAL RULE #1: Test-Driven Development (TDD) is MANDATORY**
127
+
128
+ You MUST follow the RED-GREEN-REFACTOR cycle:
129
+ 1. **RED**: Write a FAILING test first that describes the desired behavior
130
+ 2. **GREEN**: Write MINIMUM code to make the test pass
131
+ 3. **REFACTOR**: Clean up code while keeping all tests green
132
+
133
+ **NO CODE WITHOUT TESTS FIRST.** Zero exceptions.
134
+ - Every function starts with a test
135
+ - Every bug fix starts with a test that reproduces it
136
+ - Every feature starts with failing acceptance tests
137
+
138
+ See `.claude/rules/tdd.enforcement.md` for complete requirements.
139
+
140
+ ---
141
+
142
+ **CRITICAL RULE #2: This project uses 'Docker-first development'.**
107
143
  - All commands (dependency installation, tests, running the application) MUST be executed inside a Docker container using `docker compose run --rm <service_name> <command>`.
108
144
  - DO NOT run `npm`, `pip`, `pytest`, etc., directly on the host.
109
145
  - The source code is mounted as a VOLUME, so file changes will be immediately visible in the container (hot-reloading).
110
146
  - Full rules can be found in `.claude/rules/docker-first-development.md`.
111
147
 
148
+ ---
149
+
112
150
  You are working on Issue #$ARGUMENTS in the epic branch.
113
151
 
114
152
  Branch: epic/{epic_name}
@@ -120,10 +158,12 @@ Task:
120
158
 
121
159
  Requirements:
122
160
  1. Read full task from: .claude/epics/{epic_name}/{task_file}
123
- 2. Work ONLY in your assigned files
124
- 3. Commit frequently with format: "Issue #$ARGUMENTS: {specific change}"
125
- 4. Update progress in: .claude/epics/{epic_name}/updates/$ARGUMENTS/stream-{X}.md
126
- 5. Follow coordination rules in /rules/agent-coordination.md
161
+ 2. **START WITH TESTS**: Write failing tests BEFORE any implementation
162
+ 3. Work ONLY in your assigned files
163
+ 4. Follow TDD cycle: RED (test fails) → GREEN (minimal code) → REFACTOR (cleanup)
164
+ 5. Commit frequently with format: "Issue #$ARGUMENTS: {specific change}"
165
+ 6. Update progress in: .claude/epics/{epic_name}/updates/$ARGUMENTS/stream-{X}.md
166
+ 7. Follow coordination rules in /rules/agent-coordination.md
127
167
 
128
168
  If you need to modify files outside your scope:
129
169
  - Check if another stream owns them
@@ -156,6 +196,11 @@ Launching {count} parallel agents:
156
196
  Progress tracking:
157
197
  .claude/epics/{epic_name}/updates/$ARGUMENTS/
158
198
 
199
+ ⚠️ TDD CHECKLIST - All agents MUST follow:
200
+ 1. ❌ RED: Write failing test
201
+ 2. ❌ GREEN: Make test pass (minimal code)
202
+ 3. ❌ REFACTOR: Clean up code
203
+
159
204
  Monitor with: /pm:epic-status {epic_name}
160
205
  Sync updates: /pm:issue-sync $ARGUMENTS
161
206
  ` ``