@howlil/ez-agents 3.5.0 → 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 (382) hide show
  1. package/README.md +735 -537
  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 -333
  18. package/agents/ez-requirements-agent.md +377 -377
  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/lib/analytics/analytics-collector.cjs +86 -0
  30. package/bin/lib/analytics/analytics-reporter.cjs +130 -0
  31. package/bin/lib/analytics/cohort-analyzer.cjs +138 -0
  32. package/bin/lib/analytics/funnel-analyzer.cjs +147 -0
  33. package/bin/lib/analytics/nps-tracker.cjs +147 -0
  34. package/bin/lib/archetype-detector.cjs +289 -0
  35. package/bin/lib/assistant-adapter.cjs +361 -0
  36. package/bin/lib/audit-exec.cjs +175 -0
  37. package/bin/lib/auth.cjs +176 -0
  38. package/bin/lib/backup-service.cjs +422 -0
  39. package/bin/lib/bdd-validator.cjs +622 -0
  40. package/bin/lib/business-flow-mapper.cjs +429 -0
  41. package/bin/lib/circuit-breaker.cjs +276 -0
  42. package/bin/lib/code-complexity-analyzer.cjs +360 -0
  43. package/bin/lib/codebase-analyzer.cjs +241 -0
  44. package/bin/lib/commands.cjs +691 -0
  45. package/bin/lib/config.cjs +236 -0
  46. package/bin/lib/constraint-extractor.cjs +526 -0
  47. package/bin/lib/content-scanner.cjs +238 -0
  48. package/bin/lib/context-cache.cjs +154 -0
  49. package/bin/lib/context-compressor.cjs +102 -0
  50. package/bin/lib/context-deduplicator.cjs +105 -0
  51. package/bin/lib/context-errors.cjs +78 -0
  52. package/bin/lib/context-manager.cjs +338 -0
  53. package/bin/lib/context-metadata-tracker.cjs +140 -0
  54. package/bin/lib/context-relevance-scorer.cjs +99 -0
  55. package/bin/lib/core.cjs +507 -0
  56. package/bin/lib/cost-alerts.cjs +174 -0
  57. package/bin/lib/cost-tracker.cjs +275 -0
  58. package/bin/lib/crash-recovery.cjs +220 -0
  59. package/bin/lib/dependency-graph.cjs +319 -0
  60. package/bin/lib/deploy/deploy-audit-log.cjs +76 -0
  61. package/bin/lib/deploy/deploy-detector.cjs +69 -0
  62. package/bin/lib/deploy/deploy-env-manager.cjs +109 -0
  63. package/bin/lib/deploy/deploy-health-check.cjs +88 -0
  64. package/bin/lib/deploy/deploy-pre-flight.cjs +57 -0
  65. package/bin/lib/deploy/deploy-rollback.cjs +72 -0
  66. package/bin/lib/deploy/deploy-runner.cjs +97 -0
  67. package/bin/lib/deploy/deploy-status.cjs +74 -0
  68. package/bin/lib/discussion-synthesizer.cjs +439 -0
  69. package/bin/lib/error-cache.cjs +114 -0
  70. package/bin/lib/error-registry.cjs +177 -0
  71. package/bin/lib/file-access.cjs +207 -0
  72. package/bin/lib/file-lock.cjs +236 -0
  73. package/bin/lib/finops/budget-enforcer.cjs +126 -0
  74. package/bin/lib/finops/cost-reporter.cjs +132 -0
  75. package/bin/lib/finops/finops-analyzer.cjs +112 -0
  76. package/bin/lib/finops/spot-manager.cjs +118 -0
  77. package/bin/lib/framework-detector.cjs +396 -0
  78. package/bin/lib/frontmatter.cjs +313 -0
  79. package/bin/lib/fs-utils.cjs +153 -0
  80. package/bin/lib/gate-executor.cjs +272 -0
  81. package/bin/lib/gates/README.md +374 -0
  82. package/bin/lib/gates/gate-01-requirement.cjs +303 -0
  83. package/bin/lib/gates/gate-02-architecture.cjs +555 -0
  84. package/bin/lib/gates/gate-03-code.cjs +635 -0
  85. package/bin/lib/gates/gate-04-security.cjs +829 -0
  86. package/bin/lib/git-errors.cjs +83 -0
  87. package/bin/lib/git-utils.cjs +321 -0
  88. package/bin/lib/git-workflow-engine.cjs +1157 -0
  89. package/bin/lib/health-check.cjs +227 -0
  90. package/bin/lib/index.cjs +279 -0
  91. package/bin/lib/init.cjs +725 -0
  92. package/bin/lib/lock-logger.cjs +194 -0
  93. package/bin/lib/lock-state.cjs +263 -0
  94. package/bin/lib/lockfile-validator.cjs +227 -0
  95. package/bin/lib/log-rotation.cjs +71 -0
  96. package/bin/lib/logger.cjs +125 -0
  97. package/bin/lib/memory-compression.cjs +256 -0
  98. package/bin/lib/milestone.cjs +247 -0
  99. package/bin/lib/model-provider.cjs +241 -0
  100. package/bin/lib/package-manager-detector.cjs +203 -0
  101. package/bin/lib/package-manager-executor.cjs +385 -0
  102. package/bin/lib/package-manager-service.cjs +216 -0
  103. package/bin/lib/perf/api-monitor.cjs +88 -0
  104. package/bin/lib/perf/db-optimizer.cjs +78 -0
  105. package/bin/lib/perf/frontend-performance.cjs +56 -0
  106. package/bin/lib/perf/perf-analyzer.cjs +77 -0
  107. package/bin/lib/perf/perf-baseline.cjs +102 -0
  108. package/bin/lib/perf/perf-reporter.cjs +117 -0
  109. package/bin/lib/perf/regression-detector.cjs +92 -0
  110. package/bin/lib/phase.cjs +963 -0
  111. package/bin/lib/planning-write.cjs +123 -0
  112. package/bin/lib/project-reporter.cjs +565 -0
  113. package/bin/lib/quality-gate.cjs +332 -0
  114. package/bin/lib/quality-metrics.cjs +324 -0
  115. package/bin/lib/recovery-manager.cjs +98 -0
  116. package/bin/lib/release-validator.cjs +617 -0
  117. package/bin/lib/retry.cjs +119 -0
  118. package/bin/lib/roadmap.cjs +309 -0
  119. package/bin/lib/safe-exec.cjs +173 -0
  120. package/bin/lib/safe-path.cjs +130 -0
  121. package/bin/lib/security-errors.cjs +62 -0
  122. package/bin/lib/session-chain.cjs +304 -0
  123. package/bin/lib/session-errors.cjs +81 -0
  124. package/bin/lib/session-export.cjs +251 -0
  125. package/bin/lib/session-import.cjs +262 -0
  126. package/bin/lib/session-manager.cjs +280 -0
  127. package/bin/lib/skill-context.cjs +148 -0
  128. package/bin/lib/skill-matcher.cjs +236 -0
  129. package/bin/lib/skill-registry.cjs +360 -0
  130. package/bin/lib/skill-resolver.cjs +449 -0
  131. package/bin/lib/skill-triggers.cjs +90 -0
  132. package/bin/lib/skill-validator.cjs +270 -0
  133. package/bin/lib/skill-versioning.cjs +355 -0
  134. package/bin/lib/stack-detector.cjs +399 -0
  135. package/bin/lib/state.cjs +736 -0
  136. package/bin/lib/tech-debt-analyzer.cjs +309 -0
  137. package/bin/lib/temp-file.cjs +239 -0
  138. package/bin/lib/template.cjs +223 -0
  139. package/bin/lib/test-file-lock.cjs +112 -0
  140. package/bin/lib/test-graceful.cjs +93 -0
  141. package/bin/lib/test-logger.cjs +60 -0
  142. package/bin/lib/test-safe-exec.cjs +38 -0
  143. package/bin/lib/test-safe-path.cjs +33 -0
  144. package/bin/lib/test-temp-file.cjs +125 -0
  145. package/bin/lib/tier-manager.cjs +428 -0
  146. package/bin/lib/timeout-exec.cjs +63 -0
  147. package/bin/lib/tradeoff-analyzer.cjs +284 -0
  148. package/bin/lib/url-fetch.cjs +170 -0
  149. package/bin/lib/verify.cjs +863 -0
  150. package/bin/update.js +217 -214
  151. package/commands/deploy.cjs +53 -0
  152. package/commands/ez/add-tests.md +41 -41
  153. package/commands/ez/audit-milestone.md +36 -36
  154. package/commands/ez/complete-milestone.md +136 -136
  155. package/commands/ez/discuss-phase.md +90 -90
  156. package/commands/ez/execute-phase.md +52 -52
  157. package/commands/ez/help.md +22 -22
  158. package/commands/ez/map-codebase.md +71 -71
  159. package/commands/ez/new-milestone.md +44 -44
  160. package/commands/ez/new-project.md +51 -42
  161. package/commands/ez/plan-phase.md +53 -53
  162. package/commands/ez/progress.md +36 -36
  163. package/commands/ez/quick.md +45 -45
  164. package/commands/ez/resume-work.md +40 -40
  165. package/commands/ez/run-phase.md +580 -0
  166. package/commands/ez/settings.md +36 -36
  167. package/commands/ez/update.md +37 -37
  168. package/commands/ez/verify-work.md +402 -38
  169. package/commands/health-check.cjs +44 -0
  170. package/commands/rollback.cjs +47 -0
  171. package/ez-agents/bin/ez-tools.cjs +599 -2
  172. package/ez-agents/bin/guards/autonomy-guard.cjs +346 -0
  173. package/ez-agents/bin/guards/context-budget-guard.cjs +247 -0
  174. package/ez-agents/bin/guards/hallucination-guard.cjs +271 -0
  175. package/ez-agents/bin/guards/hidden-state-guard.cjs +182 -0
  176. package/ez-agents/bin/guards/team-overhead-guard.cjs +266 -0
  177. package/ez-agents/bin/guards/tool-sprawl-guard.cjs +271 -0
  178. package/ez-agents/bin/lib/analytics/analytics-collector.cjs +86 -0
  179. package/ez-agents/bin/lib/analytics/analytics-reporter.cjs +130 -0
  180. package/ez-agents/bin/lib/analytics/cohort-analyzer.cjs +138 -0
  181. package/ez-agents/bin/lib/analytics/funnel-analyzer.cjs +147 -0
  182. package/ez-agents/bin/lib/analytics/nps-tracker.cjs +147 -0
  183. package/ez-agents/bin/lib/archetype-detector.cjs +289 -0
  184. package/ez-agents/bin/lib/audit-exec.cjs +166 -167
  185. package/ez-agents/bin/lib/auth.cjs +176 -176
  186. package/ez-agents/bin/lib/backup-service.cjs +422 -0
  187. package/ez-agents/bin/lib/bdd-validator.cjs +622 -622
  188. package/ez-agents/bin/lib/business-flow-mapper.cjs +429 -0
  189. package/ez-agents/bin/lib/code-complexity-analyzer.cjs +360 -0
  190. package/ez-agents/bin/lib/codebase-analyzer.cjs +241 -0
  191. package/ez-agents/bin/lib/commands.cjs +685 -685
  192. package/ez-agents/bin/lib/config.cjs +41 -1
  193. package/ez-agents/bin/lib/constraint-extractor.cjs +526 -0
  194. package/ez-agents/bin/lib/content-scanner.cjs +238 -238
  195. package/ez-agents/bin/lib/context-cache.cjs +154 -154
  196. package/ez-agents/bin/lib/context-errors.cjs +71 -71
  197. package/ez-agents/bin/lib/context-manager.cjs +220 -220
  198. package/ez-agents/bin/lib/core.cjs +507 -512
  199. package/ez-agents/bin/lib/cost-tracker.cjs +243 -0
  200. package/ez-agents/bin/lib/crash-recovery.cjs +172 -0
  201. package/ez-agents/bin/lib/dependency-graph.cjs +319 -0
  202. package/ez-agents/bin/lib/deploy/deploy-audit-log.cjs +76 -0
  203. package/ez-agents/bin/lib/deploy/deploy-detector.cjs +69 -0
  204. package/ez-agents/bin/lib/deploy/deploy-env-manager.cjs +109 -0
  205. package/ez-agents/bin/lib/deploy/deploy-health-check.cjs +88 -0
  206. package/ez-agents/bin/lib/deploy/deploy-pre-flight.cjs +57 -0
  207. package/ez-agents/bin/lib/deploy/deploy-rollback.cjs +72 -0
  208. package/ez-agents/bin/lib/deploy/deploy-runner.cjs +97 -0
  209. package/ez-agents/bin/lib/deploy/deploy-status.cjs +74 -0
  210. package/ez-agents/bin/lib/file-access.cjs +207 -207
  211. package/ez-agents/bin/lib/finops/budget-enforcer.cjs +126 -0
  212. package/ez-agents/bin/lib/finops/cost-reporter.cjs +132 -0
  213. package/ez-agents/bin/lib/finops/finops-analyzer.cjs +112 -0
  214. package/ez-agents/bin/lib/finops/spot-manager.cjs +118 -0
  215. package/ez-agents/bin/lib/framework-detector.cjs +396 -0
  216. package/ez-agents/bin/lib/frontmatter.cjs +3 -1
  217. package/ez-agents/bin/lib/gates/README.md +374 -0
  218. package/ez-agents/bin/lib/gates/gate-01-requirement.cjs +303 -0
  219. package/ez-agents/bin/lib/gates/gate-02-architecture.cjs +555 -0
  220. package/ez-agents/bin/lib/gates/gate-03-code.cjs +635 -0
  221. package/ez-agents/bin/lib/gates/gate-04-security.cjs +829 -0
  222. package/ez-agents/bin/lib/git-errors.cjs +83 -83
  223. package/ez-agents/bin/lib/git-utils.cjs +321 -321
  224. package/ez-agents/bin/lib/git-workflow-engine.cjs +1157 -1157
  225. package/ez-agents/bin/lib/health-check.cjs +162 -162
  226. package/ez-agents/bin/lib/index.cjs +2 -8
  227. package/ez-agents/bin/lib/init.cjs +0 -2
  228. package/ez-agents/bin/lib/lockfile-validator.cjs +227 -227
  229. package/ez-agents/bin/lib/log-rotation.cjs +71 -0
  230. package/ez-agents/bin/lib/logger.cjs +22 -47
  231. package/ez-agents/bin/lib/memory-compression.cjs +256 -256
  232. package/ez-agents/bin/lib/package-manager-detector.cjs +203 -203
  233. package/ez-agents/bin/lib/package-manager-executor.cjs +385 -385
  234. package/ez-agents/bin/lib/package-manager-service.cjs +216 -216
  235. package/ez-agents/bin/lib/perf/api-monitor.cjs +88 -0
  236. package/ez-agents/bin/lib/perf/db-optimizer.cjs +78 -0
  237. package/ez-agents/bin/lib/perf/frontend-performance.cjs +56 -0
  238. package/ez-agents/bin/lib/perf/perf-analyzer.cjs +77 -0
  239. package/ez-agents/bin/lib/perf/perf-baseline.cjs +102 -0
  240. package/ez-agents/bin/lib/perf/perf-reporter.cjs +117 -0
  241. package/ez-agents/bin/lib/perf/regression-detector.cjs +92 -0
  242. package/ez-agents/bin/lib/project-reporter.cjs +502 -0
  243. package/ez-agents/bin/lib/quality-gate.cjs +332 -0
  244. package/ez-agents/bin/lib/recovery-manager.cjs +98 -0
  245. package/ez-agents/bin/lib/release-validator.cjs +617 -614
  246. package/ez-agents/bin/lib/security-errors.cjs +62 -0
  247. package/ez-agents/bin/lib/session-chain.cjs +304 -304
  248. package/ez-agents/bin/lib/session-errors.cjs +81 -81
  249. package/ez-agents/bin/lib/session-export.cjs +251 -251
  250. package/ez-agents/bin/lib/session-import.cjs +262 -262
  251. package/ez-agents/bin/lib/session-manager.cjs +280 -280
  252. package/ez-agents/bin/lib/skill-context.cjs +148 -0
  253. package/ez-agents/bin/lib/skill-matcher.cjs +236 -0
  254. package/ez-agents/bin/lib/skill-registry.cjs +341 -0
  255. package/ez-agents/bin/lib/skill-resolver.cjs +449 -0
  256. package/ez-agents/bin/lib/skill-triggers.cjs +90 -0
  257. package/ez-agents/bin/lib/skill-validator.cjs +270 -0
  258. package/ez-agents/bin/lib/skill-versioning.cjs +355 -0
  259. package/ez-agents/bin/lib/stack-detector.cjs +399 -0
  260. package/ez-agents/bin/lib/tech-debt-analyzer.cjs +309 -0
  261. package/ez-agents/bin/lib/tier-manager.cjs +428 -428
  262. package/ez-agents/bin/lib/tradeoff-analyzer.cjs +284 -0
  263. package/ez-agents/bin/lib/url-fetch.cjs +170 -170
  264. package/ez-agents/bin/lib/verify.cjs +863 -863
  265. package/ez-agents/references/decimal-phase-calculation.md +65 -65
  266. package/ez-agents/references/git-integration.md +248 -248
  267. package/ez-agents/references/git-planning-commit.md +38 -38
  268. package/ez-agents/references/metrics-schema.md +118 -118
  269. package/ez-agents/references/model-profile-resolution.md +34 -34
  270. package/ez-agents/references/model-profiles.md +93 -93
  271. package/ez-agents/references/phase-argument-parsing.md +61 -61
  272. package/ez-agents/references/planning-config.md +340 -340
  273. package/ez-agents/references/tier-strategy.md +103 -103
  274. package/ez-agents/references/ui-brand.md +160 -160
  275. package/ez-agents/references/verification-patterns.md +612 -612
  276. package/ez-agents/templates/DEBUG.md +164 -164
  277. package/ez-agents/templates/UAT.md +247 -247
  278. package/ez-agents/templates/agent-output-format.md +404 -0
  279. package/ez-agents/templates/bdd-feature.md +173 -173
  280. package/ez-agents/templates/codebase/architecture.md +255 -255
  281. package/ez-agents/templates/codebase/structure.md +285 -285
  282. package/ez-agents/templates/copilot-instructions.md +7 -7
  283. package/ez-agents/templates/debug-subagent-prompt.md +91 -91
  284. package/ez-agents/templates/discovery.md +146 -146
  285. package/ez-agents/templates/discussion.md +68 -68
  286. package/ez-agents/templates/handoff-protocol.md +294 -0
  287. package/ez-agents/templates/incident-runbook.md +205 -205
  288. package/ez-agents/templates/mode-workflow-templates.md +301 -0
  289. package/ez-agents/templates/phase-prompt.md +610 -610
  290. package/ez-agents/templates/planner-subagent-prompt.md +117 -117
  291. package/ez-agents/templates/project.md +184 -184
  292. package/ez-agents/templates/release-checklist.md +136 -133
  293. package/ez-agents/templates/research.md +552 -552
  294. package/ez-agents/templates/rollback-plan.md +201 -201
  295. package/ez-agents/templates/security-user-setup.md +244 -0
  296. package/ez-agents/templates/skill-validation-rules.md +476 -0
  297. package/ez-agents/templates/state.md +180 -176
  298. package/ez-agents/templates/summary-complex.md +59 -59
  299. package/ez-agents/tests/gates/gate-01-02.test.cjs +812 -0
  300. package/ez-agents/tests/gates/gate-03-04.test.cjs +762 -0
  301. package/ez-agents/tests/gates/gate-05-validator.test.cjs +145 -0
  302. package/ez-agents/tests/gates/gate-06-docs-validator.test.cjs +244 -0
  303. package/ez-agents/tests/gates/gate-07-release-validator.test.cjs +219 -0
  304. package/ez-agents/tests/guards/context-budget-guard.test.cjs +145 -0
  305. package/ez-agents/tests/guards/edge-case-guards.test.cjs +238 -0
  306. package/ez-agents/tests/guards/hallucination-guard.test.cjs +124 -0
  307. package/ez-agents/workflows/audit-milestone.md +1 -1
  308. package/ez-agents/workflows/autonomous.md +844 -844
  309. package/ez-agents/workflows/complete-milestone.md +1 -1
  310. package/ez-agents/workflows/discuss-phase.md +1 -1
  311. package/ez-agents/workflows/execute-phase.md +124 -3
  312. package/ez-agents/workflows/help.md +42 -181
  313. package/ez-agents/workflows/hotfix.md +291 -291
  314. package/ez-agents/workflows/new-milestone.md +713 -713
  315. package/ez-agents/workflows/new-project.md +1089 -1107
  316. package/ez-agents/workflows/plan-phase.md +0 -40
  317. package/ez-agents/workflows/release.md +253 -253
  318. package/ez-agents/workflows/resume-session.md +215 -215
  319. package/ez-agents/workflows/run-phase.md +531 -0
  320. package/ez-agents/workflows/settings.md +2 -35
  321. package/hooks/dist/ez-check-update.js +81 -81
  322. package/hooks/dist/ez-context-monitor.js +148 -141
  323. package/hooks/dist/ez-statusline.js +115 -115
  324. package/package.json +78 -71
  325. package/scripts/fix-qwen-installation.js +144 -144
  326. package/agents/ez-integration-checker.md +0 -443
  327. package/agents/ez-nyquist-auditor.md +0 -176
  328. package/agents/ez-observer-agent.md +0 -260
  329. package/agents/ez-plan-checker.md +0 -706
  330. package/agents/ez-research-synthesizer.md +0 -247
  331. package/agents/ez-scrum-master-agent.md +0 -242
  332. package/agents/ez-tech-lead-agent.md +0 -267
  333. package/agents/ez-ui-auditor.md +0 -439
  334. package/agents/ez-ui-checker.md +0 -300
  335. package/agents/ez-ui-researcher.md +0 -353
  336. package/commands/ez/add-phase.md +0 -43
  337. package/commands/ez/add-todo.md +0 -47
  338. package/commands/ez/arch-review.md +0 -102
  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/export-session.md +0 -79
  345. package/commands/ez/gather-requirements.md +0 -117
  346. package/commands/ez/git-workflow.md +0 -72
  347. package/commands/ez/health.md +0 -22
  348. package/commands/ez/hotfix.md +0 -120
  349. package/commands/ez/import-session.md +0 -82
  350. package/commands/ez/insert-phase.md +0 -32
  351. package/commands/ez/join-discord.md +0 -18
  352. package/commands/ez/list-phase-assumptions.md +0 -46
  353. package/commands/ez/list-sessions.md +0 -96
  354. package/commands/ez/package-manager.md +0 -316
  355. package/commands/ez/pause-work.md +0 -38
  356. package/commands/ez/plan-milestone-gaps.md +0 -34
  357. package/commands/ez/preflight.md +0 -79
  358. package/commands/ez/reapply-patches.md +0 -124
  359. package/commands/ez/release.md +0 -153
  360. package/commands/ez/remove-phase.md +0 -31
  361. package/commands/ez/research-phase.md +0 -190
  362. package/commands/ez/resume.md +0 -107
  363. package/commands/ez/set-profile.md +0 -34
  364. package/commands/ez/standup.md +0 -85
  365. package/commands/ez/stats.md +0 -18
  366. package/commands/ez/ui-phase.md +0 -34
  367. package/commands/ez/ui-review.md +0 -32
  368. package/commands/ez/validate-phase.md +0 -35
  369. package/ez-agents/bin/lib/metrics-tracker.cjs +0 -406
  370. package/ez-agents/templates/UI-SPEC.md +0 -100
  371. package/ez-agents/templates/VALIDATION.md +0 -76
  372. package/ez-agents/templates/context.md +0 -352
  373. package/ez-agents/templates/verification-report.md +0 -322
  374. package/ez-agents/workflows/arch-review.md +0 -54
  375. package/ez-agents/workflows/export-session.md +0 -255
  376. package/ez-agents/workflows/gather-requirements.md +0 -206
  377. package/ez-agents/workflows/import-session.md +0 -303
  378. package/ez-agents/workflows/research-phase.md +0 -74
  379. package/ez-agents/workflows/standup.md +0 -64
  380. package/ez-agents/workflows/ui-phase.md +0 -290
  381. package/ez-agents/workflows/ui-review.md +0 -157
  382. package/ez-agents/workflows/validate-phase.md +0 -167
@@ -1,38 +1,38 @@
1
- # Git Planning Commit
2
-
3
- Commit planning artifacts using the ez-tools CLI, which automatically checks `commit_docs` config and gitignore status.
4
-
5
- ## Commit via CLI
6
-
7
- Always use `ez-tools.cjs commit` for `.planning/` files — it handles `commit_docs` and gitignore checks automatically:
8
-
9
- ```bash
10
- node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "docs({scope}): {description}" --files .planning/STATE.md .planning/ROADMAP.md
11
- ```
12
-
13
- The CLI will return `skipped` (with reason) if `commit_docs` is `false` or `.planning/` is gitignored. No manual conditional checks needed.
14
-
15
- ## Amend previous commit
16
-
17
- To fold `.planning/` file changes into the previous commit:
18
-
19
- ```bash
20
- node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "" --files .planning/codebase/*.md --amend
21
- ```
22
-
23
- ## Commit Message Patterns
24
-
25
- | Command | Scope | Example |
26
- |---------|-------|---------|
27
- | plan-phase | phase | `docs(phase-03): create authentication plans` |
28
- | execute-phase | phase | `docs(phase-03): complete authentication phase` |
29
- | new-milestone | milestone | `docs: start milestone v1.1` |
30
- | remove-phase | chore | `chore: remove phase 17 (dashboard)` |
31
- | insert-phase | phase | `docs: insert phase 16.1 (critical fix)` |
32
- | add-phase | phase | `docs: add phase 07 (settings page)` |
33
-
34
- ## When to Skip
35
-
36
- - `commit_docs: false` in config
37
- - `.planning/` is gitignored
38
- - No changes to commit (check with `git status --porcelain .planning/`)
1
+ # Git Planning Commit
2
+
3
+ Commit planning artifacts using the ez-tools CLI, which automatically checks `commit_docs` config and gitignore status.
4
+
5
+ ## Commit via CLI
6
+
7
+ Always use `ez-tools.cjs commit` for `.planning/` files — it handles `commit_docs` and gitignore checks automatically:
8
+
9
+ ```bash
10
+ node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "docs({scope}): {description}" --files .planning/STATE.md .planning/ROADMAP.md
11
+ ```
12
+
13
+ The CLI will return `skipped` (with reason) if `commit_docs` is `false` or `.planning/` is gitignored. No manual conditional checks needed.
14
+
15
+ ## Amend previous commit
16
+
17
+ To fold `.planning/` file changes into the previous commit:
18
+
19
+ ```bash
20
+ node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "" --files .planning/codebase/*.md --amend
21
+ ```
22
+
23
+ ## Commit Message Patterns
24
+
25
+ | Command | Scope | Example |
26
+ |---------|-------|---------|
27
+ | plan-phase | phase | `docs(phase-03): create authentication plans` |
28
+ | execute-phase | phase | `docs(phase-03): complete authentication phase` |
29
+ | new-milestone | milestone | `docs: start milestone v1.1` |
30
+ | remove-phase | chore | `chore: remove phase 17 (dashboard)` |
31
+ | insert-phase | phase | `docs: insert phase 16.1 (critical fix)` |
32
+ | add-phase | phase | `docs: add phase 07 (settings page)` |
33
+
34
+ ## When to Skip
35
+
36
+ - `commit_docs: false` in config
37
+ - `.planning/` is gitignored
38
+ - No changes to commit (check with `git status --porcelain .planning/`)
@@ -1,118 +1,118 @@
1
- # Metrics Schema Reference
2
-
3
- Schema for `.planning/metrics.json` — the EZ Agents success metrics store.
4
-
5
- ## Full Schema
6
-
7
- ```json
8
- {
9
- "schema_version": "1.0",
10
- "project": "project-name",
11
- "updated": "2026-03-19T00:00:00Z",
12
-
13
- "phase_metrics": [
14
- {
15
- "phase": 18,
16
- "phase_name": "session-memory",
17
- "plans_total": 4,
18
- "plans_completed": 4,
19
- "velocity_min": 24,
20
- "defect_density": 0.12,
21
- "bdd_pass_rate": 0.84,
22
- "bdd_must_passing": 8,
23
- "bdd_must_total": 9,
24
- "deviation_count": 2,
25
- "completed_at": "2026-03-19T00:00:00Z"
26
- }
27
- ],
28
-
29
- "project_metrics": {
30
- "requirements_coverage_pct": 78,
31
- "test_coverage_pct": 74,
32
- "bdd_scenarios_total": 60,
33
- "bdd_scenarios_passing": 45,
34
- "bdd_scenarios_must": 25,
35
- "bdd_scenarios_must_passing": 24
36
- },
37
-
38
- "agent_metrics": {
39
- "total_token_cost_usd": 18.40,
40
- "avg_cost_per_plan": 0.27,
41
- "deviation_rate": 0.15,
42
- "avg_plans_per_phase": 3.2,
43
- "avg_velocity_min_per_plan": 22
44
- },
45
-
46
- "business_metrics": {
47
- "time_to_first_ship_days": 95,
48
- "hotfixes_deployed": 0,
49
- "milestones_shipped": 1,
50
- "current_tier": "medium",
51
- "phases_total": 29,
52
- "phases_completed": 18
53
- }
54
- }
55
- ```
56
-
57
- ## Field Definitions
58
-
59
- ### phase_metrics[]
60
-
61
- | Field | Type | Source | Description |
62
- |-------|------|--------|-------------|
63
- | `phase` | int | ez-executor | Phase number |
64
- | `plans_total` | int | ez-executor | Plans in phase |
65
- | `plans_completed` | int | ez-executor | Plans with SUMMARY.md |
66
- | `velocity_min` | int | ez-executor | Minutes from first to last commit in phase |
67
- | `defect_density` | float | ez-executor | Deviations / tasks executed |
68
- | `bdd_pass_rate` | float | ez-verifier | @must scenarios passing / total @must |
69
- | `deviation_count` | int | ez-executor | Auto-fix deviations logged |
70
-
71
- ### project_metrics
72
-
73
- | Field | Type | Source | Description |
74
- |-------|------|--------|-------------|
75
- | `requirements_coverage_pct` | int | ez-executor | % of REQUIREMENTS.md checked off |
76
- | `test_coverage_pct` | int | ez-verifier | From coverage tool output |
77
- | `bdd_scenarios_passing` | int | ez-verifier | Scenarios with green status |
78
-
79
- ### agent_metrics
80
-
81
- | Field | Type | Source | Description |
82
- |-------|------|--------|-------------|
83
- | `total_token_cost_usd` | float | metrics-tracker | Accumulated from state.record-metric |
84
- | `avg_cost_per_plan` | float | metrics-tracker | total / plans_completed |
85
- | `deviation_rate` | float | metrics-tracker | total_deviations / total_tasks |
86
-
87
- ### business_metrics
88
-
89
- | Field | Type | Source | Description |
90
- |-------|------|--------|-------------|
91
- | `time_to_first_ship_days` | int | ez-release-agent | Days from project init to first release |
92
- | `hotfixes_deployed` | int | ez-release-agent | Hotfixes tagged and pushed |
93
- | `current_tier` | string | tier-manager | mvp / medium / enterprise |
94
-
95
- ## Capture Points
96
-
97
- | Metric | When Captured | Who Captures |
98
- |--------|---------------|--------------|
99
- | velocity_min | After SUMMARY.md created | ez-executor (state record-metric) |
100
- | deviation_count | During execution | ez-executor (per deviation Rule 1-3) |
101
- | defect_density | After plan completes | ez-executor (computed) |
102
- | bdd_pass_rate | After VERIFICATION.md | ez-verifier (metrics record-bdd) |
103
- | test_coverage_pct | After verification | ez-verifier (from coverage tool) |
104
- | requirements_coverage_pct | After mark-complete | ez-executor (computed from REQUIREMENTS.md) |
105
- | total_token_cost_usd | Ongoing | ez-executor (from state.record-metric cost field) |
106
- | hotfixes_deployed | After hotfix tag | ez-release-agent |
107
-
108
- ## Dashboard Output
109
-
110
- ```
111
- /ez:stats → enhanced dashboard
112
-
113
- PROGRESS: Phase 18/29 (62%) | Requirements 78% | BDD 80%
114
- VELOCITY: 22 min/plan avg | Trend: ↑ IMPROVING
115
- QUALITY: Coverage 74% | Defect density 0.12 | Deviation 15%
116
- COSTS: $18.40 total | $0.27/plan | Est. remaining: ~$3.00
117
- RELEASE: Tier: Medium | Hotfixes: 0 | Blockers: 0
118
- ```
1
+ # Metrics Schema Reference
2
+
3
+ Schema for `.planning/metrics.json` — the EZ Agents success metrics store.
4
+
5
+ ## Full Schema
6
+
7
+ ```json
8
+ {
9
+ "schema_version": "1.0",
10
+ "project": "project-name",
11
+ "updated": "2026-03-19T00:00:00Z",
12
+
13
+ "phase_metrics": [
14
+ {
15
+ "phase": 18,
16
+ "phase_name": "session-memory",
17
+ "plans_total": 4,
18
+ "plans_completed": 4,
19
+ "velocity_min": 24,
20
+ "defect_density": 0.12,
21
+ "bdd_pass_rate": 0.84,
22
+ "bdd_must_passing": 8,
23
+ "bdd_must_total": 9,
24
+ "deviation_count": 2,
25
+ "completed_at": "2026-03-19T00:00:00Z"
26
+ }
27
+ ],
28
+
29
+ "project_metrics": {
30
+ "requirements_coverage_pct": 78,
31
+ "test_coverage_pct": 74,
32
+ "bdd_scenarios_total": 60,
33
+ "bdd_scenarios_passing": 45,
34
+ "bdd_scenarios_must": 25,
35
+ "bdd_scenarios_must_passing": 24
36
+ },
37
+
38
+ "agent_metrics": {
39
+ "total_token_cost_usd": 18.40,
40
+ "avg_cost_per_plan": 0.27,
41
+ "deviation_rate": 0.15,
42
+ "avg_plans_per_phase": 3.2,
43
+ "avg_velocity_min_per_plan": 22
44
+ },
45
+
46
+ "business_metrics": {
47
+ "time_to_first_ship_days": 95,
48
+ "hotfixes_deployed": 0,
49
+ "milestones_shipped": 1,
50
+ "current_tier": "medium",
51
+ "phases_total": 29,
52
+ "phases_completed": 18
53
+ }
54
+ }
55
+ ```
56
+
57
+ ## Field Definitions
58
+
59
+ ### phase_metrics[]
60
+
61
+ | Field | Type | Source | Description |
62
+ |-------|------|--------|-------------|
63
+ | `phase` | int | ez-executor | Phase number |
64
+ | `plans_total` | int | ez-executor | Plans in phase |
65
+ | `plans_completed` | int | ez-executor | Plans with SUMMARY.md |
66
+ | `velocity_min` | int | ez-executor | Minutes from first to last commit in phase |
67
+ | `defect_density` | float | ez-executor | Deviations / tasks executed |
68
+ | `bdd_pass_rate` | float | ez-verifier | @must scenarios passing / total @must |
69
+ | `deviation_count` | int | ez-executor | Auto-fix deviations logged |
70
+
71
+ ### project_metrics
72
+
73
+ | Field | Type | Source | Description |
74
+ |-------|------|--------|-------------|
75
+ | `requirements_coverage_pct` | int | ez-executor | % of REQUIREMENTS.md checked off |
76
+ | `test_coverage_pct` | int | ez-verifier | From coverage tool output |
77
+ | `bdd_scenarios_passing` | int | ez-verifier | Scenarios with green status |
78
+
79
+ ### agent_metrics
80
+
81
+ | Field | Type | Source | Description |
82
+ |-------|------|--------|-------------|
83
+ | `total_token_cost_usd` | float | metrics-tracker | Accumulated from state.record-metric |
84
+ | `avg_cost_per_plan` | float | metrics-tracker | total / plans_completed |
85
+ | `deviation_rate` | float | metrics-tracker | total_deviations / total_tasks |
86
+
87
+ ### business_metrics
88
+
89
+ | Field | Type | Source | Description |
90
+ |-------|------|--------|-------------|
91
+ | `time_to_first_ship_days` | int | ez-release-agent | Days from project init to first release |
92
+ | `hotfixes_deployed` | int | ez-release-agent | Hotfixes tagged and pushed |
93
+ | `current_tier` | string | tier-manager | mvp / medium / enterprise |
94
+
95
+ ## Capture Points
96
+
97
+ | Metric | When Captured | Who Captures |
98
+ |--------|---------------|--------------|
99
+ | velocity_min | After SUMMARY.md created | ez-executor (state record-metric) |
100
+ | deviation_count | During execution | ez-executor (per deviation Rule 1-3) |
101
+ | defect_density | After plan completes | ez-executor (computed) |
102
+ | bdd_pass_rate | After VERIFICATION.md | ez-verifier (metrics record-bdd) |
103
+ | test_coverage_pct | After verification | ez-verifier (from coverage tool) |
104
+ | requirements_coverage_pct | After mark-complete | ez-executor (computed from REQUIREMENTS.md) |
105
+ | total_token_cost_usd | Ongoing | ez-executor (from state.record-metric cost field) |
106
+ | hotfixes_deployed | After hotfix tag | ez-release-agent |
107
+
108
+ ## Dashboard Output
109
+
110
+ ```
111
+ /ez:stats → enhanced dashboard
112
+
113
+ PROGRESS: Phase 18/29 (62%) | Requirements 78% | BDD 80%
114
+ VELOCITY: 22 min/plan avg | Trend: ↑ IMPROVING
115
+ QUALITY: Coverage 74% | Defect density 0.12 | Deviation 15%
116
+ COSTS: $18.40 total | $0.27/plan | Est. remaining: ~$3.00
117
+ RELEASE: Tier: Medium | Hotfixes: 0 | Blockers: 0
118
+ ```
@@ -1,34 +1,34 @@
1
- # Model Profile Resolution
2
-
3
- Resolve model profile once at the start of orchestration, then use it for all Task spawns.
4
-
5
- ## Resolution Pattern
6
-
7
- ```bash
8
- MODEL_PROFILE=$(cat .planning/config.json 2>/dev/null | grep -o '"model_profile"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
9
- ```
10
-
11
- Default: `balanced` if not set or config missing.
12
-
13
- ## Lookup Table
14
-
15
- @~/.claude/ez-agents/references/model-profiles.md
16
-
17
- Look up the agent in the table for the resolved profile. Pass the model parameter to Task calls:
18
-
19
- ```
20
- Task(
21
- prompt="...",
22
- subagent_type="ez-planner",
23
- model="{resolved_model}" # "inherit", "sonnet", or "haiku"
24
- )
25
- ```
26
-
27
- **Note:** Opus-tier agents resolve to `"inherit"` (not `"opus"`). This causes the agent to use the parent session's model, avoiding conflicts with organization policies that may block specific opus versions.
28
-
29
- ## Usage
30
-
31
- 1. Resolve once at orchestration start
32
- 2. Store the profile value
33
- 3. Look up each agent's model from the table when spawning
34
- 4. Pass model parameter to each Task call (values: `"inherit"`, `"sonnet"`, `"haiku"`)
1
+ # Model Profile Resolution
2
+
3
+ Resolve model profile once at the start of orchestration, then use it for all Task spawns.
4
+
5
+ ## Resolution Pattern
6
+
7
+ ```bash
8
+ MODEL_PROFILE=$(cat .planning/config.json 2>/dev/null | grep -o '"model_profile"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
9
+ ```
10
+
11
+ Default: `balanced` if not set or config missing.
12
+
13
+ ## Lookup Table
14
+
15
+ @~/.claude/ez-agents/references/model-profiles.md
16
+
17
+ Look up the agent in the table for the resolved profile. Pass the model parameter to Task calls:
18
+
19
+ ```
20
+ Task(
21
+ prompt="...",
22
+ subagent_type="ez-planner",
23
+ model="{resolved_model}" # "inherit", "sonnet", or "haiku"
24
+ )
25
+ ```
26
+
27
+ **Note:** Opus-tier agents resolve to `"inherit"` (not `"opus"`). This causes the agent to use the parent session's model, avoiding conflicts with organization policies that may block specific opus versions.
28
+
29
+ ## Usage
30
+
31
+ 1. Resolve once at orchestration start
32
+ 2. Store the profile value
33
+ 3. Look up each agent's model from the table when spawning
34
+ 4. Pass model parameter to each Task call (values: `"inherit"`, `"sonnet"`, `"haiku"`)
@@ -1,93 +1,93 @@
1
- # Model Profiles
2
-
3
- Model profiles control which Claude model each EZ Agents agent uses. This allows balancing quality vs token spend.
4
-
5
- ## Profile Definitions
6
-
7
- | Agent | `quality` | `balanced` | `budget` |
8
- |-------|-----------|------------|----------|
9
- | ez-planner | opus | opus | sonnet |
10
- | ez-roadmapper | opus | sonnet | sonnet |
11
- | ez-executor | opus | sonnet | sonnet |
12
- | ez-phase-researcher | opus | sonnet | haiku |
13
- | ez-project-researcher | opus | sonnet | haiku |
14
- | ez-research-synthesizer | sonnet | sonnet | haiku |
15
- | ez-debugger | opus | sonnet | sonnet |
16
- | ez-codebase-mapper | sonnet | haiku | haiku |
17
- | ez-verifier | sonnet | sonnet | haiku |
18
- | ez-plan-checker | sonnet | sonnet | haiku |
19
- | ez-integration-checker | sonnet | sonnet | haiku |
20
- | ez-nyquist-auditor | sonnet | sonnet | haiku |
21
-
22
- ## Profile Philosophy
23
-
24
- **quality** - Maximum reasoning power
25
- - Opus for all decision-making agents
26
- - Sonnet for read-only verification
27
- - Use when: quota available, critical architecture work
28
-
29
- **balanced** (default) - Smart allocation
30
- - Opus only for planning (where architecture decisions happen)
31
- - Sonnet for execution and research (follows explicit instructions)
32
- - Sonnet for verification (needs reasoning, not just pattern matching)
33
- - Use when: normal development, good balance of quality and cost
34
-
35
- **budget** - Minimal Opus usage
36
- - Sonnet for anything that writes code
37
- - Haiku for research and verification
38
- - Use when: conserving quota, high-volume work, less critical phases
39
-
40
- ## Resolution Logic
41
-
42
- Orchestrators resolve model before spawning:
43
-
44
- ```
45
- 1. Read .planning/config.json
46
- 2. Check model_overrides for agent-specific override
47
- 3. If no override, look up agent in profile table
48
- 4. Pass model parameter to Task call
49
- ```
50
-
51
- ## Per-Agent Overrides
52
-
53
- Override specific agents without changing the entire profile:
54
-
55
- ```json
56
- {
57
- "model_profile": "balanced",
58
- "model_overrides": {
59
- "ez-executor": "opus",
60
- "ez-planner": "haiku"
61
- }
62
- }
63
- ```
64
-
65
- Overrides take precedence over the profile. Valid values: `opus`, `sonnet`, `haiku`.
66
-
67
- ## Switching Profiles
68
-
69
- Runtime: `/ez:set-profile <profile>`
70
-
71
- Per-project default: Set in `.planning/config.json`:
72
- ```json
73
- {
74
- "model_profile": "balanced"
75
- }
76
- ```
77
-
78
- ## Design Rationale
79
-
80
- **Why Opus for ez-planner?**
81
- Planning involves architecture decisions, goal decomposition, and task design. This is where model quality has the highest impact.
82
-
83
- **Why Sonnet for ez-executor?**
84
- Executors follow explicit PLAN.md instructions. The plan already contains the reasoning; execution is implementation.
85
-
86
- **Why Sonnet (not Haiku) for verifiers in balanced?**
87
- Verification requires goal-backward reasoning - checking if code *delivers* what the phase promised, not just pattern matching. Sonnet handles this well; Haiku may miss subtle gaps.
88
-
89
- **Why Haiku for ez-codebase-mapper?**
90
- Read-only exploration and pattern extraction. No reasoning required, just structured output from file contents.
91
-
92
- **Why `inherit` instead of passing `opus` directly?**
93
- Claude Code's `"opus"` alias maps to a specific model version. Organizations may block older opus versions while allowing newer ones. EZ Agents returns `"inherit"` for opus-tier agents, causing them to use whatever opus version the user has configured in their session. This avoids version conflicts and silent fallbacks to Sonnet.
1
+ # Model Profiles
2
+
3
+ Model profiles control which Claude model each EZ Agents agent uses. This allows balancing quality vs token spend.
4
+
5
+ ## Profile Definitions
6
+
7
+ | Agent | `quality` | `balanced` | `budget` |
8
+ |-------|-----------|------------|----------|
9
+ | ez-planner | opus | opus | sonnet |
10
+ | ez-roadmapper | opus | sonnet | sonnet |
11
+ | ez-executor | opus | sonnet | sonnet |
12
+ | ez-phase-researcher | opus | sonnet | haiku |
13
+ | ez-project-researcher | opus | sonnet | haiku |
14
+ | ez-research-synthesizer | sonnet | sonnet | haiku |
15
+ | ez-debugger | opus | sonnet | sonnet |
16
+ | ez-codebase-mapper | sonnet | haiku | haiku |
17
+ | ez-verifier | sonnet | sonnet | haiku |
18
+ | ez-plan-checker | sonnet | sonnet | haiku |
19
+ | ez-integration-checker | sonnet | sonnet | haiku |
20
+ | ez-nyquist-auditor | sonnet | sonnet | haiku |
21
+
22
+ ## Profile Philosophy
23
+
24
+ **quality** - Maximum reasoning power
25
+ - Opus for all decision-making agents
26
+ - Sonnet for read-only verification
27
+ - Use when: quota available, critical architecture work
28
+
29
+ **balanced** (default) - Smart allocation
30
+ - Opus only for planning (where architecture decisions happen)
31
+ - Sonnet for execution and research (follows explicit instructions)
32
+ - Sonnet for verification (needs reasoning, not just pattern matching)
33
+ - Use when: normal development, good balance of quality and cost
34
+
35
+ **budget** - Minimal Opus usage
36
+ - Sonnet for anything that writes code
37
+ - Haiku for research and verification
38
+ - Use when: conserving quota, high-volume work, less critical phases
39
+
40
+ ## Resolution Logic
41
+
42
+ Orchestrators resolve model before spawning:
43
+
44
+ ```
45
+ 1. Read .planning/config.json
46
+ 2. Check model_overrides for agent-specific override
47
+ 3. If no override, look up agent in profile table
48
+ 4. Pass model parameter to Task call
49
+ ```
50
+
51
+ ## Per-Agent Overrides
52
+
53
+ Override specific agents without changing the entire profile:
54
+
55
+ ```json
56
+ {
57
+ "model_profile": "balanced",
58
+ "model_overrides": {
59
+ "ez-executor": "opus",
60
+ "ez-planner": "haiku"
61
+ }
62
+ }
63
+ ```
64
+
65
+ Overrides take precedence over the profile. Valid values: `opus`, `sonnet`, `haiku`.
66
+
67
+ ## Switching Profiles
68
+
69
+ Runtime: `/ez:set-profile <profile>`
70
+
71
+ Per-project default: Set in `.planning/config.json`:
72
+ ```json
73
+ {
74
+ "model_profile": "balanced"
75
+ }
76
+ ```
77
+
78
+ ## Design Rationale
79
+
80
+ **Why Opus for ez-planner?**
81
+ Planning involves architecture decisions, goal decomposition, and task design. This is where model quality has the highest impact.
82
+
83
+ **Why Sonnet for ez-executor?**
84
+ Executors follow explicit PLAN.md instructions. The plan already contains the reasoning; execution is implementation.
85
+
86
+ **Why Sonnet (not Haiku) for verifiers in balanced?**
87
+ Verification requires goal-backward reasoning - checking if code *delivers* what the phase promised, not just pattern matching. Sonnet handles this well; Haiku may miss subtle gaps.
88
+
89
+ **Why Haiku for ez-codebase-mapper?**
90
+ Read-only exploration and pattern extraction. No reasoning required, just structured output from file contents.
91
+
92
+ **Why `inherit` instead of passing `opus` directly?**
93
+ Claude Code's `"opus"` alias maps to a specific model version. Organizations may block older opus versions while allowing newer ones. EZ Agents returns `"inherit"` for opus-tier agents, causing them to use whatever opus version the user has configured in their session. This avoids version conflicts and silent fallbacks to Sonnet.