@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
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<purpose>
|
|
2
2
|
Initialize a new project through unified flow: questioning, research (optional), requirements, roadmap. This is the most leveraged moment in any project — deep questioning here means better plans, better execution, better outcomes. One workflow takes you from idea to ready-for-planning.
|
|
3
|
+
|
|
4
|
+
**GSD-2 Enhanced:** Includes health check, cost tracking, crash recovery, fresh context, and stuck detection for production-grade reliability.
|
|
3
5
|
</purpose>
|
|
4
6
|
|
|
5
7
|
<required_reading>
|
|
@@ -41,9 +43,78 @@ The document should describe what you want to build.
|
|
|
41
43
|
|
|
42
44
|
<process>
|
|
43
45
|
|
|
44
|
-
##
|
|
46
|
+
## 0. Pre-Flight Health Check (GSD-2 Pattern)
|
|
47
|
+
|
|
48
|
+
**MANDATORY FIRST STEP — Validate environment before ANY operation:**
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Run health check
|
|
52
|
+
HEALTH=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" doctor --json)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Check:**
|
|
56
|
+
- ✅ Node.js version >= 16.7.0
|
|
57
|
+
- ✅ AI tools available (Claude, OpenCode, etc.)
|
|
58
|
+
- ✅ Config valid (`.planning/config.json` or create default)
|
|
59
|
+
- ✅ Git repo initialized (or auto-init)
|
|
60
|
+
- ✅ API keys configured
|
|
61
|
+
|
|
62
|
+
**If any check fails:**
|
|
63
|
+
```
|
|
64
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
65
|
+
EZ ► HEALTH CHECK FAILED
|
|
66
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
67
|
+
|
|
68
|
+
❌ [Failed check description]
|
|
69
|
+
|
|
70
|
+
Fix:
|
|
71
|
+
[suggested command]
|
|
72
|
+
|
|
73
|
+
Example:
|
|
74
|
+
$ [example command]
|
|
75
|
+
|
|
76
|
+
Resolve before continuing with project initialization.
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Abort project init until resolved.**
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 0a. Gather Initial Context (CONTEXT-01, CONTEXT-02)
|
|
84
|
+
|
|
85
|
+
**Initialize ContextManager for context gathering:**
|
|
86
|
+
|
|
87
|
+
```javascript
|
|
88
|
+
const ContextManager = require('../bin/lib/context-manager.cjs');
|
|
89
|
+
const contextManager = new ContextManager(process.cwd());
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Request initial project context:**
|
|
93
|
+
|
|
94
|
+
```javascript
|
|
95
|
+
const context = await contextManager.requestContext({
|
|
96
|
+
files: ['README.md', 'package.json'],
|
|
97
|
+
urls: []
|
|
98
|
+
});
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Agent can request additional context using:**
|
|
102
|
+
- `ez-tools context read <pattern>` — Read local files
|
|
103
|
+
- `ez-tools context fetch <url>` — Fetch URL content (requires user confirmation)
|
|
104
|
+
|
|
105
|
+
**Update STATE.md with context sources:**
|
|
45
106
|
|
|
46
|
-
|
|
107
|
+
```javascript
|
|
108
|
+
await contextManager.updateStateMd();
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Continue to Setup (Step 1) with gathered context.**
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 1. Setup with Lock File (GSD-2 Pattern)
|
|
116
|
+
|
|
117
|
+
**Execute initialization with crash recovery:**
|
|
47
118
|
|
|
48
119
|
```bash
|
|
49
120
|
INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" init new-project)
|
|
@@ -54,11 +125,35 @@ Parse JSON for: `researcher_model`, `synthesizer_model`, `roadmapper_model`, `co
|
|
|
54
125
|
|
|
55
126
|
**If `project_exists` is true:** Error — project already initialized. Use `/ez:progress`.
|
|
56
127
|
|
|
128
|
+
**Create lock file for crash recovery:**
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# Create auto.lock
|
|
132
|
+
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" lock-create \
|
|
133
|
+
--operation="new-project" \
|
|
134
|
+
--project-path="$project_path"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Create `.planning/auto.lock`:**
|
|
138
|
+
```json
|
|
139
|
+
{
|
|
140
|
+
"pid": 12345,
|
|
141
|
+
"operation": "new-project",
|
|
142
|
+
"project_path": "/path/to/project",
|
|
143
|
+
"started_at": "2026-03-18T12:00:00.000Z",
|
|
144
|
+
"last_heartbeat": "2026-03-18T12:00:00.000Z",
|
|
145
|
+
"state": "setup"
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
57
149
|
**If `has_git` is false:** Initialize git:
|
|
58
150
|
```bash
|
|
59
151
|
git init
|
|
152
|
+
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" lock-update --state="git_initialized"
|
|
60
153
|
```
|
|
61
154
|
|
|
155
|
+
---
|
|
156
|
+
|
|
62
157
|
## 2. Brownfield Offer
|
|
63
158
|
|
|
64
159
|
**If auto mode:** Skip to Step 4 (assume greenfield, synthesize PROJECT.md from provided document).
|
|
@@ -80,6 +175,13 @@ Exit command.
|
|
|
80
175
|
|
|
81
176
|
**If "Skip mapping" OR `needs_codebase_map` is false:** Continue to Step 3.
|
|
82
177
|
|
|
178
|
+
**Update lock file state:**
|
|
179
|
+
```bash
|
|
180
|
+
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" lock-update --state="brownfield_check_complete"
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
83
185
|
## 2a. Auto Mode Config (auto mode only)
|
|
84
186
|
|
|
85
187
|
**If auto mode:** Collect config settings upfront before processing the idea document.
|
|
@@ -125,15 +227,6 @@ AskUserQuestion([
|
|
|
125
227
|
|
|
126
228
|
```
|
|
127
229
|
AskUserQuestion([
|
|
128
|
-
{
|
|
129
|
-
header: "Research",
|
|
130
|
-
question: "Research before planning each phase? (adds tokens/time)",
|
|
131
|
-
multiSelect: false,
|
|
132
|
-
options: [
|
|
133
|
-
{ label: "Yes (Recommended)", description: "Investigate domain, find patterns, surface gotchas" },
|
|
134
|
-
{ label: "No", description: "Plan directly from requirements" }
|
|
135
|
-
]
|
|
136
|
-
},
|
|
137
230
|
{
|
|
138
231
|
header: "Plan Check",
|
|
139
232
|
question: "Verify plans will achieve their goals? (adds tokens/time)",
|
|
@@ -199,8 +292,15 @@ node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "chore: add project confi
|
|
|
199
292
|
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" config-set workflow._auto_chain_active true
|
|
200
293
|
```
|
|
201
294
|
|
|
295
|
+
**Update lock file state:**
|
|
296
|
+
```bash
|
|
297
|
+
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" lock-update --state="config_complete"
|
|
298
|
+
```
|
|
299
|
+
|
|
202
300
|
Proceed to Step 4 (skip Steps 3 and 5).
|
|
203
301
|
|
|
302
|
+
---
|
|
303
|
+
|
|
204
304
|
## 3. Deep Questioning
|
|
205
305
|
|
|
206
306
|
**If auto mode:** Skip (already handled in Step 2a). Extract project context from provided document instead and proceed to Step 4.
|
|
@@ -257,6 +357,13 @@ If "Keep exploring" — ask what they want to add, or identify gaps and probe na
|
|
|
257
357
|
|
|
258
358
|
Loop until "Create PROJECT.md" selected.
|
|
259
359
|
|
|
360
|
+
**Update lock file state:**
|
|
361
|
+
```bash
|
|
362
|
+
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" lock-update --state="questioning_complete"
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
260
367
|
## 4. Write PROJECT.md
|
|
261
368
|
|
|
262
369
|
**If auto mode:** Synthesize from provided document. No "Ready?" gate was shown — proceed directly to commit.
|
|
@@ -343,6 +450,13 @@ mkdir -p .planning
|
|
|
343
450
|
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "docs: initialize project" --files .planning/PROJECT.md
|
|
344
451
|
```
|
|
345
452
|
|
|
453
|
+
**Update lock file state:**
|
|
454
|
+
```bash
|
|
455
|
+
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" lock-update --state="project_defined"
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
---
|
|
459
|
+
|
|
346
460
|
## 5. Workflow Preferences
|
|
347
461
|
|
|
348
462
|
**If auto mode:** Skip — config was collected in Step 2a. Proceed to Step 5.5.
|
|
@@ -415,27 +529,12 @@ questions: [
|
|
|
415
529
|
|
|
416
530
|
**Round 2 — Workflow agents:**
|
|
417
531
|
|
|
418
|
-
These spawn additional agents during planning/execution. They add tokens and time but improve quality.
|
|
419
|
-
|
|
420
|
-
| Agent | When it runs | What it does |
|
|
421
|
-
|-------|--------------|--------------|
|
|
422
|
-
| **Researcher** | Before planning each phase | Investigates domain, finds patterns, surfaces gotchas |
|
|
423
|
-
| **Plan Checker** | After plan is created | Verifies plan actually achieves the phase goal |
|
|
424
|
-
| **Verifier** | After phase execution | Confirms must-haves were delivered |
|
|
532
|
+
These spawn additional agents during planning/execution. They add tokens and time but improve quality. They add tokens and time but improve quality.
|
|
425
533
|
|
|
426
534
|
All recommended for important projects. Skip for quick experiments.
|
|
427
535
|
|
|
428
536
|
```
|
|
429
537
|
questions: [
|
|
430
|
-
{
|
|
431
|
-
header: "Research",
|
|
432
|
-
question: "Research before planning each phase? (adds tokens/time)",
|
|
433
|
-
multiSelect: false,
|
|
434
|
-
options: [
|
|
435
|
-
{ label: "Yes (Recommended)", description: "Investigate domain, find patterns, surface gotchas" },
|
|
436
|
-
{ label: "No", description: "Plan directly from requirements" }
|
|
437
|
-
]
|
|
438
|
-
},
|
|
439
538
|
{
|
|
440
539
|
header: "Plan Check",
|
|
441
540
|
question: "Verify plans will achieve their goals? (adds tokens/time)",
|
|
@@ -500,11 +599,18 @@ node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "chore: add project confi
|
|
|
500
599
|
|
|
501
600
|
**Note:** Run `/ez:settings` anytime to update these preferences.
|
|
502
601
|
|
|
602
|
+
**Update lock file state:**
|
|
603
|
+
```bash
|
|
604
|
+
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" lock-update --state="config_complete"
|
|
605
|
+
```
|
|
606
|
+
|
|
503
607
|
## 5.5. Resolve Model Profile
|
|
504
608
|
|
|
505
609
|
Use models from init: `researcher_model`, `synthesizer_model`, `roadmapper_model`.
|
|
506
610
|
|
|
507
|
-
|
|
611
|
+
---
|
|
612
|
+
|
|
613
|
+
## 6. Research Decision (with Fresh Context - GSD-2 Pattern)
|
|
508
614
|
|
|
509
615
|
**If auto mode:** Default to "Research first" without asking.
|
|
510
616
|
|
|
@@ -512,7 +618,7 @@ Use AskUserQuestion:
|
|
|
512
618
|
- header: "Research"
|
|
513
619
|
- question: "Research the domain ecosystem before defining requirements?"
|
|
514
620
|
- options:
|
|
515
|
-
- "Research first (Recommended)" — Discover standard
|
|
621
|
+
- "Research first (Recommended)" — Discover standard stack, expected features, architecture patterns
|
|
516
622
|
- "Skip research" — I know this domain well, go straight to requirements
|
|
517
623
|
|
|
518
624
|
**If "Research first":**
|
|
@@ -546,22 +652,34 @@ Display spawning indicator:
|
|
|
546
652
|
→ Pitfalls research
|
|
547
653
|
```
|
|
548
654
|
|
|
549
|
-
Spawn 4 parallel ez-project-researcher agents with
|
|
655
|
+
**Spawn 4 parallel ez-project-researcher agents with FRESH CONTEXT (GSD-2 Pattern):**
|
|
656
|
+
|
|
657
|
+
Each uses this template with dimension-specific fields:
|
|
550
658
|
|
|
551
659
|
```
|
|
552
|
-
Task(prompt="
|
|
553
|
-
Project Research —
|
|
554
|
-
|
|
660
|
+
Task(prompt="
|
|
661
|
+
<research_type>Project Research — {DIMENSION} for [domain].</research_type>
|
|
662
|
+
|
|
663
|
+
<fresh_context>
|
|
664
|
+
CONTEXT RESET: This is a fresh 200K session.
|
|
665
|
+
No accumulated garbage from prior tasks.
|
|
666
|
+
Only relevant context pre-loaded below.
|
|
667
|
+
</fresh_context>
|
|
668
|
+
|
|
669
|
+
<pre_loaded_context>
|
|
670
|
+
- .planning/PROJECT.md excerpt (core value, goals)
|
|
671
|
+
- .planning/config.json (workflow settings)
|
|
672
|
+
</pre_loaded_context>
|
|
555
673
|
|
|
556
674
|
<milestone_context>
|
|
557
|
-
|
|
675
|
+
{greenfield_or_subsequent}
|
|
558
676
|
|
|
559
677
|
Greenfield: Research the standard stack for building [domain] from scratch.
|
|
560
678
|
Subsequent: Research what's needed to add [target features] to an existing [domain] app. Don't re-research the existing system.
|
|
561
679
|
</milestone_context>
|
|
562
680
|
|
|
563
681
|
<question>
|
|
564
|
-
|
|
682
|
+
{QUESTION}
|
|
565
683
|
</question>
|
|
566
684
|
|
|
567
685
|
<files_to_read>
|
|
@@ -569,146 +687,34 @@ What's the standard 2025 stack for [domain]?
|
|
|
569
687
|
</files_to_read>
|
|
570
688
|
|
|
571
689
|
<downstream_consumer>
|
|
572
|
-
|
|
573
|
-
- Specific libraries with versions
|
|
574
|
-
- Clear rationale for each choice
|
|
575
|
-
- What NOT to use and why
|
|
576
|
-
</downstream_consumer>
|
|
577
|
-
|
|
578
|
-
<quality_gate>
|
|
579
|
-
- [ ] Versions are current (verify with Context7/official docs, not training data)
|
|
580
|
-
- [ ] Rationale explains WHY, not just WHAT
|
|
581
|
-
- [ ] Confidence levels assigned to each recommendation
|
|
582
|
-
</quality_gate>
|
|
583
|
-
|
|
584
|
-
<output>
|
|
585
|
-
Write to: .planning/research/STACK.md
|
|
586
|
-
Use template: ~/.claude/ez-agents/templates/research-project/STACK.md
|
|
587
|
-
</output>
|
|
588
|
-
", subagent_type="ez-project-researcher", model="{researcher_model}", description="Stack research")
|
|
589
|
-
|
|
590
|
-
Task(prompt="<research_type>
|
|
591
|
-
Project Research — Features dimension for [domain].
|
|
592
|
-
</research_type>
|
|
593
|
-
|
|
594
|
-
<milestone_context>
|
|
595
|
-
[greenfield OR subsequent]
|
|
596
|
-
|
|
597
|
-
Greenfield: What features do [domain] products have? What's table stakes vs differentiating?
|
|
598
|
-
Subsequent: How do [target features] typically work? What's expected behavior?
|
|
599
|
-
</milestone_context>
|
|
600
|
-
|
|
601
|
-
<question>
|
|
602
|
-
What features do [domain] products have? What's table stakes vs differentiating?
|
|
603
|
-
</question>
|
|
604
|
-
|
|
605
|
-
<files_to_read>
|
|
606
|
-
- {project_path} (Project context)
|
|
607
|
-
</files_to_read>
|
|
608
|
-
|
|
609
|
-
<downstream_consumer>
|
|
610
|
-
Your FEATURES.md feeds into requirements definition. Categorize clearly:
|
|
611
|
-
- Table stakes (must have or users leave)
|
|
612
|
-
- Differentiators (competitive advantage)
|
|
613
|
-
- Anti-features (things to deliberately NOT build)
|
|
614
|
-
</downstream_consumer>
|
|
615
|
-
|
|
616
|
-
<quality_gate>
|
|
617
|
-
- [ ] Categories are clear (table stakes vs differentiators vs anti-features)
|
|
618
|
-
- [ ] Complexity noted for each feature
|
|
619
|
-
- [ ] Dependencies between features identified
|
|
620
|
-
</quality_gate>
|
|
621
|
-
|
|
622
|
-
<output>
|
|
623
|
-
Write to: .planning/research/FEATURES.md
|
|
624
|
-
Use template: ~/.claude/ez-agents/templates/research-project/FEATURES.md
|
|
625
|
-
</output>
|
|
626
|
-
", subagent_type="ez-project-researcher", model="{researcher_model}", description="Features research")
|
|
627
|
-
|
|
628
|
-
Task(prompt="<research_type>
|
|
629
|
-
Project Research — Architecture dimension for [domain].
|
|
630
|
-
</research_type>
|
|
631
|
-
|
|
632
|
-
<milestone_context>
|
|
633
|
-
[greenfield OR subsequent]
|
|
634
|
-
|
|
635
|
-
Greenfield: How are [domain] systems typically structured? What are major components?
|
|
636
|
-
Subsequent: How do [target features] integrate with existing [domain] architecture?
|
|
637
|
-
</milestone_context>
|
|
638
|
-
|
|
639
|
-
<question>
|
|
640
|
-
How are [domain] systems typically structured? What are major components?
|
|
641
|
-
</question>
|
|
642
|
-
|
|
643
|
-
<files_to_read>
|
|
644
|
-
- {project_path} (Project context)
|
|
645
|
-
</files_to_read>
|
|
646
|
-
|
|
647
|
-
<downstream_consumer>
|
|
648
|
-
Your ARCHITECTURE.md informs phase structure in roadmap. Include:
|
|
649
|
-
- Component boundaries (what talks to what)
|
|
650
|
-
- Data flow (how information moves)
|
|
651
|
-
- Suggested build order (dependencies between components)
|
|
690
|
+
{CONSUMER}
|
|
652
691
|
</downstream_consumer>
|
|
653
692
|
|
|
654
693
|
<quality_gate>
|
|
655
|
-
|
|
656
|
-
- [ ] Data flow direction explicit
|
|
657
|
-
- [ ] Build order implications noted
|
|
694
|
+
{GATES}
|
|
658
695
|
</quality_gate>
|
|
659
696
|
|
|
660
697
|
<output>
|
|
661
|
-
Write to: .planning/research/
|
|
662
|
-
Use template: ~/.claude/ez-agents/templates/research-project/
|
|
698
|
+
Write to: .planning/research/{FILE}
|
|
699
|
+
Use template: ~/.claude/ez-agents/templates/research-project/{FILE}
|
|
663
700
|
</output>
|
|
664
|
-
", subagent_type="ez-project-researcher", model="{researcher_model}", description="
|
|
665
|
-
|
|
666
|
-
Task(prompt="<research_type>
|
|
667
|
-
Project Research — Pitfalls dimension for [domain].
|
|
668
|
-
</research_type>
|
|
669
|
-
|
|
670
|
-
<milestone_context>
|
|
671
|
-
[greenfield OR subsequent]
|
|
672
|
-
|
|
673
|
-
Greenfield: What do [domain] projects commonly get wrong? Critical mistakes?
|
|
674
|
-
Subsequent: What are common mistakes when adding [target features] to [domain]?
|
|
675
|
-
</milestone_context>
|
|
676
|
-
|
|
677
|
-
<question>
|
|
678
|
-
What do [domain] projects commonly get wrong? Critical mistakes?
|
|
679
|
-
</question>
|
|
680
|
-
|
|
681
|
-
<files_to_read>
|
|
682
|
-
- {project_path} (Project context)
|
|
683
|
-
</files_to_read>
|
|
701
|
+
", subagent_type="ez-project-researcher", model="{researcher_model}", description="{DIMENSION} research")
|
|
702
|
+
```
|
|
684
703
|
|
|
685
|
-
|
|
686
|
-
Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall:
|
|
687
|
-
- Warning signs (how to detect early)
|
|
688
|
-
- Prevention strategy (how to avoid)
|
|
689
|
-
- Which phase should address it
|
|
690
|
-
</downstream_consumer>
|
|
704
|
+
**Dimension-specific fields:**
|
|
691
705
|
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
<output>
|
|
699
|
-
Write to: .planning/research/PITFALLS.md
|
|
700
|
-
Use template: ~/.claude/ez-agents/templates/research-project/PITFALLS.md
|
|
701
|
-
</output>
|
|
702
|
-
", subagent_type="ez-project-researcher", model="{researcher_model}", description="Pitfalls research")
|
|
703
|
-
```
|
|
706
|
+
| Field | Stack | Features | Architecture | Pitfalls |
|
|
707
|
+
|-------|-------|----------|-------------|----------|
|
|
708
|
+
| QUESTION | What's the standard 2025 stack for [domain]? | What features do [domain] products have? | How are [domain] systems typically structured? | What do [domain] projects commonly get wrong? |
|
|
709
|
+
| CONSUMER | Specific libraries with versions, clear rationale, what NOT to use | Table stakes vs differentiators vs anti-features | Component boundaries, data flow, build order | Warning signs, prevention strategy, phase mapping |
|
|
710
|
+
| GATES | Versions current (verify with Context7), rationale explains WHY | Categories clear, complexity noted, dependencies identified | Components clearly defined, data flow explicit | Pitfalls specific to domain, prevention actionable |
|
|
711
|
+
| FILE | STACK.md | FEATURES.md | ARCHITECTURE.md | PITFALLS.md |
|
|
704
712
|
|
|
705
|
-
After all 4
|
|
713
|
+
After all 4 complete, spawn synthesizer to create SUMMARY.md:
|
|
706
714
|
|
|
707
715
|
```
|
|
708
716
|
Task(prompt="
|
|
709
|
-
<task>
|
|
710
717
|
Synthesize research outputs into SUMMARY.md.
|
|
711
|
-
</task>
|
|
712
718
|
|
|
713
719
|
<files_to_read>
|
|
714
720
|
- .planning/research/STACK.md
|
|
@@ -717,12 +723,10 @@ Synthesize research outputs into SUMMARY.md.
|
|
|
717
723
|
- .planning/research/PITFALLS.md
|
|
718
724
|
</files_to_read>
|
|
719
725
|
|
|
720
|
-
<output>
|
|
721
726
|
Write to: .planning/research/SUMMARY.md
|
|
722
727
|
Use template: ~/.claude/ez-agents/templates/research-project/SUMMARY.md
|
|
723
728
|
Commit after writing.
|
|
724
|
-
|
|
725
|
-
", subagent_type="ez-research-synthesizer", model="{synthesizer_model}", description="Synthesize research")
|
|
729
|
+
", subagent_type="ez-phase-researcher", model="{synthesizer_model}", description="Synthesize research")
|
|
726
730
|
```
|
|
727
731
|
|
|
728
732
|
Display research complete banner and key findings:
|
|
@@ -740,8 +744,15 @@ Display research complete banner and key findings:
|
|
|
740
744
|
Files: `.planning/research/`
|
|
741
745
|
```
|
|
742
746
|
|
|
747
|
+
**Update lock file state:**
|
|
748
|
+
```bash
|
|
749
|
+
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" lock-update --state="research_complete"
|
|
750
|
+
```
|
|
751
|
+
|
|
743
752
|
**If "Skip research":** Continue to Step 7.
|
|
744
753
|
|
|
754
|
+
---
|
|
755
|
+
|
|
745
756
|
## 7. Define Requirements
|
|
746
757
|
|
|
747
758
|
Display stage banner:
|
|
@@ -852,29 +863,19 @@ Good requirements are:
|
|
|
852
863
|
- **Atomic:** One capability per requirement (not "User can login and manage profile")
|
|
853
864
|
- **Independent:** Minimal dependencies on other requirements
|
|
854
865
|
|
|
855
|
-
Reject vague requirements. Push for specificity
|
|
856
|
-
- "Handle authentication" → "User can log in with email/password and stay logged in across sessions"
|
|
857
|
-
- "Support sharing" → "User can share post via link that opens in recipient's browser"
|
|
866
|
+
Reject vague requirements. Push for specificity.
|
|
858
867
|
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
Show every requirement (not counts) for user confirmation:
|
|
868
|
+
Present FULL requirements list for confirmation:
|
|
862
869
|
|
|
863
870
|
```
|
|
864
|
-
##
|
|
865
|
-
|
|
866
|
-
### Authentication
|
|
867
|
-
- [ ] **AUTH-01**: User can create account with email/password
|
|
868
|
-
- [ ] **AUTH-02**: User can log in and stay logged in across sessions
|
|
869
|
-
- [ ] **AUTH-03**: User can log out from any page
|
|
871
|
+
## Project Requirements
|
|
870
872
|
|
|
871
|
-
###
|
|
872
|
-
- [ ] **
|
|
873
|
-
- [ ] **
|
|
873
|
+
### [Category 1]
|
|
874
|
+
- [ ] **CAT1-01**: User can do X
|
|
875
|
+
- [ ] **CAT1-02**: User can do Y
|
|
874
876
|
|
|
875
|
-
[
|
|
876
|
-
|
|
877
|
-
---
|
|
877
|
+
### [Category 2]
|
|
878
|
+
- [ ] **CAT2-01**: User can do Z
|
|
878
879
|
|
|
879
880
|
Does this capture what you're building? (yes / adjust)
|
|
880
881
|
```
|
|
@@ -882,12 +883,18 @@ Does this capture what you're building? (yes / adjust)
|
|
|
882
883
|
If "adjust": Return to scoping.
|
|
883
884
|
|
|
884
885
|
**Commit requirements:**
|
|
886
|
+
```bash
|
|
887
|
+
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "docs: define project requirements" --files .planning/REQUIREMENTS.md
|
|
888
|
+
```
|
|
885
889
|
|
|
890
|
+
**Update lock file state:**
|
|
886
891
|
```bash
|
|
887
|
-
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs"
|
|
892
|
+
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" lock-update --state="requirements_defined"
|
|
888
893
|
```
|
|
889
894
|
|
|
890
|
-
|
|
895
|
+
---
|
|
896
|
+
|
|
897
|
+
## 8. Create Roadmap (with Stuck Detection - GSD-2 Pattern)
|
|
891
898
|
|
|
892
899
|
Display stage banner:
|
|
893
900
|
```
|
|
@@ -898,59 +905,90 @@ Display stage banner:
|
|
|
898
905
|
◆ Spawning roadmapper...
|
|
899
906
|
```
|
|
900
907
|
|
|
901
|
-
|
|
908
|
+
**Initialize stuck detection:**
|
|
909
|
+
|
|
910
|
+
```bash
|
|
911
|
+
# Start stuck watcher
|
|
912
|
+
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" stuck-watch start \
|
|
913
|
+
--operation="roadmap-creation" \
|
|
914
|
+
--max-retries=1 \
|
|
915
|
+
--timeout=300
|
|
916
|
+
```
|
|
902
917
|
|
|
903
918
|
```
|
|
904
919
|
Task(prompt="
|
|
905
920
|
<planning_context>
|
|
906
|
-
|
|
907
921
|
<files_to_read>
|
|
908
|
-
- .planning/PROJECT.md
|
|
909
|
-
- .planning/REQUIREMENTS.md
|
|
910
|
-
- .planning/research/SUMMARY.md (
|
|
911
|
-
- .planning/config.json
|
|
922
|
+
- .planning/PROJECT.md
|
|
923
|
+
- .planning/REQUIREMENTS.md
|
|
924
|
+
- .planning/research/SUMMARY.md (if exists)
|
|
925
|
+
- .planning/config.json
|
|
912
926
|
</files_to_read>
|
|
913
|
-
|
|
914
927
|
</planning_context>
|
|
915
928
|
|
|
916
929
|
<instructions>
|
|
917
|
-
Create roadmap:
|
|
918
|
-
1.
|
|
919
|
-
2.
|
|
920
|
-
3.
|
|
921
|
-
4.
|
|
922
|
-
5.
|
|
923
|
-
6.
|
|
924
|
-
|
|
925
|
-
|
|
930
|
+
Create roadmap for new project:
|
|
931
|
+
1. Start phase numbering from 1
|
|
932
|
+
2. Derive phases from requirements
|
|
933
|
+
3. Map every requirement to exactly one phase
|
|
934
|
+
4. Derive 2-5 success criteria per phase (observable user behaviors)
|
|
935
|
+
5. Validate 100% coverage
|
|
936
|
+
6. Write files immediately (ROADMAP.md, STATE.md, update REQUIREMENTS.md traceability)
|
|
937
|
+
7. Return ROADMAP CREATED with summary
|
|
938
|
+
|
|
939
|
+
Write files first, then return.
|
|
926
940
|
</instructions>
|
|
927
941
|
", subagent_type="ez-roadmapper", model="{roadmapper_model}", description="Create roadmap")
|
|
928
942
|
```
|
|
929
943
|
|
|
930
|
-
**Handle
|
|
944
|
+
**Handle return:**
|
|
931
945
|
|
|
932
946
|
**If `## ROADMAP BLOCKED`:**
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
947
|
+
1. Log error type and location
|
|
948
|
+
2. Retry ONCE with diagnostic context:
|
|
949
|
+
```
|
|
950
|
+
Task(prompt="
|
|
951
|
+
<retry_context>
|
|
952
|
+
PREVIOUS ATTEMPT FAILED
|
|
953
|
+
Error Type: [error_type]
|
|
954
|
+
Error Location: [location]
|
|
955
|
+
Suggested Fix: [fix]
|
|
956
|
+
|
|
957
|
+
CONTEXT SNAPSHOT FOR DEBUGGING:
|
|
958
|
+
[snapshot of files read]
|
|
959
|
+
|
|
960
|
+
Please try again with this diagnostic information.
|
|
961
|
+
</retry_context>
|
|
962
|
+
", subagent_type="ez-roadmapper", model="{roadmapper_model}", description="Create roadmap (retry)")
|
|
963
|
+
```
|
|
964
|
+
3. If fails again → STOP with exact failure report:
|
|
965
|
+
```
|
|
966
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
967
|
+
EZ ► ROADMAP CREATION FAILED
|
|
968
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
936
969
|
|
|
937
|
-
|
|
970
|
+
Error Type: [type]
|
|
971
|
+
Error Location: [file:line]
|
|
972
|
+
Suggested Fix: [action]
|
|
938
973
|
|
|
939
|
-
|
|
974
|
+
Debug: Run `/ez:debug` to see current session state
|
|
940
975
|
|
|
976
|
+
Next Steps:
|
|
977
|
+
1. Review error details
|
|
978
|
+
2. Fix [specific issue]
|
|
979
|
+
3. Run: /ez:new-project --retry
|
|
941
980
|
```
|
|
942
|
-
---
|
|
943
981
|
|
|
982
|
+
**If `## ROADMAP CREATED`:** Read ROADMAP.md, present inline:
|
|
983
|
+
|
|
984
|
+
```
|
|
944
985
|
## Proposed Roadmap
|
|
945
986
|
|
|
946
|
-
**[N] phases** | **[X] requirements mapped** | All
|
|
987
|
+
**[N] phases** | **[X] requirements mapped** | All covered ✓
|
|
947
988
|
|
|
948
989
|
| # | Phase | Goal | Requirements | Success Criteria |
|
|
949
990
|
|---|-------|------|--------------|------------------|
|
|
950
991
|
| 1 | [Name] | [Goal] | [REQ-IDs] | [count] |
|
|
951
|
-
| 2 | [Name] | [Goal] | [REQ-IDs] | [count] |
|
|
952
|
-
| 3 | [Name] | [Goal] | [REQ-IDs] | [count] |
|
|
953
|
-
...
|
|
954
992
|
|
|
955
993
|
### Phase Details
|
|
956
994
|
|
|
@@ -960,154 +998,92 @@ Requirements: [REQ-IDs]
|
|
|
960
998
|
Success criteria:
|
|
961
999
|
1. [criterion]
|
|
962
1000
|
2. [criterion]
|
|
963
|
-
3. [criterion]
|
|
964
|
-
|
|
965
|
-
**Phase 2: [Name]**
|
|
966
|
-
Goal: [goal]
|
|
967
|
-
Requirements: [REQ-IDs]
|
|
968
|
-
Success criteria:
|
|
969
|
-
1. [criterion]
|
|
970
|
-
2. [criterion]
|
|
971
|
-
|
|
972
|
-
[... continue for all phases ...]
|
|
973
|
-
|
|
974
|
-
---
|
|
975
1001
|
```
|
|
976
1002
|
|
|
977
|
-
**
|
|
1003
|
+
**Ask for approval** via AskUserQuestion:
|
|
1004
|
+
- "Approve" — Commit and continue
|
|
1005
|
+
- "Adjust phases" — Tell me what to change
|
|
1006
|
+
- "Review full file" — Show raw ROADMAP.md
|
|
978
1007
|
|
|
979
|
-
**
|
|
1008
|
+
**If "Adjust":** Get notes, re-spawn roadmapper with revision context, loop until approved.
|
|
1009
|
+
**If "Review":** Display raw ROADMAP.md, re-ask.
|
|
980
1010
|
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
-
|
|
984
|
-
|
|
985
|
-
- "Approve" — Commit and continue
|
|
986
|
-
- "Adjust phases" — Tell me what to change
|
|
987
|
-
- "Review full file" — Show raw ROADMAP.md
|
|
988
|
-
|
|
989
|
-
**If "Approve":** Continue to commit.
|
|
990
|
-
|
|
991
|
-
**If "Adjust phases":**
|
|
992
|
-
- Get user's adjustment notes
|
|
993
|
-
- Re-spawn roadmapper with revision context:
|
|
994
|
-
```
|
|
995
|
-
Task(prompt="
|
|
996
|
-
<revision>
|
|
997
|
-
User feedback on roadmap:
|
|
998
|
-
[user's notes]
|
|
1011
|
+
**Commit roadmap** (after approval):
|
|
1012
|
+
```bash
|
|
1013
|
+
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "docs: create project roadmap ([N] phases)" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md
|
|
1014
|
+
```
|
|
999
1015
|
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1016
|
+
**Update lock file state:**
|
|
1017
|
+
```bash
|
|
1018
|
+
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" lock-update --state="roadmap_created"
|
|
1019
|
+
```
|
|
1003
1020
|
|
|
1004
|
-
|
|
1005
|
-
Return ROADMAP REVISED with changes made.
|
|
1006
|
-
</revision>
|
|
1007
|
-
", subagent_type="ez-roadmapper", model="{roadmapper_model}", description="Revise roadmap")
|
|
1008
|
-
```
|
|
1009
|
-
- Present revised roadmap
|
|
1010
|
-
- Loop until user approves
|
|
1021
|
+
---
|
|
1011
1022
|
|
|
1012
|
-
|
|
1023
|
+
## 9. Release Lock File
|
|
1013
1024
|
|
|
1014
|
-
**
|
|
1025
|
+
**Project initialization complete:**
|
|
1015
1026
|
|
|
1016
1027
|
```bash
|
|
1017
|
-
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs"
|
|
1028
|
+
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" lock-release
|
|
1018
1029
|
```
|
|
1019
1030
|
|
|
1020
|
-
|
|
1031
|
+
---
|
|
1021
1032
|
|
|
1022
|
-
|
|
1033
|
+
## 10. Done
|
|
1023
1034
|
|
|
1024
1035
|
```
|
|
1025
1036
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1026
1037
|
EZ ► PROJECT INITIALIZED ✓
|
|
1027
1038
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1028
1039
|
|
|
1029
|
-
**[Project Name]**
|
|
1040
|
+
**Project: [Project Name]**
|
|
1030
1041
|
|
|
1031
1042
|
| Artifact | Location |
|
|
1032
1043
|
|----------------|-----------------------------|
|
|
1033
1044
|
| Project | `.planning/PROJECT.md` |
|
|
1034
|
-
| Config | `.planning/config.json` |
|
|
1035
1045
|
| Research | `.planning/research/` |
|
|
1036
1046
|
| Requirements | `.planning/REQUIREMENTS.md` |
|
|
1037
1047
|
| Roadmap | `.planning/ROADMAP.md` |
|
|
1048
|
+
| Config | `.planning/config.json` |
|
|
1038
1049
|
|
|
1039
1050
|
**[N] phases** | **[X] requirements** | Ready to build ✓
|
|
1040
|
-
```
|
|
1041
|
-
|
|
1042
|
-
**If auto mode:**
|
|
1043
|
-
|
|
1044
|
-
```
|
|
1045
|
-
╔══════════════════════════════════════════╗
|
|
1046
|
-
║ AUTO-ADVANCING → DISCUSS PHASE 1 ║
|
|
1047
|
-
╚══════════════════════════════════════════╝
|
|
1048
|
-
```
|
|
1049
|
-
|
|
1050
|
-
Exit skill and invoke SlashCommand("/ez:discuss-phase 1 --auto")
|
|
1051
|
-
|
|
1052
|
-
**If interactive mode:**
|
|
1053
|
-
|
|
1054
|
-
```
|
|
1055
|
-
───────────────────────────────────────────────────────────────
|
|
1056
1051
|
|
|
1057
1052
|
## ▶ Next Up
|
|
1058
1053
|
|
|
1059
|
-
**Phase 1: [Phase Name]** — [Goal
|
|
1054
|
+
**Phase 1: [Phase Name]** — [Goal]
|
|
1060
1055
|
|
|
1061
|
-
|
|
1056
|
+
`/ez:discuss-phase 1` — gather context and clarify approach
|
|
1062
1057
|
|
|
1063
|
-
<sub
|
|
1064
|
-
|
|
1065
|
-
---
|
|
1058
|
+
<sub>`/clear` first → fresh context window</sub>
|
|
1066
1059
|
|
|
1067
|
-
|
|
1068
|
-
- /ez:plan-phase 1 — skip discussion, plan directly
|
|
1069
|
-
|
|
1070
|
-
───────────────────────────────────────────────────────────────
|
|
1060
|
+
Also: `/ez:plan-phase 1` — skip discussion, plan directly
|
|
1071
1061
|
```
|
|
1072
1062
|
|
|
1073
1063
|
</process>
|
|
1074
1064
|
|
|
1075
|
-
<output>
|
|
1076
|
-
|
|
1077
|
-
- `.planning/PROJECT.md`
|
|
1078
|
-
- `.planning/config.json`
|
|
1079
|
-
- `.planning/research/` (if research selected)
|
|
1080
|
-
- `STACK.md`
|
|
1081
|
-
- `FEATURES.md`
|
|
1082
|
-
- `ARCHITECTURE.md`
|
|
1083
|
-
- `PITFALLS.md`
|
|
1084
|
-
- `SUMMARY.md`
|
|
1085
|
-
- `.planning/REQUIREMENTS.md`
|
|
1086
|
-
- `.planning/ROADMAP.md`
|
|
1087
|
-
- `.planning/STATE.md`
|
|
1088
|
-
|
|
1089
|
-
</output>
|
|
1090
|
-
|
|
1091
1065
|
<success_criteria>
|
|
1092
|
-
|
|
1093
|
-
- [ ]
|
|
1094
|
-
- [ ]
|
|
1095
|
-
- [ ]
|
|
1096
|
-
- [ ]
|
|
1097
|
-
- [ ]
|
|
1098
|
-
- [ ]
|
|
1099
|
-
- [ ] Research completed (if selected) — 4 parallel agents
|
|
1100
|
-
- [ ] Requirements gathered
|
|
1101
|
-
- [ ]
|
|
1102
|
-
- [ ] REQUIREMENTS.md created with REQ-IDs → **committed**
|
|
1103
|
-
- [ ] ez-roadmapper spawned with context
|
|
1066
|
+
- [ ] Pre-flight health check passed (all systems go)
|
|
1067
|
+
- [ ] Lock file created and maintained throughout
|
|
1068
|
+
- [ ] PROJECT.md created with clear core value
|
|
1069
|
+
- [ ] REQUIREMENTS.md created with REQ-IDs
|
|
1070
|
+
- [ ] ROADMAP.md created with phased execution plan
|
|
1071
|
+
- [ ] STATE.md initialized
|
|
1072
|
+
- [ ] Config.json created with workflow preferences
|
|
1073
|
+
- [ ] Research completed (if selected) — 4 parallel agents with fresh context
|
|
1074
|
+
- [ ] Requirements gathered and scoped per category
|
|
1075
|
+
- [ ] ez-roadmapper spawned with stuck detection
|
|
1104
1076
|
- [ ] Roadmap files written immediately (not draft)
|
|
1105
1077
|
- [ ] User feedback incorporated (if any)
|
|
1106
|
-
- [ ]
|
|
1107
|
-
- [ ]
|
|
1108
|
-
- [ ]
|
|
1109
|
-
- [ ] User knows next step is `/ez:discuss-phase 1`
|
|
1078
|
+
- [ ] All commits made (if planning docs committed)
|
|
1079
|
+
- [ ] Lock file released on completion
|
|
1080
|
+
- [ ] User knows next step: `/ez:discuss-phase 1`
|
|
1110
1081
|
|
|
1111
|
-
**Atomic commits:** Each
|
|
1082
|
+
**Atomic commits:** Each artifact committed immediately after creation.
|
|
1112
1083
|
|
|
1084
|
+
**GSD-2 Reliability:**
|
|
1085
|
+
- ✅ Health check pre-flight validation
|
|
1086
|
+
- ✅ Crash recovery via lock files
|
|
1087
|
+
- ✅ Fresh context per researcher/agent
|
|
1088
|
+
- ✅ Stuck detection with diagnostics during roadmap creation
|
|
1113
1089
|
</success_criteria>
|