claude-autopm 2.7.0 → 2.8.2
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 +307 -56
- package/autopm/.claude/.env +158 -0
- package/autopm/.claude/settings.local.json +9 -0
- package/bin/autopm.js +11 -2
- package/bin/commands/epic.js +23 -3
- package/bin/commands/plugin.js +395 -0
- package/bin/commands/team.js +184 -10
- package/install/install.js +223 -4
- package/lib/cli/commands/issue.js +360 -20
- package/lib/plugins/PluginManager.js +1328 -0
- package/lib/plugins/PluginManager.old.js +400 -0
- package/lib/providers/AzureDevOpsProvider.js +575 -0
- package/lib/providers/GitHubProvider.js +475 -0
- package/lib/services/EpicService.js +1092 -3
- package/lib/services/IssueService.js +991 -0
- package/package.json +9 -1
- package/scripts/publish-plugins.sh +166 -0
- package/autopm/.claude/agents/cloud/README.md +0 -55
- package/autopm/.claude/agents/cloud/aws-cloud-architect.md +0 -521
- package/autopm/.claude/agents/cloud/azure-cloud-architect.md +0 -436
- package/autopm/.claude/agents/cloud/gcp-cloud-architect.md +0 -385
- package/autopm/.claude/agents/cloud/gcp-cloud-functions-engineer.md +0 -306
- package/autopm/.claude/agents/cloud/gemini-api-expert.md +0 -880
- package/autopm/.claude/agents/cloud/kubernetes-orchestrator.md +0 -566
- package/autopm/.claude/agents/cloud/openai-python-expert.md +0 -1087
- package/autopm/.claude/agents/cloud/terraform-infrastructure-expert.md +0 -454
- package/autopm/.claude/agents/core/agent-manager.md +0 -296
- package/autopm/.claude/agents/core/code-analyzer.md +0 -131
- package/autopm/.claude/agents/core/file-analyzer.md +0 -162
- package/autopm/.claude/agents/core/test-runner.md +0 -200
- package/autopm/.claude/agents/data/airflow-orchestration-expert.md +0 -52
- package/autopm/.claude/agents/data/kedro-pipeline-expert.md +0 -50
- package/autopm/.claude/agents/data/langgraph-workflow-expert.md +0 -520
- package/autopm/.claude/agents/databases/README.md +0 -50
- package/autopm/.claude/agents/databases/bigquery-expert.md +0 -392
- package/autopm/.claude/agents/databases/cosmosdb-expert.md +0 -368
- package/autopm/.claude/agents/databases/mongodb-expert.md +0 -398
- package/autopm/.claude/agents/databases/postgresql-expert.md +0 -321
- package/autopm/.claude/agents/databases/redis-expert.md +0 -52
- package/autopm/.claude/agents/devops/README.md +0 -52
- package/autopm/.claude/agents/devops/azure-devops-specialist.md +0 -308
- package/autopm/.claude/agents/devops/docker-containerization-expert.md +0 -298
- package/autopm/.claude/agents/devops/github-operations-specialist.md +0 -335
- package/autopm/.claude/agents/devops/mcp-context-manager.md +0 -319
- package/autopm/.claude/agents/devops/observability-engineer.md +0 -574
- package/autopm/.claude/agents/devops/ssh-operations-expert.md +0 -1093
- package/autopm/.claude/agents/devops/traefik-proxy-expert.md +0 -444
- package/autopm/.claude/agents/frameworks/README.md +0 -64
- package/autopm/.claude/agents/frameworks/e2e-test-engineer.md +0 -360
- package/autopm/.claude/agents/frameworks/nats-messaging-expert.md +0 -254
- package/autopm/.claude/agents/frameworks/react-frontend-engineer.md +0 -217
- package/autopm/.claude/agents/frameworks/react-ui-expert.md +0 -226
- package/autopm/.claude/agents/frameworks/tailwindcss-expert.md +0 -770
- package/autopm/.claude/agents/frameworks/ux-design-expert.md +0 -244
- package/autopm/.claude/agents/integration/message-queue-engineer.md +0 -794
- package/autopm/.claude/agents/languages/README.md +0 -50
- package/autopm/.claude/agents/languages/bash-scripting-expert.md +0 -541
- package/autopm/.claude/agents/languages/javascript-frontend-engineer.md +0 -197
- package/autopm/.claude/agents/languages/nodejs-backend-engineer.md +0 -226
- package/autopm/.claude/agents/languages/python-backend-engineer.md +0 -214
- package/autopm/.claude/agents/languages/python-backend-expert.md +0 -289
- package/autopm/.claude/agents/testing/frontend-testing-engineer.md +0 -395
- package/autopm/.claude/commands/ai/langgraph-workflow.md +0 -65
- package/autopm/.claude/commands/ai/openai-chat.md +0 -65
- package/autopm/.claude/commands/azure/COMMANDS.md +0 -107
- package/autopm/.claude/commands/azure/COMMAND_MAPPING.md +0 -252
- package/autopm/.claude/commands/azure/INTEGRATION_FIX.md +0 -103
- package/autopm/.claude/commands/azure/README.md +0 -246
- package/autopm/.claude/commands/azure/active-work.md +0 -198
- package/autopm/.claude/commands/azure/aliases.md +0 -143
- package/autopm/.claude/commands/azure/blocked-items.md +0 -287
- package/autopm/.claude/commands/azure/clean.md +0 -93
- package/autopm/.claude/commands/azure/docs-query.md +0 -48
- package/autopm/.claude/commands/azure/feature-decompose.md +0 -380
- package/autopm/.claude/commands/azure/feature-list.md +0 -61
- package/autopm/.claude/commands/azure/feature-new.md +0 -115
- package/autopm/.claude/commands/azure/feature-show.md +0 -205
- package/autopm/.claude/commands/azure/feature-start.md +0 -130
- package/autopm/.claude/commands/azure/fix-integration-example.md +0 -93
- package/autopm/.claude/commands/azure/help.md +0 -150
- package/autopm/.claude/commands/azure/import-us.md +0 -269
- package/autopm/.claude/commands/azure/init.md +0 -211
- package/autopm/.claude/commands/azure/next-task.md +0 -262
- package/autopm/.claude/commands/azure/search.md +0 -160
- package/autopm/.claude/commands/azure/sprint-status.md +0 -235
- package/autopm/.claude/commands/azure/standup.md +0 -260
- package/autopm/.claude/commands/azure/sync-all.md +0 -99
- package/autopm/.claude/commands/azure/task-analyze.md +0 -186
- package/autopm/.claude/commands/azure/task-close.md +0 -329
- package/autopm/.claude/commands/azure/task-edit.md +0 -145
- package/autopm/.claude/commands/azure/task-list.md +0 -263
- package/autopm/.claude/commands/azure/task-new.md +0 -84
- package/autopm/.claude/commands/azure/task-reopen.md +0 -79
- package/autopm/.claude/commands/azure/task-show.md +0 -126
- package/autopm/.claude/commands/azure/task-start.md +0 -301
- package/autopm/.claude/commands/azure/task-status.md +0 -65
- package/autopm/.claude/commands/azure/task-sync.md +0 -67
- package/autopm/.claude/commands/azure/us-edit.md +0 -164
- package/autopm/.claude/commands/azure/us-list.md +0 -202
- package/autopm/.claude/commands/azure/us-new.md +0 -265
- package/autopm/.claude/commands/azure/us-parse.md +0 -253
- package/autopm/.claude/commands/azure/us-show.md +0 -188
- package/autopm/.claude/commands/azure/us-status.md +0 -320
- package/autopm/.claude/commands/azure/validate.md +0 -86
- package/autopm/.claude/commands/azure/work-item-sync.md +0 -47
- package/autopm/.claude/commands/cloud/infra-deploy.md +0 -38
- package/autopm/.claude/commands/github/workflow-create.md +0 -42
- package/autopm/.claude/commands/infrastructure/ssh-security.md +0 -65
- package/autopm/.claude/commands/infrastructure/traefik-setup.md +0 -65
- package/autopm/.claude/commands/kubernetes/deploy.md +0 -37
- package/autopm/.claude/commands/playwright/test-scaffold.md +0 -38
- package/autopm/.claude/commands/pm/blocked.md +0 -28
- package/autopm/.claude/commands/pm/clean.md +0 -119
- package/autopm/.claude/commands/pm/context-create.md +0 -136
- package/autopm/.claude/commands/pm/context-prime.md +0 -170
- package/autopm/.claude/commands/pm/context-update.md +0 -292
- package/autopm/.claude/commands/pm/context.md +0 -28
- package/autopm/.claude/commands/pm/epic-close.md +0 -86
- package/autopm/.claude/commands/pm/epic-decompose.md +0 -370
- package/autopm/.claude/commands/pm/epic-edit.md +0 -83
- package/autopm/.claude/commands/pm/epic-list.md +0 -30
- package/autopm/.claude/commands/pm/epic-merge.md +0 -222
- package/autopm/.claude/commands/pm/epic-oneshot.md +0 -119
- package/autopm/.claude/commands/pm/epic-refresh.md +0 -119
- package/autopm/.claude/commands/pm/epic-show.md +0 -28
- package/autopm/.claude/commands/pm/epic-split.md +0 -120
- package/autopm/.claude/commands/pm/epic-start.md +0 -195
- package/autopm/.claude/commands/pm/epic-status.md +0 -28
- package/autopm/.claude/commands/pm/epic-sync-modular.md +0 -338
- package/autopm/.claude/commands/pm/epic-sync-original.md +0 -473
- package/autopm/.claude/commands/pm/epic-sync.md +0 -486
- package/autopm/.claude/commands/pm/help.md +0 -28
- package/autopm/.claude/commands/pm/import.md +0 -115
- package/autopm/.claude/commands/pm/in-progress.md +0 -28
- package/autopm/.claude/commands/pm/init.md +0 -28
- package/autopm/.claude/commands/pm/issue-analyze.md +0 -202
- package/autopm/.claude/commands/pm/issue-close.md +0 -119
- package/autopm/.claude/commands/pm/issue-edit.md +0 -93
- package/autopm/.claude/commands/pm/issue-reopen.md +0 -87
- package/autopm/.claude/commands/pm/issue-show.md +0 -41
- package/autopm/.claude/commands/pm/issue-start.md +0 -234
- package/autopm/.claude/commands/pm/issue-status.md +0 -95
- package/autopm/.claude/commands/pm/issue-sync.md +0 -411
- package/autopm/.claude/commands/pm/next.md +0 -28
- package/autopm/.claude/commands/pm/prd-edit.md +0 -82
- package/autopm/.claude/commands/pm/prd-list.md +0 -28
- package/autopm/.claude/commands/pm/prd-new.md +0 -55
- package/autopm/.claude/commands/pm/prd-parse.md +0 -42
- package/autopm/.claude/commands/pm/prd-status.md +0 -28
- package/autopm/.claude/commands/pm/search.md +0 -28
- package/autopm/.claude/commands/pm/standup.md +0 -28
- package/autopm/.claude/commands/pm/status.md +0 -28
- package/autopm/.claude/commands/pm/sync.md +0 -99
- package/autopm/.claude/commands/pm/test-reference-update.md +0 -151
- package/autopm/.claude/commands/pm/validate.md +0 -28
- package/autopm/.claude/commands/pm/what-next.md +0 -28
- package/autopm/.claude/commands/python/api-scaffold.md +0 -50
- package/autopm/.claude/commands/python/docs-query.md +0 -48
- package/autopm/.claude/commands/react/app-scaffold.md +0 -50
- package/autopm/.claude/commands/testing/prime.md +0 -314
- package/autopm/.claude/commands/testing/run.md +0 -125
- package/autopm/.claude/commands/ui/bootstrap-scaffold.md +0 -65
- package/autopm/.claude/commands/ui/tailwind-system.md +0 -64
- package/autopm/.claude/rules/ai-integration-patterns.md +0 -219
- package/autopm/.claude/rules/ci-cd-kubernetes-strategy.md +0 -25
- package/autopm/.claude/rules/database-management-strategy.md +0 -17
- package/autopm/.claude/rules/database-pipeline.md +0 -94
- package/autopm/.claude/rules/devops-troubleshooting-playbook.md +0 -450
- package/autopm/.claude/rules/docker-first-development.md +0 -404
- package/autopm/.claude/rules/infrastructure-pipeline.md +0 -128
- package/autopm/.claude/rules/performance-guidelines.md +0 -403
- package/autopm/.claude/rules/ui-development-standards.md +0 -281
- package/autopm/.claude/rules/ui-framework-rules.md +0 -151
- package/autopm/.claude/rules/ux-design-rules.md +0 -209
- package/autopm/.claude/rules/visual-testing.md +0 -223
- package/autopm/.claude/scripts/azure/README.md +0 -192
- package/autopm/.claude/scripts/azure/active-work.js +0 -524
- package/autopm/.claude/scripts/azure/active-work.sh +0 -20
- package/autopm/.claude/scripts/azure/blocked.js +0 -520
- package/autopm/.claude/scripts/azure/blocked.sh +0 -20
- package/autopm/.claude/scripts/azure/daily.js +0 -533
- package/autopm/.claude/scripts/azure/daily.sh +0 -20
- package/autopm/.claude/scripts/azure/dashboard.js +0 -970
- package/autopm/.claude/scripts/azure/dashboard.sh +0 -20
- package/autopm/.claude/scripts/azure/feature-list.js +0 -254
- package/autopm/.claude/scripts/azure/feature-list.sh +0 -20
- package/autopm/.claude/scripts/azure/feature-show.js +0 -7
- package/autopm/.claude/scripts/azure/feature-show.sh +0 -20
- package/autopm/.claude/scripts/azure/feature-status.js +0 -604
- package/autopm/.claude/scripts/azure/feature-status.sh +0 -20
- package/autopm/.claude/scripts/azure/help.js +0 -342
- package/autopm/.claude/scripts/azure/help.sh +0 -20
- package/autopm/.claude/scripts/azure/next-task.js +0 -508
- package/autopm/.claude/scripts/azure/next-task.sh +0 -20
- package/autopm/.claude/scripts/azure/search.js +0 -469
- package/autopm/.claude/scripts/azure/search.sh +0 -20
- package/autopm/.claude/scripts/azure/setup.js +0 -745
- package/autopm/.claude/scripts/azure/setup.sh +0 -20
- package/autopm/.claude/scripts/azure/sprint-report.js +0 -1012
- package/autopm/.claude/scripts/azure/sprint-report.sh +0 -20
- package/autopm/.claude/scripts/azure/sync.js +0 -563
- package/autopm/.claude/scripts/azure/sync.sh +0 -20
- package/autopm/.claude/scripts/azure/us-list.js +0 -210
- package/autopm/.claude/scripts/azure/us-list.sh +0 -20
- package/autopm/.claude/scripts/azure/us-status.js +0 -238
- package/autopm/.claude/scripts/azure/us-status.sh +0 -20
- package/autopm/.claude/scripts/azure/validate.js +0 -626
- package/autopm/.claude/scripts/azure/validate.sh +0 -20
- package/autopm/.claude/scripts/azure/wrapper-template.sh +0 -20
- package/autopm/.claude/scripts/github/dependency-tracker.js +0 -554
- package/autopm/.claude/scripts/github/dependency-validator.js +0 -545
- package/autopm/.claude/scripts/github/dependency-visualizer.js +0 -477
- package/autopm/.claude/scripts/pm/analytics.js +0 -425
- package/autopm/.claude/scripts/pm/blocked.js +0 -164
- package/autopm/.claude/scripts/pm/blocked.sh +0 -78
- package/autopm/.claude/scripts/pm/clean.js +0 -464
- package/autopm/.claude/scripts/pm/context-create.js +0 -216
- package/autopm/.claude/scripts/pm/context-prime.js +0 -335
- package/autopm/.claude/scripts/pm/context-update.js +0 -344
- package/autopm/.claude/scripts/pm/context.js +0 -338
- package/autopm/.claude/scripts/pm/epic-close.js +0 -347
- package/autopm/.claude/scripts/pm/epic-edit.js +0 -382
- package/autopm/.claude/scripts/pm/epic-list.js +0 -273
- package/autopm/.claude/scripts/pm/epic-list.sh +0 -109
- package/autopm/.claude/scripts/pm/epic-show.js +0 -291
- package/autopm/.claude/scripts/pm/epic-show.sh +0 -105
- package/autopm/.claude/scripts/pm/epic-split.js +0 -522
- package/autopm/.claude/scripts/pm/epic-start/epic-start.js +0 -183
- package/autopm/.claude/scripts/pm/epic-start/epic-start.sh +0 -94
- package/autopm/.claude/scripts/pm/epic-status.js +0 -291
- package/autopm/.claude/scripts/pm/epic-status.sh +0 -104
- package/autopm/.claude/scripts/pm/epic-sync/README.md +0 -208
- package/autopm/.claude/scripts/pm/epic-sync/create-epic-issue.sh +0 -77
- package/autopm/.claude/scripts/pm/epic-sync/create-task-issues.sh +0 -86
- package/autopm/.claude/scripts/pm/epic-sync/update-epic-file.sh +0 -79
- package/autopm/.claude/scripts/pm/epic-sync/update-references.sh +0 -89
- package/autopm/.claude/scripts/pm/epic-sync.sh +0 -137
- package/autopm/.claude/scripts/pm/help.js +0 -92
- package/autopm/.claude/scripts/pm/help.sh +0 -90
- package/autopm/.claude/scripts/pm/in-progress.js +0 -178
- package/autopm/.claude/scripts/pm/in-progress.sh +0 -93
- package/autopm/.claude/scripts/pm/init.js +0 -321
- package/autopm/.claude/scripts/pm/init.sh +0 -178
- package/autopm/.claude/scripts/pm/issue-close.js +0 -232
- package/autopm/.claude/scripts/pm/issue-edit.js +0 -310
- package/autopm/.claude/scripts/pm/issue-show.js +0 -272
- package/autopm/.claude/scripts/pm/issue-start.js +0 -181
- package/autopm/.claude/scripts/pm/issue-sync/format-comment.sh +0 -468
- package/autopm/.claude/scripts/pm/issue-sync/gather-updates.sh +0 -460
- package/autopm/.claude/scripts/pm/issue-sync/post-comment.sh +0 -330
- package/autopm/.claude/scripts/pm/issue-sync/preflight-validation.sh +0 -348
- package/autopm/.claude/scripts/pm/issue-sync/update-frontmatter.sh +0 -387
- package/autopm/.claude/scripts/pm/lib/README.md +0 -85
- package/autopm/.claude/scripts/pm/lib/epic-discovery.js +0 -119
- package/autopm/.claude/scripts/pm/lib/logger.js +0 -78
- package/autopm/.claude/scripts/pm/next.js +0 -189
- package/autopm/.claude/scripts/pm/next.sh +0 -72
- package/autopm/.claude/scripts/pm/optimize.js +0 -407
- package/autopm/.claude/scripts/pm/pr-create.js +0 -337
- package/autopm/.claude/scripts/pm/pr-list.js +0 -257
- package/autopm/.claude/scripts/pm/prd-list.js +0 -242
- package/autopm/.claude/scripts/pm/prd-list.sh +0 -103
- package/autopm/.claude/scripts/pm/prd-new.js +0 -684
- package/autopm/.claude/scripts/pm/prd-parse.js +0 -547
- package/autopm/.claude/scripts/pm/prd-status.js +0 -152
- package/autopm/.claude/scripts/pm/prd-status.sh +0 -63
- package/autopm/.claude/scripts/pm/release.js +0 -460
- package/autopm/.claude/scripts/pm/search.js +0 -192
- package/autopm/.claude/scripts/pm/search.sh +0 -89
- package/autopm/.claude/scripts/pm/standup.js +0 -362
- package/autopm/.claude/scripts/pm/standup.sh +0 -95
- package/autopm/.claude/scripts/pm/status.js +0 -148
- package/autopm/.claude/scripts/pm/status.sh +0 -59
- package/autopm/.claude/scripts/pm/sync-batch.js +0 -337
- package/autopm/.claude/scripts/pm/sync.js +0 -343
- package/autopm/.claude/scripts/pm/template-list.js +0 -141
- package/autopm/.claude/scripts/pm/template-new.js +0 -366
- package/autopm/.claude/scripts/pm/validate.js +0 -274
- package/autopm/.claude/scripts/pm/validate.sh +0 -106
- package/autopm/.claude/scripts/pm/what-next.js +0 -660
- package/bin/node/azure-feature-show.js +0 -7
|
@@ -1,370 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
allowed-tools: Bash, Read, Write, LS, Task
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Epic Decompose
|
|
6
|
-
|
|
7
|
-
Break epic into concrete, actionable tasks.
|
|
8
|
-
|
|
9
|
-
## Usage
|
|
10
|
-
|
|
11
|
-
**Single Epic:**
|
|
12
|
-
```bash
|
|
13
|
-
/pm:epic-decompose <feature_name> [--local]
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
**Multi-Epic (decomposes ALL epics at once):**
|
|
17
|
-
```bash
|
|
18
|
-
/pm:epic-decompose <feature_name> [--local]
|
|
19
|
-
# Example: /pm:epic-decompose ecommerce-platform --local
|
|
20
|
-
# This will automatically decompose ALL epics:
|
|
21
|
-
# - 01-infrastructure
|
|
22
|
-
# - 02-auth-backend
|
|
23
|
-
# - 03-product-api
|
|
24
|
-
# - etc.
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
**Single Epic from Multi-Epic structure:**
|
|
28
|
-
```bash
|
|
29
|
-
/pm:epic-decompose <feature_name>/<epic_folder> [--local]
|
|
30
|
-
# Example: /pm:epic-decompose ecommerce-platform/01-infrastructure --local
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Flags
|
|
34
|
-
|
|
35
|
-
`--local`, `-l`
|
|
36
|
-
: Use local mode (offline workflow)
|
|
37
|
-
: Creates task files in `.claude/epics/` directory structure
|
|
38
|
-
: No GitHub/Azure synchronization
|
|
39
|
-
: Task files remain local-only until manually synced
|
|
40
|
-
: Ideal for offline work or projects without remote tracking
|
|
41
|
-
|
|
42
|
-
Example:
|
|
43
|
-
```
|
|
44
|
-
/pm:epic-decompose user-authentication --local
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## Required Documentation Access
|
|
48
|
-
|
|
49
|
-
**MANDATORY:** Before decomposing epics, query Context7 for best practices:
|
|
50
|
-
|
|
51
|
-
**Documentation Queries:**
|
|
52
|
-
- `mcp://context7/agile/epic-decomposition` - Epic breakdown best practices
|
|
53
|
-
- `mcp://context7/agile/task-sizing` - Task estimation and sizing
|
|
54
|
-
- `mcp://context7/agile/user-stories` - User story formats (INVEST criteria)
|
|
55
|
-
- `mcp://context7/project-management/task-breakdown` - Work breakdown structure
|
|
56
|
-
|
|
57
|
-
**Why This is Required:**
|
|
58
|
-
- Ensures tasks follow industry-standard decomposition patterns
|
|
59
|
-
- Applies current best practices for task sizing and dependencies
|
|
60
|
-
- Validates task structure against proven methodologies
|
|
61
|
-
- Prevents common anti-patterns in task breakdown
|
|
62
|
-
|
|
63
|
-
## Required Rules
|
|
64
|
-
|
|
65
|
-
**IMPORTANT:** Before executing this command, read and follow:
|
|
66
|
-
- `.claude/rules/datetime.md` - For getting real current date/time
|
|
67
|
-
|
|
68
|
-
## Preflight Checklist
|
|
69
|
-
|
|
70
|
-
Before proceeding, complete these validation steps.
|
|
71
|
-
Do not bother the user with preflight checks progress ("I'm not going to ..."). Just do them and move on.
|
|
72
|
-
|
|
73
|
-
1. **Verify epic exists:**
|
|
74
|
-
- Check if `.claude/epics/$ARGUMENTS` directory exists
|
|
75
|
-
- Check for either:
|
|
76
|
-
a) Single epic: `.claude/epics/$ARGUMENTS/epic.md` exists
|
|
77
|
-
b) Multiple epics: Subdirectories like `.claude/epics/$ARGUMENTS/01-infrastructure/epic.md`
|
|
78
|
-
- If neither found, tell user: "❌ Epic not found: $ARGUMENTS. First create it with: /pm:prd-parse $ARGUMENTS or /pm:epic-split $ARGUMENTS"
|
|
79
|
-
- Stop execution if no epics found
|
|
80
|
-
|
|
81
|
-
2. **Detect epic structure:**
|
|
82
|
-
- If `.claude/epics/$ARGUMENTS/epic.md` exists → Single epic mode
|
|
83
|
-
- If subdirectories with epic.md files exist → Multi-epic mode
|
|
84
|
-
- Store the mode for later processing
|
|
85
|
-
|
|
86
|
-
3. **Check for existing tasks:**
|
|
87
|
-
- For single epic: Check `.claude/epics/$ARGUMENTS/` for numbered task files
|
|
88
|
-
- For multi-epic: Check each subdirectory for numbered task files
|
|
89
|
-
- If tasks exist, list them and ask: "⚠️ Found {count} existing tasks. Delete and recreate all tasks? (yes/no)"
|
|
90
|
-
- Only proceed with explicit 'yes' confirmation
|
|
91
|
-
- If user says no, suggest: "View existing tasks with: /pm:epic-show $ARGUMENTS"
|
|
92
|
-
|
|
93
|
-
4. **Validate epic frontmatter:**
|
|
94
|
-
- For single epic: Verify `.claude/epics/$ARGUMENTS/epic.md` has valid frontmatter
|
|
95
|
-
- For multi-epic: Verify each subdirectory's epic.md has valid frontmatter
|
|
96
|
-
- If invalid, tell user which epic file has invalid frontmatter
|
|
97
|
-
|
|
98
|
-
5. **Check epic status:**
|
|
99
|
-
- For each epic, check if status is already "completed"
|
|
100
|
-
- If any epic is completed, warn user: "⚠️ Epic(s) marked as completed. Are you sure you want to decompose again?"
|
|
101
|
-
|
|
102
|
-
## ⚠️ TDD REMINDER
|
|
103
|
-
|
|
104
|
-
**CRITICAL: All tasks MUST follow Test-Driven Development (TDD).**
|
|
105
|
-
|
|
106
|
-
When creating tasks, ensure each task includes:
|
|
107
|
-
- TDD Requirements section (RED-GREEN-REFACTOR cycle)
|
|
108
|
-
- "Tests written FIRST" as first item in Definition of Done
|
|
109
|
-
- References to `.claude/rules/tdd.enforcement.md`
|
|
110
|
-
|
|
111
|
-
Every generated task file will remind developers to write tests first.
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
## Instructions
|
|
116
|
-
|
|
117
|
-
You are decomposing epic(s) into specific, actionable tasks for: **$ARGUMENTS**
|
|
118
|
-
|
|
119
|
-
### 1. Determine Processing Mode
|
|
120
|
-
|
|
121
|
-
**Single Epic Mode:**
|
|
122
|
-
- Process `.claude/epics/$ARGUMENTS/epic.md`
|
|
123
|
-
- Create tasks in `.claude/epics/$ARGUMENTS/`
|
|
124
|
-
|
|
125
|
-
**Multi-Epic Mode (from epic-split):**
|
|
126
|
-
- Find all subdirectories in `.claude/epics/$ARGUMENTS/`
|
|
127
|
-
- Process each subdirectory's epic.md file separately
|
|
128
|
-
- Create tasks in each respective subdirectory
|
|
129
|
-
- Show progress for each epic being processed
|
|
130
|
-
|
|
131
|
-
### 2. Read the Epic(s)
|
|
132
|
-
- For single epic: Load from `.claude/epics/$ARGUMENTS/epic.md`
|
|
133
|
-
- For multi-epic: Load each `.claude/epics/$ARGUMENTS/*/epic.md`
|
|
134
|
-
- Understand the technical approach and requirements
|
|
135
|
-
- Review the task breakdown preview
|
|
136
|
-
|
|
137
|
-
### 2. Analyze for Parallel Creation
|
|
138
|
-
|
|
139
|
-
Determine if tasks can be created in parallel:
|
|
140
|
-
- If tasks are mostly independent: Create in parallel using Task agents
|
|
141
|
-
- If tasks have complex dependencies: Create sequentially
|
|
142
|
-
- For best results: Group independent tasks for parallel creation
|
|
143
|
-
|
|
144
|
-
### 3. Parallel Task Creation (When Possible)
|
|
145
|
-
|
|
146
|
-
If tasks can be created in parallel, spawn sub-agents:
|
|
147
|
-
|
|
148
|
-
```yaml
|
|
149
|
-
Task:
|
|
150
|
-
description: "Create task files batch {X}"
|
|
151
|
-
subagent_type: "general-purpose"
|
|
152
|
-
prompt: |
|
|
153
|
-
Create task files for epic: $ARGUMENTS
|
|
154
|
-
|
|
155
|
-
Tasks to create:
|
|
156
|
-
- {list of 3-4 tasks for this batch}
|
|
157
|
-
|
|
158
|
-
For each task:
|
|
159
|
-
1. Create file: .claude/epics/$ARGUMENTS/{number}.md
|
|
160
|
-
2. Use exact format with frontmatter and all sections
|
|
161
|
-
3. Follow task breakdown from epic
|
|
162
|
-
4. Set parallel/depends_on fields appropriately
|
|
163
|
-
5. Number sequentially (001.md, 002.md, etc.)
|
|
164
|
-
|
|
165
|
-
Return: List of files created
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### 4. Task File Format with Frontmatter
|
|
169
|
-
For each task, create a file with this exact structure:
|
|
170
|
-
|
|
171
|
-
```markdown
|
|
172
|
-
---
|
|
173
|
-
name: [Task Title]
|
|
174
|
-
status: open
|
|
175
|
-
created: [Current ISO date/time]
|
|
176
|
-
updated: [Current ISO date/time]
|
|
177
|
-
github: [Will be updated when synced to GitHub]
|
|
178
|
-
depends_on: [] # List of task numbers this depends on, e.g., [001, 002]
|
|
179
|
-
parallel: true # Can this run in parallel with other tasks?
|
|
180
|
-
conflicts_with: [] # Tasks that modify same files, e.g., [003, 004]
|
|
181
|
-
---
|
|
182
|
-
|
|
183
|
-
# Task: [Task Title]
|
|
184
|
-
|
|
185
|
-
## Description
|
|
186
|
-
Clear, concise description of what needs to be done
|
|
187
|
-
|
|
188
|
-
## ⚠️ TDD Requirements
|
|
189
|
-
**This project uses Test-Driven Development. You MUST:**
|
|
190
|
-
1. 🔴 RED: Write failing test first
|
|
191
|
-
2. 🟢 GREEN: Write minimal code to make test pass
|
|
192
|
-
3. 🔵 REFACTOR: Clean up code while keeping tests green
|
|
193
|
-
|
|
194
|
-
See `.claude/rules/tdd.enforcement.md` for complete requirements.
|
|
195
|
-
|
|
196
|
-
## Acceptance Criteria
|
|
197
|
-
- [ ] Specific criterion 1
|
|
198
|
-
- [ ] Specific criterion 2
|
|
199
|
-
- [ ] Specific criterion 3
|
|
200
|
-
|
|
201
|
-
## Technical Details
|
|
202
|
-
- Implementation approach
|
|
203
|
-
- Key considerations
|
|
204
|
-
- Code locations/files affected
|
|
205
|
-
|
|
206
|
-
## Dependencies
|
|
207
|
-
- [ ] Task/Issue dependencies
|
|
208
|
-
- [ ] External dependencies
|
|
209
|
-
|
|
210
|
-
## Effort Estimate
|
|
211
|
-
- Size: XS/S/M/L/XL
|
|
212
|
-
- Hours: estimated hours
|
|
213
|
-
- Parallel: true/false (can run in parallel with other tasks)
|
|
214
|
-
|
|
215
|
-
## Definition of Done
|
|
216
|
-
- [ ] Tests written FIRST (RED phase)
|
|
217
|
-
- [ ] Code implemented (GREEN phase)
|
|
218
|
-
- [ ] Code refactored (REFACTOR phase)
|
|
219
|
-
- [ ] All tests passing
|
|
220
|
-
- [ ] Documentation updated
|
|
221
|
-
- [ ] Code reviewed
|
|
222
|
-
- [ ] Deployed to staging
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
### 3. Task Naming Convention
|
|
226
|
-
|
|
227
|
-
**For Single Epic:**
|
|
228
|
-
Save tasks as: `.claude/epics/$ARGUMENTS/{task_number}.md`
|
|
229
|
-
|
|
230
|
-
**For Multi-Epic:**
|
|
231
|
-
Save tasks as: `.claude/epics/$ARGUMENTS/{epic_folder}/{task_number}.md`
|
|
232
|
-
Example: `.claude/epics/ecommerce/01-infrastructure/001.md`
|
|
233
|
-
|
|
234
|
-
- Use sequential numbering: 001.md, 002.md, etc.
|
|
235
|
-
- Keep task titles short but descriptive
|
|
236
|
-
- Each epic gets its own task number sequence
|
|
237
|
-
|
|
238
|
-
### 4. Frontmatter Guidelines
|
|
239
|
-
- **name**: Use a descriptive task title (without "Task:" prefix)
|
|
240
|
-
- **status**: Always start with "open" for new tasks
|
|
241
|
-
- **created**: Get REAL current datetime by running: `date -u +"%Y-%m-%dT%H:%M:%SZ"`
|
|
242
|
-
- **updated**: Use the same real datetime as created for new tasks
|
|
243
|
-
- **github**: Leave placeholder text - will be updated during sync
|
|
244
|
-
- **depends_on**: List task numbers that must complete before this can start (e.g., [001, 002])
|
|
245
|
-
- **parallel**: Set to true if this can run alongside other tasks without conflicts
|
|
246
|
-
- **conflicts_with**: List task numbers that modify the same files (helps coordination)
|
|
247
|
-
|
|
248
|
-
### 5. Task Types to Consider
|
|
249
|
-
- **Setup tasks**: Environment, dependencies, scaffolding
|
|
250
|
-
- **Data tasks**: Models, schemas, migrations
|
|
251
|
-
- **API tasks**: Endpoints, services, integration
|
|
252
|
-
- **UI tasks**: Components, pages, styling
|
|
253
|
-
- **Testing tasks**: Unit tests, integration tests
|
|
254
|
-
- **Documentation tasks**: README, API docs
|
|
255
|
-
- **Deployment tasks**: CI/CD, infrastructure
|
|
256
|
-
|
|
257
|
-
### 6. Parallelization
|
|
258
|
-
Mark tasks with `parallel: true` if they can be worked on simultaneously without conflicts.
|
|
259
|
-
|
|
260
|
-
### 7. Execution Strategy
|
|
261
|
-
|
|
262
|
-
Choose based on task count and complexity:
|
|
263
|
-
|
|
264
|
-
**Small Epic (< 5 tasks)**: Create sequentially for simplicity
|
|
265
|
-
|
|
266
|
-
**Medium Epic (5-10 tasks)**:
|
|
267
|
-
- Batch into 2-3 groups
|
|
268
|
-
- Spawn agents for each batch
|
|
269
|
-
- Consolidate results
|
|
270
|
-
|
|
271
|
-
**Large Epic (> 10 tasks)**:
|
|
272
|
-
- Analyze dependencies first
|
|
273
|
-
- Group independent tasks
|
|
274
|
-
- Launch parallel agents (max 5 concurrent)
|
|
275
|
-
- Create dependent tasks after prerequisites
|
|
276
|
-
|
|
277
|
-
Example for parallel execution:
|
|
278
|
-
```markdown
|
|
279
|
-
Spawning 3 agents for parallel task creation:
|
|
280
|
-
- Agent 1: Creating tasks 001-003 (Database layer)
|
|
281
|
-
- Agent 2: Creating tasks 004-006 (API layer)
|
|
282
|
-
- Agent 3: Creating tasks 007-009 (UI layer)
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
**Multi-Epic Processing Example:**
|
|
286
|
-
```markdown
|
|
287
|
-
Processing multiple epics from split:
|
|
288
|
-
|
|
289
|
-
📂 01-infrastructure/epic.md
|
|
290
|
-
Creating 8 tasks...
|
|
291
|
-
✅ Done
|
|
292
|
-
|
|
293
|
-
📂 02-auth-backend/epic.md
|
|
294
|
-
Creating 12 tasks...
|
|
295
|
-
✅ Done
|
|
296
|
-
|
|
297
|
-
📂 03-frontend/epic.md
|
|
298
|
-
Creating 10 tasks...
|
|
299
|
-
✅ Done
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
### 8. Task Dependency Validation
|
|
303
|
-
|
|
304
|
-
When creating tasks with dependencies:
|
|
305
|
-
- Ensure referenced dependencies exist (e.g., if Task 003 depends on Task 002, verify 002 was created)
|
|
306
|
-
- Check for circular dependencies (Task A → Task B → Task A)
|
|
307
|
-
- If dependency issues found, warn but continue: "⚠️ Task dependency warning: {details}"
|
|
308
|
-
|
|
309
|
-
### 9. Update Epic with Task Summary
|
|
310
|
-
After creating all tasks, update the epic file by adding this section:
|
|
311
|
-
```markdown
|
|
312
|
-
## Tasks Created
|
|
313
|
-
- [ ] 001.md - {Task Title} (parallel: true/false)
|
|
314
|
-
- [ ] 002.md - {Task Title} (parallel: true/false)
|
|
315
|
-
- etc.
|
|
316
|
-
|
|
317
|
-
Total tasks: {count}
|
|
318
|
-
Parallel tasks: {parallel_count}
|
|
319
|
-
Sequential tasks: {sequential_count}
|
|
320
|
-
Estimated total effort: {sum of hours}
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
Also update the epic's frontmatter progress if needed (still 0% until tasks actually start).
|
|
324
|
-
|
|
325
|
-
### 9. Quality Validation
|
|
326
|
-
|
|
327
|
-
Before finalizing tasks, verify:
|
|
328
|
-
- [ ] All tasks have clear acceptance criteria
|
|
329
|
-
- [ ] Task sizes are reasonable (1-3 days each)
|
|
330
|
-
- [ ] Dependencies are logical and achievable
|
|
331
|
-
- [ ] Parallel tasks don't conflict with each other
|
|
332
|
-
- [ ] Combined tasks cover all epic requirements
|
|
333
|
-
|
|
334
|
-
### 10. Post-Decomposition
|
|
335
|
-
|
|
336
|
-
**For Single Epic:**
|
|
337
|
-
After successfully creating tasks:
|
|
338
|
-
1. Confirm: "✅ Created {count} tasks for epic: $ARGUMENTS"
|
|
339
|
-
2. Show summary:
|
|
340
|
-
- Total tasks created
|
|
341
|
-
- Parallel vs sequential breakdown
|
|
342
|
-
- Total estimated effort
|
|
343
|
-
3. Suggest next step: "Ready to sync to GitHub? Run: /pm:epic-sync $ARGUMENTS"
|
|
344
|
-
|
|
345
|
-
**For Multi-Epic:**
|
|
346
|
-
After processing all epics:
|
|
347
|
-
1. Show per-epic summary:
|
|
348
|
-
```
|
|
349
|
-
✅ Epic Decomposition Complete
|
|
350
|
-
|
|
351
|
-
📂 01-infrastructure: 8 tasks created
|
|
352
|
-
📂 02-auth-backend: 12 tasks created
|
|
353
|
-
📂 03-frontend: 10 tasks created
|
|
354
|
-
|
|
355
|
-
Total: 30 tasks across 3 epics
|
|
356
|
-
```
|
|
357
|
-
2. Show combined statistics:
|
|
358
|
-
- Total tasks across all epics
|
|
359
|
-
- Total estimated effort
|
|
360
|
-
- Breakdown by epic
|
|
361
|
-
3. Suggest next step: "Ready to sync all epics? Run: /pm:epic-sync $ARGUMENTS"
|
|
362
|
-
|
|
363
|
-
## Error Recovery
|
|
364
|
-
|
|
365
|
-
If any step fails:
|
|
366
|
-
- If task creation partially completes, list which tasks were created
|
|
367
|
-
- Provide option to clean up partial tasks
|
|
368
|
-
- Never leave the epic in an inconsistent state
|
|
369
|
-
|
|
370
|
-
Aim for tasks that can be completed in 1-3 days each. Break down larger tasks into smaller, manageable pieces for the "$ARGUMENTS" epic.
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
allowed-tools: Read, Write, LS
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Epic Edit
|
|
6
|
-
|
|
7
|
-
Edit epic details after creation.
|
|
8
|
-
|
|
9
|
-
## Usage
|
|
10
|
-
```
|
|
11
|
-
/pm:epic-edit <epic_name>
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
## Required Documentation Access
|
|
15
|
-
|
|
16
|
-
**MANDATORY:** Before project management workflows, query Context7 for best practices:
|
|
17
|
-
|
|
18
|
-
**Documentation Queries:**
|
|
19
|
-
- `mcp://context7/agile/epic-management` - epic management best practices
|
|
20
|
-
- `mcp://context7/project-management/issue-tracking` - issue tracking best practices
|
|
21
|
-
- `mcp://context7/agile/task-breakdown` - task breakdown best practices
|
|
22
|
-
- `mcp://context7/project-management/workflow` - workflow best practices
|
|
23
|
-
|
|
24
|
-
**Why This is Required:**
|
|
25
|
-
- Ensures adherence to current industry standards and best practices
|
|
26
|
-
- Prevents outdated or incorrect implementation patterns
|
|
27
|
-
- Provides access to latest framework/tool documentation
|
|
28
|
-
- Reduces errors from stale knowledge or assumptions
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
## Instructions
|
|
32
|
-
|
|
33
|
-
### 1. Read Current Epic
|
|
34
|
-
|
|
35
|
-
Read `.claude/epics/$ARGUMENTS/epic.md`:
|
|
36
|
-
- Parse frontmatter
|
|
37
|
-
- Read content sections
|
|
38
|
-
|
|
39
|
-
### 2. Interactive Edit
|
|
40
|
-
|
|
41
|
-
Ask user what to edit:
|
|
42
|
-
- Name/Title
|
|
43
|
-
- Description/Overview
|
|
44
|
-
- Architecture decisions
|
|
45
|
-
- Technical approach
|
|
46
|
-
- Dependencies
|
|
47
|
-
- Success criteria
|
|
48
|
-
|
|
49
|
-
### 3. Update Epic File
|
|
50
|
-
|
|
51
|
-
Get current datetime: `date -u +"%Y-%m-%dT%H:%M:%SZ"`
|
|
52
|
-
|
|
53
|
-
Update epic.md:
|
|
54
|
-
- Preserve all frontmatter except `updated`
|
|
55
|
-
- Apply user's edits to content
|
|
56
|
-
- Update `updated` field with current datetime
|
|
57
|
-
|
|
58
|
-
### 4. Option to Update GitHub
|
|
59
|
-
|
|
60
|
-
If epic has GitHub URL in frontmatter:
|
|
61
|
-
Ask: "Update GitHub issue? (yes/no)"
|
|
62
|
-
|
|
63
|
-
If yes:
|
|
64
|
-
```bash
|
|
65
|
-
gh issue edit {issue_number} --body-file .claude/epics/$ARGUMENTS/epic.md
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### 5. Output
|
|
69
|
-
|
|
70
|
-
```
|
|
71
|
-
✅ Updated epic: $ARGUMENTS
|
|
72
|
-
Changes made to: {sections_edited}
|
|
73
|
-
|
|
74
|
-
{If GitHub updated}: GitHub issue updated ✅
|
|
75
|
-
|
|
76
|
-
View epic: /pm:epic-show $ARGUMENTS
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
## Important Notes
|
|
80
|
-
|
|
81
|
-
Preserve frontmatter history (created, github URL, etc.).
|
|
82
|
-
Don't change task files when editing epic.
|
|
83
|
-
Follow `/rules/frontmatter-operations.md`.
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
allowed-tools: Bash
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Run `node .claude/scripts/pm/epic-list.js` using the Bash tool and show me the complete output.
|
|
6
|
-
|
|
7
|
-
- You MUST display the complete output.
|
|
8
|
-
- DO NOT truncate.
|
|
9
|
-
- DO NOT collapse.
|
|
10
|
-
- DO NOT abbreviate.
|
|
11
|
-
## Required Documentation Access
|
|
12
|
-
|
|
13
|
-
**MANDATORY:** Before project management workflows, query Context7 for best practices:
|
|
14
|
-
|
|
15
|
-
**Documentation Queries:**
|
|
16
|
-
- `mcp://context7/agile/epic-management` - epic management best practices
|
|
17
|
-
- `mcp://context7/project-management/issue-tracking` - issue tracking best practices
|
|
18
|
-
- `mcp://context7/agile/task-breakdown` - task breakdown best practices
|
|
19
|
-
- `mcp://context7/project-management/workflow` - workflow best practices
|
|
20
|
-
|
|
21
|
-
**Why This is Required:**
|
|
22
|
-
- Ensures adherence to current industry standards and best practices
|
|
23
|
-
- Prevents outdated or incorrect implementation patterns
|
|
24
|
-
- Provides access to latest framework/tool documentation
|
|
25
|
-
- Reduces errors from stale knowledge or assumptions
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
- Show ALL lines in full.
|
|
29
|
-
- DO NOT print any other comments.
|
|
30
|
-
|
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
allowed-tools: Bash, Read, Write
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Epic Merge
|
|
6
|
-
|
|
7
|
-
Merge completed epic branch back to main branch.
|
|
8
|
-
|
|
9
|
-
## Usage
|
|
10
|
-
```
|
|
11
|
-
/pm:epic-merge <epic_name>
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
## Required Documentation Access
|
|
15
|
-
|
|
16
|
-
**MANDATORY:** Before project management workflows, query Context7 for best practices:
|
|
17
|
-
|
|
18
|
-
**Documentation Queries:**
|
|
19
|
-
- `mcp://context7/agile/epic-management` - epic management best practices
|
|
20
|
-
- `mcp://context7/project-management/issue-tracking` - issue tracking best practices
|
|
21
|
-
- `mcp://context7/agile/task-breakdown` - task breakdown best practices
|
|
22
|
-
- `mcp://context7/project-management/workflow` - workflow best practices
|
|
23
|
-
|
|
24
|
-
**Why This is Required:**
|
|
25
|
-
- Ensures adherence to current industry standards and best practices
|
|
26
|
-
- Prevents outdated or incorrect implementation patterns
|
|
27
|
-
- Provides access to latest framework/tool documentation
|
|
28
|
-
- Reduces errors from stale knowledge or assumptions
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
## Quick Check
|
|
32
|
-
|
|
33
|
-
1. **Verify branch exists:**
|
|
34
|
-
```bash
|
|
35
|
-
git branch -a | grep "epic/$ARGUMENTS" || echo "❌ No branch for epic: $ARGUMENTS"
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
2. **Check for active agents:**
|
|
39
|
-
Read `.claude/epics/$ARGUMENTS/execution-status.md`
|
|
40
|
-
If active agents exist: "⚠️ Active agents detected. Stop them first with: /pm:epic-close $ARGUMENTS"
|
|
41
|
-
|
|
42
|
-
## Instructions
|
|
43
|
-
|
|
44
|
-
### 1. Pre-Merge Validation
|
|
45
|
-
|
|
46
|
-
Check out branch and check status:
|
|
47
|
-
```bash
|
|
48
|
-
git checkout epic/$ARGUMENTS
|
|
49
|
-
git pull origin epic/$ARGUMENTS
|
|
50
|
-
|
|
51
|
-
# Check for uncommitted changes
|
|
52
|
-
if [[ $(git status --porcelain) ]]; then
|
|
53
|
-
echo "⚠️ Uncommitted changes in branch:"
|
|
54
|
-
git status --short
|
|
55
|
-
echo "Commit or stash changes before merging"
|
|
56
|
-
exit 1
|
|
57
|
-
fi
|
|
58
|
-
|
|
59
|
-
# Check branch status
|
|
60
|
-
git fetch origin
|
|
61
|
-
git status -sb
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
### 2. Run Tests (Optional but Recommended)
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
# Look for test commands
|
|
68
|
-
if [ -f package.json ]; then
|
|
69
|
-
npm test || echo "⚠️ Tests failed. Continue anyway? (yes/no)"
|
|
70
|
-
elif [ -f Makefile ]; then
|
|
71
|
-
make test || echo "⚠️ Tests failed. Continue anyway? (yes/no)"
|
|
72
|
-
fi
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### 3. Update Epic Documentation
|
|
76
|
-
|
|
77
|
-
Get current datetime: `date -u +"%Y-%m-%dT%H:%M:%SZ"`
|
|
78
|
-
|
|
79
|
-
Update `.claude/epics/$ARGUMENTS/epic.md`:
|
|
80
|
-
- Set status to "completed"
|
|
81
|
-
- Update completion date
|
|
82
|
-
- Add final summary
|
|
83
|
-
|
|
84
|
-
### 4. Attempt Merge
|
|
85
|
-
|
|
86
|
-
```bash
|
|
87
|
-
# Ensure main is up to date
|
|
88
|
-
git checkout main
|
|
89
|
-
git pull origin main
|
|
90
|
-
|
|
91
|
-
# Attempt merge
|
|
92
|
-
echo "Merging epic/$ARGUMENTS to main..."
|
|
93
|
-
git merge epic/$ARGUMENTS --no-ff -m "Merge epic: $ARGUMENTS
|
|
94
|
-
|
|
95
|
-
Completed features:
|
|
96
|
-
$(cd .claude/epics/$ARGUMENTS && ls *.md | grep -E '^[0-9]+' | while read f; do
|
|
97
|
-
echo "- $(grep '^name:' $f | cut -d: -f2)"
|
|
98
|
-
done)
|
|
99
|
-
|
|
100
|
-
Closes epic #$(grep 'github:' .claude/epics/$ARGUMENTS/epic.md | grep -oE '#[0-9]+')"
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### 5. Handle Merge Conflicts
|
|
104
|
-
|
|
105
|
-
If merge fails with conflicts:
|
|
106
|
-
```bash
|
|
107
|
-
# Check conflict status
|
|
108
|
-
git status
|
|
109
|
-
|
|
110
|
-
echo "
|
|
111
|
-
❌ Merge conflicts detected!
|
|
112
|
-
|
|
113
|
-
Conflicts in:
|
|
114
|
-
$(git diff --name-only --diff-filter=U)
|
|
115
|
-
|
|
116
|
-
Options:
|
|
117
|
-
1. Resolve manually:
|
|
118
|
-
- Edit conflicted files
|
|
119
|
-
- git add {files}
|
|
120
|
-
- git commit
|
|
121
|
-
|
|
122
|
-
2. Abort merge:
|
|
123
|
-
git merge --abort
|
|
124
|
-
|
|
125
|
-
3. Get help:
|
|
126
|
-
/pm:epic-close $ARGUMENTS
|
|
127
|
-
|
|
128
|
-
Branch preserved at: epic/$ARGUMENTS
|
|
129
|
-
"
|
|
130
|
-
exit 1
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
### 6. Post-Merge Cleanup
|
|
134
|
-
|
|
135
|
-
If merge succeeds:
|
|
136
|
-
```bash
|
|
137
|
-
# Push to remote
|
|
138
|
-
git push origin main
|
|
139
|
-
|
|
140
|
-
# Delete branch
|
|
141
|
-
git branch -d epic/$ARGUMENTS
|
|
142
|
-
git push origin --delete epic/$ARGUMENTS 2>/dev/null || true
|
|
143
|
-
|
|
144
|
-
# Archive epic locally
|
|
145
|
-
mkdir -p .claude/epics/archived/
|
|
146
|
-
mv .claude/epics/$ARGUMENTS .claude/epics/archived/
|
|
147
|
-
echo "✅ Epic archived: .claude/epics/archived/$ARGUMENTS"
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
### 7. Update GitHub Issues
|
|
151
|
-
|
|
152
|
-
Close related issues:
|
|
153
|
-
```bash
|
|
154
|
-
# Get issue numbers from epic
|
|
155
|
-
epic_issue=$(grep 'github:' .claude/epics/archived/$ARGUMENTS/epic.md | grep -oE '[0-9]+$')
|
|
156
|
-
|
|
157
|
-
# Close epic issue
|
|
158
|
-
gh issue close $epic_issue -c "Epic completed and merged to main"
|
|
159
|
-
|
|
160
|
-
# Close task issues
|
|
161
|
-
for task_file in .claude/epics/archived/$ARGUMENTS/[0-9]*.md; do
|
|
162
|
-
issue_num=$(grep 'github:' $task_file | grep -oE '[0-9]+$')
|
|
163
|
-
if [ ! -z "$issue_num" ]; then
|
|
164
|
-
gh issue close $issue_num -c "Completed in epic merge"
|
|
165
|
-
fi
|
|
166
|
-
done
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
### 8. Final Output
|
|
170
|
-
|
|
171
|
-
```
|
|
172
|
-
✅ Epic Merged Successfully: $ARGUMENTS
|
|
173
|
-
|
|
174
|
-
Summary:
|
|
175
|
-
Branch: epic/$ARGUMENTS → main
|
|
176
|
-
Commits merged: {count}
|
|
177
|
-
Files changed: {count}
|
|
178
|
-
Issues closed: {count}
|
|
179
|
-
|
|
180
|
-
Cleanup completed:
|
|
181
|
-
✓ Worktree removed
|
|
182
|
-
✓ Branch deleted
|
|
183
|
-
✓ Epic archived
|
|
184
|
-
✓ GitHub issues closed
|
|
185
|
-
|
|
186
|
-
Next steps:
|
|
187
|
-
- Deploy changes if needed
|
|
188
|
-
- Start new epic: /pm:prd-new {feature}
|
|
189
|
-
- View completed work: git log --oneline -20
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
## Conflict Resolution Help
|
|
193
|
-
|
|
194
|
-
If conflicts need resolution:
|
|
195
|
-
```
|
|
196
|
-
The epic branch has conflicts with main.
|
|
197
|
-
|
|
198
|
-
This typically happens when:
|
|
199
|
-
- Main has changed since epic started
|
|
200
|
-
- Multiple epics modified same files
|
|
201
|
-
- Dependencies were updated
|
|
202
|
-
|
|
203
|
-
To resolve:
|
|
204
|
-
1. Open conflicted files
|
|
205
|
-
2. Look for <<<<<<< markers
|
|
206
|
-
3. Choose correct version or combine
|
|
207
|
-
4. Remove conflict markers
|
|
208
|
-
5. git add {resolved files}
|
|
209
|
-
6. git commit
|
|
210
|
-
7. git push
|
|
211
|
-
|
|
212
|
-
Or abort and try later:
|
|
213
|
-
git merge --abort
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
## Important Notes
|
|
217
|
-
|
|
218
|
-
- Always check for uncommitted changes first
|
|
219
|
-
- Run tests before merging when possible
|
|
220
|
-
- Use --no-ff to preserve epic history
|
|
221
|
-
- Archive epic data instead of deleting
|
|
222
|
-
- Close GitHub issues to maintain sync
|