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.
- package/README.md +159 -0
- package/autopm/.claude/agents/core/mcp-manager.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/mcp/MCP-REGISTRY.md +1 -1
- 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/bin/autopm.js +25 -0
- package/bin/commands/team.js +86 -0
- package/package.json +1 -1
- 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
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
|
|
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
|
-
- [ ]
|
|
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
|
` ``
|