@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,316 +0,0 @@
|
|
|
1
|
-
# Package Manager Command
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
The `package-manager` command provides flexible package manager support for ez-agents, enabling seamless operation with **npm**, **yarn**, and **pnpm**. It automatically detects available package managers, respects existing lockfiles, and provides configuration-driven defaults for consistent team workflows.
|
|
6
|
-
|
|
7
|
-
### Features
|
|
8
|
-
|
|
9
|
-
- **Auto-Detection**: Intelligently detects available package managers (pnpm, yarn, npm) on the system
|
|
10
|
-
- **Lockfile Respect**: Honors existing lockfiles (package-lock.json, yarn.lock, pnpm-lock.yaml)
|
|
11
|
-
- **Configuration Control**: Configurable default package manager in `.planning/config.json`
|
|
12
|
-
- **Cross-Platform Execution**: Consistent shell syntax across Windows, macOS, and Linux
|
|
13
|
-
- **Full Command Support**: install, add, remove operations for all three package managers
|
|
14
|
-
- **Backward Compatibility**: Maintains existing npm compatibility for legacy projects
|
|
15
|
-
|
|
16
|
-
## Usage
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
ez package-manager <subcommand> [options]
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
### Subcommands
|
|
23
|
-
|
|
24
|
-
#### `detect` - Detect available package manager
|
|
25
|
-
|
|
26
|
-
Automatically detects the available package manager using a priority-based strategy.
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
ez package-manager detect
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
**Output format (JSON):**
|
|
33
|
-
```json
|
|
34
|
-
{
|
|
35
|
-
"manager": "pnpm",
|
|
36
|
-
"source": "lockfile",
|
|
37
|
-
"confidence": "high",
|
|
38
|
-
"lockfilePath": "/path/to/pnpm-lock.yaml"
|
|
39
|
-
}
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
**Detection Sources:**
|
|
43
|
-
- `config` - From `.planning/config.json` packageManager.default
|
|
44
|
-
- `lockfile` - From existing lockfile presence
|
|
45
|
-
- `system` - From system availability check
|
|
46
|
-
- `fallback` - Default to npm when nothing else is available
|
|
47
|
-
|
|
48
|
-
**Confidence Levels:**
|
|
49
|
-
- `high` - Config or lockfile detection
|
|
50
|
-
- `medium` - System availability detection
|
|
51
|
-
- `low` - Fallback to npm
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
#### `install` - Install dependencies
|
|
56
|
-
|
|
57
|
-
Install dependencies from lockfile.
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
ez package-manager install [--frozen] [--production]
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
**Options:**
|
|
64
|
-
- `--frozen` - Use frozen lockfile install (CI/CD safe)
|
|
65
|
-
- `--production` - Production install (exclude devDependencies)
|
|
66
|
-
|
|
67
|
-
**Examples:**
|
|
68
|
-
```bash
|
|
69
|
-
# Standard install
|
|
70
|
-
ez package-manager install
|
|
71
|
-
|
|
72
|
-
# Frozen lockfile install (CI/CD)
|
|
73
|
-
ez package-manager install --frozen
|
|
74
|
-
|
|
75
|
-
# Production install
|
|
76
|
-
ez package-manager install --production
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
**Package Manager Commands:**
|
|
80
|
-
- npm: `npm install [--frozen-lockfile] [--production]`
|
|
81
|
-
- yarn: `yarn install [--frozen-lockfile] [--production]`
|
|
82
|
-
- pnpm: `pnpm install [--frozen-lockfile] [--prod]`
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
#### `add` - Add package(s)
|
|
87
|
-
|
|
88
|
-
Add new package(s) to the project.
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
ez package-manager add <package> [--dev|-D]
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
**Options:**
|
|
95
|
-
- `--dev` or `-D` - Add as devDependency
|
|
96
|
-
|
|
97
|
-
**Examples:**
|
|
98
|
-
```bash
|
|
99
|
-
# Add production dependency
|
|
100
|
-
ez package-manager add lodash
|
|
101
|
-
|
|
102
|
-
# Add dev dependency
|
|
103
|
-
ez package-manager add eslint --dev
|
|
104
|
-
ez package-manager add prettier -D
|
|
105
|
-
|
|
106
|
-
# Add multiple packages
|
|
107
|
-
ez package-manager add react react-dom
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
**Package Manager Commands:**
|
|
111
|
-
- npm: `npm install [--save-dev] <package>`
|
|
112
|
-
- yarn: `yarn add [--dev] <package>`
|
|
113
|
-
- pnpm: `pnpm add [--save-dev] <package>`
|
|
114
|
-
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
#### `remove` - Remove package(s)
|
|
118
|
-
|
|
119
|
-
Remove package(s) from the project.
|
|
120
|
-
|
|
121
|
-
```bash
|
|
122
|
-
ez package-manager remove <package>
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
**Examples:**
|
|
126
|
-
```bash
|
|
127
|
-
# Remove single package
|
|
128
|
-
ez package-manager remove lodash
|
|
129
|
-
|
|
130
|
-
# Remove multiple packages
|
|
131
|
-
ez package-manager remove eslint prettier
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
**Package Manager Commands:**
|
|
135
|
-
- npm: `npm uninstall <package>`
|
|
136
|
-
- yarn: `yarn remove <package>`
|
|
137
|
-
- pnpm: `pnpm remove <package>`
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
#### `info` - Show package manager info
|
|
142
|
-
|
|
143
|
-
Display current package manager information.
|
|
144
|
-
|
|
145
|
-
```bash
|
|
146
|
-
ez package-manager info
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
**Output format (JSON):**
|
|
150
|
-
```json
|
|
151
|
-
{
|
|
152
|
-
"manager": "pnpm",
|
|
153
|
-
"source": "lockfile",
|
|
154
|
-
"cwd": "/path/to/project",
|
|
155
|
-
"lockfile": "/path/to/pnpm-lock.yaml"
|
|
156
|
-
}
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
## Configuration
|
|
162
|
-
|
|
163
|
-
Configure package manager behavior in `.planning/config.json`:
|
|
164
|
-
|
|
165
|
-
```json
|
|
166
|
-
{
|
|
167
|
-
"packageManager": {
|
|
168
|
-
"default": "npm",
|
|
169
|
-
"autoDetect": true,
|
|
170
|
-
"respectLockfile": true,
|
|
171
|
-
"frozenLockfileInCI": true
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
### Configuration Options
|
|
177
|
-
|
|
178
|
-
| Option | Type | Default | Description |
|
|
179
|
-
|--------|------|---------|-------------|
|
|
180
|
-
| `default` | string | `"npm"` | Default package manager (`npm`, `yarn`, or `pnpm`) |
|
|
181
|
-
| `autoDetect` | boolean | `true` | Enable automatic package manager detection |
|
|
182
|
-
| `respectLockfile` | boolean | `true` | Respect existing lockfiles when detecting |
|
|
183
|
-
| `frozenLockfileInCI` | boolean | `true` | Use frozen lockfile installs in CI environments |
|
|
184
|
-
|
|
185
|
-
---
|
|
186
|
-
|
|
187
|
-
## Detection Priority
|
|
188
|
-
|
|
189
|
-
The package manager detection follows a priority-based strategy:
|
|
190
|
-
|
|
191
|
-
```
|
|
192
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
193
|
-
│ Package Manager Detection Pipeline │
|
|
194
|
-
├─────────────────────────────────────────────────────────────┤
|
|
195
|
-
│ Layer 1: Configuration (highest priority) │
|
|
196
|
-
│ - Check .planning/config.json → packageManager.default │
|
|
197
|
-
│ - If found and installed, use configured manager │
|
|
198
|
-
├─────────────────────────────────────────────────────────────┤
|
|
199
|
-
│ Layer 2: Lockfile Detection │
|
|
200
|
-
│ - Check for pnpm-lock.yaml → use pnpm │
|
|
201
|
-
│ - Check for yarn.lock → use yarn │
|
|
202
|
-
│ - Check for package-lock.json → use npm │
|
|
203
|
-
├─────────────────────────────────────────────────────────────┤
|
|
204
|
-
│ Layer 3: System Availability │
|
|
205
|
-
│ - Check which managers are installed │
|
|
206
|
-
│ - Prefer pnpm > yarn > npm (performance order) │
|
|
207
|
-
├─────────────────────────────────────────────────────────────┤
|
|
208
|
-
│ Layer 4: Fallback │
|
|
209
|
-
│ - Default to npm (always available with Node) │
|
|
210
|
-
└─────────────────────────────────────────────────────────────┘
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
### Detection Examples
|
|
214
|
-
|
|
215
|
-
| Scenario | Detected Manager | Source |
|
|
216
|
-
|----------|-----------------|--------|
|
|
217
|
-
| Config says `pnpm`, pnpm installed | `pnpm` | config |
|
|
218
|
-
| No config, `pnpm-lock.yaml` exists | `pnpm` | lockfile |
|
|
219
|
-
| No config, `yarn.lock` exists | `yarn` | lockfile |
|
|
220
|
-
| No config, `package-lock.json` exists | `npm` | lockfile |
|
|
221
|
-
| No lockfile, pnpm/yarn/npm installed | `pnpm` | system |
|
|
222
|
-
| No lockfile, only npm installed | `npm` | system |
|
|
223
|
-
| Nothing detected | `npm` | fallback |
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
## Cross-Platform Support
|
|
228
|
-
|
|
229
|
-
The package manager command works identically across all platforms:
|
|
230
|
-
|
|
231
|
-
- **Windows** - Uses `execFile` for cross-platform execution
|
|
232
|
-
- **macOS** - Native Unix shell compatibility
|
|
233
|
-
- **Linux** - Native Unix shell compatibility
|
|
234
|
-
|
|
235
|
-
### Implementation Details
|
|
236
|
-
|
|
237
|
-
- All commands use `execFile` (not `exec`) for security and cross-platform compatibility
|
|
238
|
-
- All paths use `path.join()` for proper path separator handling
|
|
239
|
-
- No shell injection vulnerabilities (shell: false)
|
|
240
|
-
- 5-minute timeout for all operations
|
|
241
|
-
- 10MB buffer for command output
|
|
242
|
-
|
|
243
|
-
---
|
|
244
|
-
|
|
245
|
-
## Package Manager Commands Reference
|
|
246
|
-
|
|
247
|
-
### npm
|
|
248
|
-
|
|
249
|
-
| Operation | Command |
|
|
250
|
-
|-----------|---------|
|
|
251
|
-
| Install | `npm install` |
|
|
252
|
-
| Frozen Install | `npm install --frozen-lockfile` |
|
|
253
|
-
| Add Package | `npm install <pkg>` |
|
|
254
|
-
| Add Dev Package | `npm install --save-dev <pkg>` |
|
|
255
|
-
| Remove Package | `npm uninstall <pkg>` |
|
|
256
|
-
| Lockfile | `package-lock.json` |
|
|
257
|
-
|
|
258
|
-
### yarn
|
|
259
|
-
|
|
260
|
-
| Operation | Command |
|
|
261
|
-
|-----------|---------|
|
|
262
|
-
| Install | `yarn install` |
|
|
263
|
-
| Frozen Install | `yarn install --frozen-lockfile` |
|
|
264
|
-
| Add Package | `yarn add <pkg>` |
|
|
265
|
-
| Add Dev Package | `yarn add --dev <pkg>` |
|
|
266
|
-
| Remove Package | `yarn remove <pkg>` |
|
|
267
|
-
| Lockfile | `yarn.lock` |
|
|
268
|
-
|
|
269
|
-
### pnpm
|
|
270
|
-
|
|
271
|
-
| Operation | Command |
|
|
272
|
-
|-----------|---------|
|
|
273
|
-
| Install | `pnpm install` |
|
|
274
|
-
| Frozen Install | `pnpm install --frozen-lockfile` |
|
|
275
|
-
| Add Package | `pnpm add <pkg>` |
|
|
276
|
-
| Add Dev Package | `pnpm add --save-dev <pkg>` |
|
|
277
|
-
| Remove Package | `pnpm remove <pkg>` |
|
|
278
|
-
| Lockfile | `pnpm-lock.yaml` |
|
|
279
|
-
|
|
280
|
-
---
|
|
281
|
-
|
|
282
|
-
## Error Handling
|
|
283
|
-
|
|
284
|
-
The command provides detailed error messages for common issues:
|
|
285
|
-
|
|
286
|
-
- **No package manager detected** - Falls back to npm with warning
|
|
287
|
-
- **Lockfile validation failed** - Logs warning but continues
|
|
288
|
-
- **Command execution failed** - Returns stderr output with context
|
|
289
|
-
- **Unknown subcommand** - Lists available subcommands
|
|
290
|
-
|
|
291
|
-
---
|
|
292
|
-
|
|
293
|
-
## Library API
|
|
294
|
-
|
|
295
|
-
The package manager modules are also available for programmatic use:
|
|
296
|
-
|
|
297
|
-
```javascript
|
|
298
|
-
const {
|
|
299
|
-
PackageManagerService,
|
|
300
|
-
PackageManagerDetector,
|
|
301
|
-
PackageManagerExecutor,
|
|
302
|
-
LockfileValidator
|
|
303
|
-
} = require('./ez-agents/bin/lib/index.cjs');
|
|
304
|
-
|
|
305
|
-
// Use the service
|
|
306
|
-
const service = new PackageManagerService(cwd);
|
|
307
|
-
await service.initialize();
|
|
308
|
-
await service.install({ frozenLockfile: true });
|
|
309
|
-
await service.add(['lodash'], { dev: true });
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
See individual module files for detailed API documentation:
|
|
313
|
-
- `ez-agents/bin/lib/package-manager-detector.cjs`
|
|
314
|
-
- `ez-agents/bin/lib/package-manager-executor.cjs`
|
|
315
|
-
- `ez-agents/bin/lib/lockfile-validator.cjs`
|
|
316
|
-
- `ez-agents/bin/lib/package-manager-service.cjs`
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ez:pause-work
|
|
3
|
-
description: Create context handoff when pausing work mid-phase
|
|
4
|
-
allowed-tools:
|
|
5
|
-
- Read
|
|
6
|
-
- Write
|
|
7
|
-
- Bash
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
<objective>
|
|
11
|
-
Create `.continue-here.md` handoff file to preserve complete work state across sessions.
|
|
12
|
-
|
|
13
|
-
Routes to the pause-work workflow which handles:
|
|
14
|
-
- Current phase detection from recent files
|
|
15
|
-
- Complete state gathering (position, completed work, remaining work, decisions, blockers)
|
|
16
|
-
- Handoff file creation with all context sections
|
|
17
|
-
- Git commit as WIP
|
|
18
|
-
- Resume instructions
|
|
19
|
-
</objective>
|
|
20
|
-
|
|
21
|
-
<execution_context>
|
|
22
|
-
@~/.claude/ez-agents/workflows/pause-work.md
|
|
23
|
-
</execution_context>
|
|
24
|
-
|
|
25
|
-
<context>
|
|
26
|
-
State and phase progress are gathered in-workflow with targeted reads.
|
|
27
|
-
</context>
|
|
28
|
-
|
|
29
|
-
<process>
|
|
30
|
-
**Follow the pause-work workflow** from `@~/.claude/ez-agents/workflows/pause-work.md`.
|
|
31
|
-
|
|
32
|
-
The workflow handles all logic including:
|
|
33
|
-
1. Phase directory detection
|
|
34
|
-
2. State gathering with user clarifications
|
|
35
|
-
3. Handoff file writing with timestamp
|
|
36
|
-
4. Git commit
|
|
37
|
-
5. Confirmation with resume instructions
|
|
38
|
-
</process>
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ez:plan-milestone-gaps
|
|
3
|
-
description: Create phases to close all gaps identified by milestone audit
|
|
4
|
-
allowed-tools:
|
|
5
|
-
- Read
|
|
6
|
-
- Write
|
|
7
|
-
- Bash
|
|
8
|
-
- Glob
|
|
9
|
-
- Grep
|
|
10
|
-
- AskUserQuestion
|
|
11
|
-
---
|
|
12
|
-
<objective>
|
|
13
|
-
Create all phases necessary to close gaps identified by `/ez:audit-milestone`.
|
|
14
|
-
|
|
15
|
-
Reads MILESTONE-AUDIT.md, groups gaps into logical phases, creates phase entries in ROADMAP.md, and offers to plan each phase.
|
|
16
|
-
|
|
17
|
-
One command creates all fix phases — no manual `/ez:add-phase` per gap.
|
|
18
|
-
</objective>
|
|
19
|
-
|
|
20
|
-
<execution_context>
|
|
21
|
-
@~/.claude/ez-agents/workflows/plan-milestone-gaps.md
|
|
22
|
-
</execution_context>
|
|
23
|
-
|
|
24
|
-
<context>
|
|
25
|
-
**Audit results:**
|
|
26
|
-
Glob: .planning/v*-MILESTONE-AUDIT.md (use most recent)
|
|
27
|
-
|
|
28
|
-
Original intent and current planning state are loaded on demand inside the workflow.
|
|
29
|
-
</context>
|
|
30
|
-
|
|
31
|
-
<process>
|
|
32
|
-
Execute the plan-milestone-gaps workflow from @~/.claude/ez-agents/workflows/plan-milestone-gaps.md end-to-end.
|
|
33
|
-
Preserve all workflow gates (audit loading, prioritization, phase grouping, user confirmation, roadmap updates).
|
|
34
|
-
</process>
|
package/commands/ez/preflight.md
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: preflight
|
|
3
|
-
description: Run release checklist validation without creating a release. Shows pass/fail for all tier checklist items.
|
|
4
|
-
usage: /ez:release preflight <tier>
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# /ez:release preflight
|
|
8
|
-
|
|
9
|
-
Run the release checklist for a tier without creating a branch, tag, or changelog. Use this to see what's blocking or passing before you commit to a release.
|
|
10
|
-
|
|
11
|
-
## Usage
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
/ez:release preflight <tier>
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Arguments
|
|
18
|
-
|
|
19
|
-
| Argument | Required | Description |
|
|
20
|
-
|----------|----------|-------------|
|
|
21
|
-
| `tier` | Yes | `mvp`, `medium`, or `enterprise` |
|
|
22
|
-
|
|
23
|
-
## What It Checks
|
|
24
|
-
|
|
25
|
-
Runs security gates + tier checklist without side effects:
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
/ez:release preflight medium
|
|
29
|
-
|
|
30
|
-
Security Gates (4/4):
|
|
31
|
-
✓ No secrets in committed files
|
|
32
|
-
✓ npm audit — no critical vulnerabilities
|
|
33
|
-
✓ No production TODOs
|
|
34
|
-
✓ .env files in .gitignore
|
|
35
|
-
|
|
36
|
-
Medium Checklist (12/18):
|
|
37
|
-
✓ All @must BDD scenarios passing
|
|
38
|
-
✗ Test coverage ≥ 80% — Coverage: 71% (need 9% more)
|
|
39
|
-
✓ npm audit — clean
|
|
40
|
-
✓ No secrets in committed files
|
|
41
|
-
✓ Application starts
|
|
42
|
-
✓ Rollback documented
|
|
43
|
-
✓ All @should BDD scenarios passing
|
|
44
|
-
✗ Test coverage ≥ 80% — 71% (need +9%)
|
|
45
|
-
? Staging environment parity — requires manual verification
|
|
46
|
-
? Monitoring/alerts configured — requires manual verification
|
|
47
|
-
✓ No console.log in prod
|
|
48
|
-
? Performance baseline — requires manual verification
|
|
49
|
-
...
|
|
50
|
-
|
|
51
|
-
Production Readiness Score: 74/100 — CONDITIONAL
|
|
52
|
-
|
|
53
|
-
Blockers: 0
|
|
54
|
-
Warnings: 2 (coverage below threshold)
|
|
55
|
-
Manual items: 6 (need human verification)
|
|
56
|
-
|
|
57
|
-
To release: /ez:release medium v1.5.0
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## When to Use
|
|
61
|
-
|
|
62
|
-
- Before starting a release to know what you need to fix
|
|
63
|
-
- When onboarding to a new tier to understand the gap
|
|
64
|
-
- During development to track progress toward release readiness
|
|
65
|
-
|
|
66
|
-
## Legend
|
|
67
|
-
|
|
68
|
-
| Symbol | Meaning |
|
|
69
|
-
|--------|---------|
|
|
70
|
-
| ✓ | Automated check passed |
|
|
71
|
-
| ✗ | Automated check failed |
|
|
72
|
-
| ? | Requires manual human verification |
|
|
73
|
-
| ○ | Skipped (not applicable) |
|
|
74
|
-
|
|
75
|
-
## Related Commands
|
|
76
|
-
|
|
77
|
-
- `/ez:release mvp v1.0.0` — Execute the actual release
|
|
78
|
-
- `/ez:hotfix` — Emergency fix on released version
|
|
79
|
-
- `/ez:standup` — Sprint health check
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ez:reapply-patches
|
|
3
|
-
description: Reapply local modifications after an EZ Agents update
|
|
4
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<purpose>
|
|
8
|
-
After an EZ Agents update wipes and reinstalls files, this command merges user's previously saved local modifications back into the new version. Uses intelligent comparison to handle cases where the upstream file also changed.
|
|
9
|
-
</purpose>
|
|
10
|
-
|
|
11
|
-
<process>
|
|
12
|
-
|
|
13
|
-
## Step 1: Detect backed-up patches
|
|
14
|
-
|
|
15
|
-
Check for local patches directory:
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
# Global install — detect runtime config directory
|
|
19
|
-
if [ -d "$HOME/.config/opencode/ez-local-patches" ]; then
|
|
20
|
-
PATCHES_DIR="$HOME/.config/opencode/ez-local-patches"
|
|
21
|
-
elif [ -d "$HOME/.opencode/ez-local-patches" ]; then
|
|
22
|
-
PATCHES_DIR="$HOME/.opencode/ez-local-patches"
|
|
23
|
-
elif [ -d "$HOME/.gemini/ez-local-patches" ]; then
|
|
24
|
-
PATCHES_DIR="$HOME/.gemini/ez-local-patches"
|
|
25
|
-
else
|
|
26
|
-
PATCHES_DIR="$HOME/.claude/ez-local-patches"
|
|
27
|
-
fi
|
|
28
|
-
# Local install fallback — check all runtime directories
|
|
29
|
-
if [ ! -d "$PATCHES_DIR" ]; then
|
|
30
|
-
for dir in .config/opencode .opencode .gemini .claude; do
|
|
31
|
-
if [ -d "./$dir/ez-local-patches" ]; then
|
|
32
|
-
PATCHES_DIR="./$dir/ez-local-patches"
|
|
33
|
-
break
|
|
34
|
-
fi
|
|
35
|
-
done
|
|
36
|
-
fi
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
Read `backup-meta.json` from the patches directory.
|
|
40
|
-
|
|
41
|
-
**If no patches found:**
|
|
42
|
-
```
|
|
43
|
-
No local patches found. Nothing to reapply.
|
|
44
|
-
|
|
45
|
-
Local patches are automatically saved when you run /ez:update
|
|
46
|
-
after modifying any EZ Agents workflow, command, or agent files.
|
|
47
|
-
```
|
|
48
|
-
Exit.
|
|
49
|
-
|
|
50
|
-
## Step 2: Show patch summary
|
|
51
|
-
|
|
52
|
-
```
|
|
53
|
-
## Local Patches to Reapply
|
|
54
|
-
|
|
55
|
-
**Backed up from:** v{from_version}
|
|
56
|
-
**Current version:** {read VERSION file}
|
|
57
|
-
**Files modified:** {count}
|
|
58
|
-
|
|
59
|
-
| # | File | Status |
|
|
60
|
-
|---|------|--------|
|
|
61
|
-
| 1 | {file_path} | Pending |
|
|
62
|
-
| 2 | {file_path} | Pending |
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
## Step 3: Merge each file
|
|
66
|
-
|
|
67
|
-
For each file in `backup-meta.json`:
|
|
68
|
-
|
|
69
|
-
1. **Read the backed-up version** (user's modified copy from `ez-local-patches/`)
|
|
70
|
-
2. **Read the newly installed version** (current file after update)
|
|
71
|
-
3. **Compare and merge:**
|
|
72
|
-
|
|
73
|
-
- If the new file is identical to the backed-up file: skip (modification was incorporated upstream)
|
|
74
|
-
- If the new file differs: identify the user's modifications and apply them to the new version
|
|
75
|
-
|
|
76
|
-
**Merge strategy:**
|
|
77
|
-
- Read both versions fully
|
|
78
|
-
- Identify sections the user added or modified (look for additions, not just differences from path replacement)
|
|
79
|
-
- Apply user's additions/modifications to the new version
|
|
80
|
-
- If a section the user modified was also changed upstream: flag as conflict, show both versions, ask user which to keep
|
|
81
|
-
|
|
82
|
-
4. **Write merged result** to the installed location
|
|
83
|
-
5. **Report status:**
|
|
84
|
-
- `Merged` — user modifications applied cleanly
|
|
85
|
-
- `Skipped` — modification already in upstream
|
|
86
|
-
- `Conflict` — user chose resolution
|
|
87
|
-
|
|
88
|
-
## Step 4: Update manifest
|
|
89
|
-
|
|
90
|
-
After reapplying, regenerate the file manifest so future updates correctly detect these as user modifications:
|
|
91
|
-
|
|
92
|
-
```bash
|
|
93
|
-
# The manifest will be regenerated on next /ez:update
|
|
94
|
-
# For now, just note which files were modified
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
## Step 5: Cleanup option
|
|
98
|
-
|
|
99
|
-
Ask user:
|
|
100
|
-
- "Keep patch backups for reference?" → preserve `ez-local-patches/`
|
|
101
|
-
- "Clean up patch backups?" → remove `ez-local-patches/` directory
|
|
102
|
-
|
|
103
|
-
## Step 6: Report
|
|
104
|
-
|
|
105
|
-
```
|
|
106
|
-
## Patches Reapplied
|
|
107
|
-
|
|
108
|
-
| # | File | Status |
|
|
109
|
-
|---|------|--------|
|
|
110
|
-
| 1 | {file_path} | ✓ Merged |
|
|
111
|
-
| 2 | {file_path} | ○ Skipped (already upstream) |
|
|
112
|
-
| 3 | {file_path} | ⚠ Conflict resolved |
|
|
113
|
-
|
|
114
|
-
{count} file(s) updated. Your local modifications are active again.
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
</process>
|
|
118
|
-
|
|
119
|
-
<success_criteria>
|
|
120
|
-
- [ ] All backed-up patches processed
|
|
121
|
-
- [ ] User modifications merged into new version
|
|
122
|
-
- [ ] Conflicts resolved with user input
|
|
123
|
-
- [ ] Status reported for each file
|
|
124
|
-
</success_criteria>
|