@howlil/ez-agents 3.4.2 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +735 -462
- package/agents/ez-architect-agent.md +267 -0
- package/agents/ez-backend-agent.md +303 -0
- package/agents/ez-chief-strategist.md +271 -0
- package/agents/ez-codebase-mapper.md +770 -770
- package/agents/ez-context-manager.md +319 -0
- package/agents/ez-debugger.md +1255 -1255
- package/agents/ez-design-expert.md +347 -0
- package/agents/ez-devops-agent.md +331 -0
- package/agents/ez-executor.md +487 -487
- package/agents/ez-frontend-agent.md +322 -0
- package/agents/ez-phase-researcher.md +553 -553
- package/agents/ez-planner.md +1307 -1307
- package/agents/ez-product-engineer.md +435 -0
- package/agents/ez-project-researcher.md +629 -629
- package/agents/ez-qa-agent.md +320 -0
- package/agents/ez-release-agent.md +333 -0
- package/agents/ez-requirements-agent.md +377 -0
- package/agents/ez-roadmapper.md +650 -650
- package/agents/ez-technical-writer.md +551 -0
- package/agents/ez-ux-expert.md +393 -0
- package/agents/ez-verifier.md +579 -579
- package/bin/guards/autonomy-guard.cjs +346 -0
- package/bin/guards/context-budget-guard.cjs +278 -0
- package/bin/guards/hallucination-guard.cjs +380 -0
- package/bin/guards/hidden-state-guard.cjs +182 -0
- package/bin/guards/team-overhead-guard.cjs +266 -0
- package/bin/guards/tool-sprawl-guard.cjs +271 -0
- package/bin/install.js +3221 -3272
- package/bin/lib/analytics/analytics-collector.cjs +86 -0
- package/bin/lib/analytics/analytics-reporter.cjs +130 -0
- package/bin/lib/analytics/cohort-analyzer.cjs +138 -0
- package/bin/lib/analytics/funnel-analyzer.cjs +147 -0
- package/bin/lib/analytics/nps-tracker.cjs +147 -0
- package/bin/lib/archetype-detector.cjs +289 -0
- package/bin/lib/assistant-adapter.cjs +361 -0
- package/bin/lib/audit-exec.cjs +175 -0
- package/bin/lib/auth.cjs +176 -0
- package/bin/lib/backup-service.cjs +422 -0
- package/bin/lib/bdd-validator.cjs +622 -0
- package/bin/lib/business-flow-mapper.cjs +429 -0
- package/bin/lib/circuit-breaker.cjs +276 -0
- package/bin/lib/code-complexity-analyzer.cjs +360 -0
- package/bin/lib/codebase-analyzer.cjs +241 -0
- package/bin/lib/commands.cjs +691 -0
- package/bin/lib/config.cjs +236 -0
- package/bin/lib/constraint-extractor.cjs +526 -0
- package/bin/lib/content-scanner.cjs +238 -0
- package/bin/lib/context-cache.cjs +154 -0
- package/bin/lib/context-compressor.cjs +102 -0
- package/bin/lib/context-deduplicator.cjs +105 -0
- package/bin/lib/context-errors.cjs +78 -0
- package/bin/lib/context-manager.cjs +338 -0
- package/bin/lib/context-metadata-tracker.cjs +140 -0
- package/bin/lib/context-relevance-scorer.cjs +99 -0
- package/bin/lib/core.cjs +507 -0
- package/bin/lib/cost-alerts.cjs +174 -0
- package/bin/lib/cost-tracker.cjs +275 -0
- package/bin/lib/crash-recovery.cjs +220 -0
- package/bin/lib/dependency-graph.cjs +319 -0
- package/bin/lib/deploy/deploy-audit-log.cjs +76 -0
- package/bin/lib/deploy/deploy-detector.cjs +69 -0
- package/bin/lib/deploy/deploy-env-manager.cjs +109 -0
- package/bin/lib/deploy/deploy-health-check.cjs +88 -0
- package/bin/lib/deploy/deploy-pre-flight.cjs +57 -0
- package/bin/lib/deploy/deploy-rollback.cjs +72 -0
- package/bin/lib/deploy/deploy-runner.cjs +97 -0
- package/bin/lib/deploy/deploy-status.cjs +74 -0
- package/bin/lib/discussion-synthesizer.cjs +439 -0
- package/bin/lib/error-cache.cjs +114 -0
- package/bin/lib/error-registry.cjs +177 -0
- package/bin/lib/file-access.cjs +207 -0
- package/bin/lib/file-lock.cjs +236 -0
- package/bin/lib/finops/budget-enforcer.cjs +126 -0
- package/bin/lib/finops/cost-reporter.cjs +132 -0
- package/bin/lib/finops/finops-analyzer.cjs +112 -0
- package/bin/lib/finops/spot-manager.cjs +118 -0
- package/bin/lib/framework-detector.cjs +396 -0
- package/bin/lib/frontmatter.cjs +313 -0
- package/bin/lib/fs-utils.cjs +153 -0
- package/bin/lib/gate-executor.cjs +272 -0
- package/bin/lib/gates/README.md +374 -0
- package/bin/lib/gates/gate-01-requirement.cjs +303 -0
- package/bin/lib/gates/gate-02-architecture.cjs +555 -0
- package/bin/lib/gates/gate-03-code.cjs +635 -0
- package/bin/lib/gates/gate-04-security.cjs +829 -0
- package/bin/lib/git-errors.cjs +83 -0
- package/bin/lib/git-utils.cjs +321 -0
- package/bin/lib/git-workflow-engine.cjs +1157 -0
- package/bin/lib/health-check.cjs +227 -0
- package/bin/lib/index.cjs +279 -0
- package/bin/lib/init.cjs +725 -0
- package/bin/lib/lock-logger.cjs +194 -0
- package/bin/lib/lock-state.cjs +263 -0
- package/bin/lib/lockfile-validator.cjs +227 -0
- package/bin/lib/log-rotation.cjs +71 -0
- package/bin/lib/logger.cjs +125 -0
- package/bin/lib/memory-compression.cjs +256 -0
- package/bin/lib/milestone.cjs +247 -0
- package/bin/lib/model-provider.cjs +241 -0
- package/bin/lib/package-manager-detector.cjs +203 -0
- package/bin/lib/package-manager-executor.cjs +385 -0
- package/bin/lib/package-manager-service.cjs +216 -0
- package/bin/lib/perf/api-monitor.cjs +88 -0
- package/bin/lib/perf/db-optimizer.cjs +78 -0
- package/bin/lib/perf/frontend-performance.cjs +56 -0
- package/bin/lib/perf/perf-analyzer.cjs +77 -0
- package/bin/lib/perf/perf-baseline.cjs +102 -0
- package/bin/lib/perf/perf-reporter.cjs +117 -0
- package/bin/lib/perf/regression-detector.cjs +92 -0
- package/bin/lib/phase.cjs +963 -0
- package/bin/lib/planning-write.cjs +123 -0
- package/bin/lib/project-reporter.cjs +565 -0
- package/bin/lib/quality-gate.cjs +332 -0
- package/bin/lib/quality-metrics.cjs +324 -0
- package/bin/lib/recovery-manager.cjs +98 -0
- package/bin/lib/release-validator.cjs +617 -0
- package/bin/lib/retry.cjs +119 -0
- package/bin/lib/roadmap.cjs +309 -0
- package/bin/lib/safe-exec.cjs +173 -0
- package/bin/lib/safe-path.cjs +130 -0
- package/bin/lib/security-errors.cjs +62 -0
- package/bin/lib/session-chain.cjs +304 -0
- package/bin/lib/session-errors.cjs +81 -0
- package/bin/lib/session-export.cjs +251 -0
- package/bin/lib/session-import.cjs +262 -0
- package/bin/lib/session-manager.cjs +280 -0
- package/bin/lib/skill-context.cjs +148 -0
- package/bin/lib/skill-matcher.cjs +236 -0
- package/bin/lib/skill-registry.cjs +360 -0
- package/bin/lib/skill-resolver.cjs +449 -0
- package/bin/lib/skill-triggers.cjs +90 -0
- package/bin/lib/skill-validator.cjs +270 -0
- package/bin/lib/skill-versioning.cjs +355 -0
- package/bin/lib/stack-detector.cjs +399 -0
- package/bin/lib/state.cjs +736 -0
- package/bin/lib/tech-debt-analyzer.cjs +309 -0
- package/bin/lib/temp-file.cjs +239 -0
- package/bin/lib/template.cjs +223 -0
- package/bin/lib/test-file-lock.cjs +112 -0
- package/bin/lib/test-graceful.cjs +93 -0
- package/bin/lib/test-logger.cjs +60 -0
- package/bin/lib/test-safe-exec.cjs +38 -0
- package/bin/lib/test-safe-path.cjs +33 -0
- package/bin/lib/test-temp-file.cjs +125 -0
- package/bin/lib/tier-manager.cjs +428 -0
- package/bin/lib/timeout-exec.cjs +63 -0
- package/bin/lib/tradeoff-analyzer.cjs +284 -0
- package/bin/lib/url-fetch.cjs +170 -0
- package/bin/lib/verify.cjs +863 -0
- package/bin/update.js +217 -214
- package/commands/deploy.cjs +53 -0
- package/commands/ez/add-tests.md +41 -41
- package/commands/ez/audit-milestone.md +36 -36
- package/commands/ez/complete-milestone.md +136 -136
- package/commands/ez/discuss-phase.md +90 -90
- package/commands/ez/execute-phase.md +52 -41
- package/commands/ez/help.md +22 -22
- package/commands/ez/map-codebase.md +71 -71
- package/commands/ez/new-milestone.md +44 -44
- package/commands/ez/new-project.md +51 -42
- package/commands/ez/plan-phase.md +53 -45
- package/commands/ez/progress.md +36 -24
- package/commands/ez/quick.md +45 -45
- package/commands/ez/resume-work.md +40 -40
- package/commands/ez/run-phase.md +580 -0
- package/commands/ez/settings.md +36 -36
- package/commands/ez/update.md +37 -37
- package/commands/ez/verify-work.md +402 -38
- package/commands/health-check.cjs +44 -0
- package/commands/rollback.cjs +47 -0
- package/ez-agents/bin/ez-tools.cjs +1692 -716
- package/ez-agents/bin/guards/autonomy-guard.cjs +346 -0
- package/ez-agents/bin/guards/context-budget-guard.cjs +247 -0
- package/ez-agents/bin/guards/hallucination-guard.cjs +271 -0
- package/ez-agents/bin/guards/hidden-state-guard.cjs +182 -0
- package/ez-agents/bin/guards/team-overhead-guard.cjs +266 -0
- package/ez-agents/bin/guards/tool-sprawl-guard.cjs +271 -0
- package/ez-agents/bin/lib/analytics/analytics-collector.cjs +86 -0
- package/ez-agents/bin/lib/analytics/analytics-reporter.cjs +130 -0
- package/ez-agents/bin/lib/analytics/cohort-analyzer.cjs +138 -0
- package/ez-agents/bin/lib/analytics/funnel-analyzer.cjs +147 -0
- package/ez-agents/bin/lib/analytics/nps-tracker.cjs +147 -0
- package/ez-agents/bin/lib/archetype-detector.cjs +289 -0
- package/ez-agents/bin/lib/audit-exec.cjs +166 -167
- package/ez-agents/bin/lib/auth.cjs +176 -176
- package/ez-agents/bin/lib/backup-service.cjs +422 -0
- package/ez-agents/bin/lib/bdd-validator.cjs +622 -0
- package/ez-agents/bin/lib/business-flow-mapper.cjs +429 -0
- package/ez-agents/bin/lib/code-complexity-analyzer.cjs +360 -0
- package/ez-agents/bin/lib/codebase-analyzer.cjs +241 -0
- package/ez-agents/bin/lib/commands.cjs +685 -685
- package/ez-agents/bin/lib/config.cjs +41 -1
- package/ez-agents/bin/lib/constraint-extractor.cjs +526 -0
- package/ez-agents/bin/lib/content-scanner.cjs +238 -0
- package/ez-agents/bin/lib/context-cache.cjs +154 -0
- package/ez-agents/bin/lib/context-errors.cjs +71 -0
- package/ez-agents/bin/lib/context-manager.cjs +220 -0
- package/ez-agents/bin/lib/core.cjs +507 -512
- package/ez-agents/bin/lib/cost-tracker.cjs +243 -0
- package/ez-agents/bin/lib/crash-recovery.cjs +172 -0
- package/ez-agents/bin/lib/dependency-graph.cjs +319 -0
- package/ez-agents/bin/lib/deploy/deploy-audit-log.cjs +76 -0
- package/ez-agents/bin/lib/deploy/deploy-detector.cjs +69 -0
- package/ez-agents/bin/lib/deploy/deploy-env-manager.cjs +109 -0
- package/ez-agents/bin/lib/deploy/deploy-health-check.cjs +88 -0
- package/ez-agents/bin/lib/deploy/deploy-pre-flight.cjs +57 -0
- package/ez-agents/bin/lib/deploy/deploy-rollback.cjs +72 -0
- package/ez-agents/bin/lib/deploy/deploy-runner.cjs +97 -0
- package/ez-agents/bin/lib/deploy/deploy-status.cjs +74 -0
- package/ez-agents/bin/lib/discussion-synthesizer.cjs +458 -0
- package/ez-agents/bin/lib/file-access.cjs +207 -0
- package/ez-agents/bin/lib/finops/budget-enforcer.cjs +126 -0
- package/ez-agents/bin/lib/finops/cost-reporter.cjs +132 -0
- package/ez-agents/bin/lib/finops/finops-analyzer.cjs +112 -0
- package/ez-agents/bin/lib/finops/spot-manager.cjs +118 -0
- package/ez-agents/bin/lib/framework-detector.cjs +396 -0
- package/ez-agents/bin/lib/frontmatter.cjs +3 -1
- package/ez-agents/bin/lib/gates/README.md +374 -0
- package/ez-agents/bin/lib/gates/gate-01-requirement.cjs +303 -0
- package/ez-agents/bin/lib/gates/gate-02-architecture.cjs +555 -0
- package/ez-agents/bin/lib/gates/gate-03-code.cjs +635 -0
- package/ez-agents/bin/lib/gates/gate-04-security.cjs +829 -0
- package/ez-agents/bin/lib/git-errors.cjs +83 -0
- package/ez-agents/bin/lib/git-utils.cjs +118 -0
- package/ez-agents/bin/lib/git-workflow-engine.cjs +1157 -0
- package/ez-agents/bin/lib/health-check.cjs +162 -162
- package/ez-agents/bin/lib/index.cjs +40 -2
- package/ez-agents/bin/lib/init.cjs +0 -2
- package/ez-agents/bin/lib/lockfile-validator.cjs +227 -0
- package/ez-agents/bin/lib/log-rotation.cjs +71 -0
- package/ez-agents/bin/lib/logger.cjs +99 -154
- package/ez-agents/bin/lib/memory-compression.cjs +256 -0
- package/ez-agents/bin/lib/package-manager-detector.cjs +203 -0
- package/ez-agents/bin/lib/package-manager-executor.cjs +385 -0
- package/ez-agents/bin/lib/package-manager-service.cjs +216 -0
- package/ez-agents/bin/lib/perf/api-monitor.cjs +88 -0
- package/ez-agents/bin/lib/perf/db-optimizer.cjs +78 -0
- package/ez-agents/bin/lib/perf/frontend-performance.cjs +56 -0
- package/ez-agents/bin/lib/perf/perf-analyzer.cjs +77 -0
- package/ez-agents/bin/lib/perf/perf-baseline.cjs +102 -0
- package/ez-agents/bin/lib/perf/perf-reporter.cjs +117 -0
- package/ez-agents/bin/lib/perf/regression-detector.cjs +92 -0
- package/ez-agents/bin/lib/project-reporter.cjs +502 -0
- package/ez-agents/bin/lib/quality-gate.cjs +332 -0
- package/ez-agents/bin/lib/recovery-manager.cjs +98 -0
- package/ez-agents/bin/lib/release-validator.cjs +617 -0
- package/ez-agents/bin/lib/safe-exec.cjs +128 -214
- package/ez-agents/bin/lib/security-errors.cjs +62 -0
- package/ez-agents/bin/lib/session-chain.cjs +304 -0
- package/ez-agents/bin/lib/session-errors.cjs +81 -0
- package/ez-agents/bin/lib/session-export.cjs +251 -0
- package/ez-agents/bin/lib/session-import.cjs +262 -0
- package/ez-agents/bin/lib/session-manager.cjs +280 -0
- package/ez-agents/bin/lib/skill-context.cjs +148 -0
- package/ez-agents/bin/lib/skill-matcher.cjs +236 -0
- package/ez-agents/bin/lib/skill-registry.cjs +341 -0
- package/ez-agents/bin/lib/skill-resolver.cjs +449 -0
- package/ez-agents/bin/lib/skill-triggers.cjs +90 -0
- package/ez-agents/bin/lib/skill-validator.cjs +270 -0
- package/ez-agents/bin/lib/skill-versioning.cjs +355 -0
- package/ez-agents/bin/lib/stack-detector.cjs +399 -0
- package/ez-agents/bin/lib/tech-debt-analyzer.cjs +309 -0
- package/ez-agents/bin/lib/tier-manager.cjs +428 -0
- package/ez-agents/bin/lib/tradeoff-analyzer.cjs +284 -0
- package/ez-agents/bin/lib/url-fetch.cjs +170 -0
- package/ez-agents/bin/lib/verify.cjs +863 -863
- package/ez-agents/references/decimal-phase-calculation.md +65 -65
- package/ez-agents/references/git-integration.md +248 -248
- package/ez-agents/references/git-planning-commit.md +38 -38
- package/ez-agents/references/metrics-schema.md +118 -0
- package/ez-agents/references/model-profile-resolution.md +34 -34
- package/ez-agents/references/model-profiles.md +93 -93
- package/ez-agents/references/phase-argument-parsing.md +61 -61
- package/ez-agents/references/planning-config.md +340 -200
- package/ez-agents/references/tier-strategy.md +103 -0
- package/ez-agents/references/ui-brand.md +160 -160
- package/ez-agents/references/verification-patterns.md +612 -612
- package/ez-agents/templates/DEBUG.md +164 -164
- package/ez-agents/templates/UAT.md +247 -247
- package/ez-agents/templates/agent-output-format.md +404 -0
- package/ez-agents/templates/bdd-feature.md +173 -0
- package/ez-agents/templates/codebase/architecture.md +255 -255
- package/ez-agents/templates/codebase/structure.md +285 -285
- package/ez-agents/templates/copilot-instructions.md +7 -7
- package/ez-agents/templates/debug-subagent-prompt.md +91 -91
- package/ez-agents/templates/discovery.md +146 -146
- package/ez-agents/templates/discussion.md +68 -0
- package/ez-agents/templates/handoff-protocol.md +294 -0
- package/ez-agents/templates/incident-runbook.md +205 -0
- package/ez-agents/templates/mode-workflow-templates.md +301 -0
- package/ez-agents/templates/phase-prompt.md +610 -610
- package/ez-agents/templates/planner-subagent-prompt.md +117 -117
- package/ez-agents/templates/project.md +184 -184
- package/ez-agents/templates/release-checklist.md +136 -0
- package/ez-agents/templates/research.md +552 -552
- package/ez-agents/templates/rollback-plan.md +201 -0
- package/ez-agents/templates/security-user-setup.md +244 -0
- package/ez-agents/templates/skill-validation-rules.md +476 -0
- package/ez-agents/templates/state.md +180 -176
- package/ez-agents/templates/summary-complex.md +59 -59
- package/ez-agents/tests/gates/gate-01-02.test.cjs +812 -0
- package/ez-agents/tests/gates/gate-03-04.test.cjs +762 -0
- package/ez-agents/tests/gates/gate-05-validator.test.cjs +145 -0
- package/ez-agents/tests/gates/gate-06-docs-validator.test.cjs +244 -0
- package/ez-agents/tests/gates/gate-07-release-validator.test.cjs +219 -0
- package/ez-agents/tests/guards/context-budget-guard.test.cjs +145 -0
- package/ez-agents/tests/guards/edge-case-guards.test.cjs +238 -0
- package/ez-agents/tests/guards/hallucination-guard.test.cjs +124 -0
- package/ez-agents/workflows/audit-milestone.md +1 -1
- package/ez-agents/workflows/autonomous.md +131 -30
- package/ez-agents/workflows/complete-milestone.md +1 -1
- package/ez-agents/workflows/discuss-phase.md +1 -1
- package/ez-agents/workflows/execute-phase.md +169 -3
- package/ez-agents/workflows/help.md +86 -133
- package/ez-agents/workflows/hotfix.md +291 -0
- package/ez-agents/workflows/new-milestone.md +340 -11
- package/ez-agents/workflows/new-project.md +294 -318
- package/ez-agents/workflows/plan-phase.md +22 -40
- package/ez-agents/workflows/progress.md +15 -25
- package/ez-agents/workflows/release.md +253 -0
- package/ez-agents/workflows/resume-session.md +215 -0
- package/ez-agents/workflows/run-phase.md +531 -0
- package/ez-agents/workflows/settings.md +2 -35
- package/hooks/dist/ez-check-update.js +81 -81
- package/hooks/dist/ez-context-monitor.js +148 -141
- package/hooks/dist/ez-statusline.js +115 -115
- package/package.json +78 -64
- package/scripts/fix-qwen-installation.js +144 -144
- package/agents/ez-integration-checker.md +0 -443
- package/agents/ez-nyquist-auditor.md +0 -176
- package/agents/ez-plan-checker.md +0 -706
- package/agents/ez-research-synthesizer.md +0 -247
- package/agents/ez-ui-auditor.md +0 -439
- package/agents/ez-ui-checker.md +0 -300
- package/agents/ez-ui-researcher.md +0 -353
- package/commands/ez/add-phase.md +0 -43
- package/commands/ez/add-todo.md +0 -47
- package/commands/ez/auth.md +0 -87
- package/commands/ez/autonomous.md +0 -41
- package/commands/ez/check-todos.md +0 -45
- package/commands/ez/cleanup.md +0 -18
- package/commands/ez/debug.md +0 -168
- package/commands/ez/health.md +0 -22
- package/commands/ez/insert-phase.md +0 -32
- package/commands/ez/join-discord.md +0 -18
- package/commands/ez/list-phase-assumptions.md +0 -46
- package/commands/ez/pause-work.md +0 -38
- package/commands/ez/plan-milestone-gaps.md +0 -34
- package/commands/ez/reapply-patches.md +0 -124
- package/commands/ez/remove-phase.md +0 -31
- package/commands/ez/research-phase.md +0 -190
- package/commands/ez/set-profile.md +0 -34
- package/commands/ez/stats.md +0 -18
- package/commands/ez/ui-phase.md +0 -34
- package/commands/ez/ui-review.md +0 -32
- package/commands/ez/validate-phase.md +0 -35
- package/ez-agents/templates/UI-SPEC.md +0 -100
- package/ez-agents/templates/VALIDATION.md +0 -76
- package/ez-agents/templates/context.md +0 -352
- package/ez-agents/templates/verification-report.md +0 -322
- package/ez-agents/workflows/research-phase.md +0 -74
- package/ez-agents/workflows/ui-phase.md +0 -290
- package/ez-agents/workflows/ui-review.md +0 -157
- package/ez-agents/workflows/validate-phase.md +0 -167
|
@@ -1,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/`)
|
|
@@ -0,0 +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,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.
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
# Phase Argument Parsing
|
|
2
|
-
|
|
3
|
-
Parse and normalize phase arguments for commands that operate on phases.
|
|
4
|
-
|
|
5
|
-
## Extraction
|
|
6
|
-
|
|
7
|
-
From `$ARGUMENTS`:
|
|
8
|
-
- Extract phase number (first numeric argument)
|
|
9
|
-
- Extract flags (prefixed with `--`)
|
|
10
|
-
- Remaining text is description (for insert/add commands)
|
|
11
|
-
|
|
12
|
-
## Using ez-tools
|
|
13
|
-
|
|
14
|
-
The `find-phase` command handles normalization and validation in one step:
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
PHASE_INFO=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" find-phase "${PHASE}")
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
Returns JSON with:
|
|
21
|
-
- `found`: true/false
|
|
22
|
-
- `directory`: Full path to phase directory
|
|
23
|
-
- `phase_number`: Normalized number (e.g., "06", "06.1")
|
|
24
|
-
- `phase_name`: Name portion (e.g., "foundation")
|
|
25
|
-
- `plans`: Array of PLAN.md files
|
|
26
|
-
- `summaries`: Array of SUMMARY.md files
|
|
27
|
-
|
|
28
|
-
## Manual Normalization (Legacy)
|
|
29
|
-
|
|
30
|
-
Zero-pad integer phases to 2 digits. Preserve decimal suffixes.
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
# Normalize phase number
|
|
34
|
-
if [[ "$PHASE" =~ ^[0-9]+$ ]]; then
|
|
35
|
-
# Integer: 8 → 08
|
|
36
|
-
PHASE=$(printf "%02d" "$PHASE")
|
|
37
|
-
elif [[ "$PHASE" =~ ^([0-9]+)\.([0-9]+)$ ]]; then
|
|
38
|
-
# Decimal: 2.1 → 02.1
|
|
39
|
-
PHASE=$(printf "%02d.%s" "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}")
|
|
40
|
-
fi
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
## Validation
|
|
44
|
-
|
|
45
|
-
Use `roadmap get-phase` to validate phase exists:
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
PHASE_CHECK=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" roadmap get-phase "${PHASE}")
|
|
49
|
-
if [ "$(printf '%s\n' "$PHASE_CHECK" | jq -r '.found')" = "false" ]; then
|
|
50
|
-
echo "ERROR: Phase ${PHASE} not found in roadmap"
|
|
51
|
-
exit 1
|
|
52
|
-
fi
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## Directory Lookup
|
|
56
|
-
|
|
57
|
-
Use `find-phase` for directory lookup:
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
PHASE_DIR=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" find-phase "${PHASE}" --raw)
|
|
61
|
-
```
|
|
1
|
+
# Phase Argument Parsing
|
|
2
|
+
|
|
3
|
+
Parse and normalize phase arguments for commands that operate on phases.
|
|
4
|
+
|
|
5
|
+
## Extraction
|
|
6
|
+
|
|
7
|
+
From `$ARGUMENTS`:
|
|
8
|
+
- Extract phase number (first numeric argument)
|
|
9
|
+
- Extract flags (prefixed with `--`)
|
|
10
|
+
- Remaining text is description (for insert/add commands)
|
|
11
|
+
|
|
12
|
+
## Using ez-tools
|
|
13
|
+
|
|
14
|
+
The `find-phase` command handles normalization and validation in one step:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
PHASE_INFO=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" find-phase "${PHASE}")
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Returns JSON with:
|
|
21
|
+
- `found`: true/false
|
|
22
|
+
- `directory`: Full path to phase directory
|
|
23
|
+
- `phase_number`: Normalized number (e.g., "06", "06.1")
|
|
24
|
+
- `phase_name`: Name portion (e.g., "foundation")
|
|
25
|
+
- `plans`: Array of PLAN.md files
|
|
26
|
+
- `summaries`: Array of SUMMARY.md files
|
|
27
|
+
|
|
28
|
+
## Manual Normalization (Legacy)
|
|
29
|
+
|
|
30
|
+
Zero-pad integer phases to 2 digits. Preserve decimal suffixes.
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Normalize phase number
|
|
34
|
+
if [[ "$PHASE" =~ ^[0-9]+$ ]]; then
|
|
35
|
+
# Integer: 8 → 08
|
|
36
|
+
PHASE=$(printf "%02d" "$PHASE")
|
|
37
|
+
elif [[ "$PHASE" =~ ^([0-9]+)\.([0-9]+)$ ]]; then
|
|
38
|
+
# Decimal: 2.1 → 02.1
|
|
39
|
+
PHASE=$(printf "%02d.%s" "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}")
|
|
40
|
+
fi
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Validation
|
|
44
|
+
|
|
45
|
+
Use `roadmap get-phase` to validate phase exists:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
PHASE_CHECK=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" roadmap get-phase "${PHASE}")
|
|
49
|
+
if [ "$(printf '%s\n' "$PHASE_CHECK" | jq -r '.found')" = "false" ]; then
|
|
50
|
+
echo "ERROR: Phase ${PHASE} not found in roadmap"
|
|
51
|
+
exit 1
|
|
52
|
+
fi
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Directory Lookup
|
|
56
|
+
|
|
57
|
+
Use `find-phase` for directory lookup:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
PHASE_DIR=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" find-phase "${PHASE}" --raw)
|
|
61
|
+
```
|