@howlil/ez-agents 3.1.0 → 3.4.2
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 +288 -718
- package/bin/install.js +438 -71
- package/commands/ez/auth.md +87 -0
- package/commands/ez/join-discord.md +18 -18
- package/ez-agents/bin/ez-tools.cjs +120 -2
- package/ez-agents/bin/lib/assistant-adapter.cjs +264 -205
- package/ez-agents/bin/lib/audit-exec.cjs +26 -9
- package/ez-agents/bin/lib/auth.cjs +2 -1
- package/ez-agents/bin/lib/circuit-breaker.cjs +118 -118
- package/ez-agents/bin/lib/commands.cjs +42 -23
- package/ez-agents/bin/lib/config.cjs +190 -183
- package/ez-agents/bin/lib/core.cjs +42 -25
- 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-utils.cjs +203 -203
- package/ez-agents/bin/lib/health-check.cjs +2 -3
- package/ez-agents/bin/lib/index.cjs +113 -113
- package/ez-agents/bin/lib/init.cjs +757 -710
- package/ez-agents/bin/lib/logger.cjs +52 -15
- package/ez-agents/bin/lib/milestone.cjs +241 -241
- package/ez-agents/bin/lib/model-provider.cjs +241 -146
- package/ez-agents/bin/lib/phase.cjs +925 -908
- package/ez-agents/bin/lib/planning-write.cjs +107 -0
- package/ez-agents/bin/lib/retry.cjs +119 -119
- package/ez-agents/bin/lib/roadmap.cjs +306 -305
- package/ez-agents/bin/lib/safe-exec.cjs +91 -5
- package/ez-agents/bin/lib/safe-path.cjs +130 -130
- package/ez-agents/bin/lib/state.cjs +736 -721
- package/ez-agents/bin/lib/temp-file.cjs +239 -239
- package/ez-agents/bin/lib/template.cjs +223 -222
- 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/timeout-exec.cjs +63 -62
- package/ez-agents/bin/lib/verify.cjs +69 -26
- package/ez-agents/references/checkpoints.md +776 -776
- package/ez-agents/references/continuation-format.md +249 -249
- package/ez-agents/references/questioning.md +162 -162
- package/ez-agents/references/tdd.md +263 -263
- 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/milestone-archive.md +123 -123
- package/ez-agents/templates/milestone.md +115 -115
- 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/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/audit-milestone.md +332 -332
- package/ez-agents/workflows/autonomous.md +743 -743
- 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 +468 -468
- package/ez-agents/workflows/execute-plan.md +483 -483
- package/ez-agents/workflows/health.md +159 -159
- package/ez-agents/workflows/help.md +492 -492
- 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 +384 -384
- package/ez-agents/workflows/new-project.md +1113 -1111
- 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 +651 -651
- package/ez-agents/workflows/progress.md +382 -382
- package/ez-agents/workflows/quick.md +610 -610
- 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/set-profile.md +81 -81
- package/ez-agents/workflows/settings.md +242 -242
- 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 +2 -3
- package/scripts/build-hooks.js +43 -43
- package/scripts/fix-qwen-installation.js +144 -0
- package/scripts/run-tests.cjs +29 -29
- package/README.zh-CN.md +0 -702
package/README.md
CHANGED
|
@@ -2,891 +2,461 @@
|
|
|
2
2
|
|
|
3
3
|
# EZ Agents
|
|
4
4
|
|
|
5
|
-
**
|
|
5
|
+
**Turn AI coding assistants into reliable development teammates.**
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
**An independent fork of EZ Agents (Get Shit Done) with multi-model support (Qwen, Kimi, OpenAI, Claude) and enhanced reliability features.**
|
|
10
|
-
|
|
11
|
-
**Solves context rot — with added security, error handling, and cross-platform support.**
|
|
12
|
-
|
|
13
|
-
[](https://github.com/howlil/ez-agents/network)
|
|
14
|
-
[](https://github.com/howlil/ez-agents/stargazers)
|
|
7
|
+
[](https://www.npmjs.com/package/@howlil/ez-agents)
|
|
15
8
|
[](LICENSE)
|
|
16
|
-
|
|
17
|
-
<br>
|
|
9
|
+
[](https://github.com/howlil/ez-agents/stargazers)
|
|
18
10
|
|
|
19
11
|
```bash
|
|
20
|
-
npm
|
|
12
|
+
npm i -g @howlil/ez-agents@latest
|
|
21
13
|
```
|
|
22
14
|
|
|
23
|
-
**Works
|
|
24
|
-
|
|
25
|
-
<br>
|
|
26
|
-
|
|
27
|
-
**Original EZ Agents (Get Shit Done) by** [TÂCHES](https://github.com/glittercowboy/ez-agents) | **EZ Agents Fork by** [@howlil](https://github.com/howlil)
|
|
28
|
-
|
|
29
|
-
<br>
|
|
30
|
-
|
|
31
|
-
*"If you know clearly what you want, this WILL build it for you. No bs."*
|
|
32
|
-
|
|
33
|
-
*"I've done SpecKit, OpenSpec and Taskmaster — this has produced the best results for me."*
|
|
15
|
+
**Works with:** Claude Code · OpenCode · Gemini CLI · Codex · Copilot · Qwen · Kimi
|
|
34
16
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<br>
|
|
38
|
-
|
|
39
|
-
[Features](#-whats-new-in-ez-agents) · [Install](#install) · [Commands](#commands) · [Multi-Model](#multi-model-support) · [User Guide](docs/USER-GUIDE.md)
|
|
17
|
+
[Quick Start](#quick-start) · [How It Works](#how-it-works) · [Commands](#commands) · [Setup](#setup) · [Docs](docs/)
|
|
40
18
|
|
|
41
19
|
</div>
|
|
42
20
|
|
|
43
21
|
---
|
|
44
22
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
> **Note:** This is an **independent fork** of EZ Agents (Get Shit Done). Not affiliated with the original EZ Agents project.
|
|
48
|
-
>
|
|
49
|
-
> **Original EZ Agents (Get Shit Done):** [glittercowboy/ez-agents](https://github.com/glittercowboy/ez-agents) by TÂCHES
|
|
50
|
-
>
|
|
51
|
-
> **This Fork:** [howlil/ez-agents](https://github.com/howlil/ez-agents) with multi-model support & enhancements
|
|
52
|
-
|
|
53
|
-
**EZ Agents** adds **multi-model support** and **enterprise-grade reliability** to EZ Agents (Get Shit Done).
|
|
23
|
+
> **What is this?** EZ Agents adds structure to AI coding. Instead of asking Claude to "build a login system" and hoping for the best, you get a repeatable workflow: plan it out, build it in pieces, verify it works. Every change is committed with context, so you (or your team) can pick up where the AI left off.
|
|
54
24
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
I needed EZ Agents (Get Shit Done) to work with multiple AI providers (not just Anthropic) and run reliably on Windows. This fork adds:
|
|
25
|
+
---
|
|
58
26
|
|
|
59
|
-
|
|
60
|
-
- 🔒 **Security**: Command injection prevention, path validation, audit logging
|
|
61
|
-
- 🛡️ **Error Handling**: Retry with backoff, circuit breaker for failing operations
|
|
62
|
-
- 🪟 **Windows Support**: Cross-platform file utilities (no Unix dependencies)
|
|
63
|
-
- 🔄 **Easy Updates**: `ez-agents-update` command to stay current
|
|
27
|
+
## Why EZ Agents Exists
|
|
64
28
|
|
|
65
|
-
|
|
29
|
+
AI coding tools are great at writing code. But real development work needs more than that:
|
|
66
30
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
| **Error Handling** | Basic | ✓ Retry with backoff, circuit breaker |
|
|
72
|
-
| **Cross-Platform** | Unix commands | ✓ Pure JavaScript (Windows-safe) |
|
|
73
|
-
| **Git Safety** | Direct calls | ✓ Atomic commits, branch automation |
|
|
74
|
-
| **Update Command** | Manual npm | ✓ `ez-agents-update` |
|
|
75
|
-
| **Credential Storage** | Plain text | ✓ System keychain (keytar) |
|
|
31
|
+
- **Context gets lost** between sessions
|
|
32
|
+
- **No one reviews** whether the code actually fits the plan
|
|
33
|
+
- **Important decisions** about architecture happen implicitly
|
|
34
|
+
- **Testing is an afterthought**
|
|
76
35
|
|
|
77
|
-
|
|
36
|
+
EZ Agents fixes this by adding a lightweight orchestration layer. Think of it as a project manager for your AI assistants.
|
|
78
37
|
|
|
79
|
-
|
|
80
|
-
ez-agents/bin/lib/
|
|
81
|
-
├── safe-exec.cjs # Command injection prevention (allowlist + validation)
|
|
82
|
-
├── safe-path.cjs # Path traversal prevention
|
|
83
|
-
├── auth.cjs # Secure credential storage (keytar + fallback)
|
|
84
|
-
├── audit-exec.cjs # Command audit logging (.planning/logs/)
|
|
85
|
-
├── git-utils.cjs # Safe git operations (atomic commits)
|
|
86
|
-
├── fs-utils.cjs # Cross-platform file utils (find/grep/head/tail replacement)
|
|
87
|
-
├── retry.cjs # Exponential backoff retry logic
|
|
88
|
-
├── circuit-breaker.cjs # Prevent cascading failures
|
|
89
|
-
├── model-provider.cjs # Multi-model API abstraction
|
|
90
|
-
├── assistant-adapter.cjs # AI assistant abstraction (Claude/OpenCode/Gemini/Codex)
|
|
91
|
-
├── logger.cjs # Centralized logging (ERROR/WARN/INFO/DEBUG)
|
|
92
|
-
├── health-check.cjs # Environment validation
|
|
93
|
-
├── timeout-exec.cjs # Command timeout with fallback
|
|
94
|
-
├── file-lock.cjs # Concurrent write protection
|
|
95
|
-
├── temp-file.cjs # Secure temp file handling
|
|
96
|
-
├── index.cjs # Central library export
|
|
97
|
-
└── update.js # ez-agents-update command
|
|
98
|
-
```
|
|
38
|
+
---
|
|
99
39
|
|
|
100
|
-
|
|
40
|
+
## Quick Start
|
|
101
41
|
|
|
102
|
-
|
|
42
|
+
### 1. Install
|
|
103
43
|
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
{
|
|
107
|
-
"provider": {
|
|
108
|
-
"default": "alibaba",
|
|
109
|
-
"anthropic": {
|
|
110
|
-
"api_key": "env:ANTHROPIC_API_KEY",
|
|
111
|
-
"models": { "opus": "claude-3-opus-20240229", "sonnet": "claude-3-sonnet-20240229" }
|
|
112
|
-
},
|
|
113
|
-
"alibaba": {
|
|
114
|
-
"api_key": "env:DASHSCOPE_API_KEY",
|
|
115
|
-
"models": { "high": "qwen-max", "balanced": "qwen-plus" }
|
|
116
|
-
},
|
|
117
|
-
"moonshot": {
|
|
118
|
-
"api_key": "env:MOONSHOT_API_KEY",
|
|
119
|
-
"models": { "high": "moonshot-v1-128k" }
|
|
120
|
-
},
|
|
121
|
-
"openai": {
|
|
122
|
-
"api_key": "env:OPENAI_API_KEY",
|
|
123
|
-
"models": { "high": "gpt-4-turbo-preview" }
|
|
124
|
-
}
|
|
125
|
-
},
|
|
126
|
-
"agent_overrides": {
|
|
127
|
-
"ez-planner": { "provider": "alibaba", "model": "qwen-max" },
|
|
128
|
-
"ez-executor": { "provider": "anthropic", "model": "sonnet" },
|
|
129
|
-
"ez-verifier": { "provider": "moonshot", "model": "balanced" }
|
|
130
|
-
}
|
|
131
|
-
}
|
|
44
|
+
```bash
|
|
45
|
+
npm i -g @howlil/ez-agents@latest
|
|
132
46
|
```
|
|
133
47
|
|
|
134
|
-
###
|
|
48
|
+
### 2. Setup for Your AI Tool
|
|
135
49
|
|
|
136
50
|
```bash
|
|
137
|
-
#
|
|
138
|
-
npm install -g ez-agents
|
|
139
|
-
|
|
140
|
-
# Setup (Claude Code)
|
|
51
|
+
# For Claude Code
|
|
141
52
|
ez-agents --claude --global
|
|
142
53
|
|
|
143
|
-
#
|
|
144
|
-
ez-agents
|
|
145
|
-
|
|
146
|
-
# Force update
|
|
147
|
-
ez-agents-update --force
|
|
54
|
+
# For OpenCode
|
|
55
|
+
ez-agents --opencode --global
|
|
148
56
|
|
|
149
|
-
#
|
|
150
|
-
ez-agents --
|
|
57
|
+
# For Gemini CLI
|
|
58
|
+
ez-agents --gemini --global
|
|
151
59
|
|
|
152
|
-
#
|
|
60
|
+
# See all options
|
|
153
61
|
ez-agents --help
|
|
154
62
|
```
|
|
155
63
|
|
|
156
|
-
###
|
|
157
|
-
|
|
158
|
-
**⚠️ Important: Use one of the methods below. Do NOT use `npx github:howlil/ez-agents` as it may fail.**
|
|
159
|
-
|
|
160
|
-
**Option 1: Install from GitHub (Recommended)**
|
|
64
|
+
### 3. Start a Project
|
|
161
65
|
|
|
162
66
|
```bash
|
|
163
|
-
#
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
# Then run installer
|
|
167
|
-
ez-agents --claude --global
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
**Option 2: Use npx (No Installation)**
|
|
171
|
-
|
|
172
|
-
```bash
|
|
173
|
-
# Run installer directly without installing
|
|
174
|
-
npx @howlil/ez-agents --claude --global
|
|
67
|
+
# In your project directory
|
|
68
|
+
/ez:new-project
|
|
175
69
|
```
|
|
176
70
|
|
|
177
|
-
|
|
71
|
+
You'll answer a few questions about what you're building, then EZ Agents generates a roadmap. From there, you work through phases:
|
|
178
72
|
|
|
179
73
|
```bash
|
|
180
|
-
#
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
#
|
|
184
|
-
ez-agents --claude --global
|
|
185
|
-
ez-agents-update
|
|
74
|
+
/ez:discuss-phase 1 # Lock in how you want it built
|
|
75
|
+
/ez:plan-phase 1 # Break it into specific tasks
|
|
76
|
+
/ez:execute-phase 1 # Build it (one task per commit)
|
|
77
|
+
/ez:verify-work 1 # Check it actually works
|
|
186
78
|
```
|
|
187
79
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
```bash
|
|
191
|
-
# Clone the repository
|
|
192
|
-
git clone https://github.com/howlil/ez-agents.git
|
|
193
|
-
cd ez-agents
|
|
80
|
+
---
|
|
194
81
|
|
|
195
|
-
|
|
196
|
-
npm install -g .
|
|
82
|
+
## How It Works
|
|
197
83
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
```
|
|
84
|
+
### The Workflow
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
┌─────────────────┐
|
|
88
|
+
│ Start Project │
|
|
89
|
+
│ /ez:new-project│
|
|
90
|
+
└────────┬────────┘
|
|
91
|
+
│
|
|
92
|
+
▼
|
|
93
|
+
┌─────────────────────────────────────────────────┐
|
|
94
|
+
│ For Each Phase: │
|
|
95
|
+
│ │
|
|
96
|
+
│ 1. /ez:discuss-phase → Decide HOW to build │
|
|
97
|
+
│ 2. /ez:plan-phase → Break into tasks │
|
|
98
|
+
│ 3. /ez:execute-phase → Build (one commit/task)│
|
|
99
|
+
│ 4. /ez:verify-work → Test it works │
|
|
100
|
+
└─────────────────────────────────────────────────┘
|
|
101
|
+
│
|
|
102
|
+
▼
|
|
103
|
+
┌─────────────────────────┐
|
|
104
|
+
│ /ez:audit-milestone │
|
|
105
|
+
│ /ez:complete-milestone │
|
|
106
|
+
└─────────────────────────┘
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Parallel Execution with Git Commits
|
|
110
|
+
|
|
111
|
+
Setiap task dijalankan secara paralel (jika tidak ada dependensi), dengan fresh context dan atomic commit:
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
Phase 1: Foundation
|
|
115
|
+
│
|
|
116
|
+
├─ Wave 1 (Parallel) ───────────────────────────┐
|
|
117
|
+
│ ┌─────────────────┐ ┌─────────────────┐ │
|
|
118
|
+
│ │ Task 1.1: │ │ Task 1.2: │ │
|
|
119
|
+
│ │ Database Schema │ │ Next.js Setup │ │
|
|
120
|
+
│ │ │ │ │ │
|
|
121
|
+
│ │ Fresh 200K ctx │ │ Fresh 200K ctx │ │
|
|
122
|
+
│ │ ↓ │ │ ↓ │ │
|
|
123
|
+
│ │ git commit │ │ git commit │ │
|
|
124
|
+
│ │ "feat: schema" │ │ "feat: setup" │ │
|
|
125
|
+
│ └─────────────────┘ └─────────────────┘ │
|
|
126
|
+
└────────────────────────────────────────────────┘
|
|
127
|
+
│
|
|
128
|
+
▼
|
|
129
|
+
├─ Wave 2 (Depends on Wave 1) ──────────────────┐
|
|
130
|
+
│ ┌─────────────────┐ │
|
|
131
|
+
│ │ Task 1.3: │ │
|
|
132
|
+
│ │ Auth Endpoints │ ← Needs schema + setup │
|
|
133
|
+
│ │ │ │
|
|
134
|
+
│ │ Fresh 200K ctx │ │
|
|
135
|
+
│ │ ↓ │ │
|
|
136
|
+
│ │ git commit │ │
|
|
137
|
+
│ │ "feat: auth" │ │
|
|
138
|
+
│ └─────────────────┘ │
|
|
139
|
+
└────────────────────────────────────────────────┘
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**Keuntungan:**
|
|
143
|
+
- **Fresh context per task** — AI tidak kehilangan context karena window penuh
|
|
144
|
+
- **Atomic commits** — Setiap commit = satu task, mudah di-revert jika ada masalah
|
|
145
|
+
- **Parallel execution** — Task independen jalan barengan, lebih cepat
|
|
146
|
+
- **Clean git history** — Commit message deskriptif, jelas apa yang berubah
|
|
147
|
+
|
|
148
|
+
### What Makes It Different
|
|
149
|
+
|
|
150
|
+
| Problem | Without EZ Agents | With EZ Agents |
|
|
151
|
+
|---------|------------------|----------------|
|
|
152
|
+
| **Lost context** | "What was I working on again?" | STATE.md tracks decisions, blockers, next steps |
|
|
153
|
+
| **Vague plans** | "Build the API" | Specific tasks: "Create POST /users endpoint with validation" |
|
|
154
|
+
| **No verification** | Code written, but does it work? | Each phase has explicit verification criteria |
|
|
155
|
+
| **Messy git history** | "WIP", "fix", "asdf" | One commit per task, meaningful messages |
|
|
156
|
+
| **Scope creep** | Features added ad-hoc | ROADMAP.md tracks what's in/out of scope |
|
|
201
157
|
|
|
202
158
|
---
|
|
203
159
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
```bash
|
|
207
|
-
# Install EZ Agents globally
|
|
208
|
-
npm install -g git+https://github.com/howlil/ez-agents.git
|
|
209
|
-
|
|
210
|
-
# Setup for Claude Code (global)
|
|
211
|
-
ez-agents --claude --global
|
|
160
|
+
## Features
|
|
212
161
|
|
|
213
|
-
|
|
214
|
-
ez-agents --claude --local
|
|
162
|
+
### Core
|
|
215
163
|
|
|
216
|
-
|
|
217
|
-
|
|
164
|
+
- **Multi-Model Support** — Use Qwen, Kimi, OpenAI, or Anthropic. Mix providers per task.
|
|
165
|
+
- **Wave Execution** — Independent tasks run in parallel; dependent tasks wait their turn
|
|
166
|
+
- **Context Engineering** — PROJECT.md, STATE.md, SUMMARY.md preserve decisions across sessions
|
|
167
|
+
- **Atomic Commits** — Each task gets its own commit with context about what changed and why
|
|
168
|
+
- **Milestone Tracking** — Version releases with requirements audit and git tagging
|
|
218
169
|
|
|
219
|
-
|
|
220
|
-
ez-agents-update
|
|
170
|
+
### Built for Production
|
|
221
171
|
|
|
222
|
-
|
|
223
|
-
|
|
172
|
+
- **Security** — Command injection prevention, path validation, audit logging
|
|
173
|
+
- **Cross-Platform** — Pure JavaScript. Works on Windows, macOS, Linux (no Unix dependencies)
|
|
174
|
+
- **Error Handling** — Retry logic with backoff, circuit breaker for failing operations
|
|
175
|
+
- **Git Safety** — Atomic commits, branch automation, merge strategies
|
|
224
176
|
|
|
225
|
-
|
|
226
|
-
ez-agents --version
|
|
177
|
+
### For Existing Codebases
|
|
227
178
|
|
|
228
|
-
|
|
229
|
-
|
|
179
|
+
```bash
|
|
180
|
+
# Analyze what you have
|
|
181
|
+
/ez:map-codebase
|
|
230
182
|
|
|
231
|
-
#
|
|
232
|
-
ez-
|
|
183
|
+
# Then plan what to add
|
|
184
|
+
/ez:new-project
|
|
233
185
|
```
|
|
234
186
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
Other spec-driven development tools exist; BMAD, Speckit... But they all seem to make things way more complicated than they need to be (sprint ceremonies, story points, stakeholder syncs, retrospectives, Jira workflows) or lack real big picture understanding of what you're building. I'm not a 50-person software company. I don't want to play enterprise theater. I'm just a creative person trying to build great things that work.
|
|
187
|
+
Parallel agents analyze your stack, architecture, conventions, and pain points. The output: structured docs that inform the roadmap.
|
|
238
188
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
The system gives Claude everything it needs to do the work *and* verify it. I trust the workflow. It just does a good job.
|
|
189
|
+
---
|
|
242
190
|
|
|
243
|
-
|
|
191
|
+
## Commands
|
|
244
192
|
|
|
245
|
-
|
|
193
|
+
### Starting Out
|
|
246
194
|
|
|
247
|
-
|
|
195
|
+
| Command | What It Does |
|
|
196
|
+
|---------|-------------|
|
|
197
|
+
| `/ez:new-project` | Initialize: answer questions, get research, requirements, and roadmap |
|
|
198
|
+
| `/ez:map-codebase` | Analyze existing codebase (before `/ez:new-project`) |
|
|
199
|
+
| `/ez:quick` | Small task without full phase workflow (bug fixes, config changes) |
|
|
248
200
|
|
|
249
|
-
|
|
201
|
+
### Phase Workflow
|
|
250
202
|
|
|
251
|
-
|
|
203
|
+
| Command | What It Does |
|
|
204
|
+
|---------|-------------|
|
|
205
|
+
| `/ez:discuss-phase [N]` | Clarify implementation approach before planning |
|
|
206
|
+
| `/ez:plan-phase [N]` | Research domain, create task breakdown, define verification |
|
|
207
|
+
| `/ez:execute-phase [N]` | Build the plan (parallel waves, one commit per task) |
|
|
208
|
+
| `/ez:verify-work [N]` | Manual testing with auto-diagnosis of failures |
|
|
252
209
|
|
|
253
|
-
|
|
210
|
+
### Managing Scope
|
|
254
211
|
|
|
255
|
-
|
|
212
|
+
| Command | What It Does |
|
|
213
|
+
|---------|-------------|
|
|
214
|
+
| `/ez:add-phase` | Append new phase to roadmap |
|
|
215
|
+
| `/ez:insert-phase [N]` | Insert urgent work between existing phases |
|
|
216
|
+
| `/ez:remove-phase [N]` | Remove a phase and renumber |
|
|
217
|
+
| `/ez:progress` | See where you are and what's next |
|
|
256
218
|
|
|
257
|
-
|
|
219
|
+
### Wrapping Up
|
|
258
220
|
|
|
259
|
-
|
|
221
|
+
| Command | What It Does |
|
|
222
|
+
|---------|-------------|
|
|
223
|
+
| `/ez:audit-milestone` | Verify all requirements are met |
|
|
224
|
+
| `/ez:complete-milestone` | Archive milestone, create git tag |
|
|
225
|
+
| `/ez:new-milestone` | Start next version cycle |
|
|
260
226
|
|
|
261
|
-
|
|
227
|
+
### Utilities
|
|
262
228
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
229
|
+
| Command | What It Does |
|
|
230
|
+
|---------|-------------|
|
|
231
|
+
| `/ez:resume-work` | Restore context from last session |
|
|
232
|
+
| `/ez:settings` | Configure workflow, model profile, git strategy |
|
|
233
|
+
| `/ez:update` | Update EZ Agents (with changelog preview) |
|
|
234
|
+
| `/ez:help` | Show all commands |
|
|
266
235
|
|
|
267
|
-
|
|
268
|
-
1. **Runtime** — Claude Code, OpenCode, Gemini, Codex, Copilot, or all
|
|
269
|
-
2. **Location** — Global (all projects) or local (current project only)
|
|
236
|
+
---
|
|
270
237
|
|
|
271
|
-
|
|
272
|
-
- Claude Code / Gemini: `/ez:help`
|
|
273
|
-
- OpenCode: `/ez-help`
|
|
274
|
-
- Codex: `$ez-help`
|
|
238
|
+
## Setup
|
|
275
239
|
|
|
276
|
-
|
|
277
|
-
> Codex installation uses skills (`skills/ez-*/SKILL.md`) rather than custom prompts.
|
|
240
|
+
### Prerequisites
|
|
278
241
|
|
|
279
|
-
|
|
242
|
+
- Node.js >= 16.7.0
|
|
243
|
+
- One of: Claude Code, OpenCode, Gemini CLI, Codex, Copilot, Qwen Code, Kimi Code
|
|
280
244
|
|
|
281
|
-
|
|
245
|
+
### Installation
|
|
282
246
|
|
|
283
247
|
```bash
|
|
284
|
-
ez-agents
|
|
248
|
+
npm i -g @howlil/ez-agents@latest
|
|
249
|
+
ez-agents --claude --global
|
|
285
250
|
```
|
|
286
251
|
|
|
287
|
-
|
|
288
|
-
<summary><strong>Non-interactive Install (Docker, CI, Scripts)</strong></summary>
|
|
252
|
+
### Updating
|
|
289
253
|
|
|
290
254
|
```bash
|
|
291
|
-
|
|
292
|
-
ez-agents --claude --global # Install to ~/.claude/
|
|
293
|
-
ez-agents --claude --local # Install to ./.claude/
|
|
294
|
-
|
|
295
|
-
# OpenCode (open source, free models)
|
|
296
|
-
ez-agents --opencode --global # Install to ~/.config/opencode/
|
|
297
|
-
|
|
298
|
-
# Gemini CLI
|
|
299
|
-
ez-agents --gemini --global # Install to ~/.gemini/
|
|
300
|
-
|
|
301
|
-
# Codex (skills-first)
|
|
302
|
-
ez-agents --codex --global # Install to ~/.codex/
|
|
303
|
-
ez-agents --codex --local # Install to ./.codex/
|
|
304
|
-
|
|
305
|
-
# All runtimes
|
|
306
|
-
ez-agents --all --global # Install to all directories
|
|
255
|
+
npm update -g @howlil/ez-agents
|
|
307
256
|
```
|
|
308
257
|
|
|
309
|
-
|
|
310
|
-
Use `--claude`, `--opencode`, `--gemini`, `--codex`, or `--all` to skip the runtime prompt.
|
|
311
|
-
|
|
312
|
-
</details>
|
|
313
|
-
|
|
314
|
-
<details>
|
|
315
|
-
<summary><strong>Development Installation</strong></summary>
|
|
316
|
-
|
|
317
|
-
Clone the repository and run the installer locally:
|
|
258
|
+
**Development Install** (for contributing)
|
|
318
259
|
|
|
319
260
|
```bash
|
|
320
261
|
git clone https://github.com/howlil/ez-agents.git
|
|
321
262
|
cd ez-agents
|
|
322
|
-
|
|
263
|
+
npm install -g .
|
|
264
|
+
ez-agents --claude --local
|
|
323
265
|
```
|
|
324
266
|
|
|
325
|
-
|
|
267
|
+
---
|
|
326
268
|
|
|
327
|
-
|
|
269
|
+
## Configuration
|
|
328
270
|
|
|
329
|
-
|
|
271
|
+
EZ Agents stores settings in `.planning/config.json`. You configure this during `/ez:new-project` or adjust later with `/ez:settings`.
|
|
330
272
|
|
|
331
|
-
|
|
273
|
+
### Key Settings
|
|
332
274
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
275
|
+
| Setting | Options | Default | What It Does |
|
|
276
|
+
|---------|---------|---------|-------------|
|
|
277
|
+
| `mode` | `interactive`, `yolo` | `interactive` | `yolo` skips confirmation prompts |
|
|
278
|
+
| `model_profile` | `quality`, `balanced`, `budget` | `balanced` | Controls which model tier each agent uses |
|
|
279
|
+
| `granularity` | `coarse`, `standard`, `fine` | `standard` | How many phases (3-5, 5-8, or 8-12) |
|
|
336
280
|
|
|
337
|
-
|
|
338
|
-
|
|
281
|
+
### Model Profiles
|
|
282
|
+
|
|
283
|
+
| Agent | `quality` | `balanced` | `budget` |
|
|
284
|
+
|-------|-----------|------------|----------|
|
|
285
|
+
| Planner | Opus | Opus | Sonnet |
|
|
286
|
+
| Executor | Opus | Sonnet | Sonnet |
|
|
287
|
+
| Researcher | Opus | Sonnet | Haiku |
|
|
288
|
+
| Verifier | Sonnet | Sonnet | Haiku |
|
|
339
289
|
|
|
340
|
-
|
|
341
|
-
|
|
290
|
+
**When to use each:**
|
|
291
|
+
- **quality** — Critical work, complex decisions, you have quota
|
|
292
|
+
- **balanced** — Day-to-day development (the default for a reason)
|
|
293
|
+
- **budget** — High-volume work, familiar domains, prototyping
|
|
342
294
|
|
|
343
|
-
|
|
295
|
+
### Multi-Provider Setup
|
|
296
|
+
|
|
297
|
+
Different providers for different tasks:
|
|
344
298
|
|
|
345
299
|
```json
|
|
346
300
|
{
|
|
347
|
-
"
|
|
348
|
-
"
|
|
349
|
-
|
|
350
|
-
"
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
"
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
"Bash(tr:*)",
|
|
360
|
-
"Bash(git add:*)",
|
|
361
|
-
"Bash(git commit:*)",
|
|
362
|
-
"Bash(git status:*)",
|
|
363
|
-
"Bash(git log:*)",
|
|
364
|
-
"Bash(git diff:*)",
|
|
365
|
-
"Bash(git tag:*)"
|
|
366
|
-
]
|
|
301
|
+
"provider": {
|
|
302
|
+
"default": "alibaba",
|
|
303
|
+
"anthropic": {
|
|
304
|
+
"api_key": "env:ANTHROPIC_API_KEY"
|
|
305
|
+
},
|
|
306
|
+
"alibaba": {
|
|
307
|
+
"api_key": "env:DASHSCOPE_API_KEY"
|
|
308
|
+
}
|
|
309
|
+
},
|
|
310
|
+
"agent_overrides": {
|
|
311
|
+
"ez-planner": { "provider": "alibaba", "model": "qwen-max" },
|
|
312
|
+
"ez-executor": { "provider": "anthropic", "model": "sonnet" }
|
|
367
313
|
}
|
|
368
314
|
}
|
|
369
315
|
```
|
|
370
316
|
|
|
371
|
-
</details>
|
|
372
|
-
|
|
373
317
|
---
|
|
374
318
|
|
|
375
|
-
##
|
|
376
|
-
|
|
377
|
-
> **Already have code?** Run `/ez:map-codebase` first. It spawns parallel agents to analyze your stack, architecture, conventions, and concerns. Then `/ez:new-project` knows your codebase — questions focus on what you're adding, and planning automatically loads your patterns.
|
|
319
|
+
## Project Structure
|
|
378
320
|
|
|
379
|
-
|
|
321
|
+
After running `/ez:new-project`, you'll have:
|
|
380
322
|
|
|
381
323
|
```
|
|
382
|
-
/
|
|
324
|
+
.planning/
|
|
325
|
+
PROJECT.md # What you're building and why
|
|
326
|
+
REQUIREMENTS.md # Scoped requirements with IDs
|
|
327
|
+
ROADMAP.md # Phase breakdown with status
|
|
328
|
+
STATE.md # Current decisions, blockers, next steps
|
|
329
|
+
config.json # Your configuration
|
|
330
|
+
phases/
|
|
331
|
+
01-phase-name/
|
|
332
|
+
01-01-PLAN.md # Tasks to execute
|
|
333
|
+
01-01-SUMMARY.md # What was built and why
|
|
334
|
+
CONTEXT.md # Your implementation preferences
|
|
335
|
+
RESEARCH.md # Domain research
|
|
336
|
+
VERIFICATION.md # Test results
|
|
383
337
|
```
|
|
384
338
|
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
1. **Questions** — Asks until it understands your idea completely (goals, constraints, tech preferences, edge cases)
|
|
388
|
-
2. **Research** — Spawns parallel agents to investigate the domain (optional but recommended)
|
|
389
|
-
3. **Requirements** — Extracts what's v1, v2, and out of scope
|
|
390
|
-
4. **Roadmap** — Creates phases mapped to requirements
|
|
391
|
-
|
|
392
|
-
You approve the roadmap. Now you're ready to build.
|
|
393
|
-
|
|
394
|
-
**Creates:** `PROJECT.md`, `REQUIREMENTS.md`, `ROADMAP.md`, `STATE.md`, `.planning/research/`
|
|
339
|
+
**Note:** You can add `.planning/` to `.gitignore` if you don't want planning docs in your repo. Set `commit_docs: false` in `/ez:settings`.
|
|
395
340
|
|
|
396
341
|
---
|
|
397
342
|
|
|
398
|
-
|
|
343
|
+
## Example: Building a Task App
|
|
399
344
|
|
|
400
|
-
|
|
401
|
-
/ez:discuss-phase 1
|
|
402
|
-
```
|
|
403
|
-
|
|
404
|
-
**This is where you shape the implementation.**
|
|
405
|
-
|
|
406
|
-
Your roadmap has a sentence or two per phase. That's not enough context to build something the way *you* imagine it. This step captures your preferences before anything gets researched or planned.
|
|
407
|
-
|
|
408
|
-
The system analyzes the phase and identifies gray areas based on what's being built:
|
|
345
|
+
Let's say you want to build "a task management app with team collaboration."
|
|
409
346
|
|
|
410
|
-
|
|
411
|
-
- **APIs/CLIs** → Response format, flags, error handling, verbosity
|
|
412
|
-
- **Content systems** → Structure, tone, depth, flow
|
|
413
|
-
- **Organization tasks** → Grouping criteria, naming, duplicates, exceptions
|
|
347
|
+
### 1. Initialize
|
|
414
348
|
|
|
415
|
-
|
|
349
|
+
```bash
|
|
350
|
+
/ez:new-project
|
|
351
|
+
```
|
|
416
352
|
|
|
417
|
-
|
|
418
|
-
|
|
353
|
+
You answer questions:
|
|
354
|
+
- Tech stack? → "Next.js + PostgreSQL"
|
|
355
|
+
- Auth method? → "Email + OAuth (Google, GitHub)"
|
|
356
|
+
- First milestone? → "MVP: user accounts, create/edit tasks, share with team"
|
|
419
357
|
|
|
420
|
-
|
|
358
|
+
EZ Agents generates research, requirements, and a roadmap with ~6 phases.
|
|
421
359
|
|
|
422
|
-
|
|
360
|
+
### 2. Phase 1: Foundation
|
|
423
361
|
|
|
424
|
-
|
|
362
|
+
```bash
|
|
363
|
+
/ez:discuss-phase 1
|
|
364
|
+
```
|
|
425
365
|
|
|
426
|
-
|
|
366
|
+
You clarify: "Use Next.js App Router, Prisma for DB, next-auth for OAuth."
|
|
427
367
|
|
|
428
|
-
```
|
|
368
|
+
```bash
|
|
429
369
|
/ez:plan-phase 1
|
|
430
370
|
```
|
|
431
371
|
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
3. **Verifies** — Checks plans against requirements, loops until they pass
|
|
437
|
-
|
|
438
|
-
Each plan is small enough to execute in a fresh context window. No degradation, no "I'll be more concise now."
|
|
439
|
-
|
|
440
|
-
**Creates:** `{phase_num}-RESEARCH.md`, `{phase_num}-{N}-PLAN.md`
|
|
372
|
+
Research runs (auth patterns, Prisma schema design). Plan is created:
|
|
373
|
+
- Task 1: Database schema (users, tasks, teams)
|
|
374
|
+
- Task 2: Next.js setup with next-auth
|
|
375
|
+
- Task 3: User model and auth endpoints
|
|
441
376
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
### 4. Execute Phase
|
|
445
|
-
|
|
446
|
-
```
|
|
377
|
+
```bash
|
|
447
378
|
/ez:execute-phase 1
|
|
448
379
|
```
|
|
449
380
|
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
1. **Runs plans in waves** — Parallel where possible, sequential when dependent
|
|
453
|
-
2. **Fresh context per plan** — 200k tokens purely for implementation, zero accumulated garbage
|
|
454
|
-
3. **Commits per task** — Every task gets its own atomic commit
|
|
455
|
-
4. **Verifies against goals** — Checks the codebase delivers what the phase promised
|
|
456
|
-
|
|
457
|
-
Walk away, come back to completed work with clean git history.
|
|
458
|
-
|
|
459
|
-
**How Wave Execution Works:**
|
|
460
|
-
|
|
461
|
-
Plans are grouped into "waves" based on dependencies. Within each wave, plans run in parallel. Waves run sequentially.
|
|
462
|
-
|
|
463
|
-
```
|
|
464
|
-
┌────────────────────────────────────────────────────────────────────┐
|
|
465
|
-
│ PHASE EXECUTION │
|
|
466
|
-
├────────────────────────────────────────────────────────────────────┤
|
|
467
|
-
│ │
|
|
468
|
-
│ WAVE 1 (parallel) WAVE 2 (parallel) WAVE 3 │
|
|
469
|
-
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
|
470
|
-
│ │ Plan 01 │ │ Plan 02 │ → │ Plan 03 │ │ Plan 04 │ → │ Plan 05 │ │
|
|
471
|
-
│ │ │ │ │ │ │ │ │ │ │ │
|
|
472
|
-
│ │ User │ │ Product │ │ Orders │ │ Cart │ │ Checkout│ │
|
|
473
|
-
│ │ Model │ │ Model │ │ API │ │ API │ │ UI │ │
|
|
474
|
-
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
|
|
475
|
-
│ │ │ ↑ ↑ ↑ │
|
|
476
|
-
│ └───────────┴──────────────┴───────────┘ │ │
|
|
477
|
-
│ Dependencies: Plan 03 needs Plan 01 │ │
|
|
478
|
-
│ Plan 04 needs Plan 02 │ │
|
|
479
|
-
│ Plan 05 needs Plans 03 + 04 │ │
|
|
480
|
-
│ │
|
|
481
|
-
└────────────────────────────────────────────────────────────────────┘
|
|
482
|
-
```
|
|
483
|
-
|
|
484
|
-
**Why waves matter:**
|
|
485
|
-
- Independent plans → Same wave → Run in parallel
|
|
486
|
-
- Dependent plans → Later wave → Wait for dependencies
|
|
487
|
-
- File conflicts → Sequential plans or same plan
|
|
488
|
-
|
|
489
|
-
This is why "vertical slices" (Plan 01: User feature end-to-end) parallelize better than "horizontal layers" (Plan 01: All models, Plan 02: All APIs).
|
|
490
|
-
|
|
491
|
-
**Creates:** `{phase_num}-{N}-SUMMARY.md`, `{phase_num}-VERIFICATION.md`
|
|
492
|
-
|
|
493
|
-
---
|
|
381
|
+
Three tasks, three commits. Each task gets fresh context.
|
|
494
382
|
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
```
|
|
383
|
+
```bash
|
|
498
384
|
/ez:verify-work 1
|
|
499
385
|
```
|
|
500
386
|
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
Automated verification checks that code exists and tests pass. But does the feature *work* the way you expected? This is your chance to use it.
|
|
504
|
-
|
|
505
|
-
The system:
|
|
506
|
-
|
|
507
|
-
1. **Extracts testable deliverables** — What you should be able to do now
|
|
508
|
-
2. **Walks you through one at a time** — "Can you log in with email?" Yes/no, or describe what's wrong
|
|
509
|
-
3. **Diagnoses failures automatically** — Spawns debug agents to find root causes
|
|
510
|
-
4. **Creates verified fix plans** — Ready for immediate re-execution
|
|
511
|
-
|
|
512
|
-
If everything passes, you move on. If something's broken, you don't manually debug — you just run `/ez:execute-phase` again with the fix plans it created.
|
|
513
|
-
|
|
514
|
-
**Creates:** `{phase_num}-UAT.md`, fix plans if issues found
|
|
387
|
+
You test: Can register? Can login? Can connect to DB? All pass.
|
|
515
388
|
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
### 6. Repeat → Complete → Next Milestone
|
|
389
|
+
### 3. Repeat for Each Phase
|
|
519
390
|
|
|
520
|
-
```
|
|
391
|
+
```bash
|
|
521
392
|
/ez:discuss-phase 2
|
|
522
393
|
/ez:plan-phase 2
|
|
523
394
|
/ez:execute-phase 2
|
|
524
395
|
/ez:verify-work 2
|
|
525
|
-
...
|
|
526
|
-
/ez:complete-milestone
|
|
527
|
-
/ez:new-milestone
|
|
528
396
|
```
|
|
529
397
|
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
If you want faster intake during discussion, use `/ez:discuss-phase <n> --batch` to answer a small grouped set of questions at once instead of one-by-one.
|
|
533
|
-
|
|
534
|
-
Each phase gets your input (discuss), proper research (plan), clean execution (execute), and human verification (verify). Context stays fresh. Quality stays high.
|
|
535
|
-
|
|
536
|
-
When all phases are done, `/ez:complete-milestone` archives the milestone and tags the release.
|
|
537
|
-
|
|
538
|
-
Then `/ez:new-milestone` starts the next version — same flow as `new-project` but for your existing codebase. You describe what you want to build next, the system researches the domain, you scope requirements, and it creates a fresh roadmap. Each milestone is a clean cycle: define → build → ship.
|
|
539
|
-
|
|
540
|
-
---
|
|
541
|
-
|
|
542
|
-
### Quick Mode
|
|
543
|
-
|
|
544
|
-
```
|
|
545
|
-
/ez:quick
|
|
546
|
-
```
|
|
547
|
-
|
|
548
|
-
**For ad-hoc tasks that don't need full planning.**
|
|
549
|
-
|
|
550
|
-
Quick mode gives you EZ Agents guarantees (atomic commits, state tracking) with a faster path:
|
|
551
|
-
|
|
552
|
-
- **Same agents** — Planner + executor, same quality
|
|
553
|
-
- **Skips optional steps** — No research, no plan checker, no verifier
|
|
554
|
-
- **Separate tracking** — Lives in `.planning/quick/`, not phases
|
|
555
|
-
|
|
556
|
-
Use for: bug fixes, small features, config changes, one-off tasks.
|
|
557
|
-
|
|
558
|
-
```
|
|
559
|
-
/ez:quick
|
|
560
|
-
> What do you want to do? "Add dark mode toggle to settings"
|
|
561
|
-
```
|
|
562
|
-
|
|
563
|
-
**Creates:** `.planning/quick/001-add-dark-mode-toggle/PLAN.md`, `SUMMARY.md`
|
|
564
|
-
|
|
565
|
-
---
|
|
566
|
-
|
|
567
|
-
## Why It Works
|
|
568
|
-
|
|
569
|
-
### Context Engineering
|
|
570
|
-
|
|
571
|
-
Claude Code is incredibly powerful *if* you give it the context it needs. Most people don't.
|
|
572
|
-
|
|
573
|
-
EZ Agents handles it for you:
|
|
574
|
-
|
|
575
|
-
| File | What it does |
|
|
576
|
-
|------|--------------|
|
|
577
|
-
| `PROJECT.md` | Project vision, always loaded |
|
|
578
|
-
| `research/` | Ecosystem knowledge (stack, features, architecture, pitfalls) |
|
|
579
|
-
| `REQUIREMENTS.md` | Scoped v1/v2 requirements with phase traceability |
|
|
580
|
-
| `ROADMAP.md` | Where you're going, what's done |
|
|
581
|
-
| `STATE.md` | Decisions, blockers, position — memory across sessions |
|
|
582
|
-
| `PLAN.md` | Atomic task with XML structure, verification steps |
|
|
583
|
-
| `SUMMARY.md` | What happened, what changed, committed to history |
|
|
584
|
-
| `todos/` | Captured ideas and tasks for later work |
|
|
585
|
-
|
|
586
|
-
Size limits based on where Claude's quality degrades. Stay under, get consistent excellence.
|
|
587
|
-
|
|
588
|
-
### XML Prompt Formatting
|
|
589
|
-
|
|
590
|
-
Every plan is structured XML optimized for Claude:
|
|
591
|
-
|
|
592
|
-
```xml
|
|
593
|
-
<task type="auto">
|
|
594
|
-
<name>Create login endpoint</name>
|
|
595
|
-
<files>src/app/api/auth/login/route.ts</files>
|
|
596
|
-
<action>
|
|
597
|
-
Use jose for JWT (not jsonwebtoken - CommonJS issues).
|
|
598
|
-
Validate credentials against users table.
|
|
599
|
-
Return httpOnly cookie on success.
|
|
600
|
-
</action>
|
|
601
|
-
<verify>curl -X POST localhost:3000/api/auth/login returns 200 + Set-Cookie</verify>
|
|
602
|
-
<done>Valid credentials return cookie, invalid return 401</done>
|
|
603
|
-
</task>
|
|
604
|
-
```
|
|
605
|
-
|
|
606
|
-
Precise instructions. No guessing. Verification built in.
|
|
607
|
-
|
|
608
|
-
### Multi-Agent Orchestration
|
|
609
|
-
|
|
610
|
-
Every stage uses the same pattern: a thin orchestrator spawns specialized agents, collects results, and routes to the next step.
|
|
611
|
-
|
|
612
|
-
| Stage | Orchestrator does | Agents do |
|
|
613
|
-
|-------|------------------|-----------|
|
|
614
|
-
| Research | Coordinates, presents findings | 4 parallel researchers investigate stack, features, architecture, pitfalls |
|
|
615
|
-
| Planning | Validates, manages iteration | Planner creates plans, checker verifies, loop until pass |
|
|
616
|
-
| Execution | Groups into waves, tracks progress | Executors implement in parallel, each with fresh 200k context |
|
|
617
|
-
| Verification | Presents results, routes next | Verifier checks codebase against goals, debuggers diagnose failures |
|
|
618
|
-
|
|
619
|
-
The orchestrator never does heavy lifting. It spawns agents, waits, integrates results.
|
|
620
|
-
|
|
621
|
-
**The result:** You can run an entire phase — deep research, multiple plans created and verified, thousands of lines of code written across parallel executors, automated verification against goals — and your main context window stays at 30-40%. The work happens in fresh subagent contexts. Your session stays fast and responsive.
|
|
622
|
-
|
|
623
|
-
### Atomic Git Commits
|
|
624
|
-
|
|
625
|
-
Each task gets its own commit immediately after completion:
|
|
398
|
+
### 4. Complete Milestone
|
|
626
399
|
|
|
627
400
|
```bash
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
hij789k feat(08-02): implement password hashing
|
|
631
|
-
lmn012o feat(08-02): create registration endpoint
|
|
632
|
-
```
|
|
633
|
-
|
|
634
|
-
> [!NOTE]
|
|
635
|
-
> **Benefits:** Git bisect finds exact failing task. Each task independently revertable. Clear history for Claude in future sessions. Better observability in AI-automated workflow.
|
|
636
|
-
|
|
637
|
-
Every commit is surgical, traceable, and meaningful.
|
|
638
|
-
|
|
639
|
-
### Modular by Design
|
|
640
|
-
|
|
641
|
-
- Add phases to current milestone
|
|
642
|
-
- Insert urgent work between phases
|
|
643
|
-
- Complete milestones and start fresh
|
|
644
|
-
- Adjust plans without rebuilding everything
|
|
645
|
-
|
|
646
|
-
You're never locked in. The system adapts.
|
|
647
|
-
|
|
648
|
-
---
|
|
649
|
-
|
|
650
|
-
## Commands
|
|
651
|
-
|
|
652
|
-
### Core Workflow
|
|
653
|
-
|
|
654
|
-
| Command | What it does |
|
|
655
|
-
|---------|--------------|
|
|
656
|
-
| `/ez:new-project [--auto]` | Full initialization: questions → research → requirements → roadmap |
|
|
657
|
-
| `/ez:discuss-phase [N] [--auto]` | Capture implementation decisions before planning |
|
|
658
|
-
| `/ez:plan-phase [N] [--auto]` | Research + plan + verify for a phase |
|
|
659
|
-
| `/ez:execute-phase <N>` | Execute all plans in parallel waves, verify when complete |
|
|
660
|
-
| `/ez:verify-work [N]` | Manual user acceptance testing ¹ |
|
|
661
|
-
| `/ez:audit-milestone` | Verify milestone achieved its definition of done |
|
|
662
|
-
| `/ez:complete-milestone` | Archive milestone, tag release |
|
|
663
|
-
| `/ez:new-milestone [name]` | Start next version: questions → research → requirements → roadmap |
|
|
664
|
-
|
|
665
|
-
### Navigation
|
|
666
|
-
|
|
667
|
-
| Command | What it does |
|
|
668
|
-
|---------|--------------|
|
|
669
|
-
| `/ez:progress` | Where am I? What's next? |
|
|
670
|
-
| `/ez:help` | Show all commands and usage guide |
|
|
671
|
-
| `/ez:update` | Update EZ Agents with changelog preview |
|
|
672
|
-
| `/ez:join-discord` | Join the EZ Agents Discord community |
|
|
673
|
-
|
|
674
|
-
### Brownfield
|
|
675
|
-
|
|
676
|
-
| Command | What it does |
|
|
677
|
-
|---------|--------------|
|
|
678
|
-
| `/ez:map-codebase [area]` | Analyze existing codebase before new-project |
|
|
679
|
-
|
|
680
|
-
### Phase Management
|
|
681
|
-
|
|
682
|
-
| Command | What it does |
|
|
683
|
-
|---------|--------------|
|
|
684
|
-
| `/ez:add-phase` | Append phase to roadmap |
|
|
685
|
-
| `/ez:insert-phase [N]` | Insert urgent work between phases |
|
|
686
|
-
| `/ez:remove-phase [N]` | Remove future phase, renumber |
|
|
687
|
-
| `/ez:list-phase-assumptions [N]` | See Claude's intended approach before planning |
|
|
688
|
-
| `/ez:plan-milestone-gaps` | Create phases to close gaps from audit |
|
|
689
|
-
|
|
690
|
-
### Session
|
|
691
|
-
|
|
692
|
-
| Command | What it does |
|
|
693
|
-
|---------|--------------|
|
|
694
|
-
| `/ez:pause-work` | Create handoff when stopping mid-phase |
|
|
695
|
-
| `/ez:resume-work` | Restore from last session |
|
|
696
|
-
|
|
697
|
-
### Utilities
|
|
698
|
-
|
|
699
|
-
| Command | What it does |
|
|
700
|
-
|---------|--------------|
|
|
701
|
-
| `/ez:settings` | Configure model profile and workflow agents |
|
|
702
|
-
| `/ez:set-profile <profile>` | Switch model profile (quality/balanced/budget) |
|
|
703
|
-
| `/ez:add-todo [desc]` | Capture idea for later |
|
|
704
|
-
| `/ez:check-todos` | List pending todos |
|
|
705
|
-
| `/ez:debug [desc]` | Systematic debugging with persistent state |
|
|
706
|
-
| `/ez:quick [--full] [--discuss]` | Execute ad-hoc task with EZ Agents guarantees (`--full` adds plan-checking and verification, `--discuss` gathers context first) |
|
|
707
|
-
| `/ez:health [--repair]` | Validate `.planning/` directory integrity, auto-repair with `--repair` |
|
|
708
|
-
|
|
709
|
-
<sup>¹ Contributed by reddit user OracleGreyBeard</sup>
|
|
710
|
-
|
|
711
|
-
---
|
|
712
|
-
|
|
713
|
-
## Configuration
|
|
714
|
-
|
|
715
|
-
EZ Agents stores project settings in `.planning/config.json`. Configure during `/ez:new-project` or update later with `/ez:settings`. For the full config schema, workflow toggles, git branching options, and per-agent model breakdown, see the [User Guide](docs/USER-GUIDE.md#configuration-reference).
|
|
716
|
-
|
|
717
|
-
### Core Settings
|
|
718
|
-
|
|
719
|
-
| Setting | Options | Default | What it controls |
|
|
720
|
-
|---------|---------|---------|------------------|
|
|
721
|
-
| `mode` | `yolo`, `interactive` | `interactive` | Auto-approve vs confirm at each step |
|
|
722
|
-
| `granularity` | `coarse`, `standard`, `fine` | `standard` | Phase granularity — how finely scope is sliced (phases × plans) |
|
|
723
|
-
|
|
724
|
-
### Model Profiles
|
|
725
|
-
|
|
726
|
-
Control which Claude model each agent uses. Balance quality vs token spend.
|
|
727
|
-
|
|
728
|
-
| Profile | Planning | Execution | Verification |
|
|
729
|
-
|---------|----------|-----------|--------------|
|
|
730
|
-
| `quality` | Opus | Opus | Sonnet |
|
|
731
|
-
| `balanced` (default) | Opus | Sonnet | Sonnet |
|
|
732
|
-
| `budget` | Sonnet | Sonnet | Haiku |
|
|
733
|
-
|
|
734
|
-
Switch profiles:
|
|
401
|
+
/ez:audit-milestone # Checks all requirements are met
|
|
402
|
+
/ez:complete-milestone # Archives, tags v1.0
|
|
735
403
|
```
|
|
736
|
-
/ez:set-profile budget
|
|
737
|
-
```
|
|
738
|
-
|
|
739
|
-
Or configure via `/ez:settings`.
|
|
740
|
-
|
|
741
|
-
### Workflow Agents
|
|
742
|
-
|
|
743
|
-
These spawn additional agents during planning/execution. They improve quality but add tokens and time.
|
|
744
|
-
|
|
745
|
-
| Setting | Default | What it does |
|
|
746
|
-
|---------|---------|--------------|
|
|
747
|
-
| `workflow.research` | `true` | Researches domain before planning each phase |
|
|
748
|
-
| `workflow.plan_check` | `true` | Verifies plans achieve phase goals before execution |
|
|
749
|
-
| `workflow.verifier` | `true` | Confirms must-haves were delivered after execution |
|
|
750
|
-
| `workflow.auto_advance` | `false` | Auto-chain discuss → plan → execute without stopping |
|
|
751
|
-
|
|
752
|
-
Use `/ez:settings` to toggle these, or override per-invocation:
|
|
753
|
-
- `/ez:plan-phase --skip-research`
|
|
754
|
-
- `/ez:plan-phase --skip-verify`
|
|
755
|
-
|
|
756
|
-
### Execution
|
|
757
|
-
|
|
758
|
-
| Setting | Default | What it controls |
|
|
759
|
-
|---------|---------|------------------|
|
|
760
|
-
| `parallelization.enabled` | `true` | Run independent plans simultaneously |
|
|
761
|
-
| `planning.commit_docs` | `true` | Track `.planning/` in git |
|
|
762
|
-
|
|
763
|
-
### Git Branching
|
|
764
|
-
|
|
765
|
-
Control how EZ Agents handles branches during execution.
|
|
766
|
-
|
|
767
|
-
| Setting | Options | Default | What it does |
|
|
768
|
-
|---------|---------|---------|--------------|
|
|
769
|
-
| `git.branching_strategy` | `none`, `phase`, `milestone` | `none` | Branch creation strategy |
|
|
770
|
-
| `git.phase_branch_template` | string | `ez/phase-{phase}-{slug}` | Template for phase branches |
|
|
771
|
-
| `git.milestone_branch_template` | string | `ez/{milestone}-{slug}` | Template for milestone branches |
|
|
772
|
-
|
|
773
|
-
**Strategies:**
|
|
774
|
-
- **`none`** — Commits to current branch (default EZ Agents behavior)
|
|
775
|
-
- **`phase`** — Creates a branch per phase, merges at phase completion
|
|
776
|
-
- **`milestone`** — Creates one branch for entire milestone, merges at completion
|
|
777
|
-
|
|
778
|
-
At milestone completion, EZ Agents offers squash merge (recommended) or merge with history.
|
|
779
404
|
|
|
780
405
|
---
|
|
781
406
|
|
|
782
|
-
##
|
|
783
|
-
|
|
784
|
-
### Protecting Sensitive Files
|
|
785
|
-
|
|
786
|
-
EZ Agents' codebase mapping and analysis commands read files to understand your project. **Protect files containing secrets** by adding them to Claude Code's deny list:
|
|
787
|
-
|
|
788
|
-
1. Open Claude Code settings (`.claude/settings.json` or global)
|
|
789
|
-
2. Add sensitive file patterns to the deny list:
|
|
790
|
-
|
|
791
|
-
```json
|
|
792
|
-
{
|
|
793
|
-
"permissions": {
|
|
794
|
-
"deny": [
|
|
795
|
-
"Read(.env)",
|
|
796
|
-
"Read(.env.*)",
|
|
797
|
-
"Read(**/secrets/*)",
|
|
798
|
-
"Read(**/*credential*)",
|
|
799
|
-
"Read(**/*.pem)",
|
|
800
|
-
"Read(**/*.key)"
|
|
801
|
-
]
|
|
802
|
-
}
|
|
803
|
-
}
|
|
804
|
-
```
|
|
805
|
-
|
|
806
|
-
This prevents Claude from reading these files entirely, regardless of what commands you run.
|
|
407
|
+
## Documentation
|
|
807
408
|
|
|
808
|
-
|
|
809
|
-
|
|
409
|
+
| Doc | What's Inside |
|
|
410
|
+
|-----|---------------|
|
|
411
|
+
| [User Guide](docs/USER-GUIDE.md) | Full command reference, workflows, troubleshooting |
|
|
412
|
+
| [Workflows](docs/WORKFLOWS.md) | Complete workflow diagrams for all use cases |
|
|
413
|
+
| [Provider Behaviors](docs/PROVIDER-BEHAVIORS.md) | Differences between Claude, OpenCode, Gemini, etc. |
|
|
414
|
+
| [Qwen Code Install](docs/QWEN-CODE-INSTALL.md) | Fix for Qwen Code CLI installation issues |
|
|
810
415
|
|
|
811
416
|
---
|
|
812
417
|
|
|
813
|
-
##
|
|
418
|
+
## Contributing
|
|
814
419
|
|
|
815
|
-
|
|
816
|
-
- Restart your runtime to reload commands/skills
|
|
817
|
-
- Verify files exist in `~/.claude/commands/ez/` (global) or `./.claude/commands/ez/` (local)
|
|
818
|
-
- For Codex, verify skills exist in `~/.codex/skills/ez-*/SKILL.md` (global) or `./.codex/skills/ez-*/SKILL.md` (local)
|
|
420
|
+
Contributions welcome! A few guidelines:
|
|
819
421
|
|
|
820
|
-
**
|
|
821
|
-
-
|
|
822
|
-
|
|
422
|
+
1. **Test your changes** — Run `npm test` before submitting
|
|
423
|
+
2. **Keep it cross-platform** — No Unix-specific commands (use `fs-utils.cjs`)
|
|
424
|
+
3. **Document behavior** — Update USER-GUIDE.md for new commands
|
|
425
|
+
4. **Respect the workflow** — EZ Agents is about structure; don't break existing patterns
|
|
823
426
|
|
|
824
|
-
|
|
825
|
-
```bash
|
|
826
|
-
ez-agents-update
|
|
827
|
-
```
|
|
427
|
+
### Development Setup
|
|
828
428
|
|
|
829
|
-
**Using Docker or containerized environments?**
|
|
830
|
-
|
|
831
|
-
If file reads fail with tilde paths (`~/.claude/...`), set `CLAUDE_CONFIG_DIR` before installing:
|
|
832
429
|
```bash
|
|
833
|
-
|
|
430
|
+
git clone https://github.com/howlil/ez-agents.git
|
|
431
|
+
cd ez-agents
|
|
432
|
+
npm install
|
|
433
|
+
npm run build:hooks
|
|
434
|
+
npm link
|
|
834
435
|
```
|
|
835
|
-
This ensures absolute paths are used instead of `~` which may not expand correctly in containers.
|
|
836
|
-
|
|
837
|
-
### Uninstalling
|
|
838
436
|
|
|
839
|
-
|
|
437
|
+
### Running Tests
|
|
840
438
|
|
|
841
439
|
```bash
|
|
842
|
-
#
|
|
843
|
-
|
|
844
|
-
ez-agents --opencode --global --uninstall
|
|
845
|
-
ez-agents --codex --global --uninstall
|
|
846
|
-
|
|
847
|
-
# Local installs (current project)
|
|
848
|
-
ez-agents --claude --local --uninstall
|
|
849
|
-
ez-agents --opencode --local --uninstall
|
|
850
|
-
ez-agents --codex --local --uninstall
|
|
440
|
+
npm test # Run all tests
|
|
441
|
+
npm run test:coverage # With coverage report
|
|
851
442
|
```
|
|
852
443
|
|
|
853
|
-
This removes all EZ Agents commands, agents, hooks, and settings while preserving your other configurations.
|
|
854
|
-
|
|
855
|
-
---
|
|
856
|
-
|
|
857
|
-
## Community Ports
|
|
858
|
-
|
|
859
|
-
OpenCode, Gemini CLI, and Codex are now natively supported via `ez-agents`.
|
|
860
|
-
|
|
861
|
-
These community ports pioneered multi-runtime support:
|
|
862
|
-
|
|
863
|
-
| Project | Platform | Description |
|
|
864
|
-
|---------|----------|-------------|
|
|
865
|
-
| [ez-opencode](https://github.com/rokicool/ez-opencode) | OpenCode | Original OpenCode adaptation |
|
|
866
|
-
| ez-gemini (archived) | Gemini CLI | Original Gemini adaptation by uberfuzzy |
|
|
867
|
-
|
|
868
444
|
---
|
|
869
445
|
|
|
870
|
-
##
|
|
446
|
+
## Acknowledgments
|
|
871
447
|
|
|
872
|
-
|
|
873
|
-
<picture>
|
|
874
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=glittercowboy/ez-agents&type=Date&theme=dark" />
|
|
875
|
-
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=glittercowboy/ez-agents&type=Date" />
|
|
876
|
-
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=glittercowboy/ez-agents&type=Date" />
|
|
877
|
-
</picture>
|
|
878
|
-
</a>
|
|
448
|
+
EZ Agents is a fork of the original project by [TÂCHES](https://github.com/glittercowboy). This fork adds multi-model support (Qwen, Kimi, OpenAI), enterprise-grade security, and cross-platform reliability. Not affiliated with the upstream repository.
|
|
879
449
|
|
|
880
450
|
---
|
|
881
451
|
|
|
882
452
|
## License
|
|
883
453
|
|
|
884
|
-
MIT
|
|
454
|
+
MIT — see [LICENSE](LICENSE)
|
|
885
455
|
|
|
886
456
|
---
|
|
887
457
|
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
**Claude Code is powerful. EZ Agents makes it reliable.**
|
|
458
|
+
## Getting Help
|
|
891
459
|
|
|
892
|
-
|
|
460
|
+
- **Issues:** [GitHub Issues](https://github.com/howlil/ez-agents/issues)
|
|
461
|
+
- **Discussions:** [GitHub Discussions](https://github.com/howlil/ez-agents/discussions)
|
|
462
|
+
- **npm:** [@howlil/ez-agents](https://www.npmjs.com/package/@howlil/ez-agents)
|