@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.
Files changed (365) hide show
  1. package/README.md +735 -462
  2. package/agents/ez-architect-agent.md +267 -0
  3. package/agents/ez-backend-agent.md +303 -0
  4. package/agents/ez-chief-strategist.md +271 -0
  5. package/agents/ez-codebase-mapper.md +770 -770
  6. package/agents/ez-context-manager.md +319 -0
  7. package/agents/ez-debugger.md +1255 -1255
  8. package/agents/ez-design-expert.md +347 -0
  9. package/agents/ez-devops-agent.md +331 -0
  10. package/agents/ez-executor.md +487 -487
  11. package/agents/ez-frontend-agent.md +322 -0
  12. package/agents/ez-phase-researcher.md +553 -553
  13. package/agents/ez-planner.md +1307 -1307
  14. package/agents/ez-product-engineer.md +435 -0
  15. package/agents/ez-project-researcher.md +629 -629
  16. package/agents/ez-qa-agent.md +320 -0
  17. package/agents/ez-release-agent.md +333 -0
  18. package/agents/ez-requirements-agent.md +377 -0
  19. package/agents/ez-roadmapper.md +650 -650
  20. package/agents/ez-technical-writer.md +551 -0
  21. package/agents/ez-ux-expert.md +393 -0
  22. package/agents/ez-verifier.md +579 -579
  23. package/bin/guards/autonomy-guard.cjs +346 -0
  24. package/bin/guards/context-budget-guard.cjs +278 -0
  25. package/bin/guards/hallucination-guard.cjs +380 -0
  26. package/bin/guards/hidden-state-guard.cjs +182 -0
  27. package/bin/guards/team-overhead-guard.cjs +266 -0
  28. package/bin/guards/tool-sprawl-guard.cjs +271 -0
  29. package/bin/install.js +3221 -3272
  30. package/bin/lib/analytics/analytics-collector.cjs +86 -0
  31. package/bin/lib/analytics/analytics-reporter.cjs +130 -0
  32. package/bin/lib/analytics/cohort-analyzer.cjs +138 -0
  33. package/bin/lib/analytics/funnel-analyzer.cjs +147 -0
  34. package/bin/lib/analytics/nps-tracker.cjs +147 -0
  35. package/bin/lib/archetype-detector.cjs +289 -0
  36. package/bin/lib/assistant-adapter.cjs +361 -0
  37. package/bin/lib/audit-exec.cjs +175 -0
  38. package/bin/lib/auth.cjs +176 -0
  39. package/bin/lib/backup-service.cjs +422 -0
  40. package/bin/lib/bdd-validator.cjs +622 -0
  41. package/bin/lib/business-flow-mapper.cjs +429 -0
  42. package/bin/lib/circuit-breaker.cjs +276 -0
  43. package/bin/lib/code-complexity-analyzer.cjs +360 -0
  44. package/bin/lib/codebase-analyzer.cjs +241 -0
  45. package/bin/lib/commands.cjs +691 -0
  46. package/bin/lib/config.cjs +236 -0
  47. package/bin/lib/constraint-extractor.cjs +526 -0
  48. package/bin/lib/content-scanner.cjs +238 -0
  49. package/bin/lib/context-cache.cjs +154 -0
  50. package/bin/lib/context-compressor.cjs +102 -0
  51. package/bin/lib/context-deduplicator.cjs +105 -0
  52. package/bin/lib/context-errors.cjs +78 -0
  53. package/bin/lib/context-manager.cjs +338 -0
  54. package/bin/lib/context-metadata-tracker.cjs +140 -0
  55. package/bin/lib/context-relevance-scorer.cjs +99 -0
  56. package/bin/lib/core.cjs +507 -0
  57. package/bin/lib/cost-alerts.cjs +174 -0
  58. package/bin/lib/cost-tracker.cjs +275 -0
  59. package/bin/lib/crash-recovery.cjs +220 -0
  60. package/bin/lib/dependency-graph.cjs +319 -0
  61. package/bin/lib/deploy/deploy-audit-log.cjs +76 -0
  62. package/bin/lib/deploy/deploy-detector.cjs +69 -0
  63. package/bin/lib/deploy/deploy-env-manager.cjs +109 -0
  64. package/bin/lib/deploy/deploy-health-check.cjs +88 -0
  65. package/bin/lib/deploy/deploy-pre-flight.cjs +57 -0
  66. package/bin/lib/deploy/deploy-rollback.cjs +72 -0
  67. package/bin/lib/deploy/deploy-runner.cjs +97 -0
  68. package/bin/lib/deploy/deploy-status.cjs +74 -0
  69. package/bin/lib/discussion-synthesizer.cjs +439 -0
  70. package/bin/lib/error-cache.cjs +114 -0
  71. package/bin/lib/error-registry.cjs +177 -0
  72. package/bin/lib/file-access.cjs +207 -0
  73. package/bin/lib/file-lock.cjs +236 -0
  74. package/bin/lib/finops/budget-enforcer.cjs +126 -0
  75. package/bin/lib/finops/cost-reporter.cjs +132 -0
  76. package/bin/lib/finops/finops-analyzer.cjs +112 -0
  77. package/bin/lib/finops/spot-manager.cjs +118 -0
  78. package/bin/lib/framework-detector.cjs +396 -0
  79. package/bin/lib/frontmatter.cjs +313 -0
  80. package/bin/lib/fs-utils.cjs +153 -0
  81. package/bin/lib/gate-executor.cjs +272 -0
  82. package/bin/lib/gates/README.md +374 -0
  83. package/bin/lib/gates/gate-01-requirement.cjs +303 -0
  84. package/bin/lib/gates/gate-02-architecture.cjs +555 -0
  85. package/bin/lib/gates/gate-03-code.cjs +635 -0
  86. package/bin/lib/gates/gate-04-security.cjs +829 -0
  87. package/bin/lib/git-errors.cjs +83 -0
  88. package/bin/lib/git-utils.cjs +321 -0
  89. package/bin/lib/git-workflow-engine.cjs +1157 -0
  90. package/bin/lib/health-check.cjs +227 -0
  91. package/bin/lib/index.cjs +279 -0
  92. package/bin/lib/init.cjs +725 -0
  93. package/bin/lib/lock-logger.cjs +194 -0
  94. package/bin/lib/lock-state.cjs +263 -0
  95. package/bin/lib/lockfile-validator.cjs +227 -0
  96. package/bin/lib/log-rotation.cjs +71 -0
  97. package/bin/lib/logger.cjs +125 -0
  98. package/bin/lib/memory-compression.cjs +256 -0
  99. package/bin/lib/milestone.cjs +247 -0
  100. package/bin/lib/model-provider.cjs +241 -0
  101. package/bin/lib/package-manager-detector.cjs +203 -0
  102. package/bin/lib/package-manager-executor.cjs +385 -0
  103. package/bin/lib/package-manager-service.cjs +216 -0
  104. package/bin/lib/perf/api-monitor.cjs +88 -0
  105. package/bin/lib/perf/db-optimizer.cjs +78 -0
  106. package/bin/lib/perf/frontend-performance.cjs +56 -0
  107. package/bin/lib/perf/perf-analyzer.cjs +77 -0
  108. package/bin/lib/perf/perf-baseline.cjs +102 -0
  109. package/bin/lib/perf/perf-reporter.cjs +117 -0
  110. package/bin/lib/perf/regression-detector.cjs +92 -0
  111. package/bin/lib/phase.cjs +963 -0
  112. package/bin/lib/planning-write.cjs +123 -0
  113. package/bin/lib/project-reporter.cjs +565 -0
  114. package/bin/lib/quality-gate.cjs +332 -0
  115. package/bin/lib/quality-metrics.cjs +324 -0
  116. package/bin/lib/recovery-manager.cjs +98 -0
  117. package/bin/lib/release-validator.cjs +617 -0
  118. package/bin/lib/retry.cjs +119 -0
  119. package/bin/lib/roadmap.cjs +309 -0
  120. package/bin/lib/safe-exec.cjs +173 -0
  121. package/bin/lib/safe-path.cjs +130 -0
  122. package/bin/lib/security-errors.cjs +62 -0
  123. package/bin/lib/session-chain.cjs +304 -0
  124. package/bin/lib/session-errors.cjs +81 -0
  125. package/bin/lib/session-export.cjs +251 -0
  126. package/bin/lib/session-import.cjs +262 -0
  127. package/bin/lib/session-manager.cjs +280 -0
  128. package/bin/lib/skill-context.cjs +148 -0
  129. package/bin/lib/skill-matcher.cjs +236 -0
  130. package/bin/lib/skill-registry.cjs +360 -0
  131. package/bin/lib/skill-resolver.cjs +449 -0
  132. package/bin/lib/skill-triggers.cjs +90 -0
  133. package/bin/lib/skill-validator.cjs +270 -0
  134. package/bin/lib/skill-versioning.cjs +355 -0
  135. package/bin/lib/stack-detector.cjs +399 -0
  136. package/bin/lib/state.cjs +736 -0
  137. package/bin/lib/tech-debt-analyzer.cjs +309 -0
  138. package/bin/lib/temp-file.cjs +239 -0
  139. package/bin/lib/template.cjs +223 -0
  140. package/bin/lib/test-file-lock.cjs +112 -0
  141. package/bin/lib/test-graceful.cjs +93 -0
  142. package/bin/lib/test-logger.cjs +60 -0
  143. package/bin/lib/test-safe-exec.cjs +38 -0
  144. package/bin/lib/test-safe-path.cjs +33 -0
  145. package/bin/lib/test-temp-file.cjs +125 -0
  146. package/bin/lib/tier-manager.cjs +428 -0
  147. package/bin/lib/timeout-exec.cjs +63 -0
  148. package/bin/lib/tradeoff-analyzer.cjs +284 -0
  149. package/bin/lib/url-fetch.cjs +170 -0
  150. package/bin/lib/verify.cjs +863 -0
  151. package/bin/update.js +217 -214
  152. package/commands/deploy.cjs +53 -0
  153. package/commands/ez/add-tests.md +41 -41
  154. package/commands/ez/audit-milestone.md +36 -36
  155. package/commands/ez/complete-milestone.md +136 -136
  156. package/commands/ez/discuss-phase.md +90 -90
  157. package/commands/ez/execute-phase.md +52 -41
  158. package/commands/ez/help.md +22 -22
  159. package/commands/ez/map-codebase.md +71 -71
  160. package/commands/ez/new-milestone.md +44 -44
  161. package/commands/ez/new-project.md +51 -42
  162. package/commands/ez/plan-phase.md +53 -45
  163. package/commands/ez/progress.md +36 -24
  164. package/commands/ez/quick.md +45 -45
  165. package/commands/ez/resume-work.md +40 -40
  166. package/commands/ez/run-phase.md +580 -0
  167. package/commands/ez/settings.md +36 -36
  168. package/commands/ez/update.md +37 -37
  169. package/commands/ez/verify-work.md +402 -38
  170. package/commands/health-check.cjs +44 -0
  171. package/commands/rollback.cjs +47 -0
  172. package/ez-agents/bin/ez-tools.cjs +1692 -716
  173. package/ez-agents/bin/guards/autonomy-guard.cjs +346 -0
  174. package/ez-agents/bin/guards/context-budget-guard.cjs +247 -0
  175. package/ez-agents/bin/guards/hallucination-guard.cjs +271 -0
  176. package/ez-agents/bin/guards/hidden-state-guard.cjs +182 -0
  177. package/ez-agents/bin/guards/team-overhead-guard.cjs +266 -0
  178. package/ez-agents/bin/guards/tool-sprawl-guard.cjs +271 -0
  179. package/ez-agents/bin/lib/analytics/analytics-collector.cjs +86 -0
  180. package/ez-agents/bin/lib/analytics/analytics-reporter.cjs +130 -0
  181. package/ez-agents/bin/lib/analytics/cohort-analyzer.cjs +138 -0
  182. package/ez-agents/bin/lib/analytics/funnel-analyzer.cjs +147 -0
  183. package/ez-agents/bin/lib/analytics/nps-tracker.cjs +147 -0
  184. package/ez-agents/bin/lib/archetype-detector.cjs +289 -0
  185. package/ez-agents/bin/lib/audit-exec.cjs +166 -167
  186. package/ez-agents/bin/lib/auth.cjs +176 -176
  187. package/ez-agents/bin/lib/backup-service.cjs +422 -0
  188. package/ez-agents/bin/lib/bdd-validator.cjs +622 -0
  189. package/ez-agents/bin/lib/business-flow-mapper.cjs +429 -0
  190. package/ez-agents/bin/lib/code-complexity-analyzer.cjs +360 -0
  191. package/ez-agents/bin/lib/codebase-analyzer.cjs +241 -0
  192. package/ez-agents/bin/lib/commands.cjs +685 -685
  193. package/ez-agents/bin/lib/config.cjs +41 -1
  194. package/ez-agents/bin/lib/constraint-extractor.cjs +526 -0
  195. package/ez-agents/bin/lib/content-scanner.cjs +238 -0
  196. package/ez-agents/bin/lib/context-cache.cjs +154 -0
  197. package/ez-agents/bin/lib/context-errors.cjs +71 -0
  198. package/ez-agents/bin/lib/context-manager.cjs +220 -0
  199. package/ez-agents/bin/lib/core.cjs +507 -512
  200. package/ez-agents/bin/lib/cost-tracker.cjs +243 -0
  201. package/ez-agents/bin/lib/crash-recovery.cjs +172 -0
  202. package/ez-agents/bin/lib/dependency-graph.cjs +319 -0
  203. package/ez-agents/bin/lib/deploy/deploy-audit-log.cjs +76 -0
  204. package/ez-agents/bin/lib/deploy/deploy-detector.cjs +69 -0
  205. package/ez-agents/bin/lib/deploy/deploy-env-manager.cjs +109 -0
  206. package/ez-agents/bin/lib/deploy/deploy-health-check.cjs +88 -0
  207. package/ez-agents/bin/lib/deploy/deploy-pre-flight.cjs +57 -0
  208. package/ez-agents/bin/lib/deploy/deploy-rollback.cjs +72 -0
  209. package/ez-agents/bin/lib/deploy/deploy-runner.cjs +97 -0
  210. package/ez-agents/bin/lib/deploy/deploy-status.cjs +74 -0
  211. package/ez-agents/bin/lib/discussion-synthesizer.cjs +458 -0
  212. package/ez-agents/bin/lib/file-access.cjs +207 -0
  213. package/ez-agents/bin/lib/finops/budget-enforcer.cjs +126 -0
  214. package/ez-agents/bin/lib/finops/cost-reporter.cjs +132 -0
  215. package/ez-agents/bin/lib/finops/finops-analyzer.cjs +112 -0
  216. package/ez-agents/bin/lib/finops/spot-manager.cjs +118 -0
  217. package/ez-agents/bin/lib/framework-detector.cjs +396 -0
  218. package/ez-agents/bin/lib/frontmatter.cjs +3 -1
  219. package/ez-agents/bin/lib/gates/README.md +374 -0
  220. package/ez-agents/bin/lib/gates/gate-01-requirement.cjs +303 -0
  221. package/ez-agents/bin/lib/gates/gate-02-architecture.cjs +555 -0
  222. package/ez-agents/bin/lib/gates/gate-03-code.cjs +635 -0
  223. package/ez-agents/bin/lib/gates/gate-04-security.cjs +829 -0
  224. package/ez-agents/bin/lib/git-errors.cjs +83 -0
  225. package/ez-agents/bin/lib/git-utils.cjs +118 -0
  226. package/ez-agents/bin/lib/git-workflow-engine.cjs +1157 -0
  227. package/ez-agents/bin/lib/health-check.cjs +162 -162
  228. package/ez-agents/bin/lib/index.cjs +40 -2
  229. package/ez-agents/bin/lib/init.cjs +0 -2
  230. package/ez-agents/bin/lib/lockfile-validator.cjs +227 -0
  231. package/ez-agents/bin/lib/log-rotation.cjs +71 -0
  232. package/ez-agents/bin/lib/logger.cjs +99 -154
  233. package/ez-agents/bin/lib/memory-compression.cjs +256 -0
  234. package/ez-agents/bin/lib/package-manager-detector.cjs +203 -0
  235. package/ez-agents/bin/lib/package-manager-executor.cjs +385 -0
  236. package/ez-agents/bin/lib/package-manager-service.cjs +216 -0
  237. package/ez-agents/bin/lib/perf/api-monitor.cjs +88 -0
  238. package/ez-agents/bin/lib/perf/db-optimizer.cjs +78 -0
  239. package/ez-agents/bin/lib/perf/frontend-performance.cjs +56 -0
  240. package/ez-agents/bin/lib/perf/perf-analyzer.cjs +77 -0
  241. package/ez-agents/bin/lib/perf/perf-baseline.cjs +102 -0
  242. package/ez-agents/bin/lib/perf/perf-reporter.cjs +117 -0
  243. package/ez-agents/bin/lib/perf/regression-detector.cjs +92 -0
  244. package/ez-agents/bin/lib/project-reporter.cjs +502 -0
  245. package/ez-agents/bin/lib/quality-gate.cjs +332 -0
  246. package/ez-agents/bin/lib/recovery-manager.cjs +98 -0
  247. package/ez-agents/bin/lib/release-validator.cjs +617 -0
  248. package/ez-agents/bin/lib/safe-exec.cjs +128 -214
  249. package/ez-agents/bin/lib/security-errors.cjs +62 -0
  250. package/ez-agents/bin/lib/session-chain.cjs +304 -0
  251. package/ez-agents/bin/lib/session-errors.cjs +81 -0
  252. package/ez-agents/bin/lib/session-export.cjs +251 -0
  253. package/ez-agents/bin/lib/session-import.cjs +262 -0
  254. package/ez-agents/bin/lib/session-manager.cjs +280 -0
  255. package/ez-agents/bin/lib/skill-context.cjs +148 -0
  256. package/ez-agents/bin/lib/skill-matcher.cjs +236 -0
  257. package/ez-agents/bin/lib/skill-registry.cjs +341 -0
  258. package/ez-agents/bin/lib/skill-resolver.cjs +449 -0
  259. package/ez-agents/bin/lib/skill-triggers.cjs +90 -0
  260. package/ez-agents/bin/lib/skill-validator.cjs +270 -0
  261. package/ez-agents/bin/lib/skill-versioning.cjs +355 -0
  262. package/ez-agents/bin/lib/stack-detector.cjs +399 -0
  263. package/ez-agents/bin/lib/tech-debt-analyzer.cjs +309 -0
  264. package/ez-agents/bin/lib/tier-manager.cjs +428 -0
  265. package/ez-agents/bin/lib/tradeoff-analyzer.cjs +284 -0
  266. package/ez-agents/bin/lib/url-fetch.cjs +170 -0
  267. package/ez-agents/bin/lib/verify.cjs +863 -863
  268. package/ez-agents/references/decimal-phase-calculation.md +65 -65
  269. package/ez-agents/references/git-integration.md +248 -248
  270. package/ez-agents/references/git-planning-commit.md +38 -38
  271. package/ez-agents/references/metrics-schema.md +118 -0
  272. package/ez-agents/references/model-profile-resolution.md +34 -34
  273. package/ez-agents/references/model-profiles.md +93 -93
  274. package/ez-agents/references/phase-argument-parsing.md +61 -61
  275. package/ez-agents/references/planning-config.md +340 -200
  276. package/ez-agents/references/tier-strategy.md +103 -0
  277. package/ez-agents/references/ui-brand.md +160 -160
  278. package/ez-agents/references/verification-patterns.md +612 -612
  279. package/ez-agents/templates/DEBUG.md +164 -164
  280. package/ez-agents/templates/UAT.md +247 -247
  281. package/ez-agents/templates/agent-output-format.md +404 -0
  282. package/ez-agents/templates/bdd-feature.md +173 -0
  283. package/ez-agents/templates/codebase/architecture.md +255 -255
  284. package/ez-agents/templates/codebase/structure.md +285 -285
  285. package/ez-agents/templates/copilot-instructions.md +7 -7
  286. package/ez-agents/templates/debug-subagent-prompt.md +91 -91
  287. package/ez-agents/templates/discovery.md +146 -146
  288. package/ez-agents/templates/discussion.md +68 -0
  289. package/ez-agents/templates/handoff-protocol.md +294 -0
  290. package/ez-agents/templates/incident-runbook.md +205 -0
  291. package/ez-agents/templates/mode-workflow-templates.md +301 -0
  292. package/ez-agents/templates/phase-prompt.md +610 -610
  293. package/ez-agents/templates/planner-subagent-prompt.md +117 -117
  294. package/ez-agents/templates/project.md +184 -184
  295. package/ez-agents/templates/release-checklist.md +136 -0
  296. package/ez-agents/templates/research.md +552 -552
  297. package/ez-agents/templates/rollback-plan.md +201 -0
  298. package/ez-agents/templates/security-user-setup.md +244 -0
  299. package/ez-agents/templates/skill-validation-rules.md +476 -0
  300. package/ez-agents/templates/state.md +180 -176
  301. package/ez-agents/templates/summary-complex.md +59 -59
  302. package/ez-agents/tests/gates/gate-01-02.test.cjs +812 -0
  303. package/ez-agents/tests/gates/gate-03-04.test.cjs +762 -0
  304. package/ez-agents/tests/gates/gate-05-validator.test.cjs +145 -0
  305. package/ez-agents/tests/gates/gate-06-docs-validator.test.cjs +244 -0
  306. package/ez-agents/tests/gates/gate-07-release-validator.test.cjs +219 -0
  307. package/ez-agents/tests/guards/context-budget-guard.test.cjs +145 -0
  308. package/ez-agents/tests/guards/edge-case-guards.test.cjs +238 -0
  309. package/ez-agents/tests/guards/hallucination-guard.test.cjs +124 -0
  310. package/ez-agents/workflows/audit-milestone.md +1 -1
  311. package/ez-agents/workflows/autonomous.md +131 -30
  312. package/ez-agents/workflows/complete-milestone.md +1 -1
  313. package/ez-agents/workflows/discuss-phase.md +1 -1
  314. package/ez-agents/workflows/execute-phase.md +169 -3
  315. package/ez-agents/workflows/help.md +86 -133
  316. package/ez-agents/workflows/hotfix.md +291 -0
  317. package/ez-agents/workflows/new-milestone.md +340 -11
  318. package/ez-agents/workflows/new-project.md +294 -318
  319. package/ez-agents/workflows/plan-phase.md +22 -40
  320. package/ez-agents/workflows/progress.md +15 -25
  321. package/ez-agents/workflows/release.md +253 -0
  322. package/ez-agents/workflows/resume-session.md +215 -0
  323. package/ez-agents/workflows/run-phase.md +531 -0
  324. package/ez-agents/workflows/settings.md +2 -35
  325. package/hooks/dist/ez-check-update.js +81 -81
  326. package/hooks/dist/ez-context-monitor.js +148 -141
  327. package/hooks/dist/ez-statusline.js +115 -115
  328. package/package.json +78 -64
  329. package/scripts/fix-qwen-installation.js +144 -144
  330. package/agents/ez-integration-checker.md +0 -443
  331. package/agents/ez-nyquist-auditor.md +0 -176
  332. package/agents/ez-plan-checker.md +0 -706
  333. package/agents/ez-research-synthesizer.md +0 -247
  334. package/agents/ez-ui-auditor.md +0 -439
  335. package/agents/ez-ui-checker.md +0 -300
  336. package/agents/ez-ui-researcher.md +0 -353
  337. package/commands/ez/add-phase.md +0 -43
  338. package/commands/ez/add-todo.md +0 -47
  339. package/commands/ez/auth.md +0 -87
  340. package/commands/ez/autonomous.md +0 -41
  341. package/commands/ez/check-todos.md +0 -45
  342. package/commands/ez/cleanup.md +0 -18
  343. package/commands/ez/debug.md +0 -168
  344. package/commands/ez/health.md +0 -22
  345. package/commands/ez/insert-phase.md +0 -32
  346. package/commands/ez/join-discord.md +0 -18
  347. package/commands/ez/list-phase-assumptions.md +0 -46
  348. package/commands/ez/pause-work.md +0 -38
  349. package/commands/ez/plan-milestone-gaps.md +0 -34
  350. package/commands/ez/reapply-patches.md +0 -124
  351. package/commands/ez/remove-phase.md +0 -31
  352. package/commands/ez/research-phase.md +0 -190
  353. package/commands/ez/set-profile.md +0 -34
  354. package/commands/ez/stats.md +0 -18
  355. package/commands/ez/ui-phase.md +0 -34
  356. package/commands/ez/ui-review.md +0 -32
  357. package/commands/ez/validate-phase.md +0 -35
  358. package/ez-agents/templates/UI-SPEC.md +0 -100
  359. package/ez-agents/templates/VALIDATION.md +0 -76
  360. package/ez-agents/templates/context.md +0 -352
  361. package/ez-agents/templates/verification-report.md +0 -322
  362. package/ez-agents/workflows/research-phase.md +0 -74
  363. package/ez-agents/workflows/ui-phase.md +0 -290
  364. package/ez-agents/workflows/ui-review.md +0 -157
  365. 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
- ## 1. Setup
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
- **MANDATORY FIRST STEP — Execute these checks before ANY user interaction:**
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
- ## 6. Research Decision
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 stacks, expected features, architecture patterns
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 path references:
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="<research_type>
553
- Project Research — Stack dimension for [domain].
554
- </research_type>
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
- [greenfield OR subsequent]
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
- What's the standard 2025 stack for [domain]?
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
- Your STACK.md feeds into roadmap creation. Be prescriptive:
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
- - [ ] Components clearly defined with boundaries
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/ARCHITECTURE.md
662
- Use template: ~/.claude/ez-agents/templates/research-project/ARCHITECTURE.md
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="Architecture research")
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
- <downstream_consumer>
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
- <quality_gate>
693
- - [ ] Pitfalls are specific to this domain (not generic advice)
694
- - [ ] Prevention strategies are actionable
695
- - [ ] Phase mapping included where relevant
696
- </quality_gate>
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 agents complete, spawn synthesizer to create SUMMARY.md:
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
- </output>
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
- **Present full requirements list (interactive mode only):**
860
-
861
- Show every requirement (not counts) for user confirmation:
868
+ Present FULL requirements list for confirmation:
862
869
 
863
870
  ```
864
- ## v1 Requirements
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
- ### Content
872
- - [ ] **CONT-01**: User can create posts with text
873
- - [ ] **CONT-02**: User can edit their own posts
873
+ ### [Category 1]
874
+ - [ ] **CAT1-01**: User can do X
875
+ - [ ] **CAT1-02**: User can do Y
874
876
 
875
- [... full list ...]
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" commit "docs: define v1 requirements" --files .planning/REQUIREMENTS.md
892
+ node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" lock-update --state="requirements_defined"
888
893
  ```
889
894
 
890
- ## 8. Create Roadmap
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
- Spawn ez-roadmapper agent with path references:
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 (Project context)
909
- - .planning/REQUIREMENTS.md (v1 Requirements)
910
- - .planning/research/SUMMARY.md (Research findings - if exists)
911
- - .planning/config.json (Granularity and mode settings)
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. Derive phases from requirements (don't impose structure)
919
- 2. Map every v1 requirement to exactly one phase
920
- 3. Derive 2-5 success criteria per phase (observable user behaviors)
921
- 4. Validate 100% coverage
922
- 5. Write files immediately (ROADMAP.md, STATE.md, update REQUIREMENTS.md traceability)
923
- 6. Return ROADMAP CREATED with summary
924
-
925
- Write files first, then return. This ensures artifacts persist even if context is lost.
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 roadmapper return:**
944
+ **Handle return:**
931
945
 
932
946
  **If `## ROADMAP BLOCKED`:**
933
- - Present blocker information
934
- - Work with user to resolve
935
- - Re-spawn when resolved
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
- **If `## ROADMAP CREATED`:**
970
+ Error Type: [type]
971
+ Error Location: [file:line]
972
+ Suggested Fix: [action]
938
973
 
939
- Read the created ROADMAP.md and present it nicely inline:
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 v1 requirements covered ✓
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
- **If auto mode:** Skip approval gate — auto-approve and commit directly.
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
- **CRITICAL: Ask for approval before committing (interactive mode only):**
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
- Use AskUserQuestion:
982
- - header: "Roadmap"
983
- - question: "Does this roadmap structure work for you?"
984
- - options:
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
- <files_to_read>
1001
- - .planning/ROADMAP.md (Current roadmap to revise)
1002
- </files_to_read>
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
- Update the roadmap based on feedback. Edit files in place.
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
- **If "Review full file":** Display raw `cat .planning/ROADMAP.md`, then re-ask.
1023
+ ## 9. Release Lock File
1013
1024
 
1014
- **Commit roadmap (after approval or auto mode):**
1025
+ **Project initialization complete:**
1015
1026
 
1016
1027
  ```bash
1017
- node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "docs: create roadmap ([N] phases)" --files .planning/ROADMAP.md .planning/STATE.md .planning/REQUIREMENTS.md
1028
+ node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" lock-release
1018
1029
  ```
1019
1030
 
1020
- ## 9. Done
1031
+ ---
1021
1032
 
1022
- Present completion summary:
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 from ROADMAP.md]
1054
+ **Phase 1: [Phase Name]** — [Goal]
1060
1055
 
1061
- /ez:discuss-phase 1 — gather context and clarify approach
1056
+ `/ez:discuss-phase 1` — gather context and clarify approach
1062
1057
 
1063
- <sub>/clear first → fresh context window</sub>
1064
-
1065
- ---
1058
+ <sub>`/clear` first → fresh context window</sub>
1066
1059
 
1067
- **Also available:**
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
- - [ ] .planning/ directory created
1094
- - [ ] Git repo initialized
1095
- - [ ] Brownfield detection completed
1096
- - [ ] Deep questioning completed (threads followed, not rushed)
1097
- - [ ] PROJECT.md captures full context → **committed**
1098
- - [ ] config.json has workflow mode, granularity, parallelization → **committed**
1099
- - [ ] Research completed (if selected) — 4 parallel agents spawned **committed**
1100
- - [ ] Requirements gathered (from research or conversation)
1101
- - [ ] User scoped each category (v1/v2/out of scope)
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
- - [ ] ROADMAP.md created with phases, requirement mappings, success criteria
1107
- - [ ] STATE.md initialized
1108
- - [ ] REQUIREMENTS.md traceability updated
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 phase commits its artifacts immediately. If context is lost, artifacts persist.
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>