@howlil/ez-agents 3.4.1 → 3.5.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/LICENSE +21 -21
- package/README.md +84 -20
- package/agents/ez-observer-agent.md +260 -0
- package/agents/ez-release-agent.md +333 -0
- package/agents/ez-requirements-agent.md +377 -0
- package/agents/ez-scrum-master-agent.md +242 -0
- package/agents/ez-tech-lead-agent.md +267 -0
- package/bin/install.js +3221 -3230
- package/commands/ez/arch-review.md +102 -0
- package/commands/ez/execute-phase.md +11 -0
- package/commands/ez/export-session.md +79 -0
- package/commands/ez/gather-requirements.md +117 -0
- package/commands/ez/git-workflow.md +72 -0
- package/commands/ez/hotfix.md +120 -0
- package/commands/ez/import-session.md +82 -0
- package/commands/ez/join-discord.md +18 -18
- package/commands/ez/list-sessions.md +96 -0
- package/commands/ez/package-manager.md +316 -0
- package/commands/ez/plan-phase.md +9 -1
- package/commands/ez/preflight.md +79 -0
- package/commands/ez/progress.md +13 -1
- package/commands/ez/release.md +153 -0
- package/commands/ez/resume.md +107 -0
- package/commands/ez/standup.md +85 -0
- package/ez-agents/bin/ez-tools.cjs +1095 -716
- package/ez-agents/bin/lib/assistant-adapter.cjs +264 -264
- package/ez-agents/bin/lib/audit-exec.cjs +7 -2
- package/ez-agents/bin/lib/bdd-validator.cjs +622 -0
- package/ez-agents/bin/lib/circuit-breaker.cjs +118 -118
- package/ez-agents/bin/lib/config.cjs +190 -190
- package/ez-agents/bin/lib/content-scanner.cjs +238 -0
- package/ez-agents/bin/lib/context-cache.cjs +154 -0
- package/ez-agents/bin/lib/context-errors.cjs +71 -0
- package/ez-agents/bin/lib/context-manager.cjs +220 -0
- package/ez-agents/bin/lib/discussion-synthesizer.cjs +458 -0
- package/ez-agents/bin/lib/file-access.cjs +207 -0
- package/ez-agents/bin/lib/file-lock.cjs +236 -236
- package/ez-agents/bin/lib/frontmatter.cjs +299 -299
- package/ez-agents/bin/lib/fs-utils.cjs +153 -153
- package/ez-agents/bin/lib/git-errors.cjs +83 -0
- package/ez-agents/bin/lib/git-utils.cjs +118 -0
- package/ez-agents/bin/lib/git-workflow-engine.cjs +1157 -0
- package/ez-agents/bin/lib/index.cjs +157 -113
- package/ez-agents/bin/lib/init.cjs +757 -757
- package/ez-agents/bin/lib/lockfile-validator.cjs +227 -0
- package/ez-agents/bin/lib/logger.cjs +124 -124
- package/ez-agents/bin/lib/memory-compression.cjs +256 -0
- package/ez-agents/bin/lib/metrics-tracker.cjs +406 -0
- package/ez-agents/bin/lib/milestone.cjs +241 -241
- package/ez-agents/bin/lib/model-provider.cjs +241 -241
- package/ez-agents/bin/lib/package-manager-detector.cjs +203 -0
- package/ez-agents/bin/lib/package-manager-executor.cjs +385 -0
- package/ez-agents/bin/lib/package-manager-service.cjs +216 -0
- package/ez-agents/bin/lib/phase.cjs +925 -925
- package/ez-agents/bin/lib/planning-write.cjs +107 -107
- package/ez-agents/bin/lib/release-validator.cjs +614 -0
- package/ez-agents/bin/lib/retry.cjs +119 -119
- package/ez-agents/bin/lib/roadmap.cjs +306 -306
- package/ez-agents/bin/lib/safe-exec.cjs +128 -128
- package/ez-agents/bin/lib/safe-path.cjs +130 -130
- package/ez-agents/bin/lib/session-chain.cjs +304 -0
- package/ez-agents/bin/lib/session-errors.cjs +81 -0
- package/ez-agents/bin/lib/session-export.cjs +251 -0
- package/ez-agents/bin/lib/session-import.cjs +262 -0
- package/ez-agents/bin/lib/session-manager.cjs +280 -0
- package/ez-agents/bin/lib/state.cjs +736 -736
- package/ez-agents/bin/lib/temp-file.cjs +239 -239
- package/ez-agents/bin/lib/template.cjs +223 -223
- package/ez-agents/bin/lib/test-file-lock.cjs +112 -112
- package/ez-agents/bin/lib/test-graceful.cjs +93 -93
- package/ez-agents/bin/lib/test-logger.cjs +60 -60
- package/ez-agents/bin/lib/test-safe-exec.cjs +38 -38
- package/ez-agents/bin/lib/test-safe-path.cjs +33 -33
- package/ez-agents/bin/lib/test-temp-file.cjs +125 -125
- package/ez-agents/bin/lib/tier-manager.cjs +428 -0
- package/ez-agents/bin/lib/timeout-exec.cjs +63 -63
- package/ez-agents/bin/lib/url-fetch.cjs +170 -0
- package/ez-agents/bin/lib/verify.cjs +15 -1
- package/ez-agents/references/checkpoints.md +776 -776
- package/ez-agents/references/continuation-format.md +249 -249
- package/ez-agents/references/metrics-schema.md +118 -0
- package/ez-agents/references/planning-config.md +140 -0
- package/ez-agents/references/questioning.md +162 -162
- package/ez-agents/references/tdd.md +263 -263
- package/ez-agents/references/tier-strategy.md +103 -0
- package/ez-agents/templates/bdd-feature.md +173 -0
- package/ez-agents/templates/codebase/concerns.md +310 -310
- package/ez-agents/templates/codebase/conventions.md +307 -307
- package/ez-agents/templates/codebase/integrations.md +280 -280
- package/ez-agents/templates/codebase/stack.md +186 -186
- package/ez-agents/templates/codebase/testing.md +480 -480
- package/ez-agents/templates/config.json +37 -37
- package/ez-agents/templates/continue-here.md +78 -78
- package/ez-agents/templates/discussion.md +68 -0
- package/ez-agents/templates/incident-runbook.md +205 -0
- package/ez-agents/templates/milestone-archive.md +123 -123
- package/ez-agents/templates/milestone.md +115 -115
- package/ez-agents/templates/release-checklist.md +133 -0
- package/ez-agents/templates/requirements.md +231 -231
- package/ez-agents/templates/research-project/ARCHITECTURE.md +204 -204
- package/ez-agents/templates/research-project/FEATURES.md +147 -147
- package/ez-agents/templates/research-project/PITFALLS.md +200 -200
- package/ez-agents/templates/research-project/STACK.md +120 -120
- package/ez-agents/templates/research-project/SUMMARY.md +170 -170
- package/ez-agents/templates/retrospective.md +54 -54
- package/ez-agents/templates/roadmap.md +202 -202
- package/ez-agents/templates/rollback-plan.md +201 -0
- package/ez-agents/templates/summary-minimal.md +41 -41
- package/ez-agents/templates/summary-standard.md +48 -48
- package/ez-agents/templates/summary.md +248 -248
- package/ez-agents/templates/user-setup.md +311 -311
- package/ez-agents/templates/verification-report.md +322 -322
- package/ez-agents/workflows/add-phase.md +112 -112
- package/ez-agents/workflows/add-tests.md +351 -351
- package/ez-agents/workflows/add-todo.md +158 -158
- package/ez-agents/workflows/arch-review.md +54 -0
- package/ez-agents/workflows/audit-milestone.md +332 -332
- package/ez-agents/workflows/autonomous.md +131 -30
- package/ez-agents/workflows/check-todos.md +177 -177
- package/ez-agents/workflows/cleanup.md +152 -152
- package/ez-agents/workflows/complete-milestone.md +766 -766
- package/ez-agents/workflows/diagnose-issues.md +219 -219
- package/ez-agents/workflows/discovery-phase.md +289 -289
- package/ez-agents/workflows/discuss-phase.md +762 -762
- package/ez-agents/workflows/execute-phase.md +513 -468
- package/ez-agents/workflows/execute-plan.md +483 -483
- package/ez-agents/workflows/export-session.md +255 -0
- package/ez-agents/workflows/gather-requirements.md +206 -0
- package/ez-agents/workflows/health.md +159 -159
- package/ez-agents/workflows/help.md +584 -492
- package/ez-agents/workflows/hotfix.md +291 -0
- package/ez-agents/workflows/import-session.md +303 -0
- package/ez-agents/workflows/insert-phase.md +130 -130
- package/ez-agents/workflows/list-phase-assumptions.md +178 -178
- package/ez-agents/workflows/map-codebase.md +316 -316
- package/ez-agents/workflows/new-milestone.md +339 -10
- package/ez-agents/workflows/new-project.md +293 -299
- package/ez-agents/workflows/node-repair.md +92 -92
- package/ez-agents/workflows/pause-work.md +122 -122
- package/ez-agents/workflows/plan-milestone-gaps.md +274 -274
- package/ez-agents/workflows/plan-phase.md +673 -651
- package/ez-agents/workflows/progress.md +372 -382
- package/ez-agents/workflows/quick.md +610 -610
- package/ez-agents/workflows/release.md +253 -0
- package/ez-agents/workflows/remove-phase.md +155 -155
- package/ez-agents/workflows/research-phase.md +74 -74
- package/ez-agents/workflows/resume-project.md +307 -307
- package/ez-agents/workflows/resume-session.md +215 -0
- package/ez-agents/workflows/set-profile.md +81 -81
- package/ez-agents/workflows/settings.md +242 -242
- package/ez-agents/workflows/standup.md +64 -0
- package/ez-agents/workflows/stats.md +57 -57
- package/ez-agents/workflows/transition.md +544 -544
- package/ez-agents/workflows/ui-phase.md +290 -290
- package/ez-agents/workflows/ui-review.md +157 -157
- package/ez-agents/workflows/update.md +320 -320
- package/ez-agents/workflows/validate-phase.md +167 -167
- package/ez-agents/workflows/verify-phase.md +243 -243
- package/ez-agents/workflows/verify-work.md +584 -584
- package/package.json +10 -4
- package/scripts/build-hooks.js +43 -43
- package/scripts/run-tests.cjs +29 -29
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ez:list-sessions
|
|
3
|
+
description: List all sessions
|
|
4
|
+
argument-hint: "[--limit N] [--json]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
<objective>
|
|
11
|
+
List all sessions with metadata and disk usage summary.
|
|
12
|
+
|
|
13
|
+
This command:
|
|
14
|
+
- Lists sessions with: session_id, started_at, ended_at, model, phase, plan, status
|
|
15
|
+
- Sorts by date (newest first)
|
|
16
|
+
- Shows disk usage summary
|
|
17
|
+
- Supports --limit N parameter to restrict output
|
|
18
|
+
- Supports --json flag for machine-readable output
|
|
19
|
+
</objective>
|
|
20
|
+
|
|
21
|
+
<execution_context>
|
|
22
|
+
None - Direct command implementation
|
|
23
|
+
</execution_context>
|
|
24
|
+
|
|
25
|
+
<context>
|
|
26
|
+
$ARGUMENTS
|
|
27
|
+
|
|
28
|
+
Parameters:
|
|
29
|
+
- --limit: Optional. Maximum sessions to display (default: 20)
|
|
30
|
+
- --json: Optional. Output as JSON instead of table
|
|
31
|
+
</context>
|
|
32
|
+
|
|
33
|
+
<process>
|
|
34
|
+
Execute the following workflow:
|
|
35
|
+
|
|
36
|
+
1. **Parse parameters:**
|
|
37
|
+
- Extract --limit flag (default: 20)
|
|
38
|
+
- Extract --json flag (default: false)
|
|
39
|
+
|
|
40
|
+
2. **List sessions:**
|
|
41
|
+
- Create SessionManager instance
|
|
42
|
+
- Call listSessions()
|
|
43
|
+
- Slice to limit
|
|
44
|
+
|
|
45
|
+
3. **Calculate disk usage:**
|
|
46
|
+
- Read all session files from .planning/sessions/
|
|
47
|
+
- Sum file sizes
|
|
48
|
+
- Format as KB/MB
|
|
49
|
+
|
|
50
|
+
4. **Display table (non-JSON mode):**
|
|
51
|
+
```
|
|
52
|
+
Sessions (showing {N} of {total}):
|
|
53
|
+
|
|
54
|
+
| Session ID | Started | Ended | Model | Phase | Plan | Status |
|
|
55
|
+
|------------|---------|-------|-------|-------|------|--------|
|
|
56
|
+
{rows}
|
|
57
|
+
|
|
58
|
+
Disk usage: {size} ({file_count} sessions)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Example output:
|
|
62
|
+
```
|
|
63
|
+
Sessions (showing 5 of 12):
|
|
64
|
+
|
|
65
|
+
| Session ID | Started | Ended | Model | Phase | Plan | Status |
|
|
66
|
+
|-------------------------|-------------------|-------------------|--------|-------|------|-----------|
|
|
67
|
+
| session-20260319-143052 | 2026-03-19T14:30 | 2026-03-19T15:45 | qwen | 18 | 18 | completed |
|
|
68
|
+
| session-20260319-120000 | 2026-03-19T12:00 | 2026-03-19T13:15 | claude | 17 | 16 | completed |
|
|
69
|
+
| session-20260319-090000 | 2026-03-19T09:00 | 2026-03-19T10:30 | qwen | 17 | 15 | completed |
|
|
70
|
+
|
|
71
|
+
Disk usage: 2.4 MB (12 sessions)
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
5. **JSON mode:**
|
|
75
|
+
- Output: { sessions: [...], disk_usage: bytes, total: count }
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"sessions": [
|
|
79
|
+
{
|
|
80
|
+
"session_id": "session-20260319-143052",
|
|
81
|
+
"started_at": "2026-03-19T14:30:52.000Z",
|
|
82
|
+
"ended_at": "2026-03-19T15:45:00.000Z",
|
|
83
|
+
"model": "qwen",
|
|
84
|
+
"phase": 18,
|
|
85
|
+
"plan": 18,
|
|
86
|
+
"status": "completed"
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"disk_usage": 2516582,
|
|
90
|
+
"total": 12
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
6. **Handle empty state:**
|
|
95
|
+
- If no sessions: output "No sessions found. Start working to create your first session."
|
|
96
|
+
</process>
|
|
@@ -0,0 +1,316 @@
|
|
|
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,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ez:plan-phase
|
|
3
3
|
description: Create detailed phase plan (PLAN.md) with verification loop
|
|
4
|
-
argument-hint: "[phase] [--auto] [--research] [--skip-research] [--gaps] [--skip-verify] [--prd <file>]"
|
|
4
|
+
argument-hint: "[phase] [--auto] [--research] [--skip-research] [--gaps] [--skip-verify] [--prd <file>] [--no-auto] [--verbose]"
|
|
5
5
|
agent: ez-planner
|
|
6
6
|
allowed-tools:
|
|
7
7
|
- Read
|
|
@@ -35,6 +35,14 @@ Phase number: $ARGUMENTS (optional — auto-detects next unplanned phase if omit
|
|
|
35
35
|
- `--gaps` — Gap closure mode (reads VERIFICATION.md, skips research)
|
|
36
36
|
- `--skip-verify` — Skip verification loop
|
|
37
37
|
- `--prd <file>` — Use a PRD/acceptance criteria file instead of discuss-phase. Parses requirements into CONTEXT.md automatically. Skips discuss-phase entirely.
|
|
38
|
+
- `--no-auto` — Disable smart orchestration (skip auto discuss-phase for sensitive areas).
|
|
39
|
+
- `--verbose` — Show detail for every auto-invocation step.
|
|
40
|
+
- `--skip-discussion` — Skip auto discuss-phase only (more granular than --no-auto).
|
|
41
|
+
|
|
42
|
+
**Smart Orchestration (auto, unless --no-auto):**
|
|
43
|
+
- Detects sensitive area keywords in phase name/goal: `auth`, `login`, `jwt`, `oauth`, `database`, `migration`, `schema`, `payment`, `billing`, `security`
|
|
44
|
+
- If detected AND no CONTEXT.md exists: auto-runs `discuss-phase --auto` before planning
|
|
45
|
+
- All auto-invocations appear with `[auto]` prefix in output
|
|
38
46
|
|
|
39
47
|
Normalize phase input in step 2 before any directory lookups.
|
|
40
48
|
</context>
|
|
@@ -0,0 +1,79 @@
|
|
|
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
|
package/commands/ez/progress.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ez:progress
|
|
3
3
|
description: Check project progress, show context, and route to next action (execute or plan)
|
|
4
|
+
argument-hint: "[--no-auto]"
|
|
4
5
|
allowed-tools:
|
|
5
6
|
- Read
|
|
6
7
|
- Bash
|
|
7
8
|
- Grep
|
|
8
9
|
- Glob
|
|
9
|
-
- SlashCommand
|
|
10
10
|
---
|
|
11
11
|
<objective>
|
|
12
12
|
Check project progress, summarize recent work and what's ahead, then intelligently route to the next action - either executing an existing plan or creating the next one.
|
|
@@ -18,6 +18,18 @@ Provides situational awareness before continuing work.
|
|
|
18
18
|
@~/.claude/ez-agents/workflows/progress.md
|
|
19
19
|
</execution_context>
|
|
20
20
|
|
|
21
|
+
<context>
|
|
22
|
+
Arguments: $ARGUMENTS
|
|
23
|
+
|
|
24
|
+
**Flags:**
|
|
25
|
+
- `--no-auto` — Disable silent health check auto-invocation.
|
|
26
|
+
|
|
27
|
+
**Smart Orchestration (auto, unless --no-auto):**
|
|
28
|
+
- Pre: health check (warns in report on FAIL, does not stop progress)
|
|
29
|
+
|
|
30
|
+
Health check result is silent on pass. Only shown in output if health fails.
|
|
31
|
+
</context>
|
|
32
|
+
|
|
21
33
|
<process>
|
|
22
34
|
Execute the progress workflow from @~/.claude/ez-agents/workflows/progress.md end-to-end.
|
|
23
35
|
Preserve all routing logic (Routes A through F) and edge case handling.
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ez:release
|
|
3
|
+
description: Create a tier-aware release with branch automation, changelog generation, security gates, and rollback plan.
|
|
4
|
+
usage: /ez:release <tier> <version>
|
|
5
|
+
argument-hint: "<tier> <version> | preflight <tier>"
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- Read
|
|
8
|
+
- Write
|
|
9
|
+
- Edit
|
|
10
|
+
- Bash
|
|
11
|
+
- Glob
|
|
12
|
+
- Grep
|
|
13
|
+
- Task
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
<execution_context>
|
|
17
|
+
@~/.claude/ez-agents/workflows/release.md
|
|
18
|
+
</execution_context>
|
|
19
|
+
|
|
20
|
+
<process>
|
|
21
|
+
Execute the release workflow from @~/.claude/ez-agents/workflows/release.md end-to-end.
|
|
22
|
+
Parse ARGUMENTS for tier, version, and flags before executing.
|
|
23
|
+
</process>
|
|
24
|
+
|
|
25
|
+
# /ez:release
|
|
26
|
+
|
|
27
|
+
Create a production release. Automates branch strategy, security gates, tier checklist, changelog generation, and rollback plan based on the target tier (mvp/medium/enterprise).
|
|
28
|
+
|
|
29
|
+
## Usage
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
/ez:release <tier> <version>
|
|
33
|
+
/ez:release preflight <tier>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Arguments
|
|
37
|
+
|
|
38
|
+
| Argument | Required | Description |
|
|
39
|
+
|----------|----------|-------------|
|
|
40
|
+
| `tier` | Yes | `mvp`, `medium`, or `enterprise` |
|
|
41
|
+
| `version` | Yes | Semver version (e.g., `1.0.0`, `2.1.0`) |
|
|
42
|
+
|
|
43
|
+
## Release Tiers
|
|
44
|
+
|
|
45
|
+
### MVP (`/ez:release mvp v1.0.0`)
|
|
46
|
+
For: "Ship working software fast"
|
|
47
|
+
- Scope: @must scenarios only
|
|
48
|
+
- Coverage: 60% minimum
|
|
49
|
+
- Git: Trunk-based (tag directly on main)
|
|
50
|
+
- Checklist: 6 items
|
|
51
|
+
- Typical use: First public release, early access
|
|
52
|
+
|
|
53
|
+
### Medium (`/ez:release medium v1.1.0`)
|
|
54
|
+
For: "Production-ready for real users"
|
|
55
|
+
- Scope: @must + @should scenarios
|
|
56
|
+
- Coverage: 80% minimum
|
|
57
|
+
- Git: GitHub Flow (release branch → PR → main)
|
|
58
|
+
- Checklist: 18 items
|
|
59
|
+
- Typical use: General availability, paying customers
|
|
60
|
+
|
|
61
|
+
### Enterprise (`/ez:release enterprise v2.0.0`)
|
|
62
|
+
For: "Compliance-grade production"
|
|
63
|
+
- Scope: All MoSCoW priorities
|
|
64
|
+
- Coverage: 95% minimum
|
|
65
|
+
- Git: GitFlow (release/vX.Y.Z → develop → main)
|
|
66
|
+
- Checklist: 30 items
|
|
67
|
+
- Typical use: Enterprise customers, regulated industries
|
|
68
|
+
|
|
69
|
+
## Auto-Invocation (Smart Orchestration)
|
|
70
|
+
|
|
71
|
+
Based on tier, this command automatically runs pre-flight checks before the release:
|
|
72
|
+
|
|
73
|
+
| Tier | Auto Pre-flight |
|
|
74
|
+
|------|----------------|
|
|
75
|
+
| `mvp` | None — proceed directly to release checklist |
|
|
76
|
+
| `medium` | `[auto]` verify-work (if no existing VERIFICATION.md) |
|
|
77
|
+
| `enterprise` | `[auto]` verify-work → `[auto]` audit-milestone → `[auto]` arch-review |
|
|
78
|
+
|
|
79
|
+
All auto-invocations appear with `[auto]` prefix in output.
|
|
80
|
+
|
|
81
|
+
Override with `--no-auto` to skip all pre-invocations.
|
|
82
|
+
|
|
83
|
+
## Flags
|
|
84
|
+
|
|
85
|
+
| Flag | Effect |
|
|
86
|
+
|------|--------|
|
|
87
|
+
| `--no-auto` | Skip all auto pre-flight invocations |
|
|
88
|
+
|
|
89
|
+
## What It Does
|
|
90
|
+
|
|
91
|
+
1. **Smart pre-flight** (auto, tier-based — see above)
|
|
92
|
+
2. **Validates** state (clean working tree, tests passing, coverage meets tier threshold)
|
|
93
|
+
3. **Runs security gates** (no secrets, no critical vulns, no production TODOs)
|
|
94
|
+
4. **Evaluates tier checklist** (6/18/30 items based on tier)
|
|
95
|
+
5. **Creates release branch** (per tier git strategy)
|
|
96
|
+
6. **Generates changelog** (from commits since last tag)
|
|
97
|
+
7. **Bumps version** in package.json
|
|
98
|
+
8. **Creates rollback plan** in `.planning/releases/`
|
|
99
|
+
9. **Tags the release** with `v{version}`
|
|
100
|
+
10. **Reports Production Readiness Score** (0-100)
|
|
101
|
+
|
|
102
|
+
## Output Example
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
## Release: v1.0.0 (mvp tier)
|
|
106
|
+
|
|
107
|
+
Security Gates: 4/4 passed
|
|
108
|
+
Checklist: 6/6 items passed
|
|
109
|
+
Production Readiness Score: 96/100
|
|
110
|
+
|
|
111
|
+
Branch: main (trunk-based)
|
|
112
|
+
Tag: v1.0.0
|
|
113
|
+
Changelog: Updated
|
|
114
|
+
Rollback Plan: .planning/releases/v1.0.0-ROLLBACK-PLAN.md
|
|
115
|
+
|
|
116
|
+
✓ Ready to push:
|
|
117
|
+
git push origin main && git push origin v1.0.0
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Tier Promotion
|
|
121
|
+
|
|
122
|
+
Promote tier when ready for more users:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
# Start MVP
|
|
126
|
+
/ez:release mvp v1.0.0
|
|
127
|
+
|
|
128
|
+
# 3 months later, enough users for proper testing
|
|
129
|
+
/ez:release medium v1.5.0
|
|
130
|
+
|
|
131
|
+
# Enterprise deal signed
|
|
132
|
+
/ez:release enterprise v2.0.0
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Each promotion checks that previous tier requirements are still satisfied.
|
|
136
|
+
|
|
137
|
+
## Preflight Check
|
|
138
|
+
|
|
139
|
+
Run checklist without creating release:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
/ez:release preflight mvp
|
|
143
|
+
/ez:release preflight enterprise
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Shows which items pass/fail without creating branch or tag.
|
|
147
|
+
|
|
148
|
+
## Related Commands
|
|
149
|
+
|
|
150
|
+
- `/ez:hotfix` — Emergency fix on released version
|
|
151
|
+
- `/ez:standup` — Check sprint health before release
|
|
152
|
+
- `/ez:arch-review` — Architecture review before release
|
|
153
|
+
- `/ez:verify-work` — Manual verification before release
|