@howlil/ez-agents 3.4.2 → 4.0.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 +735 -462
- package/agents/ez-architect-agent.md +267 -0
- package/agents/ez-backend-agent.md +303 -0
- package/agents/ez-chief-strategist.md +271 -0
- package/agents/ez-codebase-mapper.md +770 -770
- package/agents/ez-context-manager.md +319 -0
- package/agents/ez-debugger.md +1255 -1255
- package/agents/ez-design-expert.md +347 -0
- package/agents/ez-devops-agent.md +331 -0
- package/agents/ez-executor.md +487 -487
- package/agents/ez-frontend-agent.md +322 -0
- package/agents/ez-phase-researcher.md +553 -553
- package/agents/ez-planner.md +1307 -1307
- package/agents/ez-product-engineer.md +435 -0
- package/agents/ez-project-researcher.md +629 -629
- package/agents/ez-qa-agent.md +320 -0
- package/agents/ez-release-agent.md +333 -0
- package/agents/ez-requirements-agent.md +377 -0
- package/agents/ez-roadmapper.md +650 -650
- package/agents/ez-technical-writer.md +551 -0
- package/agents/ez-ux-expert.md +393 -0
- package/agents/ez-verifier.md +579 -579
- package/bin/guards/autonomy-guard.cjs +346 -0
- package/bin/guards/context-budget-guard.cjs +278 -0
- package/bin/guards/hallucination-guard.cjs +380 -0
- package/bin/guards/hidden-state-guard.cjs +182 -0
- package/bin/guards/team-overhead-guard.cjs +266 -0
- package/bin/guards/tool-sprawl-guard.cjs +271 -0
- package/bin/install.js +3221 -3272
- package/bin/lib/analytics/analytics-collector.cjs +86 -0
- package/bin/lib/analytics/analytics-reporter.cjs +130 -0
- package/bin/lib/analytics/cohort-analyzer.cjs +138 -0
- package/bin/lib/analytics/funnel-analyzer.cjs +147 -0
- package/bin/lib/analytics/nps-tracker.cjs +147 -0
- package/bin/lib/archetype-detector.cjs +289 -0
- package/bin/lib/assistant-adapter.cjs +361 -0
- package/bin/lib/audit-exec.cjs +175 -0
- package/bin/lib/auth.cjs +176 -0
- package/bin/lib/backup-service.cjs +422 -0
- package/bin/lib/bdd-validator.cjs +622 -0
- package/bin/lib/business-flow-mapper.cjs +429 -0
- package/bin/lib/circuit-breaker.cjs +276 -0
- package/bin/lib/code-complexity-analyzer.cjs +360 -0
- package/bin/lib/codebase-analyzer.cjs +241 -0
- package/bin/lib/commands.cjs +691 -0
- package/bin/lib/config.cjs +236 -0
- package/bin/lib/constraint-extractor.cjs +526 -0
- package/bin/lib/content-scanner.cjs +238 -0
- package/bin/lib/context-cache.cjs +154 -0
- package/bin/lib/context-compressor.cjs +102 -0
- package/bin/lib/context-deduplicator.cjs +105 -0
- package/bin/lib/context-errors.cjs +78 -0
- package/bin/lib/context-manager.cjs +338 -0
- package/bin/lib/context-metadata-tracker.cjs +140 -0
- package/bin/lib/context-relevance-scorer.cjs +99 -0
- package/bin/lib/core.cjs +507 -0
- package/bin/lib/cost-alerts.cjs +174 -0
- package/bin/lib/cost-tracker.cjs +275 -0
- package/bin/lib/crash-recovery.cjs +220 -0
- package/bin/lib/dependency-graph.cjs +319 -0
- package/bin/lib/deploy/deploy-audit-log.cjs +76 -0
- package/bin/lib/deploy/deploy-detector.cjs +69 -0
- package/bin/lib/deploy/deploy-env-manager.cjs +109 -0
- package/bin/lib/deploy/deploy-health-check.cjs +88 -0
- package/bin/lib/deploy/deploy-pre-flight.cjs +57 -0
- package/bin/lib/deploy/deploy-rollback.cjs +72 -0
- package/bin/lib/deploy/deploy-runner.cjs +97 -0
- package/bin/lib/deploy/deploy-status.cjs +74 -0
- package/bin/lib/discussion-synthesizer.cjs +439 -0
- package/bin/lib/error-cache.cjs +114 -0
- package/bin/lib/error-registry.cjs +177 -0
- package/bin/lib/file-access.cjs +207 -0
- package/bin/lib/file-lock.cjs +236 -0
- package/bin/lib/finops/budget-enforcer.cjs +126 -0
- package/bin/lib/finops/cost-reporter.cjs +132 -0
- package/bin/lib/finops/finops-analyzer.cjs +112 -0
- package/bin/lib/finops/spot-manager.cjs +118 -0
- package/bin/lib/framework-detector.cjs +396 -0
- package/bin/lib/frontmatter.cjs +313 -0
- package/bin/lib/fs-utils.cjs +153 -0
- package/bin/lib/gate-executor.cjs +272 -0
- package/bin/lib/gates/README.md +374 -0
- package/bin/lib/gates/gate-01-requirement.cjs +303 -0
- package/bin/lib/gates/gate-02-architecture.cjs +555 -0
- package/bin/lib/gates/gate-03-code.cjs +635 -0
- package/bin/lib/gates/gate-04-security.cjs +829 -0
- package/bin/lib/git-errors.cjs +83 -0
- package/bin/lib/git-utils.cjs +321 -0
- package/bin/lib/git-workflow-engine.cjs +1157 -0
- package/bin/lib/health-check.cjs +227 -0
- package/bin/lib/index.cjs +279 -0
- package/bin/lib/init.cjs +725 -0
- package/bin/lib/lock-logger.cjs +194 -0
- package/bin/lib/lock-state.cjs +263 -0
- package/bin/lib/lockfile-validator.cjs +227 -0
- package/bin/lib/log-rotation.cjs +71 -0
- package/bin/lib/logger.cjs +125 -0
- package/bin/lib/memory-compression.cjs +256 -0
- package/bin/lib/milestone.cjs +247 -0
- package/bin/lib/model-provider.cjs +241 -0
- package/bin/lib/package-manager-detector.cjs +203 -0
- package/bin/lib/package-manager-executor.cjs +385 -0
- package/bin/lib/package-manager-service.cjs +216 -0
- package/bin/lib/perf/api-monitor.cjs +88 -0
- package/bin/lib/perf/db-optimizer.cjs +78 -0
- package/bin/lib/perf/frontend-performance.cjs +56 -0
- package/bin/lib/perf/perf-analyzer.cjs +77 -0
- package/bin/lib/perf/perf-baseline.cjs +102 -0
- package/bin/lib/perf/perf-reporter.cjs +117 -0
- package/bin/lib/perf/regression-detector.cjs +92 -0
- package/bin/lib/phase.cjs +963 -0
- package/bin/lib/planning-write.cjs +123 -0
- package/bin/lib/project-reporter.cjs +565 -0
- package/bin/lib/quality-gate.cjs +332 -0
- package/bin/lib/quality-metrics.cjs +324 -0
- package/bin/lib/recovery-manager.cjs +98 -0
- package/bin/lib/release-validator.cjs +617 -0
- package/bin/lib/retry.cjs +119 -0
- package/bin/lib/roadmap.cjs +309 -0
- package/bin/lib/safe-exec.cjs +173 -0
- package/bin/lib/safe-path.cjs +130 -0
- package/bin/lib/security-errors.cjs +62 -0
- package/bin/lib/session-chain.cjs +304 -0
- package/bin/lib/session-errors.cjs +81 -0
- package/bin/lib/session-export.cjs +251 -0
- package/bin/lib/session-import.cjs +262 -0
- package/bin/lib/session-manager.cjs +280 -0
- package/bin/lib/skill-context.cjs +148 -0
- package/bin/lib/skill-matcher.cjs +236 -0
- package/bin/lib/skill-registry.cjs +360 -0
- package/bin/lib/skill-resolver.cjs +449 -0
- package/bin/lib/skill-triggers.cjs +90 -0
- package/bin/lib/skill-validator.cjs +270 -0
- package/bin/lib/skill-versioning.cjs +355 -0
- package/bin/lib/stack-detector.cjs +399 -0
- package/bin/lib/state.cjs +736 -0
- package/bin/lib/tech-debt-analyzer.cjs +309 -0
- package/bin/lib/temp-file.cjs +239 -0
- package/bin/lib/template.cjs +223 -0
- package/bin/lib/test-file-lock.cjs +112 -0
- package/bin/lib/test-graceful.cjs +93 -0
- package/bin/lib/test-logger.cjs +60 -0
- package/bin/lib/test-safe-exec.cjs +38 -0
- package/bin/lib/test-safe-path.cjs +33 -0
- package/bin/lib/test-temp-file.cjs +125 -0
- package/bin/lib/tier-manager.cjs +428 -0
- package/bin/lib/timeout-exec.cjs +63 -0
- package/bin/lib/tradeoff-analyzer.cjs +284 -0
- package/bin/lib/url-fetch.cjs +170 -0
- package/bin/lib/verify.cjs +863 -0
- package/bin/update.js +217 -214
- package/commands/deploy.cjs +53 -0
- package/commands/ez/add-tests.md +41 -41
- package/commands/ez/audit-milestone.md +36 -36
- package/commands/ez/complete-milestone.md +136 -136
- package/commands/ez/discuss-phase.md +90 -90
- package/commands/ez/execute-phase.md +52 -41
- package/commands/ez/help.md +22 -22
- package/commands/ez/map-codebase.md +71 -71
- package/commands/ez/new-milestone.md +44 -44
- package/commands/ez/new-project.md +51 -42
- package/commands/ez/plan-phase.md +53 -45
- package/commands/ez/progress.md +36 -24
- package/commands/ez/quick.md +45 -45
- package/commands/ez/resume-work.md +40 -40
- package/commands/ez/run-phase.md +580 -0
- package/commands/ez/settings.md +36 -36
- package/commands/ez/update.md +37 -37
- package/commands/ez/verify-work.md +402 -38
- package/commands/health-check.cjs +44 -0
- package/commands/rollback.cjs +47 -0
- package/ez-agents/bin/ez-tools.cjs +1692 -716
- package/ez-agents/bin/guards/autonomy-guard.cjs +346 -0
- package/ez-agents/bin/guards/context-budget-guard.cjs +247 -0
- package/ez-agents/bin/guards/hallucination-guard.cjs +271 -0
- package/ez-agents/bin/guards/hidden-state-guard.cjs +182 -0
- package/ez-agents/bin/guards/team-overhead-guard.cjs +266 -0
- package/ez-agents/bin/guards/tool-sprawl-guard.cjs +271 -0
- package/ez-agents/bin/lib/analytics/analytics-collector.cjs +86 -0
- package/ez-agents/bin/lib/analytics/analytics-reporter.cjs +130 -0
- package/ez-agents/bin/lib/analytics/cohort-analyzer.cjs +138 -0
- package/ez-agents/bin/lib/analytics/funnel-analyzer.cjs +147 -0
- package/ez-agents/bin/lib/analytics/nps-tracker.cjs +147 -0
- package/ez-agents/bin/lib/archetype-detector.cjs +289 -0
- package/ez-agents/bin/lib/audit-exec.cjs +166 -167
- package/ez-agents/bin/lib/auth.cjs +176 -176
- package/ez-agents/bin/lib/backup-service.cjs +422 -0
- package/ez-agents/bin/lib/bdd-validator.cjs +622 -0
- package/ez-agents/bin/lib/business-flow-mapper.cjs +429 -0
- package/ez-agents/bin/lib/code-complexity-analyzer.cjs +360 -0
- package/ez-agents/bin/lib/codebase-analyzer.cjs +241 -0
- package/ez-agents/bin/lib/commands.cjs +685 -685
- package/ez-agents/bin/lib/config.cjs +41 -1
- package/ez-agents/bin/lib/constraint-extractor.cjs +526 -0
- package/ez-agents/bin/lib/content-scanner.cjs +238 -0
- package/ez-agents/bin/lib/context-cache.cjs +154 -0
- package/ez-agents/bin/lib/context-errors.cjs +71 -0
- package/ez-agents/bin/lib/context-manager.cjs +220 -0
- package/ez-agents/bin/lib/core.cjs +507 -512
- package/ez-agents/bin/lib/cost-tracker.cjs +243 -0
- package/ez-agents/bin/lib/crash-recovery.cjs +172 -0
- package/ez-agents/bin/lib/dependency-graph.cjs +319 -0
- package/ez-agents/bin/lib/deploy/deploy-audit-log.cjs +76 -0
- package/ez-agents/bin/lib/deploy/deploy-detector.cjs +69 -0
- package/ez-agents/bin/lib/deploy/deploy-env-manager.cjs +109 -0
- package/ez-agents/bin/lib/deploy/deploy-health-check.cjs +88 -0
- package/ez-agents/bin/lib/deploy/deploy-pre-flight.cjs +57 -0
- package/ez-agents/bin/lib/deploy/deploy-rollback.cjs +72 -0
- package/ez-agents/bin/lib/deploy/deploy-runner.cjs +97 -0
- package/ez-agents/bin/lib/deploy/deploy-status.cjs +74 -0
- package/ez-agents/bin/lib/discussion-synthesizer.cjs +458 -0
- package/ez-agents/bin/lib/file-access.cjs +207 -0
- package/ez-agents/bin/lib/finops/budget-enforcer.cjs +126 -0
- package/ez-agents/bin/lib/finops/cost-reporter.cjs +132 -0
- package/ez-agents/bin/lib/finops/finops-analyzer.cjs +112 -0
- package/ez-agents/bin/lib/finops/spot-manager.cjs +118 -0
- package/ez-agents/bin/lib/framework-detector.cjs +396 -0
- package/ez-agents/bin/lib/frontmatter.cjs +3 -1
- package/ez-agents/bin/lib/gates/README.md +374 -0
- package/ez-agents/bin/lib/gates/gate-01-requirement.cjs +303 -0
- package/ez-agents/bin/lib/gates/gate-02-architecture.cjs +555 -0
- package/ez-agents/bin/lib/gates/gate-03-code.cjs +635 -0
- package/ez-agents/bin/lib/gates/gate-04-security.cjs +829 -0
- package/ez-agents/bin/lib/git-errors.cjs +83 -0
- package/ez-agents/bin/lib/git-utils.cjs +118 -0
- package/ez-agents/bin/lib/git-workflow-engine.cjs +1157 -0
- package/ez-agents/bin/lib/health-check.cjs +162 -162
- package/ez-agents/bin/lib/index.cjs +40 -2
- package/ez-agents/bin/lib/init.cjs +0 -2
- package/ez-agents/bin/lib/lockfile-validator.cjs +227 -0
- package/ez-agents/bin/lib/log-rotation.cjs +71 -0
- package/ez-agents/bin/lib/logger.cjs +99 -154
- package/ez-agents/bin/lib/memory-compression.cjs +256 -0
- package/ez-agents/bin/lib/package-manager-detector.cjs +203 -0
- package/ez-agents/bin/lib/package-manager-executor.cjs +385 -0
- package/ez-agents/bin/lib/package-manager-service.cjs +216 -0
- package/ez-agents/bin/lib/perf/api-monitor.cjs +88 -0
- package/ez-agents/bin/lib/perf/db-optimizer.cjs +78 -0
- package/ez-agents/bin/lib/perf/frontend-performance.cjs +56 -0
- package/ez-agents/bin/lib/perf/perf-analyzer.cjs +77 -0
- package/ez-agents/bin/lib/perf/perf-baseline.cjs +102 -0
- package/ez-agents/bin/lib/perf/perf-reporter.cjs +117 -0
- package/ez-agents/bin/lib/perf/regression-detector.cjs +92 -0
- package/ez-agents/bin/lib/project-reporter.cjs +502 -0
- package/ez-agents/bin/lib/quality-gate.cjs +332 -0
- package/ez-agents/bin/lib/recovery-manager.cjs +98 -0
- package/ez-agents/bin/lib/release-validator.cjs +617 -0
- package/ez-agents/bin/lib/safe-exec.cjs +128 -214
- package/ez-agents/bin/lib/security-errors.cjs +62 -0
- package/ez-agents/bin/lib/session-chain.cjs +304 -0
- package/ez-agents/bin/lib/session-errors.cjs +81 -0
- package/ez-agents/bin/lib/session-export.cjs +251 -0
- package/ez-agents/bin/lib/session-import.cjs +262 -0
- package/ez-agents/bin/lib/session-manager.cjs +280 -0
- package/ez-agents/bin/lib/skill-context.cjs +148 -0
- package/ez-agents/bin/lib/skill-matcher.cjs +236 -0
- package/ez-agents/bin/lib/skill-registry.cjs +341 -0
- package/ez-agents/bin/lib/skill-resolver.cjs +449 -0
- package/ez-agents/bin/lib/skill-triggers.cjs +90 -0
- package/ez-agents/bin/lib/skill-validator.cjs +270 -0
- package/ez-agents/bin/lib/skill-versioning.cjs +355 -0
- package/ez-agents/bin/lib/stack-detector.cjs +399 -0
- package/ez-agents/bin/lib/tech-debt-analyzer.cjs +309 -0
- package/ez-agents/bin/lib/tier-manager.cjs +428 -0
- package/ez-agents/bin/lib/tradeoff-analyzer.cjs +284 -0
- package/ez-agents/bin/lib/url-fetch.cjs +170 -0
- package/ez-agents/bin/lib/verify.cjs +863 -863
- package/ez-agents/references/decimal-phase-calculation.md +65 -65
- package/ez-agents/references/git-integration.md +248 -248
- package/ez-agents/references/git-planning-commit.md +38 -38
- package/ez-agents/references/metrics-schema.md +118 -0
- package/ez-agents/references/model-profile-resolution.md +34 -34
- package/ez-agents/references/model-profiles.md +93 -93
- package/ez-agents/references/phase-argument-parsing.md +61 -61
- package/ez-agents/references/planning-config.md +340 -200
- package/ez-agents/references/tier-strategy.md +103 -0
- package/ez-agents/references/ui-brand.md +160 -160
- package/ez-agents/references/verification-patterns.md +612 -612
- package/ez-agents/templates/DEBUG.md +164 -164
- package/ez-agents/templates/UAT.md +247 -247
- package/ez-agents/templates/agent-output-format.md +404 -0
- package/ez-agents/templates/bdd-feature.md +173 -0
- package/ez-agents/templates/codebase/architecture.md +255 -255
- package/ez-agents/templates/codebase/structure.md +285 -285
- package/ez-agents/templates/copilot-instructions.md +7 -7
- package/ez-agents/templates/debug-subagent-prompt.md +91 -91
- package/ez-agents/templates/discovery.md +146 -146
- package/ez-agents/templates/discussion.md +68 -0
- package/ez-agents/templates/handoff-protocol.md +294 -0
- package/ez-agents/templates/incident-runbook.md +205 -0
- package/ez-agents/templates/mode-workflow-templates.md +301 -0
- package/ez-agents/templates/phase-prompt.md +610 -610
- package/ez-agents/templates/planner-subagent-prompt.md +117 -117
- package/ez-agents/templates/project.md +184 -184
- package/ez-agents/templates/release-checklist.md +136 -0
- package/ez-agents/templates/research.md +552 -552
- package/ez-agents/templates/rollback-plan.md +201 -0
- package/ez-agents/templates/security-user-setup.md +244 -0
- package/ez-agents/templates/skill-validation-rules.md +476 -0
- package/ez-agents/templates/state.md +180 -176
- package/ez-agents/templates/summary-complex.md +59 -59
- package/ez-agents/tests/gates/gate-01-02.test.cjs +812 -0
- package/ez-agents/tests/gates/gate-03-04.test.cjs +762 -0
- package/ez-agents/tests/gates/gate-05-validator.test.cjs +145 -0
- package/ez-agents/tests/gates/gate-06-docs-validator.test.cjs +244 -0
- package/ez-agents/tests/gates/gate-07-release-validator.test.cjs +219 -0
- package/ez-agents/tests/guards/context-budget-guard.test.cjs +145 -0
- package/ez-agents/tests/guards/edge-case-guards.test.cjs +238 -0
- package/ez-agents/tests/guards/hallucination-guard.test.cjs +124 -0
- package/ez-agents/workflows/audit-milestone.md +1 -1
- package/ez-agents/workflows/autonomous.md +131 -30
- package/ez-agents/workflows/complete-milestone.md +1 -1
- package/ez-agents/workflows/discuss-phase.md +1 -1
- package/ez-agents/workflows/execute-phase.md +169 -3
- package/ez-agents/workflows/help.md +86 -133
- package/ez-agents/workflows/hotfix.md +291 -0
- package/ez-agents/workflows/new-milestone.md +340 -11
- package/ez-agents/workflows/new-project.md +294 -318
- package/ez-agents/workflows/plan-phase.md +22 -40
- package/ez-agents/workflows/progress.md +15 -25
- package/ez-agents/workflows/release.md +253 -0
- package/ez-agents/workflows/resume-session.md +215 -0
- package/ez-agents/workflows/run-phase.md +531 -0
- package/ez-agents/workflows/settings.md +2 -35
- package/hooks/dist/ez-check-update.js +81 -81
- package/hooks/dist/ez-context-monitor.js +148 -141
- package/hooks/dist/ez-statusline.js +115 -115
- package/package.json +78 -64
- package/scripts/fix-qwen-installation.js +144 -144
- package/agents/ez-integration-checker.md +0 -443
- package/agents/ez-nyquist-auditor.md +0 -176
- package/agents/ez-plan-checker.md +0 -706
- package/agents/ez-research-synthesizer.md +0 -247
- package/agents/ez-ui-auditor.md +0 -439
- package/agents/ez-ui-checker.md +0 -300
- package/agents/ez-ui-researcher.md +0 -353
- package/commands/ez/add-phase.md +0 -43
- package/commands/ez/add-todo.md +0 -47
- package/commands/ez/auth.md +0 -87
- package/commands/ez/autonomous.md +0 -41
- package/commands/ez/check-todos.md +0 -45
- package/commands/ez/cleanup.md +0 -18
- package/commands/ez/debug.md +0 -168
- package/commands/ez/health.md +0 -22
- package/commands/ez/insert-phase.md +0 -32
- package/commands/ez/join-discord.md +0 -18
- package/commands/ez/list-phase-assumptions.md +0 -46
- package/commands/ez/pause-work.md +0 -38
- package/commands/ez/plan-milestone-gaps.md +0 -34
- package/commands/ez/reapply-patches.md +0 -124
- package/commands/ez/remove-phase.md +0 -31
- package/commands/ez/research-phase.md +0 -190
- package/commands/ez/set-profile.md +0 -34
- package/commands/ez/stats.md +0 -18
- package/commands/ez/ui-phase.md +0 -34
- package/commands/ez/ui-review.md +0 -32
- package/commands/ez/validate-phase.md +0 -35
- package/ez-agents/templates/UI-SPEC.md +0 -100
- package/ez-agents/templates/VALIDATION.md +0 -76
- package/ez-agents/templates/context.md +0 -352
- package/ez-agents/templates/verification-report.md +0 -322
- package/ez-agents/workflows/research-phase.md +0 -74
- package/ez-agents/workflows/ui-phase.md +0 -290
- package/ez-agents/workflows/ui-review.md +0 -157
- package/ez-agents/workflows/validate-phase.md +0 -167
|
@@ -9,22 +9,29 @@ Display the complete EZ Agents command reference. Output ONLY the reference cont
|
|
|
9
9
|
|
|
10
10
|
## Quick Start
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
### Lean Agile Flow (Recommended)
|
|
13
|
+
1. `/ez:new-project` - Initialize project (requirements + roadmap)
|
|
14
|
+
2. `/ez:run-phase 1` - Run all phases iteratively with pause points
|
|
15
|
+
3. `/ez:audit-milestone` - Verify all requirements met
|
|
16
|
+
4. `/ez:complete-milestone` - Archive and tag release
|
|
17
|
+
|
|
18
|
+
### Manual Control Flow
|
|
19
|
+
1. `/ez:new-project` - Initialize project
|
|
20
|
+
2. `/ez:discuss-phase 1` - Optional: clarify approach
|
|
21
|
+
3. `/ez:plan-phase 1` - Create task breakdown
|
|
22
|
+
4. `/ez:execute-phase 1` - Build the plan
|
|
23
|
+
5. `/ez:verify-work 1` - Test it works
|
|
15
24
|
|
|
16
|
-
##
|
|
17
|
-
|
|
18
|
-
EZ Agents evolves fast. Update periodically:
|
|
25
|
+
## Core Workflow
|
|
19
26
|
|
|
20
|
-
```
|
|
21
|
-
|
|
27
|
+
```
|
|
28
|
+
/ez:new-project → /ez:run-phase → /ez:audit-milestone → /ez:complete-milestone
|
|
22
29
|
```
|
|
23
30
|
|
|
24
|
-
|
|
31
|
+
Or with manual control:
|
|
25
32
|
|
|
26
33
|
```
|
|
27
|
-
/ez:new-project → /ez:plan-phase → /ez:execute-phase → repeat
|
|
34
|
+
/ez:new-project → /ez:discuss-phase → /ez:plan-phase → /ez:execute-phase → /ez:verify-work → repeat
|
|
28
35
|
```
|
|
29
36
|
|
|
30
37
|
### Project Initialization
|
|
@@ -58,6 +65,31 @@ Map an existing codebase for brownfield projects.
|
|
|
58
65
|
|
|
59
66
|
Usage: `/ez:map-codebase`
|
|
60
67
|
|
|
68
|
+
### Iterative Execution (NEW!)
|
|
69
|
+
|
|
70
|
+
**`/ez:run-phase [start-phase]`**
|
|
71
|
+
**NEW!** Run all phases iteratively with pause points for approval.
|
|
72
|
+
|
|
73
|
+
Execute all phases from a starting point: discuss → plan → execute → verify, with user approval between each step. Auto-advances to next phase after completion.
|
|
74
|
+
|
|
75
|
+
- **Pause points** (unless `--yolo`):
|
|
76
|
+
- After discuss: "Continue to plan?"
|
|
77
|
+
- After plan: "Continue to execute?"
|
|
78
|
+
- After execute: "Continue to verify?"
|
|
79
|
+
- After verify: "Continue to next phase?"
|
|
80
|
+
- **Auto-tracks progress** in STATE.md and ROADMAP.md
|
|
81
|
+
- **Resume support**: Stop anytime, resume with `/ez:run-phase [N]`
|
|
82
|
+
|
|
83
|
+
**Flags:**
|
|
84
|
+
- `--no-discuss` — Skip discuss-phase for all phases
|
|
85
|
+
- `--no-verify` — Skip verify-work for all phases
|
|
86
|
+
- `--yolo` — No pause points, fully autonomous (use at own risk)
|
|
87
|
+
|
|
88
|
+
Usage: `/ez:run-phase` (start from first incomplete phase)
|
|
89
|
+
Usage: `/ez:run-phase 1` (start from phase 1)
|
|
90
|
+
Usage: `/ez:run-phase 2 --no-discuss` (skip discussion)
|
|
91
|
+
Usage: `/ez:run-phase 1 --yolo` (fully autonomous)
|
|
92
|
+
|
|
61
93
|
### Phase Planning
|
|
62
94
|
|
|
63
95
|
**`/ez:discuss-phase <number>`**
|
|
@@ -72,25 +104,6 @@ Usage: `/ez:discuss-phase 2`
|
|
|
72
104
|
Usage: `/ez:discuss-phase 2 --batch`
|
|
73
105
|
Usage: `/ez:discuss-phase 2 --batch=3`
|
|
74
106
|
|
|
75
|
-
**`/ez:research-phase <number>`**
|
|
76
|
-
Comprehensive ecosystem research for niche/complex domains.
|
|
77
|
-
|
|
78
|
-
- Discovers standard stack, architecture patterns, pitfalls
|
|
79
|
-
- Creates RESEARCH.md with "how experts build this" knowledge
|
|
80
|
-
- Use for 3D, games, audio, shaders, ML, and other specialized domains
|
|
81
|
-
- Goes beyond "which library" to ecosystem knowledge
|
|
82
|
-
|
|
83
|
-
Usage: `/ez:research-phase 3`
|
|
84
|
-
|
|
85
|
-
**`/ez:list-phase-assumptions <number>`**
|
|
86
|
-
See what Claude is planning to do before it starts.
|
|
87
|
-
|
|
88
|
-
- Shows Claude's intended approach for a phase
|
|
89
|
-
- Lets you course-correct if Claude misunderstood your vision
|
|
90
|
-
- No files created - conversational output only
|
|
91
|
-
|
|
92
|
-
Usage: `/ez:list-phase-assumptions 3`
|
|
93
|
-
|
|
94
107
|
**`/ez:plan-phase <number>`**
|
|
95
108
|
Create detailed execution plan for a specific phase.
|
|
96
109
|
|
|
@@ -131,38 +144,6 @@ Use when you know exactly what to do and the task is small enough to not need re
|
|
|
131
144
|
Usage: `/ez:quick`
|
|
132
145
|
Result: Creates `.planning/quick/NNN-slug/PLAN.md`, `.planning/quick/NNN-slug/SUMMARY.md`
|
|
133
146
|
|
|
134
|
-
### Roadmap Management
|
|
135
|
-
|
|
136
|
-
**`/ez:add-phase <description>`**
|
|
137
|
-
Add new phase to end of current milestone.
|
|
138
|
-
|
|
139
|
-
- Appends to ROADMAP.md
|
|
140
|
-
- Uses next sequential number
|
|
141
|
-
- Updates phase directory structure
|
|
142
|
-
|
|
143
|
-
Usage: `/ez:add-phase "Add admin dashboard"`
|
|
144
|
-
|
|
145
|
-
**`/ez:insert-phase <after> <description>`**
|
|
146
|
-
Insert urgent work as decimal phase between existing phases.
|
|
147
|
-
|
|
148
|
-
- Creates intermediate phase (e.g., 7.1 between 7 and 8)
|
|
149
|
-
- Useful for discovered work that must happen mid-milestone
|
|
150
|
-
- Maintains phase ordering
|
|
151
|
-
|
|
152
|
-
Usage: `/ez:insert-phase 7 "Fix critical auth bug"`
|
|
153
|
-
Result: Creates Phase 7.1
|
|
154
|
-
|
|
155
|
-
**`/ez:remove-phase <number>`**
|
|
156
|
-
Remove a future phase and renumber subsequent phases.
|
|
157
|
-
|
|
158
|
-
- Deletes phase directory and all references
|
|
159
|
-
- Renumbers all subsequent phases to close the gap
|
|
160
|
-
- Only works on future (unstarted) phases
|
|
161
|
-
- Git commit preserves historical record
|
|
162
|
-
|
|
163
|
-
Usage: `/ez:remove-phase 17`
|
|
164
|
-
Result: Phase 17 deleted, phases 18-20 become 17-19
|
|
165
|
-
|
|
166
147
|
### Milestone Management
|
|
167
148
|
|
|
168
149
|
**`/ez:new-milestone <name>`**
|
|
@@ -212,15 +193,6 @@ Resume work from previous session with full context restoration.
|
|
|
212
193
|
|
|
213
194
|
Usage: `/ez:resume-work`
|
|
214
195
|
|
|
215
|
-
**`/ez:pause-work`**
|
|
216
|
-
Create context handoff when pausing work mid-phase.
|
|
217
|
-
|
|
218
|
-
- Creates .continue-here file with current state
|
|
219
|
-
- Updates STATE.md session continuity section
|
|
220
|
-
- Captures in-progress work context
|
|
221
|
-
|
|
222
|
-
Usage: `/ez:pause-work`
|
|
223
|
-
|
|
224
196
|
### Debugging
|
|
225
197
|
|
|
226
198
|
**`/ez:debug [issue description]`**
|
|
@@ -235,32 +207,6 @@ Systematic debugging with persistent state across context resets.
|
|
|
235
207
|
Usage: `/ez:debug "login button doesn't work"`
|
|
236
208
|
Usage: `/ez:debug` (resume active session)
|
|
237
209
|
|
|
238
|
-
### Todo Management
|
|
239
|
-
|
|
240
|
-
**`/ez:add-todo [description]`**
|
|
241
|
-
Capture idea or task as todo from current conversation.
|
|
242
|
-
|
|
243
|
-
- Extracts context from conversation (or uses provided description)
|
|
244
|
-
- Creates structured todo file in `.planning/todos/pending/`
|
|
245
|
-
- Infers area from file paths for grouping
|
|
246
|
-
- Checks for duplicates before creating
|
|
247
|
-
- Updates STATE.md todo count
|
|
248
|
-
|
|
249
|
-
Usage: `/ez:add-todo` (infers from conversation)
|
|
250
|
-
Usage: `/ez:add-todo Add auth token refresh`
|
|
251
|
-
|
|
252
|
-
**`/ez:check-todos [area]`**
|
|
253
|
-
List pending todos and select one to work on.
|
|
254
|
-
|
|
255
|
-
- Lists all pending todos with title, area, age
|
|
256
|
-
- Optional area filter (e.g., `/ez:check-todos api`)
|
|
257
|
-
- Loads full context for selected todo
|
|
258
|
-
- Routes to appropriate action (work now, add to phase, brainstorm)
|
|
259
|
-
- Moves todo to done/ when work begins
|
|
260
|
-
|
|
261
|
-
Usage: `/ez:check-todos`
|
|
262
|
-
Usage: `/ez:check-todos api`
|
|
263
|
-
|
|
264
210
|
### User Acceptance Testing
|
|
265
211
|
|
|
266
212
|
**`/ez:verify-work [phase]`**
|
|
@@ -285,16 +231,6 @@ Audit milestone completion against original intent.
|
|
|
285
231
|
|
|
286
232
|
Usage: `/ez:audit-milestone`
|
|
287
233
|
|
|
288
|
-
**`/ez:plan-milestone-gaps`**
|
|
289
|
-
Create phases to close gaps identified by audit.
|
|
290
|
-
|
|
291
|
-
- Reads MILESTONE-AUDIT.md and groups gaps into phases
|
|
292
|
-
- Prioritizes by requirement priority (must/should/nice)
|
|
293
|
-
- Adds gap closure phases to ROADMAP.md
|
|
294
|
-
- Ready for `/ez:plan-phase` on new phases
|
|
295
|
-
|
|
296
|
-
Usage: `/ez:plan-milestone-gaps`
|
|
297
|
-
|
|
298
234
|
### Configuration
|
|
299
235
|
|
|
300
236
|
**`/ez:settings`**
|
|
@@ -306,27 +242,8 @@ Configure workflow toggles and model profile interactively.
|
|
|
306
242
|
|
|
307
243
|
Usage: `/ez:settings`
|
|
308
244
|
|
|
309
|
-
**`/ez:set-profile <profile>`**
|
|
310
|
-
Quick switch model profile for EZ agents.
|
|
311
|
-
|
|
312
|
-
- `quality` — Opus everywhere except verification
|
|
313
|
-
- `balanced` — Opus for planning, Sonnet for execution (default)
|
|
314
|
-
- `budget` — Sonnet for writing, Haiku for research/verification
|
|
315
|
-
|
|
316
|
-
Usage: `/ez:set-profile budget`
|
|
317
|
-
|
|
318
245
|
### Utility Commands
|
|
319
246
|
|
|
320
|
-
**`/ez:cleanup`**
|
|
321
|
-
Archive accumulated phase directories from completed milestones.
|
|
322
|
-
|
|
323
|
-
- Identifies phases from completed milestones still in `.planning/phases/`
|
|
324
|
-
- Shows dry-run summary before moving anything
|
|
325
|
-
- Moves phase dirs to `.planning/milestones/v{X.Y}-phases/`
|
|
326
|
-
- Use after multiple milestones to reduce `.planning/phases/` clutter
|
|
327
|
-
|
|
328
|
-
Usage: `/ez:cleanup`
|
|
329
|
-
|
|
330
247
|
**`/ez:help`**
|
|
331
248
|
Show this command reference.
|
|
332
249
|
|
|
@@ -341,14 +258,6 @@ Update EZ Agents to latest version with changelog preview.
|
|
|
341
258
|
|
|
342
259
|
Usage: `/ez:update`
|
|
343
260
|
|
|
344
|
-
**`/ez:join-discord`**
|
|
345
|
-
Join the EZ Agents Discord community.
|
|
346
|
-
|
|
347
|
-
- Get help, share what you're building, stay updated
|
|
348
|
-
- Connect with other EZ Agents users
|
|
349
|
-
|
|
350
|
-
Usage: `/ez:join-discord`
|
|
351
|
-
|
|
352
261
|
## Files & Structure
|
|
353
262
|
|
|
354
263
|
```
|
|
@@ -483,6 +392,50 @@ Example config:
|
|
|
483
392
|
/ez:debug # Resume from where you left off
|
|
484
393
|
```
|
|
485
394
|
|
|
395
|
+
## Global Flags
|
|
396
|
+
|
|
397
|
+
Flags below apply to all core commands (`execute-phase`, `plan-phase`, `release`, `progress`):
|
|
398
|
+
|
|
399
|
+
| Flag | Effect |
|
|
400
|
+
|---|---|
|
|
401
|
+
| `--no-auto` | Disable all auto-invocations. Expert mode. |
|
|
402
|
+
| `--verbose` | Show detail for every auto-invocation step. |
|
|
403
|
+
| `--skip-discussion` | Skip discuss-phase only (more granular than --no-auto). |
|
|
404
|
+
|
|
405
|
+
## Smart Orchestration
|
|
406
|
+
|
|
407
|
+
Core commands automatically invoke helper commands based on context:
|
|
408
|
+
|
|
409
|
+
- `/ez:execute-phase N` → auto: health check (pre), verify-work (post)
|
|
410
|
+
- `/ez:plan-phase N` → auto: discuss-phase if phase touches a sensitive area (auth, DB, payment, etc.)
|
|
411
|
+
- `/ez:release tier ver` → auto: verify-work (medium+), audit-milestone + arch-review (enterprise)
|
|
412
|
+
- `/ez:progress` → auto: health check (silent on pass)
|
|
413
|
+
|
|
414
|
+
All auto-invocations appear with `[auto]` prefix in output.
|
|
415
|
+
|
|
416
|
+
Disable globally: set `"smart_orchestration": { "enabled": false }` in `.planning/config.json`.
|
|
417
|
+
Disable per-command: append `--no-auto` flag.
|
|
418
|
+
|
|
419
|
+
## Flags
|
|
420
|
+
|
|
421
|
+
### --skip-discussion
|
|
422
|
+
Skips the DISCUSSION.md pre-flight check and proceeds directly to execution.
|
|
423
|
+
|
|
424
|
+
Usage: ez execute-phase <phase> --skip-discussion
|
|
425
|
+
|
|
426
|
+
⚠️ Warning: Pre-flight discussion skipped via --skip-discussion
|
|
427
|
+
|
|
428
|
+
### Migration Guide (v2.x → v3.0)
|
|
429
|
+
If upgrading from v2.x:
|
|
430
|
+
- `agent_discussion` is now enabled by default (was disabled)
|
|
431
|
+
- Use `--skip-discussion` to preserve v2.x behavior during transition
|
|
432
|
+
- Set `"agent_discussion": { "enabled": false }` in config.json to permanently disable
|
|
433
|
+
|
|
434
|
+
### Migration Note (v3.x → Smart Orchestration)
|
|
435
|
+
If upgrading from v3.x without smart orchestration and the new behavior is not desired, two options:
|
|
436
|
+
1. Add `--no-auto` to frequently used commands
|
|
437
|
+
2. Set `"smart_orchestration": { "enabled": false }` in `.planning/config.json`
|
|
438
|
+
|
|
486
439
|
## Getting Help
|
|
487
440
|
|
|
488
441
|
- Read `.planning/PROJECT.md` for project vision
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
<purpose>
|
|
2
|
+
Manage hotfix branches: create from main, complete by merging atomically to main (and develop for GitFlow), tag the release, and sync without polluting in-progress work.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<process>
|
|
6
|
+
|
|
7
|
+
## 1. Parse Arguments
|
|
8
|
+
|
|
9
|
+
Extract from $ARGUMENTS:
|
|
10
|
+
- Subcommand: `start` or `complete`
|
|
11
|
+
- Name: slug for the hotfix (e.g., `critical-bug`, `gmail-login-fix`)
|
|
12
|
+
- Version (for `complete` only): semver string
|
|
13
|
+
|
|
14
|
+
**If missing subcommand:**
|
|
15
|
+
```
|
|
16
|
+
Usage:
|
|
17
|
+
/ez:hotfix start <name>
|
|
18
|
+
/ez:hotfix complete <name> <version>
|
|
19
|
+
```
|
|
20
|
+
Exit.
|
|
21
|
+
|
|
22
|
+
## 2. Handle "start" Subcommand
|
|
23
|
+
|
|
24
|
+
### 2a. Load current state
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# Current branch
|
|
28
|
+
CURRENT_BRANCH=$(git branch --show-current)
|
|
29
|
+
|
|
30
|
+
# Current version
|
|
31
|
+
CURRENT_VERSION=$(node -e "console.log(require('./package.json').version)" 2>/dev/null || echo "0.0.0")
|
|
32
|
+
|
|
33
|
+
# Load tier from config
|
|
34
|
+
TIER=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" config-get release.tier 2>/dev/null || echo "mvp")
|
|
35
|
+
|
|
36
|
+
# Last tag
|
|
37
|
+
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "none")
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 2b. Check for uncommitted changes
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
git status --short
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**If uncommitted changes:** Error — "Stash or commit current work before creating a hotfix"
|
|
47
|
+
|
|
48
|
+
### 2c. Create hotfix branch
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Get hotfix branch name
|
|
52
|
+
HOTFIX_BRANCH=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" hotfix-branch-name "${NAME}")
|
|
53
|
+
# Returns: hotfix/{name-slug}
|
|
54
|
+
|
|
55
|
+
# Branch from main (or last release tag if available)
|
|
56
|
+
SOURCE=$(git rev-parse --verify "${LAST_TAG}" 2>/dev/null && echo "${LAST_TAG}" || echo "main")
|
|
57
|
+
|
|
58
|
+
git checkout "${SOURCE}"
|
|
59
|
+
git checkout -b "${HOTFIX_BRANCH}"
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 2d. Report to user
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
66
|
+
EZ ► HOTFIX STARTED: {HOTFIX_BRANCH}
|
|
67
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
68
|
+
|
|
69
|
+
Branch: {HOTFIX_BRANCH}
|
|
70
|
+
From: {SOURCE} ({CURRENT_VERSION})
|
|
71
|
+
Tier: {TIER}
|
|
72
|
+
|
|
73
|
+
Make your fix, commit it, then complete:
|
|
74
|
+
/ez:hotfix complete {NAME} {NEXT_PATCH_VERSION}
|
|
75
|
+
|
|
76
|
+
Example:
|
|
77
|
+
Current: {CURRENT_VERSION}
|
|
78
|
+
Next: {NEXT_PATCH_SUGGESTION}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Suggest next patch version: increment patch number (1.2.3 → 1.2.4).
|
|
82
|
+
|
|
83
|
+
**STOP here for `start` subcommand.**
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 3. Handle "complete" Subcommand
|
|
88
|
+
|
|
89
|
+
### 3a. Validate state
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# Confirm on hotfix branch
|
|
93
|
+
CURRENT_BRANCH=$(git branch --show-current)
|
|
94
|
+
EXPECTED_BRANCH=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" hotfix-branch-name "${NAME}")
|
|
95
|
+
|
|
96
|
+
if [ "$CURRENT_BRANCH" != "$EXPECTED_BRANCH" ]; then
|
|
97
|
+
echo "ERROR: Not on hotfix branch. Expected: ${EXPECTED_BRANCH}, got: ${CURRENT_BRANCH}"
|
|
98
|
+
exit 1
|
|
99
|
+
fi
|
|
100
|
+
|
|
101
|
+
# Check for uncommitted changes
|
|
102
|
+
git status --short
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**If uncommitted changes:** Error — "Commit your fix before completing the hotfix"
|
|
106
|
+
|
|
107
|
+
### 3b. Validate version is semver
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
echo "${VERSION}" | grep -E "^[0-9]+\.[0-9]+\.[0-9]+$"
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**If invalid:** Error — "Version must be semver (X.Y.Z)"
|
|
114
|
+
|
|
115
|
+
### 3c. Run security gates
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" release security-gates
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**If secrets found:** Error — "Remove secrets before completing hotfix"
|
|
122
|
+
**If critical vulns:** Warning (not hard block for hotfix — speed matters)
|
|
123
|
+
|
|
124
|
+
### 3d. Run tests
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
npm test 2>/dev/null || yarn test 2>/dev/null || echo "WARNING: No test command found"
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**If tests fail:** Warning — "Tests failing. Hotfix will be tagged but verify before pushing."
|
|
131
|
+
|
|
132
|
+
### 3e. Load tier and git strategy
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
TIER=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" config-get release.tier 2>/dev/null || echo "mvp")
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Determine sync target:
|
|
139
|
+
- MVP/Medium: No sync needed (just main)
|
|
140
|
+
- Enterprise: Also sync to develop
|
|
141
|
+
|
|
142
|
+
### 3f. Generate changelog entry
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
LAST_TAG=$(git describe --tags --abbrev=0 main 2>/dev/null || echo "")
|
|
146
|
+
if [ -n "$LAST_TAG" ]; then
|
|
147
|
+
COMMITS=$(git log ${LAST_TAG}..HEAD --oneline --no-merges)
|
|
148
|
+
fi
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Format entry for CHANGELOG.md:
|
|
152
|
+
```markdown
|
|
153
|
+
## [{VERSION}] — {date} (hotfix)
|
|
154
|
+
|
|
155
|
+
### Bug Fixes
|
|
156
|
+
- {fix commit message(s)}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### 3g. Merge to main
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
git checkout main
|
|
163
|
+
git merge --no-ff "${HOTFIX_BRANCH}" -m "hotfix(release): merge ${HOTFIX_BRANCH} for v${VERSION}"
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**If merge conflict:**
|
|
167
|
+
```
|
|
168
|
+
MERGE CONFLICT during hotfix merge.
|
|
169
|
+
Resolve conflicts in: {conflicting files}
|
|
170
|
+
Then run: git commit && /ez:hotfix complete {NAME} {VERSION}
|
|
171
|
+
```
|
|
172
|
+
STOP.
|
|
173
|
+
|
|
174
|
+
### 3h. Bump version and update changelog
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
# Bump version in package.json
|
|
178
|
+
node -e "
|
|
179
|
+
const pkg = JSON.parse(require('fs').readFileSync('package.json'));
|
|
180
|
+
pkg.version = '${VERSION}';
|
|
181
|
+
require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
|
|
182
|
+
"
|
|
183
|
+
|
|
184
|
+
# Update CHANGELOG.md (prepend entry)
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### 3i. Create rollback plan
|
|
188
|
+
|
|
189
|
+
Write to `.planning/releases/v${VERSION}-ROLLBACK-PLAN.md` using rollback-plan template.
|
|
190
|
+
|
|
191
|
+
### 3j. Commit and tag
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
git add CHANGELOG.md package.json .planning/releases/
|
|
195
|
+
git commit -m "chore(hotfix): v${VERSION} — ${NAME}
|
|
196
|
+
|
|
197
|
+
Hotfix: ${NAME}
|
|
198
|
+
Previous: v${PREVIOUS_VERSION}"
|
|
199
|
+
|
|
200
|
+
git tag -a "v${VERSION}" -m "Hotfix v${VERSION}: ${NAME}"
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### 3k. Sync to develop (Enterprise tier only)
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
if [ "$TIER" = "enterprise" ]; then
|
|
207
|
+
# Check if develop exists
|
|
208
|
+
git rev-parse --verify develop 2>/dev/null
|
|
209
|
+
if [ $? -eq 0 ]; then
|
|
210
|
+
git checkout develop
|
|
211
|
+
fi
|
|
212
|
+
fi
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Enterprise: Sync hotfix ke develop
|
|
216
|
+
|
|
217
|
+
1. Cek apakah sync akan conflict:
|
|
218
|
+
```
|
|
219
|
+
git merge-base --is-ancestor v{version} develop
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
2. Jika tidak conflict → `git merge v{version} --no-ff -m "chore: sync hotfix v{version} to develop"`
|
|
223
|
+
|
|
224
|
+
3. **Jika CONFLICT terdeteksi:**
|
|
225
|
+
- Jangan auto-merge. Beri instruksi eksplisit:
|
|
226
|
+
```
|
|
227
|
+
⚠️ MERGE CONFLICT: Hotfix sync ke develop memerlukan manual resolution.
|
|
228
|
+
|
|
229
|
+
Langkah:
|
|
230
|
+
a. git checkout develop
|
|
231
|
+
b. git merge v{version}
|
|
232
|
+
c. Resolve conflicts di file yang di-list git
|
|
233
|
+
d. git add . && git merge --continue
|
|
234
|
+
e. git push origin develop
|
|
235
|
+
|
|
236
|
+
PENTING: Hotfix SUDAH di production (main + tag).
|
|
237
|
+
Develop conflict tidak memblokir hotfix — selesaikan setelah production stabil.
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### 3l. Clean up hotfix branch (optional)
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
git branch -d "${HOTFIX_BRANCH}"
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### 3m. Report completion
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
250
|
+
EZ ► HOTFIX COMPLETE: v{VERSION} ✓
|
|
251
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
252
|
+
|
|
253
|
+
Hotfix: {NAME}
|
|
254
|
+
Version: v{VERSION}
|
|
255
|
+
Tag: v{VERSION}
|
|
256
|
+
Changelog: Updated
|
|
257
|
+
Rollback: .planning/releases/v{VERSION}-ROLLBACK-PLAN.md
|
|
258
|
+
|
|
259
|
+
{If enterprise:}
|
|
260
|
+
Synced to develop: ✓
|
|
261
|
+
|
|
262
|
+
### To Ship
|
|
263
|
+
git push origin main && git push origin v{VERSION}
|
|
264
|
+
|
|
265
|
+
{If enterprise:}
|
|
266
|
+
git push origin develop
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
</process>
|
|
270
|
+
|
|
271
|
+
<success_criteria>
|
|
272
|
+
|
|
273
|
+
### start
|
|
274
|
+
- [ ] Uncommitted changes check passed
|
|
275
|
+
- [ ] Hotfix branch created from main (or last tag)
|
|
276
|
+
- [ ] User sees branch name and complete instructions
|
|
277
|
+
|
|
278
|
+
### complete
|
|
279
|
+
- [ ] On correct hotfix branch
|
|
280
|
+
- [ ] Security gates run
|
|
281
|
+
- [ ] Tests run (warn if fail, don't block)
|
|
282
|
+
- [ ] Changelog entry generated
|
|
283
|
+
- [ ] Merged to main with no-ff
|
|
284
|
+
- [ ] Version bumped in package.json
|
|
285
|
+
- [ ] Rollback plan created
|
|
286
|
+
- [ ] Release tagged
|
|
287
|
+
- [ ] Develop synced (enterprise tier only)
|
|
288
|
+
- [ ] Hotfix branch cleaned up
|
|
289
|
+
- [ ] User sees push instructions
|
|
290
|
+
|
|
291
|
+
</success_criteria>
|