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.
- package/README.md +159 -0
- package/autopm/.claude/agents/README.md +1 -1
- package/autopm/.claude/agents/core/mcp-manager.md +1 -1
- package/autopm/.claude/agents/decision-matrices/python-backend-selection.md +25 -25
- package/autopm/.claude/agents/decision-matrices/ui-framework-selection.md +43 -43
- package/autopm/.claude/agents/devops/github-operations-specialist.md +1 -1
- package/autopm/.claude/agents/frameworks/README.md +5 -5
- package/autopm/.claude/agents/frameworks/e2e-test-engineer.md +1 -1
- package/autopm/.claude/agents/frameworks/nats-messaging-expert.md +1 -1
- package/autopm/.claude/agents/frameworks/react-frontend-engineer.md +1 -1
- package/autopm/.claude/agents/frameworks/react-ui-expert.md +3 -3
- package/autopm/.claude/agents/frameworks/tailwindcss-expert.md +3 -3
- package/autopm/.claude/agents/frameworks/ux-design-expert.md +3 -3
- package/autopm/.claude/commands/infrastructure/traefik-setup.md +1 -1
- package/autopm/.claude/commands/playwright/test-scaffold.md +1 -1
- package/autopm/.claude/commands/pm/context.md +11 -0
- package/autopm/.claude/commands/pm/epic-decompose.md +25 -2
- package/autopm/.claude/commands/pm/epic-oneshot.md +13 -0
- package/autopm/.claude/commands/pm/epic-start.md +19 -0
- package/autopm/.claude/commands/pm/epic-sync-modular.md +10 -10
- package/autopm/.claude/commands/pm/epic-sync.md +14 -14
- package/autopm/.claude/commands/pm/issue-start.md +50 -5
- package/autopm/.claude/commands/pm/issue-sync.md +15 -15
- package/autopm/.claude/commands/pm/what-next.md +11 -0
- package/autopm/.claude/commands/ui/bootstrap-scaffold.md +6 -5
- package/autopm/.claude/commands/ui/tailwind-system.md +1 -1
- package/autopm/.claude/examples/mcp/playwright-mcp.md +2 -2
- package/autopm/.claude/examples/mcp-servers.example.json +2 -2
- package/autopm/.claude/hooks/docker-first-enforcement.sh +1 -1
- package/autopm/.claude/mcp/MCP-REGISTRY.md +1 -1
- package/autopm/.claude/mcp/playwright-mcp.md +2 -2
- package/autopm/.claude/rules/agent-coordination.md +26 -24
- package/autopm/.claude/rules/docker-first-development.md +1 -1
- package/autopm/.claude/rules/infrastructure-pipeline.md +1 -1
- package/autopm/.claude/rules/ui-development-standards.md +1 -1
- package/autopm/.claude/rules/visual-testing.md +3 -3
- package/autopm/.claude/scripts/azure/active-work.js +2 -2
- package/autopm/.claude/scripts/azure/blocked.js +13 -13
- package/autopm/.claude/scripts/azure/daily.js +1 -1
- package/autopm/.claude/scripts/azure/dashboard.js +1 -1
- package/autopm/.claude/scripts/azure/feature-list.js +2 -2
- package/autopm/.claude/scripts/azure/feature-status.js +1 -1
- package/autopm/.claude/scripts/azure/next-task.js +1 -1
- package/autopm/.claude/scripts/azure/search.js +1 -1
- package/autopm/.claude/scripts/azure/setup.js +15 -15
- package/autopm/.claude/scripts/azure/sprint-report.js +2 -2
- package/autopm/.claude/scripts/azure/sync.js +1 -1
- package/autopm/.claude/scripts/azure/us-list.js +1 -1
- package/autopm/.claude/scripts/azure/us-status.js +1 -1
- package/autopm/.claude/scripts/azure/validate.js +13 -13
- package/autopm/.claude/scripts/lib/frontmatter-utils.sh +42 -7
- package/autopm/.claude/scripts/lib/logging-utils.sh +20 -16
- package/autopm/.claude/scripts/lib/validation-utils.sh +1 -1
- package/autopm/.claude/scripts/pm/context.js +338 -0
- package/autopm/.claude/scripts/pm/issue-sync/format-comment.sh +3 -3
- package/autopm/.claude/scripts/pm/lib/README.md +85 -0
- package/autopm/.claude/scripts/pm/lib/logger.js +78 -0
- package/autopm/.claude/scripts/pm/next.js +25 -1
- package/autopm/.claude/scripts/pm/what-next.js +660 -0
- package/autopm/.claude/teams.json +3 -5
- package/autopm/.claude/templates/claude-templates/addons/devops-agents.md +2 -2
- package/autopm/.claude/templates/claude-templates/addons/docker-agents.md +4 -4
- package/autopm/.claude/templates/claude-templates/addons/minimal-agents.md +1 -1
- package/autopm/.claude/templates/issue-decomposition/api.yaml +2 -2
- package/autopm/.claude/templates/issue-decomposition/auth.yaml +4 -4
- package/autopm/.claude/templates/issue-decomposition/crud.yaml +3 -3
- package/autopm/.claude/templates/issue-decomposition/default.yaml +1 -1
- package/autopm/.claude/templates/issue-decomposition/ui-feature.yaml +2 -2
- package/bin/autopm.js +25 -0
- package/package.json +1 -2
- package/lib/agentExecutor.js.deprecated +0 -101
- package/lib/azure/cache.js +0 -80
- package/lib/azure/client.js +0 -77
- package/lib/azure/formatter.js +0 -177
- package/lib/commandHelpers.js +0 -177
- package/lib/context/manager.js +0 -290
- package/lib/documentation/manager.js +0 -528
- package/lib/github/workflow-manager.js +0 -546
- package/lib/helpers/azure-batch-api.js +0 -133
- package/lib/helpers/azure-cache-manager.js +0 -287
- package/lib/helpers/azure-parallel-processor.js +0 -158
- package/lib/helpers/azure-work-item-create.js +0 -278
- package/lib/helpers/gh-issue-create.js +0 -250
- package/lib/helpers/interactive-prompt.js +0 -336
- package/lib/helpers/output-manager.js +0 -335
- package/lib/helpers/progress-indicator.js +0 -258
- package/lib/performance/benchmarker.js +0 -429
- package/lib/pm/epic-decomposer.js +0 -273
- package/lib/pm/epic-syncer.js +0 -221
- package/lib/prdMetadata.js +0 -270
- package/lib/providers/azure/index.js +0 -234
- package/lib/providers/factory.js +0 -87
- package/lib/providers/github/index.js +0 -204
- package/lib/providers/interface.js +0 -73
- package/lib/python/scaffold-manager.js +0 -576
- package/lib/react/scaffold-manager.js +0 -745
- package/lib/regression/analyzer.js +0 -578
- package/lib/release/manager.js +0 -324
- package/lib/tailwind/manager.js +0 -486
- package/lib/traefik/manager.js +0 -484
- package/lib/utils/colors.js +0 -126
- package/lib/utils/config.js +0 -317
- package/lib/utils/filesystem.js +0 -316
- package/lib/utils/logger.js +0 -135
- package/lib/utils/prompts.js +0 -294
- package/lib/utils/shell.js +0 -237
- package/lib/validators/email-validator.js +0 -337
- 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
|
|
64
|
-
- Material Design is required (→
|
|
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:
|
|
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
|
-
- **
|
|
157
|
-
- **tailwindcss-expert
|
|
158
|
-
- **
|
|
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
|
|
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
|
-
- [ ]
|
|
147
|
-
- [ ]
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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.
|
|
124
|
-
3.
|
|
125
|
-
4.
|
|
126
|
-
5.
|
|
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
|
|
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
|
|
45
|
-
updates_dir=$(bash
|
|
46
|
-
progress_file=$(bash
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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
|
-
-
|
|
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
|
-
- `
|
|
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/
|
|
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", "
|
|
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": ["
|
|
67
|
+
"agents": ["frontend-testing-engineer", "test-runner"],
|
|
68
68
|
"sources": ["context7", "playwright-mcp"],
|
|
69
69
|
"filters": ["playwright", "testing", "e2e"],
|
|
70
70
|
"maxSize": "50MB",
|