claude-autopm 1.18.0 → 1.20.1

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 (108) hide show
  1. package/README.md +159 -0
  2. package/autopm/.claude/agents/README.md +1 -1
  3. package/autopm/.claude/agents/core/mcp-manager.md +1 -1
  4. package/autopm/.claude/agents/decision-matrices/python-backend-selection.md +25 -25
  5. package/autopm/.claude/agents/decision-matrices/ui-framework-selection.md +43 -43
  6. package/autopm/.claude/agents/devops/github-operations-specialist.md +1 -1
  7. package/autopm/.claude/agents/frameworks/README.md +5 -5
  8. package/autopm/.claude/agents/frameworks/e2e-test-engineer.md +1 -1
  9. package/autopm/.claude/agents/frameworks/nats-messaging-expert.md +1 -1
  10. package/autopm/.claude/agents/frameworks/react-frontend-engineer.md +1 -1
  11. package/autopm/.claude/agents/frameworks/react-ui-expert.md +3 -3
  12. package/autopm/.claude/agents/frameworks/tailwindcss-expert.md +3 -3
  13. package/autopm/.claude/agents/frameworks/ux-design-expert.md +3 -3
  14. package/autopm/.claude/commands/infrastructure/traefik-setup.md +1 -1
  15. package/autopm/.claude/commands/playwright/test-scaffold.md +1 -1
  16. package/autopm/.claude/commands/pm/context.md +11 -0
  17. package/autopm/.claude/commands/pm/epic-decompose.md +25 -2
  18. package/autopm/.claude/commands/pm/epic-oneshot.md +13 -0
  19. package/autopm/.claude/commands/pm/epic-start.md +19 -0
  20. package/autopm/.claude/commands/pm/epic-sync-modular.md +10 -10
  21. package/autopm/.claude/commands/pm/epic-sync.md +14 -14
  22. package/autopm/.claude/commands/pm/issue-start.md +50 -5
  23. package/autopm/.claude/commands/pm/issue-sync.md +15 -15
  24. package/autopm/.claude/commands/pm/what-next.md +11 -0
  25. package/autopm/.claude/commands/ui/bootstrap-scaffold.md +6 -5
  26. package/autopm/.claude/commands/ui/tailwind-system.md +1 -1
  27. package/autopm/.claude/examples/mcp/playwright-mcp.md +2 -2
  28. package/autopm/.claude/examples/mcp-servers.example.json +2 -2
  29. package/autopm/.claude/hooks/docker-first-enforcement.sh +1 -1
  30. package/autopm/.claude/mcp/MCP-REGISTRY.md +1 -1
  31. package/autopm/.claude/mcp/playwright-mcp.md +2 -2
  32. package/autopm/.claude/rules/agent-coordination.md +26 -24
  33. package/autopm/.claude/rules/docker-first-development.md +1 -1
  34. package/autopm/.claude/rules/infrastructure-pipeline.md +1 -1
  35. package/autopm/.claude/rules/ui-development-standards.md +1 -1
  36. package/autopm/.claude/rules/visual-testing.md +3 -3
  37. package/autopm/.claude/scripts/azure/active-work.js +2 -2
  38. package/autopm/.claude/scripts/azure/blocked.js +13 -13
  39. package/autopm/.claude/scripts/azure/daily.js +1 -1
  40. package/autopm/.claude/scripts/azure/dashboard.js +1 -1
  41. package/autopm/.claude/scripts/azure/feature-list.js +2 -2
  42. package/autopm/.claude/scripts/azure/feature-status.js +1 -1
  43. package/autopm/.claude/scripts/azure/next-task.js +1 -1
  44. package/autopm/.claude/scripts/azure/search.js +1 -1
  45. package/autopm/.claude/scripts/azure/setup.js +15 -15
  46. package/autopm/.claude/scripts/azure/sprint-report.js +2 -2
  47. package/autopm/.claude/scripts/azure/sync.js +1 -1
  48. package/autopm/.claude/scripts/azure/us-list.js +1 -1
  49. package/autopm/.claude/scripts/azure/us-status.js +1 -1
  50. package/autopm/.claude/scripts/azure/validate.js +13 -13
  51. package/autopm/.claude/scripts/lib/frontmatter-utils.sh +42 -7
  52. package/autopm/.claude/scripts/lib/logging-utils.sh +20 -16
  53. package/autopm/.claude/scripts/lib/validation-utils.sh +1 -1
  54. package/autopm/.claude/scripts/pm/context.js +338 -0
  55. package/autopm/.claude/scripts/pm/issue-sync/format-comment.sh +3 -3
  56. package/autopm/.claude/scripts/pm/lib/README.md +85 -0
  57. package/autopm/.claude/scripts/pm/lib/logger.js +78 -0
  58. package/autopm/.claude/scripts/pm/next.js +25 -1
  59. package/autopm/.claude/scripts/pm/what-next.js +660 -0
  60. package/autopm/.claude/teams.json +3 -5
  61. package/autopm/.claude/templates/claude-templates/addons/devops-agents.md +2 -2
  62. package/autopm/.claude/templates/claude-templates/addons/docker-agents.md +4 -4
  63. package/autopm/.claude/templates/claude-templates/addons/minimal-agents.md +1 -1
  64. package/autopm/.claude/templates/issue-decomposition/api.yaml +2 -2
  65. package/autopm/.claude/templates/issue-decomposition/auth.yaml +4 -4
  66. package/autopm/.claude/templates/issue-decomposition/crud.yaml +3 -3
  67. package/autopm/.claude/templates/issue-decomposition/default.yaml +1 -1
  68. package/autopm/.claude/templates/issue-decomposition/ui-feature.yaml +2 -2
  69. package/bin/autopm.js +25 -0
  70. package/package.json +1 -2
  71. package/lib/agentExecutor.js.deprecated +0 -101
  72. package/lib/azure/cache.js +0 -80
  73. package/lib/azure/client.js +0 -77
  74. package/lib/azure/formatter.js +0 -177
  75. package/lib/commandHelpers.js +0 -177
  76. package/lib/context/manager.js +0 -290
  77. package/lib/documentation/manager.js +0 -528
  78. package/lib/github/workflow-manager.js +0 -546
  79. package/lib/helpers/azure-batch-api.js +0 -133
  80. package/lib/helpers/azure-cache-manager.js +0 -287
  81. package/lib/helpers/azure-parallel-processor.js +0 -158
  82. package/lib/helpers/azure-work-item-create.js +0 -278
  83. package/lib/helpers/gh-issue-create.js +0 -250
  84. package/lib/helpers/interactive-prompt.js +0 -336
  85. package/lib/helpers/output-manager.js +0 -335
  86. package/lib/helpers/progress-indicator.js +0 -258
  87. package/lib/performance/benchmarker.js +0 -429
  88. package/lib/pm/epic-decomposer.js +0 -273
  89. package/lib/pm/epic-syncer.js +0 -221
  90. package/lib/prdMetadata.js +0 -270
  91. package/lib/providers/azure/index.js +0 -234
  92. package/lib/providers/factory.js +0 -87
  93. package/lib/providers/github/index.js +0 -204
  94. package/lib/providers/interface.js +0 -73
  95. package/lib/python/scaffold-manager.js +0 -576
  96. package/lib/react/scaffold-manager.js +0 -745
  97. package/lib/regression/analyzer.js +0 -578
  98. package/lib/release/manager.js +0 -324
  99. package/lib/tailwind/manager.js +0 -486
  100. package/lib/traefik/manager.js +0 -484
  101. package/lib/utils/colors.js +0 -126
  102. package/lib/utils/config.js +0 -317
  103. package/lib/utils/filesystem.js +0 -316
  104. package/lib/utils/logger.js +0 -135
  105. package/lib/utils/prompts.js +0 -294
  106. package/lib/utils/shell.js +0 -237
  107. package/lib/validators/email-validator.js +0 -337
  108. package/lib/workflow/manager.js +0 -449
@@ -60,8 +60,8 @@ Access Tailwind CSS documentation through context7:
60
60
  - Long-term maintainability and scalability are important
61
61
 
62
62
  **Consider alternatives when:**
63
- - Need rapid development with pre-built components (→ bootstrap-ui-expert or chakra-ui-expert)
64
- - Material Design is required (→ mui-react-expert)
63
+ - Need rapid development with pre-built components (→ bootstrap-ui-expert or react-frontend-engineer)
64
+ - Material Design is required (→ react-frontend-engineer)
65
65
  - Enterprise data components needed (→ antd-react-expert)
66
66
  - Team lacks advanced CSS skills (→ component-based alternatives)
67
67
 
@@ -737,5 +737,5 @@ module.exports = {
737
737
  ## Integration Points
738
738
 
739
739
  - Works with: react-frontend-engineer, ux-design-expert, bootstrap-ui-expert
740
- - Hands off to: playwright-test-engineer for testing
740
+ - Hands off to: frontend-testing-engineer for testing
741
741
  - Receives from: design system specifications and UI mockups
@@ -153,9 +153,9 @@ Access UX design and accessibility documentation:
153
153
 
154
154
  ### Works With
155
155
  - **react-frontend-engineer**: Implementation of designs
156
- - **mui-react-expert**, **chakra-ui-expert**, **antd-react-expert**: Component styling
157
- - **tailwindcss-expert**, **bootstrap-ui-expert**: CSS frameworks
158
- - **playwright-test-engineer**: Usability testing automation
156
+ - **react-ui-expert**: Component styling and design systems
157
+ - **tailwindcss-expert**: Utility-first CSS framework
158
+ - **frontend-testing-engineer**: Usability testing automation
159
159
  - **javascript-frontend-engineer**: Interactive features
160
160
 
161
161
  ### Provides To
@@ -38,5 +38,5 @@ Parameters: environment=production, ssl=letsencrypt, discovery=docker, features=
38
38
  ```
39
39
 
40
40
  ## Related Agents
41
- - docker-expert: For container configuration
41
+ - docker-containerization-expert: For container configuration
42
42
  - kubernetes-orchestrator: For K8s integration
@@ -18,4 +18,4 @@ Creates Playwright test suite with Page Object Model.
18
18
  - Adds visual regression setup
19
19
  - Creates CI/CD integration scripts
20
20
 
21
- Use the playwright-test-engineer agent to create comprehensive E2E test suite.
21
+ Use the frontend-testing-engineer agent to create comprehensive E2E test suite.
@@ -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
  ` ``
@@ -33,7 +33,7 @@ Run comprehensive validation checks before syncing:
33
33
 
34
34
  ```bash
35
35
  # Run preflight validation
36
- bash autopm/.claude/scripts/pm/issue-sync/preflight-validation.sh "$ARGUMENTS"
36
+ bash .claude/scripts/pm/issue-sync/preflight-validation.sh "$ARGUMENTS"
37
37
 
38
38
  if [[ $? -ne 0 ]]; then
39
39
  echo "❌ Preflight validation failed"
@@ -41,9 +41,9 @@ if [[ $? -ne 0 ]]; then
41
41
  fi
42
42
 
43
43
  # Extract validated paths from preflight output
44
- epic_name=$(bash autopm/.claude/scripts/pm/issue-sync/preflight-validation.sh "$ARGUMENTS" | grep "Epic:" | cut -d: -f2- | xargs)
45
- updates_dir=$(bash autopm/.claude/scripts/pm/issue-sync/preflight-validation.sh "$ARGUMENTS" | grep "Updates Directory:" | cut -d: -f2- | xargs)
46
- progress_file=$(bash autopm/.claude/scripts/pm/issue-sync/preflight-validation.sh "$ARGUMENTS" | grep "Progress File:" | cut -d: -f2- | xargs)
44
+ epic_name=$(bash .claude/scripts/pm/issue-sync/preflight-validation.sh "$ARGUMENTS" | grep "Epic:" | cut -d: -f2- | xargs)
45
+ updates_dir=$(bash .claude/scripts/pm/issue-sync/preflight-validation.sh "$ARGUMENTS" | grep "Updates Directory:" | cut -d: -f2- | xargs)
46
+ progress_file=$(bash .claude/scripts/pm/issue-sync/preflight-validation.sh "$ARGUMENTS" | grep "Progress File:" | cut -d: -f2- | xargs)
47
47
 
48
48
  echo "✅ Preflight checks passed"
49
49
  ```
@@ -65,7 +65,7 @@ Collect all local development updates:
65
65
  last_sync=$(grep '^last_sync:' "$progress_file" | sed 's/^last_sync: *//')
66
66
 
67
67
  # Gather all updates since last sync
68
- consolidated_updates=$(bash autopm/.claude/scripts/pm/issue-sync/gather-updates.sh \
68
+ consolidated_updates=$(bash .claude/scripts/pm/issue-sync/gather-updates.sh \
69
69
  "$ARGUMENTS" \
70
70
  "$updates_dir" \
71
71
  "$last_sync")
@@ -95,7 +95,7 @@ if [[ "$completion" == "100" ]]; then
95
95
  fi
96
96
 
97
97
  # Format the comment
98
- formatted_comment=$(bash autopm/.claude/scripts/pm/issue-sync/format-comment.sh \
98
+ formatted_comment=$(bash .claude/scripts/pm/issue-sync/format-comment.sh \
99
99
  "$ARGUMENTS" \
100
100
  "$consolidated_updates" \
101
101
  "$progress_file" \
@@ -119,7 +119,7 @@ Post the formatted comment to GitHub:
119
119
 
120
120
  ```bash
121
121
  # Post comment to GitHub issue
122
- comment_url=$(bash autopm/.claude/scripts/pm/issue-sync/post-comment.sh \
122
+ comment_url=$(bash .claude/scripts/pm/issue-sync/post-comment.sh \
123
123
  "$ARGUMENTS" \
124
124
  "$formatted_comment" \
125
125
  "$is_completion")
@@ -146,7 +146,7 @@ Update local metadata after successful sync:
146
146
 
147
147
  ```bash
148
148
  # Update progress.md frontmatter with sync information
149
- bash autopm/.claude/scripts/pm/issue-sync/update-frontmatter.sh \
149
+ bash .claude/scripts/pm/issue-sync/update-frontmatter.sh \
150
150
  "$ARGUMENTS" \
151
151
  "$progress_file" \
152
152
  "$comment_url" \
@@ -178,13 +178,13 @@ echo "🚀 Starting modular issue sync for: #$ISSUE_NUMBER"
178
178
 
179
179
  # Step 1: Preflight validation
180
180
  echo "🔍 Running preflight validation..."
181
- if ! bash autopm/.claude/scripts/pm/issue-sync/preflight-validation.sh "$ISSUE_NUMBER"; then
181
+ if ! bash .claude/scripts/pm/issue-sync/preflight-validation.sh "$ISSUE_NUMBER"; then
182
182
  echo "❌ Preflight validation failed"
183
183
  exit 1
184
184
  fi
185
185
 
186
186
  # Extract paths from a single preflight run
187
- preflight_output=$(bash autopm/.claude/scripts/pm/issue-sync/preflight-validation.sh "$ISSUE_NUMBER")
187
+ preflight_output=$(bash .claude/scripts/pm/issue-sync/preflight-validation.sh "$ISSUE_NUMBER")
188
188
  epic_name=$(echo "$preflight_output" | grep "Epic:" | cut -d: -f2- | xargs)
189
189
  updates_dir=$(echo "$preflight_output" | grep "Updates Directory:" | cut -d: -f2- | xargs)
190
190
  progress_file=$(echo "$preflight_output" | grep "Progress File:" | cut -d: -f2- | xargs)
@@ -196,7 +196,7 @@ echo " Updates: $updates_dir"
196
196
  # Step 2: Gather updates
197
197
  echo "📝 Gathering local updates..."
198
198
  last_sync=$(grep '^last_sync:' "$progress_file" 2>/dev/null | sed 's/^last_sync: *//' || echo "")
199
- consolidated_updates=$(bash autopm/.claude/scripts/pm/issue-sync/gather-updates.sh \
199
+ consolidated_updates=$(bash .claude/scripts/pm/issue-sync/gather-updates.sh \
200
200
  "$ISSUE_NUMBER" \
201
201
  "$updates_dir" \
202
202
  "$last_sync")
@@ -217,7 +217,7 @@ if [[ "$completion" == "100" ]]; then
217
217
  echo " Task is complete - formatting completion comment"
218
218
  fi
219
219
 
220
- formatted_comment=$(bash autopm/.claude/scripts/pm/issue-sync/format-comment.sh \
220
+ formatted_comment=$(bash .claude/scripts/pm/issue-sync/format-comment.sh \
221
221
  "$ISSUE_NUMBER" \
222
222
  "$consolidated_updates" \
223
223
  "$progress_file" \
@@ -232,7 +232,7 @@ echo "✅ Comment formatted"
232
232
 
233
233
  # Step 4: Post to GitHub
234
234
  echo "☁️ Posting to GitHub..."
235
- comment_url=$(bash autopm/.claude/scripts/pm/issue-sync/post-comment.sh \
235
+ comment_url=$(bash .claude/scripts/pm/issue-sync/post-comment.sh \
236
236
  "$ISSUE_NUMBER" \
237
237
  "$formatted_comment" \
238
238
  "$is_completion")
@@ -247,7 +247,7 @@ echo "✅ Comment posted successfully"
247
247
 
248
248
  # Step 5: Update frontmatter
249
249
  echo "📝 Updating local metadata..."
250
- bash autopm/.claude/scripts/pm/issue-sync/update-frontmatter.sh \
250
+ bash .claude/scripts/pm/issue-sync/update-frontmatter.sh \
251
251
  "$ISSUE_NUMBER" \
252
252
  "$progress_file" \
253
253
  "$comment_url" \
@@ -376,7 +376,7 @@ Enable debug logging for detailed troubleshooting:
376
376
 
377
377
  ```bash
378
378
  export AUTOPM_LOG_LEVEL=0 # Enable debug logging
379
- bash autopm/.claude/scripts/pm/issue-sync/preflight-validation.sh "$ISSUE_NUMBER"
379
+ bash .claude/scripts/pm/issue-sync/preflight-validation.sh "$ISSUE_NUMBER"
380
380
  ```
381
381
 
382
382
  ## Migration from Legacy Issue Sync
@@ -0,0 +1,11 @@
1
+ ---
2
+ allowed-tools: Bash
3
+ ---
4
+
5
+ Run `node .claude/scripts/pm/what-next.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.
@@ -8,7 +8,7 @@ Create a complete Bootstrap-based UI structure with responsive components and th
8
8
  ```
9
9
 
10
10
  ## Purpose
11
- Use the bootstrap-ui-expert agent to create a complete Bootstrap application scaffold with modern components, responsive design, and customizable themes.
11
+ Use the react-ui-expert agent (with framework=bootstrap) to create a complete Bootstrap application scaffold with modern components, responsive design, and customizable themes.
12
12
 
13
13
  ## Parameters
14
14
  - `theme`: Theme variant (light, dark, corporate, minimal)
@@ -18,7 +18,7 @@ Use the bootstrap-ui-expert agent to create a complete Bootstrap application sca
18
18
 
19
19
  ## Agent Usage
20
20
  ```
21
- Use the bootstrap-ui-expert agent to create a complete Bootstrap application scaffold.
21
+ Use the react-ui-expert agent with framework=bootstrap to create a complete Bootstrap application scaffold.
22
22
  ```
23
23
 
24
24
  ## Expected Outcome
@@ -32,10 +32,11 @@ Use the bootstrap-ui-expert agent to create a complete Bootstrap application sca
32
32
  ## Example Usage
33
33
  ```
34
34
  Task: Create Bootstrap dashboard with sidebar navigation, responsive cards grid, and contact forms
35
- Agent: bootstrap-ui-expert
36
- Parameters: theme=corporate, components=navbar,sidebar,cards,forms,modals, responsive=all, features=dark-mode,validation
35
+ Agent: react-ui-expert
36
+ Parameters: framework=bootstrap, theme=corporate, components=navbar,sidebar,cards,forms,modals, responsive=all, features=dark-mode,validation
37
37
  ```
38
38
 
39
39
  ## Related Agents
40
40
  - tailwindcss-expert: For utility-first alternative
41
- - react-frontend-engineer: For React + Bootstrap integration
41
+ - react-frontend-engineer: For React + Bootstrap integration
42
+ - react-ui-expert: Main agent for UI component architecture
@@ -37,5 +37,5 @@ Parameters: theme=modern, utilities=custom-spacing,gradients,animations, compone
37
37
  ```
38
38
 
39
39
  ## Related Agents
40
- - bootstrap-ui-expert: For component-based alternative
40
+ - react-ui-expert: For component-based alternative
41
41
  - react-frontend-engineer: For React + Tailwind integration
@@ -74,7 +74,7 @@ autopm mcp sync
74
74
  ### Integration with Agents
75
75
 
76
76
  Used extensively with:
77
- - `e2e-test-engineer` - For E2E test creation
77
+ - `frontend-testing-engineer` - For E2E test creation
78
78
  - `react-frontend-engineer` - For UI testing
79
79
  - `ux-design-expert` - For visual regression
80
80
 
@@ -309,4 +309,4 @@ npx playwright show-trace trace.zip
309
309
 
310
310
  - [Playwright Documentation](https://playwright.dev)
311
311
  - [MCP Browser Control](https://modelcontextprotocol.org/browser)
312
- - [E2E Test Engineer Agent](../agents/frameworks/e2e-test-engineer.md)
312
+ - [E2E Test Engineer Agent](../agents/frameworks/frontend-testing-engineer.md)
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "react-docs": {
39
39
  "type": "shared",
40
- "agents": ["react-frontend-engineer", "playwright-test-engineer"],
40
+ "agents": ["react-frontend-engineer", "frontend-testing-engineer"],
41
41
  "sources": ["context7"],
42
42
  "filters": ["react", "nextjs", "typescript", "tailwind", "vite"],
43
43
  "maxSize": "75MB",
@@ -64,7 +64,7 @@
64
64
  },
65
65
  "testing-context": {
66
66
  "type": "shared",
67
- "agents": ["playwright-test-engineer", "test-runner"],
67
+ "agents": ["frontend-testing-engineer", "test-runner"],
68
68
  "sources": ["context7", "playwright-mcp"],
69
69
  "filters": ["playwright", "testing", "e2e"],
70
70
  "maxSize": "50MB",