@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.
- package/README.md +735 -537
- 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 -333
- package/agents/ez-requirements-agent.md +377 -377
- 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/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 -52
- 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 -53
- package/commands/ez/progress.md +36 -36
- 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 +599 -2
- 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 -622
- 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 -238
- package/ez-agents/bin/lib/context-cache.cjs +154 -154
- package/ez-agents/bin/lib/context-errors.cjs +71 -71
- package/ez-agents/bin/lib/context-manager.cjs +220 -220
- 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/file-access.cjs +207 -207
- 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 -83
- package/ez-agents/bin/lib/git-utils.cjs +321 -321
- package/ez-agents/bin/lib/git-workflow-engine.cjs +1157 -1157
- package/ez-agents/bin/lib/health-check.cjs +162 -162
- package/ez-agents/bin/lib/index.cjs +2 -8
- package/ez-agents/bin/lib/init.cjs +0 -2
- package/ez-agents/bin/lib/lockfile-validator.cjs +227 -227
- package/ez-agents/bin/lib/log-rotation.cjs +71 -0
- package/ez-agents/bin/lib/logger.cjs +22 -47
- package/ez-agents/bin/lib/memory-compression.cjs +256 -256
- package/ez-agents/bin/lib/package-manager-detector.cjs +203 -203
- package/ez-agents/bin/lib/package-manager-executor.cjs +385 -385
- package/ez-agents/bin/lib/package-manager-service.cjs +216 -216
- 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 -614
- package/ez-agents/bin/lib/security-errors.cjs +62 -0
- package/ez-agents/bin/lib/session-chain.cjs +304 -304
- package/ez-agents/bin/lib/session-errors.cjs +81 -81
- package/ez-agents/bin/lib/session-export.cjs +251 -251
- package/ez-agents/bin/lib/session-import.cjs +262 -262
- package/ez-agents/bin/lib/session-manager.cjs +280 -280
- 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 -428
- package/ez-agents/bin/lib/tradeoff-analyzer.cjs +284 -0
- package/ez-agents/bin/lib/url-fetch.cjs +170 -170
- 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 -118
- 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 -340
- package/ez-agents/references/tier-strategy.md +103 -103
- 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 -173
- 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 -68
- package/ez-agents/templates/handoff-protocol.md +294 -0
- package/ez-agents/templates/incident-runbook.md +205 -205
- 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 -133
- package/ez-agents/templates/research.md +552 -552
- package/ez-agents/templates/rollback-plan.md +201 -201
- 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 +844 -844
- 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 +124 -3
- package/ez-agents/workflows/help.md +42 -181
- package/ez-agents/workflows/hotfix.md +291 -291
- package/ez-agents/workflows/new-milestone.md +713 -713
- package/ez-agents/workflows/new-project.md +1089 -1107
- package/ez-agents/workflows/plan-phase.md +0 -40
- package/ez-agents/workflows/release.md +253 -253
- package/ez-agents/workflows/resume-session.md +215 -215
- 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 -71
- 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-observer-agent.md +0 -260
- package/agents/ez-plan-checker.md +0 -706
- package/agents/ez-research-synthesizer.md +0 -247
- package/agents/ez-scrum-master-agent.md +0 -242
- package/agents/ez-tech-lead-agent.md +0 -267
- 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/arch-review.md +0 -102
- 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/export-session.md +0 -79
- package/commands/ez/gather-requirements.md +0 -117
- package/commands/ez/git-workflow.md +0 -72
- package/commands/ez/health.md +0 -22
- package/commands/ez/hotfix.md +0 -120
- package/commands/ez/import-session.md +0 -82
- 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/list-sessions.md +0 -96
- package/commands/ez/package-manager.md +0 -316
- package/commands/ez/pause-work.md +0 -38
- package/commands/ez/plan-milestone-gaps.md +0 -34
- package/commands/ez/preflight.md +0 -79
- package/commands/ez/reapply-patches.md +0 -124
- package/commands/ez/release.md +0 -153
- package/commands/ez/remove-phase.md +0 -31
- package/commands/ez/research-phase.md +0 -190
- package/commands/ez/resume.md +0 -107
- package/commands/ez/set-profile.md +0 -34
- package/commands/ez/standup.md +0 -85
- 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/bin/lib/metrics-tracker.cjs +0 -406
- 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/arch-review.md +0 -54
- package/ez-agents/workflows/export-session.md +0 -255
- package/ez-agents/workflows/gather-requirements.md +0 -206
- package/ez-agents/workflows/import-session.md +0 -303
- package/ez-agents/workflows/research-phase.md +0 -74
- package/ez-agents/workflows/standup.md +0 -64
- 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,340 +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
|
-
|
|
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>
|
|
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>
|