@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,200 +1,340 @@
1
- <planning_config>
2
-
3
- Configuration options for `.planning/` directory behavior.
4
-
5
- <config_schema>
6
- ```json
7
- "planning": {
8
- "commit_docs": true,
9
- "search_gitignored": false
10
- },
11
- "git": {
12
- "branching_strategy": "none",
13
- "phase_branch_template": "ez/phase-{phase}-{slug}",
14
- "milestone_branch_template": "ez/{milestone}-{slug}"
15
- }
16
- ```
17
-
18
- | Option | Default | Description |
19
- |--------|---------|-------------|
20
- | `commit_docs` | `true` | Whether to commit planning artifacts to git |
21
- | `search_gitignored` | `false` | Add `--no-ignore` to broad rg searches |
22
- | `git.branching_strategy` | `"none"` | Git branching approach: `"none"`, `"phase"`, or `"milestone"` |
23
- | `git.phase_branch_template` | `"ez/phase-{phase}-{slug}"` | Branch template for phase strategy |
24
- | `git.milestone_branch_template` | `"ez/{milestone}-{slug}"` | Branch template for milestone strategy |
25
- </config_schema>
26
-
27
- <commit_docs_behavior>
28
-
29
- **When `commit_docs: true` (default):**
30
- - Planning files committed normally
31
- - SUMMARY.md, STATE.md, ROADMAP.md tracked in git
32
- - Full history of planning decisions preserved
33
-
34
- **When `commit_docs: false`:**
35
- - Skip all `git add`/`git commit` for `.planning/` files
36
- - User must add `.planning/` to `.gitignore`
37
- - Useful for: OSS contributions, client projects, keeping planning private
38
-
39
- **Using ez-tools.cjs (preferred):**
40
-
41
- ```bash
42
- # Commit with automatic commit_docs + gitignore checks:
43
- node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "docs: update state" --files .planning/STATE.md
44
-
45
- # Load config via state load (returns JSON):
46
- INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" state load)
47
- if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
48
- # commit_docs is available in the JSON output
49
-
50
- # Or use init commands which include commit_docs:
51
- INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" init execute-phase "1")
52
- if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
53
- # commit_docs is included in all init command outputs
54
- ```
55
-
56
- **Auto-detection:** If `.planning/` is gitignored, `commit_docs` is automatically `false` regardless of config.json. This prevents git errors when users have `.planning/` in `.gitignore`.
57
-
58
- **Commit via CLI (handles checks automatically):**
59
-
60
- ```bash
61
- node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "docs: update state" --files .planning/STATE.md
62
- ```
63
-
64
- The CLI checks `commit_docs` config and gitignore status internally — no manual conditionals needed.
65
-
66
- </commit_docs_behavior>
67
-
68
- <search_behavior>
69
-
70
- **When `search_gitignored: false` (default):**
71
- - Standard rg behavior (respects .gitignore)
72
- - Direct path searches work: `rg "pattern" .planning/` finds files
73
- - Broad searches skip gitignored: `rg "pattern"` skips `.planning/`
74
-
75
- **When `search_gitignored: true`:**
76
- - Add `--no-ignore` to broad rg searches that should include `.planning/`
77
- - Only needed when searching entire repo and expecting `.planning/` matches
78
-
79
- **Note:** Most EZ Agents operations use direct file reads or explicit paths, which work regardless of gitignore status.
80
-
81
- </search_behavior>
82
-
83
- <setup_uncommitted_mode>
84
-
85
- To use uncommitted mode:
86
-
87
- 1. **Set config:**
88
- ```json
89
- "planning": {
90
- "commit_docs": false,
91
- "search_gitignored": true
92
- }
93
- ```
94
-
95
- 2. **Add to .gitignore:**
96
- ```
97
- .planning/
98
- ```
99
-
100
- 3. **Existing tracked files:** If `.planning/` was previously tracked:
101
- ```bash
102
- git rm -r --cached .planning/
103
- git commit -m "chore: stop tracking planning docs"
104
- ```
105
-
106
- 4. **Branch merges:** When using `branching_strategy: phase` or `milestone`, the `complete-milestone` workflow automatically strips `.planning/` files from staging before merge commits when `commit_docs: false`.
107
-
108
- </setup_uncommitted_mode>
109
-
110
- <branching_strategy_behavior>
111
-
112
- **Branching Strategies:**
113
-
114
- | Strategy | When branch created | Branch scope | Merge point |
115
- |----------|---------------------|--------------|-------------|
116
- | `none` | Never | N/A | N/A |
117
- | `phase` | At `execute-phase` start | Single phase | User merges after phase |
118
- | `milestone` | At first `execute-phase` of milestone | Entire milestone | At `complete-milestone` |
119
-
120
- **When `git.branching_strategy: "none"` (default):**
121
- - All work commits to current branch
122
- - Standard EZ Agents behavior
123
-
124
- **When `git.branching_strategy: "phase"`:**
125
- - `execute-phase` creates/switches to a branch before execution
126
- - Branch name from `phase_branch_template` (e.g., `ez/phase-03-authentication`)
127
- - All plan commits go to that branch
128
- - User merges branches manually after phase completion
129
- - `complete-milestone` offers to merge all phase branches
130
-
131
- **When `git.branching_strategy: "milestone"`:**
132
- - First `execute-phase` of milestone creates the milestone branch
133
- - Branch name from `milestone_branch_template` (e.g., `ez/v1.0-mvp`)
134
- - All phases in milestone commit to same branch
135
- - `complete-milestone` offers to merge milestone branch to main
136
-
137
- **Template variables:**
138
-
139
- | Variable | Available in | Description |
140
- |----------|--------------|-------------|
141
- | `{phase}` | phase_branch_template | Zero-padded phase number (e.g., "03") |
142
- | `{slug}` | Both | Lowercase, hyphenated name |
143
- | `{milestone}` | milestone_branch_template | Milestone version (e.g., "v1.0") |
144
-
145
- **Checking the config:**
146
-
147
- Use `init execute-phase` which returns all config as JSON:
148
- ```bash
149
- INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" init execute-phase "1")
150
- if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
151
- # JSON output includes: branching_strategy, phase_branch_template, milestone_branch_template
152
- ```
153
-
154
- Or use `state load` for the config values:
155
- ```bash
156
- INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" state load)
157
- if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
158
- # Parse branching_strategy, phase_branch_template, milestone_branch_template from JSON
159
- ```
160
-
161
- **Branch creation:**
162
-
163
- ```bash
164
- # For phase strategy
165
- if [ "$BRANCHING_STRATEGY" = "phase" ]; then
166
- PHASE_SLUG=$(echo "$PHASE_NAME" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//')
167
- BRANCH_NAME=$(echo "$PHASE_BRANCH_TEMPLATE" | sed "s/{phase}/$PADDED_PHASE/g" | sed "s/{slug}/$PHASE_SLUG/g")
168
- git checkout -b "$BRANCH_NAME" 2>/dev/null || git checkout "$BRANCH_NAME"
169
- fi
170
-
171
- # For milestone strategy
172
- if [ "$BRANCHING_STRATEGY" = "milestone" ]; then
173
- MILESTONE_SLUG=$(echo "$MILESTONE_NAME" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//')
174
- BRANCH_NAME=$(echo "$MILESTONE_BRANCH_TEMPLATE" | sed "s/{milestone}/$MILESTONE_VERSION/g" | sed "s/{slug}/$MILESTONE_SLUG/g")
175
- git checkout -b "$BRANCH_NAME" 2>/dev/null || git checkout "$BRANCH_NAME"
176
- fi
177
- ```
178
-
179
- **Merge options at complete-milestone:**
180
-
181
- | Option | Git command | Result |
182
- |--------|-------------|--------|
183
- | Squash merge (recommended) | `git merge --squash` | Single clean commit per branch |
184
- | Merge with history | `git merge --no-ff` | Preserves all individual commits |
185
- | Delete without merging | `git branch -D` | Discard branch work |
186
- | Keep branches | (none) | Manual handling later |
187
-
188
- Squash merge is recommended — keeps main branch history clean while preserving the full development history in the branch (until deleted).
189
-
190
- **Use cases:**
191
-
192
- | Strategy | Best for |
193
- |----------|----------|
194
- | `none` | Solo development, simple projects |
195
- | `phase` | Code review per phase, granular rollback, team collaboration |
196
- | `milestone` | Release branches, staging environments, PR per version |
197
-
198
- </branching_strategy_behavior>
199
-
200
- </planning_config>
1
+ <planning_config>
2
+
3
+ Configuration options for `.planning/` directory behavior.
4
+
5
+ <config_schema>
6
+ ```json
7
+ "planning": {
8
+ "commit_docs": true,
9
+ "search_gitignored": false
10
+ },
11
+ "git": {
12
+ "branching_strategy": "none",
13
+ "phase_branch_template": "ez/phase-{phase}-{slug}",
14
+ "milestone_branch_template": "ez/{milestone}-{slug}"
15
+ }
16
+ ```
17
+
18
+ | Option | Default | Description |
19
+ |--------|---------|-------------|
20
+ | `commit_docs` | `true` | Whether to commit planning artifacts to git |
21
+ | `search_gitignored` | `false` | Add `--no-ignore` to broad rg searches |
22
+ | `git.branching_strategy` | `"none"` | Git branching approach: `"none"`, `"phase"`, or `"milestone"` |
23
+ | `git.phase_branch_template` | `"ez/phase-{phase}-{slug}"` | Branch template for phase strategy |
24
+ | `git.milestone_branch_template` | `"ez/{milestone}-{slug}"` | Branch template for milestone strategy |
25
+ </config_schema>
26
+
27
+ <commit_docs_behavior>
28
+
29
+ **When `commit_docs: true` (default):**
30
+ - Planning files committed normally
31
+ - SUMMARY.md, STATE.md, ROADMAP.md tracked in git
32
+ - Full history of planning decisions preserved
33
+
34
+ **When `commit_docs: false`:**
35
+ - Skip all `git add`/`git commit` for `.planning/` files
36
+ - User must add `.planning/` to `.gitignore`
37
+ - Useful for: OSS contributions, client projects, keeping planning private
38
+
39
+ **Using ez-tools.cjs (preferred):**
40
+
41
+ ```bash
42
+ # Commit with automatic commit_docs + gitignore checks:
43
+ node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "docs: update state" --files .planning/STATE.md
44
+
45
+ # Load config via state load (returns JSON):
46
+ INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" state load)
47
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
48
+ # commit_docs is available in the JSON output
49
+
50
+ # Or use init commands which include commit_docs:
51
+ INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" init execute-phase "1")
52
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
53
+ # commit_docs is included in all init command outputs
54
+ ```
55
+
56
+ **Auto-detection:** If `.planning/` is gitignored, `commit_docs` is automatically `false` regardless of config.json. This prevents git errors when users have `.planning/` in `.gitignore`.
57
+
58
+ **Commit via CLI (handles checks automatically):**
59
+
60
+ ```bash
61
+ node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "docs: update state" --files .planning/STATE.md
62
+ ```
63
+
64
+ The CLI checks `commit_docs` config and gitignore status internally — no manual conditionals needed.
65
+
66
+ </commit_docs_behavior>
67
+
68
+ <search_behavior>
69
+
70
+ **When `search_gitignored: false` (default):**
71
+ - Standard rg behavior (respects .gitignore)
72
+ - Direct path searches work: `rg "pattern" .planning/` finds files
73
+ - Broad searches skip gitignored: `rg "pattern"` skips `.planning/`
74
+
75
+ **When `search_gitignored: true`:**
76
+ - Add `--no-ignore` to broad rg searches that should include `.planning/`
77
+ - Only needed when searching entire repo and expecting `.planning/` matches
78
+
79
+ **Note:** Most EZ Agents operations use direct file reads or explicit paths, which work regardless of gitignore status.
80
+
81
+ </search_behavior>
82
+
83
+ <setup_uncommitted_mode>
84
+
85
+ To use uncommitted mode:
86
+
87
+ 1. **Set config:**
88
+ ```json
89
+ "planning": {
90
+ "commit_docs": false,
91
+ "search_gitignored": true
92
+ }
93
+ ```
94
+
95
+ 2. **Add to .gitignore:**
96
+ ```
97
+ .planning/
98
+ ```
99
+
100
+ 3. **Existing tracked files:** If `.planning/` was previously tracked:
101
+ ```bash
102
+ git rm -r --cached .planning/
103
+ git commit -m "chore: stop tracking planning docs"
104
+ ```
105
+
106
+ 4. **Branch merges:** When using `branching_strategy: phase` or `milestone`, the `complete-milestone` workflow automatically strips `.planning/` files from staging before merge commits when `commit_docs: false`.
107
+
108
+ </setup_uncommitted_mode>
109
+
110
+ <branching_strategy_behavior>
111
+
112
+ **Branching Strategies:**
113
+
114
+ | Strategy | When branch created | Branch scope | Merge point |
115
+ |----------|---------------------|--------------|-------------|
116
+ | `none` | Never | N/A | N/A |
117
+ | `phase` | At `execute-phase` start | Single phase | User merges after phase |
118
+ | `milestone` | At first `execute-phase` of milestone | Entire milestone | At `complete-milestone` |
119
+
120
+ **When `git.branching_strategy: "none"` (default):**
121
+ - All work commits to current branch
122
+ - Standard EZ Agents behavior
123
+
124
+ **When `git.branching_strategy: "phase"`:**
125
+ - `execute-phase` creates/switches to a branch before execution
126
+ - Branch name from `phase_branch_template` (e.g., `ez/phase-03-authentication`)
127
+ - All plan commits go to that branch
128
+ - User merges branches manually after phase completion
129
+ - `complete-milestone` offers to merge all phase branches
130
+
131
+ **When `git.branching_strategy: "milestone"`:**
132
+ - First `execute-phase` of milestone creates the milestone branch
133
+ - Branch name from `milestone_branch_template` (e.g., `ez/v1.0-mvp`)
134
+ - All phases in milestone commit to same branch
135
+ - `complete-milestone` offers to merge milestone branch to main
136
+
137
+ **Template variables:**
138
+
139
+ | Variable | Available in | Description |
140
+ |----------|--------------|-------------|
141
+ | `{phase}` | phase_branch_template | Zero-padded phase number (e.g., "03") |
142
+ | `{slug}` | Both | Lowercase, hyphenated name |
143
+ | `{milestone}` | milestone_branch_template | Milestone version (e.g., "v1.0") |
144
+
145
+ **Checking the config:**
146
+
147
+ Use `init execute-phase` which returns all config as JSON:
148
+ ```bash
149
+ INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" init execute-phase "1")
150
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
151
+ # JSON output includes: branching_strategy, phase_branch_template, milestone_branch_template
152
+ ```
153
+
154
+ Or use `state load` for the config values:
155
+ ```bash
156
+ INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" state load)
157
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
158
+ # Parse branching_strategy, phase_branch_template, milestone_branch_template from JSON
159
+ ```
160
+
161
+ **Branch creation:**
162
+
163
+ ```bash
164
+ # For phase strategy
165
+ if [ "$BRANCHING_STRATEGY" = "phase" ]; then
166
+ PHASE_SLUG=$(echo "$PHASE_NAME" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//')
167
+ BRANCH_NAME=$(echo "$PHASE_BRANCH_TEMPLATE" | sed "s/{phase}/$PADDED_PHASE/g" | sed "s/{slug}/$PHASE_SLUG/g")
168
+ git checkout -b "$BRANCH_NAME" 2>/dev/null || git checkout "$BRANCH_NAME"
169
+ fi
170
+
171
+ # For milestone strategy
172
+ if [ "$BRANCHING_STRATEGY" = "milestone" ]; then
173
+ MILESTONE_SLUG=$(echo "$MILESTONE_NAME" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//')
174
+ BRANCH_NAME=$(echo "$MILESTONE_BRANCH_TEMPLATE" | sed "s/{milestone}/$MILESTONE_VERSION/g" | sed "s/{slug}/$MILESTONE_SLUG/g")
175
+ git checkout -b "$BRANCH_NAME" 2>/dev/null || git checkout "$BRANCH_NAME"
176
+ fi
177
+ ```
178
+
179
+ **Merge options at complete-milestone:**
180
+
181
+ | Option | Git command | Result |
182
+ |--------|-------------|--------|
183
+ | Squash merge (recommended) | `git merge --squash` | Single clean commit per branch |
184
+ | Merge with history | `git merge --no-ff` | Preserves all individual commits |
185
+ | Delete without merging | `git branch -D` | Discard branch work |
186
+ | Keep branches | (none) | Manual handling later |
187
+
188
+ Squash merge is recommended — keeps main branch history clean while preserving the full development history in the branch (until deleted).
189
+
190
+ **Use cases:**
191
+
192
+ | Strategy | Best for |
193
+ |----------|----------|
194
+ | `none` | Solo development, simple projects |
195
+ | `phase` | Code review per phase, granular rollback, team collaboration |
196
+ | `milestone` | Release branches, staging environments, PR per version |
197
+
198
+ </branching_strategy_behavior>
199
+
200
+
201
+ <smart_orchestration_config>
202
+
203
+ **`smart_orchestration` block:**
204
+
205
+ ```json
206
+ "smart_orchestration": {
207
+ "enabled": true,
208
+ "show_auto_prefix": true,
209
+ "auto_invoke": {
210
+ "preflight": ["progress", "execute-phase"],
211
+ "arch_review": ["execute-phase"],
212
+ "standup": []
213
+ }
214
+ }
215
+ ```
216
+
217
+ | Option | Default | Description |
218
+ |--------|---------|-------------|
219
+ | `enabled` | `true` | Master toggle for smart orchestration auto-invocations |
220
+ | `show_auto_prefix` | `true` | Prefix auto-invoked agent output with `[AUTO]` label |
221
+ | `auto_invoke.preflight` | `["progress", "execute-phase"]` | Commands that silently run health check before executing |
222
+ | `auto_invoke.arch_review` | `["execute-phase"]` | Commands that auto-spawn tech lead review when `agent_discussion` enabled |
223
+ | `auto_invoke.standup` | `[]` | Commands that auto-generate standup before running |
224
+
225
+ **Disabling per-invocation:** Pass `--no-auto` flag to any command to skip smart orchestration for that run.
226
+
227
+ </smart_orchestration_config>
228
+
229
+ <agent_discussion_config>
230
+
231
+ **`agent_discussion` block:**
232
+
233
+ ```json
234
+ "agent_discussion": {
235
+ "enabled": false,
236
+ "pre_flight_observer": false,
237
+ "tech_lead_review": false,
238
+ "scrum_master_standup": false,
239
+ "cost_warning": true
240
+ }
241
+ ```
242
+
243
+ | Option | Default | Description |
244
+ |--------|---------|-------------|
245
+ | `enabled` | `false` | Master toggle for optional discussion agents |
246
+ | `pre_flight_observer` | `false` | Spawn observer agent before execution to surface risks |
247
+ | `tech_lead_review` | `false` | Auto-spawn tech lead review after `/ez:plan-phase` completes |
248
+ | `scrum_master_standup` | `false` | Auto-generate standup report at session start |
249
+ | `cost_warning` | `true` | Warn before spawning expensive agents (Opus-class) |
250
+
251
+ **Enable via `/ez:settings`:** The settings workflow provides a guided UI for toggling these options. Avoid manual JSON edits.
252
+
253
+ </agent_discussion_config>
254
+
255
+ <sessions_config>
256
+
257
+ **`sessions` block:**
258
+
259
+ ```json
260
+ "sessions": {
261
+ "retention_policy": "keep_last_10",
262
+ "auto_compress_threshold": 50,
263
+ "chain_navigation_enabled": true
264
+ }
265
+ ```
266
+
267
+ | Option | Default | Description |
268
+ |--------|---------|-------------|
269
+ | `retention_policy` | `"keep_last_10"` | How many sessions to retain. Options: `"keep_all"`, `"keep_last_N"`, `"keep_days_N"` |
270
+ | `auto_compress_threshold` | `50` | Compress session memory when token count exceeds this (in thousands) |
271
+ | `chain_navigation_enabled` | `true` | Enable `--previous`/`--next`/`--chain` flags in `/ez:resume` |
272
+
273
+ **Session files location:** `.planning/sessions/` — each session is a JSON file. Use `/ez:export-session` and `/ez:import-session` for cross-model handoffs.
274
+
275
+ </sessions_config>
276
+
277
+ <release_tiers_config>
278
+
279
+ **`release.tiers` block:**
280
+
281
+ ```json
282
+ "release": {
283
+ "tier": "mvp",
284
+ "tiers": {
285
+ "mvp": {
286
+ "coverage_threshold": 0,
287
+ "checklist_items": ["build_passes", "no_blockers"],
288
+ "git_strategy": "direct_to_main"
289
+ },
290
+ "medium": {
291
+ "coverage_threshold": 60,
292
+ "checklist_items": ["build_passes", "no_blockers", "tests_pass", "security_scan"],
293
+ "git_strategy": "pr_required"
294
+ },
295
+ "enterprise": {
296
+ "coverage_threshold": 80,
297
+ "checklist_items": ["build_passes", "no_blockers", "tests_pass", "security_scan", "coverage_gate", "changelog_updated", "rollback_plan"],
298
+ "git_strategy": "gitflow"
299
+ }
300
+ }
301
+ }
302
+ ```
303
+
304
+ | Tier | Coverage | Git Strategy | Checklist |
305
+ |------|----------|--------------|-----------|
306
+ | `mvp` | None | Direct to main | Build + no blockers |
307
+ | `medium` | 60% | PR required | Build + tests + security scan |
308
+ | `enterprise` | 80% | GitFlow (main + develop) | Full gates including rollback plan |
309
+
310
+ **Hotfix behavior by tier:** MVP hotfixes merge directly; Medium requires PR; Enterprise merges to main AND syncs to develop. See `/ez:hotfix` documentation.
311
+
312
+ **Set tier:** `node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" config-set release.tier enterprise`
313
+
314
+ </release_tiers_config>
315
+
316
+ <package_manager_config>
317
+
318
+ **`packageManager` block:**
319
+
320
+ ```json
321
+ "packageManager": {
322
+ "default": "npm",
323
+ "autoDetect": true,
324
+ "respectLockfile": true
325
+ }
326
+ ```
327
+
328
+ | Option | Default | Description |
329
+ |--------|---------|-------------|
330
+ | `default` | `"npm"` | Fallback package manager when auto-detection fails. Options: `"npm"`, `"yarn"`, `"pnpm"`, `"bun"` |
331
+ | `autoDetect` | `true` | Detect package manager from lock file presence (`yarn.lock`, `pnpm-lock.yaml`, `bun.lockb`) |
332
+ | `respectLockfile` | `true` | Use `--frozen-lockfile` / `--ci` flags during install to prevent lock file mutations |
333
+
334
+ **Auto-detection order:** `bun.lockb` → bun, `pnpm-lock.yaml` → pnpm, `yarn.lock` → yarn, `package-lock.json` → npm, fallback to `default`.
335
+
336
+ **Set explicitly:** `node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" config-set packageManager.default pnpm`
337
+
338
+ </package_manager_config>
339
+
340
+ </planning_config>
@@ -0,0 +1,103 @@
1
+ # Tier Strategy Reference
2
+
3
+ Decision reference for git branching and release strategy per tier.
4
+
5
+ ## Quick Decision Matrix
6
+
7
+ | Question | MVP | Medium | Enterprise |
8
+ |----------|-----|--------|------------|
9
+ | Git strategy | Trunk (tag main) | GitHub Flow | GitFlow |
10
+ | Release branch | None | `release/vX.Y.Z` | `release/vX.Y.Z` from develop |
11
+ | Hotfix to develop? | No | No | Yes |
12
+ | PR required? | No | Yes (optional) | Yes (required) |
13
+ | Coverage gate | 60% | 80% | 95% |
14
+ | Checklist items | 6 | 18 | 30 |
15
+ | MoSCoW scope | @must | @must + @should | All |
16
+ | Rollback window | 30 min | 15 min | 5 min |
17
+
18
+ ## When to Use Each Tier
19
+
20
+ **MVP** — You need to ship NOW
21
+ - First public release
22
+ - Early access / beta
23
+ - Founder-driven sales demo
24
+ - Internal tool, no SLA
25
+
26
+ **Medium** — Real users, real consequences
27
+ - General availability
28
+ - Paying customers
29
+ - Public-facing product
30
+ - Team of 2-10 developers
31
+
32
+ **Enterprise** — Compliance matters
33
+ - Fortune 500 customers
34
+ - Regulated industry (finance, health, legal)
35
+ - SOC2 / GDPR required
36
+ - 24/7 SLA commitment
37
+
38
+ ## Tier Promotion Path
39
+
40
+ ```
41
+ Initial release → MVP v1.0.0
42
+ ↓ (enough users to need reliability)
43
+ GA release → Medium v1.5.0
44
+ ↓ (enterprise deal signed)
45
+ Enterprise → v2.0.0
46
+ ```
47
+
48
+ Each promotion is additive — enterprise features are behind feature flags in the codebase from day one. Promotion just enables the flags and runs the stricter checklist.
49
+
50
+ ## Feature Flag Convention
51
+
52
+ ```javascript
53
+ // In code: guard enterprise/medium features
54
+ const ENABLE_SHOULD_FEATURES = process.env.ENABLE_SHOULD_FEATURES === 'true';
55
+ const ENABLE_COULD_FEATURES = process.env.ENABLE_COULD_FEATURES === 'true';
56
+
57
+ // MVP deploy: both = false (no overhead)
58
+ // Medium deploy: SHOULD = true
59
+ // Enterprise: SHOULD = true, COULD = true
60
+ ```
61
+
62
+ ## GitFlow (Enterprise) Branch Layout
63
+
64
+ ```
65
+ main ← production releases (tagged)
66
+ develop ← integration branch
67
+ feature/* ← new features
68
+ fix/* ← bug fixes
69
+ release/vX.Y.Z ← release preparation (from develop → main)
70
+ hotfix/* ← emergency production fixes (from main → main + develop)
71
+ ```
72
+
73
+ ## GitHub Flow (Medium) Branch Layout
74
+
75
+ ```
76
+ main ← production (deploy on merge)
77
+ feature/* ← all work branches
78
+ release/vX.Y.Z ← optional: release prep branch
79
+ hotfix/* ← emergency fixes
80
+ ```
81
+
82
+ ## Trunk-Based (MVP) Branch Layout
83
+
84
+ ```
85
+ main ← production + development
86
+ task/* ← short-lived feature branches (optional)
87
+ ← hotfix directly if needed
88
+ ```
89
+
90
+ ## Config Location
91
+
92
+ Tier is stored in `.planning/config.json`:
93
+
94
+ ```json
95
+ {
96
+ "release": {
97
+ "tier": "mvp",
98
+ "tiers": { ... }
99
+ }
100
+ }
101
+ ```
102
+
103
+ Update with: `node ez-tools.cjs tier-manager save-tier medium`