@howlil/ez-agents 2.0.1 → 3.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 +72 -25
- package/README.zh-CN.md +84 -84
- package/agents/ez-ui-auditor.md +0 -2
- package/agents/ez-ui-checker.md +2 -4
- package/agents/ez-ui-researcher.md +0 -2
- package/bin/install.js +84 -84
- package/commands/ez/debug.md +1 -1
- package/commands/ez/map-codebase.md +1 -1
- package/commands/ez/reapply-patches.md +3 -3
- package/commands/ez/research-phase.md +1 -1
- package/{get-shit-done → ez-agents}/bin/ez-tools.cjs +1 -1
- package/{get-shit-done → ez-agents}/bin/lib/auth.cjs +2 -2
- package/{get-shit-done → ez-agents}/bin/lib/core.cjs +16 -16
- package/{get-shit-done → ez-agents}/bin/lib/init.cjs +20 -20
- package/{get-shit-done → ez-agents}/bin/lib/logger.cjs +2 -2
- package/{get-shit-done → ez-agents}/bin/lib/temp-file.cjs +2 -2
- package/{get-shit-done → ez-agents}/bin/lib/test-file-lock.cjs +1 -1
- package/{get-shit-done → ez-agents}/bin/lib/test-graceful.cjs +1 -1
- package/{get-shit-done → ez-agents}/bin/lib/test-logger.cjs +1 -1
- package/{get-shit-done → ez-agents}/bin/lib/test-temp-file.cjs +2 -2
- package/{get-shit-done → ez-agents}/workflows/add-phase.md +2 -2
- package/{get-shit-done → ez-agents}/workflows/audit-milestone.md +1 -1
- package/{get-shit-done → ez-agents}/workflows/complete-milestone.md +3 -3
- package/ez-agents/workflows/debug.md +0 -0
- package/{get-shit-done → ez-agents}/workflows/discovery-phase.md +5 -5
- package/{get-shit-done → ez-agents}/workflows/discuss-phase.md +2 -2
- package/{get-shit-done → ez-agents}/workflows/execute-phase.md +5 -5
- package/{get-shit-done → ez-agents}/workflows/execute-plan.md +10 -10
- package/{get-shit-done → ez-agents}/workflows/help.md +9 -9
- package/{get-shit-done → ez-agents}/workflows/insert-phase.md +2 -2
- package/{get-shit-done → ez-agents}/workflows/map-codebase.md +3 -3
- package/{get-shit-done → ez-agents}/workflows/new-milestone.md +4 -4
- package/{get-shit-done → ez-agents}/workflows/new-project.md +8 -8
- package/{get-shit-done → ez-agents}/workflows/plan-phase.md +9 -9
- package/{get-shit-done → ez-agents}/workflows/progress.md +2 -2
- package/{get-shit-done → ez-agents}/workflows/quick.md +10 -10
- package/{get-shit-done → ez-agents}/workflows/remove-phase.md +4 -4
- package/{get-shit-done → ez-agents}/workflows/research-phase.md +4 -4
- package/{get-shit-done → ez-agents}/workflows/resume-project.md +1 -1
- package/{get-shit-done → ez-agents}/workflows/set-profile.md +3 -3
- package/{get-shit-done → ez-agents}/workflows/transition.md +3 -3
- package/{get-shit-done → ez-agents}/workflows/ui-phase.md +12 -12
- package/{get-shit-done → ez-agents}/workflows/ui-review.md +6 -6
- package/{get-shit-done → ez-agents}/workflows/update.md +29 -29
- package/{get-shit-done → ez-agents}/workflows/validate-phase.md +5 -5
- package/{get-shit-done → ez-agents}/workflows/verify-phase.md +6 -6
- package/{get-shit-done → ez-agents}/workflows/verify-work.md +5 -5
- package/hooks/dist/ez-check-update.js +81 -0
- package/hooks/dist/ez-context-monitor.js +141 -0
- package/hooks/dist/ez-statusline.js +115 -0
- package/package.json +13 -3
- package/scripts/build-hooks.js +3 -3
- /package/{get-shit-done → ez-agents}/bin/lib/assistant-adapter.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/audit-exec.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/circuit-breaker.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/commands.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/config.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/file-lock.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/frontmatter.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/fs-utils.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/git-utils.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/health-check.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/index.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/milestone.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/model-provider.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/phase.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/retry.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/roadmap.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/safe-exec.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/safe-path.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/state.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/template.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/test-safe-exec.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/test-safe-path.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/timeout-exec.cjs +0 -0
- /package/{get-shit-done → ez-agents}/bin/lib/verify.cjs +0 -0
- /package/{get-shit-done → ez-agents}/references/checkpoints.md +0 -0
- /package/{get-shit-done → ez-agents}/references/continuation-format.md +0 -0
- /package/{get-shit-done → ez-agents}/references/decimal-phase-calculation.md +0 -0
- /package/{get-shit-done → ez-agents}/references/git-integration.md +0 -0
- /package/{get-shit-done → ez-agents}/references/git-planning-commit.md +0 -0
- /package/{get-shit-done → ez-agents}/references/model-profile-resolution.md +0 -0
- /package/{get-shit-done → ez-agents}/references/model-profiles.md +0 -0
- /package/{get-shit-done → ez-agents}/references/phase-argument-parsing.md +0 -0
- /package/{get-shit-done → ez-agents}/references/planning-config.md +0 -0
- /package/{get-shit-done → ez-agents}/references/questioning.md +0 -0
- /package/{get-shit-done → ez-agents}/references/tdd.md +0 -0
- /package/{get-shit-done → ez-agents}/references/ui-brand.md +0 -0
- /package/{get-shit-done → ez-agents}/references/verification-patterns.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/DEBUG.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/UAT.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/UI-SPEC.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/VALIDATION.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/codebase/architecture.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/codebase/concerns.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/codebase/conventions.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/codebase/integrations.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/codebase/stack.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/codebase/structure.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/codebase/testing.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/config.json +0 -0
- /package/{get-shit-done → ez-agents}/templates/context.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/continue-here.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/copilot-instructions.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/debug-subagent-prompt.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/discovery.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/milestone-archive.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/milestone.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/phase-prompt.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/planner-subagent-prompt.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/project.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/requirements.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/research-project/ARCHITECTURE.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/research-project/FEATURES.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/research-project/PITFALLS.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/research-project/STACK.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/research-project/SUMMARY.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/research.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/retrospective.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/roadmap.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/state.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/summary-complex.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/summary-minimal.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/summary-standard.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/summary.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/user-setup.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/verification-report.md +0 -0
- /package/{get-shit-done → ez-agents}/workflows/add-tests.md +0 -0
- /package/{get-shit-done → ez-agents}/workflows/add-todo.md +0 -0
- /package/{get-shit-done → ez-agents}/workflows/autonomous.md +0 -0
- /package/{get-shit-done → ez-agents}/workflows/check-todos.md +0 -0
- /package/{get-shit-done → ez-agents}/workflows/cleanup.md +0 -0
- /package/{get-shit-done → ez-agents}/workflows/diagnose-issues.md +0 -0
- /package/{get-shit-done → ez-agents}/workflows/health.md +0 -0
- /package/{get-shit-done → ez-agents}/workflows/list-phase-assumptions.md +0 -0
- /package/{get-shit-done → ez-agents}/workflows/node-repair.md +0 -0
- /package/{get-shit-done → ez-agents}/workflows/pause-work.md +0 -0
- /package/{get-shit-done → ez-agents}/workflows/plan-milestone-gaps.md +0 -0
- /package/{get-shit-done → ez-agents}/workflows/settings.md +0 -0
- /package/{get-shit-done → ez-agents}/workflows/stats.md +0 -0
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
**English** · [简体中文](README.zh-CN.md)
|
|
8
8
|
|
|
9
|
-
**An independent fork of
|
|
9
|
+
**An independent fork of EZ Agents (Get Shit Done) with multi-model support (Qwen, Kimi, OpenAI, Claude) and enhanced reliability features.**
|
|
10
10
|
|
|
11
11
|
**Solves context rot — with added security, error handling, and cross-platform support.**
|
|
12
12
|
|
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
<br>
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
|
|
20
|
+
npm install -g git+https://github.com/howlil/ez-agents.git
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
**Works on Mac, Windows, and Linux.**
|
|
24
24
|
|
|
25
25
|
<br>
|
|
26
26
|
|
|
27
|
-
**Original
|
|
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
28
|
|
|
29
29
|
<br>
|
|
30
30
|
|
|
@@ -44,17 +44,17 @@ npx github:howlil/ez-agents
|
|
|
44
44
|
|
|
45
45
|
## 🚀 What's New in EZ Agents
|
|
46
46
|
|
|
47
|
-
> **Note:** This is an **independent fork** of
|
|
47
|
+
> **Note:** This is an **independent fork** of EZ Agents (Get Shit Done). Not affiliated with the original EZ Agents project.
|
|
48
48
|
>
|
|
49
|
-
> **Original
|
|
49
|
+
> **Original EZ Agents (Get Shit Done):** [glittercowboy/ez-agents](https://github.com/glittercowboy/ez-agents) by TÂCHES
|
|
50
50
|
>
|
|
51
51
|
> **This Fork:** [howlil/ez-agents](https://github.com/howlil/ez-agents) with multi-model support & enhancements
|
|
52
52
|
|
|
53
|
-
**EZ Agents** adds **multi-model support** and **enterprise-grade reliability** to
|
|
53
|
+
**EZ Agents** adds **multi-model support** and **enterprise-grade reliability** to EZ Agents (Get Shit Done).
|
|
54
54
|
|
|
55
55
|
### Why This Fork Exists
|
|
56
56
|
|
|
57
|
-
I needed
|
|
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:
|
|
58
58
|
|
|
59
59
|
- 🌍 **Multi-Model**: Qwen (Alibaba), Kimi (Moonshot), OpenAI, and Anthropic
|
|
60
60
|
- 🔒 **Security**: Command injection prevention, path validation, audit logging
|
|
@@ -64,7 +64,7 @@ I needed GSD (Get Shit Done) to work with multiple AI providers (not just Anthro
|
|
|
64
64
|
|
|
65
65
|
### Features Comparison
|
|
66
66
|
|
|
67
|
-
| Feature | Original
|
|
67
|
+
| Feature | Original EZ Agents (Get Shit Done) | EZ Agents Fork |
|
|
68
68
|
|---------|------------------------------|-----------|
|
|
69
69
|
| **Multi-Model** | Anthropic only | ✓ Anthropic, Qwen, Kimi, OpenAI |
|
|
70
70
|
| **Security** | Basic | ✓ Command allowlist, path validation, audit log |
|
|
@@ -77,7 +77,7 @@ I needed GSD (Get Shit Done) to work with multiple AI providers (not just Anthro
|
|
|
77
77
|
### 17 New Libraries
|
|
78
78
|
|
|
79
79
|
```
|
|
80
|
-
|
|
80
|
+
ez-agents/bin/lib/
|
|
81
81
|
├── safe-exec.cjs # Command injection prevention (allowlist + validation)
|
|
82
82
|
├── safe-path.cjs # Path traversal prevention
|
|
83
83
|
├── auth.cjs # Secure credential storage (keytar + fallback)
|
|
@@ -155,36 +155,83 @@ ez-agents --help
|
|
|
155
155
|
|
|
156
156
|
### Install
|
|
157
157
|
|
|
158
|
-
|
|
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)**
|
|
159
161
|
|
|
160
162
|
```bash
|
|
161
|
-
#
|
|
162
|
-
|
|
163
|
+
# Install globally from GitHub
|
|
164
|
+
npm install -g git+https://github.com/howlil/ez-agents.git
|
|
163
165
|
|
|
164
|
-
#
|
|
165
|
-
|
|
166
|
+
# Then run installer
|
|
167
|
+
ez-agents --claude --global
|
|
166
168
|
```
|
|
167
169
|
|
|
168
|
-
**Option 2:
|
|
170
|
+
**Option 2: Use npx (No Installation)**
|
|
169
171
|
|
|
170
172
|
```bash
|
|
171
|
-
#
|
|
172
|
-
|
|
173
|
+
# Run installer directly without installing
|
|
174
|
+
npx @howlil/ez-agents --claude --global
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**Option 3: Install from npm**
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
# Install from npm registry
|
|
181
|
+
npm install -g @howlil/ez-agents
|
|
173
182
|
|
|
174
183
|
# Then use
|
|
175
184
|
ez-agents --claude --global
|
|
176
185
|
ez-agents-update
|
|
177
186
|
```
|
|
178
187
|
|
|
179
|
-
**Option
|
|
188
|
+
**Option 4: Install from Local Source (Development)**
|
|
180
189
|
|
|
181
190
|
```bash
|
|
182
|
-
#
|
|
183
|
-
|
|
191
|
+
# Clone the repository
|
|
192
|
+
git clone https://github.com/howlil/ez-agents.git
|
|
193
|
+
cd ez-agents
|
|
194
|
+
|
|
195
|
+
# Install globally from local directory
|
|
196
|
+
npm install -g .
|
|
197
|
+
|
|
198
|
+
# Then use
|
|
199
|
+
ez-agents --claude --global
|
|
184
200
|
```
|
|
185
201
|
|
|
186
202
|
---
|
|
187
203
|
|
|
204
|
+
**Installation Commands Reference:**
|
|
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
|
|
212
|
+
|
|
213
|
+
# Setup for Claude Code (local project)
|
|
214
|
+
ez-agents --claude --local
|
|
215
|
+
|
|
216
|
+
# Setup for all runtimes (Claude, OpenCode, Gemini, Codex, Copilot)
|
|
217
|
+
ez-agents --all --global
|
|
218
|
+
|
|
219
|
+
# Update EZ Agents
|
|
220
|
+
ez-agents-update
|
|
221
|
+
|
|
222
|
+
# Force reinstall
|
|
223
|
+
ez-agents-update --force
|
|
224
|
+
|
|
225
|
+
# Check version
|
|
226
|
+
ez-agents --version
|
|
227
|
+
|
|
228
|
+
# Help
|
|
229
|
+
ez-agents --help
|
|
230
|
+
|
|
231
|
+
# Uninstall
|
|
232
|
+
ez-agents --all --global --uninstall
|
|
233
|
+
```
|
|
234
|
+
|
|
188
235
|
I'm a solo developer. I don't write code — Claude Code does.
|
|
189
236
|
|
|
190
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.
|
|
@@ -815,18 +862,18 @@ These community ports pioneered multi-runtime support:
|
|
|
815
862
|
|
|
816
863
|
| Project | Platform | Description |
|
|
817
864
|
|---------|----------|-------------|
|
|
818
|
-
| [ez-opencode](https://github.com/rokicool/
|
|
865
|
+
| [ez-opencode](https://github.com/rokicool/ez-opencode) | OpenCode | Original OpenCode adaptation |
|
|
819
866
|
| ez-gemini (archived) | Gemini CLI | Original Gemini adaptation by uberfuzzy |
|
|
820
867
|
|
|
821
868
|
---
|
|
822
869
|
|
|
823
870
|
## Star History
|
|
824
871
|
|
|
825
|
-
<a href="https://star-history.com/#glittercowboy/
|
|
872
|
+
<a href="https://star-history.com/#glittercowboy/ez-agents&Date">
|
|
826
873
|
<picture>
|
|
827
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=glittercowboy/
|
|
828
|
-
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=glittercowboy/
|
|
829
|
-
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=glittercowboy/
|
|
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" />
|
|
830
877
|
</picture>
|
|
831
878
|
</a>
|
|
832
879
|
|
package/README.zh-CN.md
CHANGED
|
@@ -22,7 +22,7 @@ npx github:howlil/ez-agents
|
|
|
22
22
|
|
|
23
23
|
<br>
|
|
24
24
|
|
|
25
|
-
**Original
|
|
25
|
+
**Original EZ Agents by** [TÂCHES](https://github.com/glittercowboy/ez-agents) | **EZ Agents Fork by** [@howlil](https://github.com/howlil)
|
|
26
26
|
|
|
27
27
|
<br>
|
|
28
28
|
|
|
@@ -46,7 +46,7 @@ npx github:howlil/ez-agents
|
|
|
46
46
|
|
|
47
47
|
市面上已经有其他规格驱动开发工具,比如 BMAD、Speckit……但它们要么把事情搞得比必要的复杂得多了些(冲刺仪式、故事点、利益相关方同步、复盘、Jira 流程),要么根本缺少对你到底在构建什么的整体理解。我不是一家 50 人的软件公司。我不想演企业流程。我只是个想把好东西真正做出来的创作者。
|
|
48
48
|
|
|
49
|
-
所以我做了
|
|
49
|
+
所以我做了 EZ Agents。复杂性在系统内部,不在你的工作流里。幕后是上下文工程、XML 提示格式、子代理编排、状态管理;你看到的是几个真能工作的命令。
|
|
50
50
|
|
|
51
51
|
这套系统会把 Claude 完成工作 *以及* 验证结果所需的一切上下文都准备好。我信任这个工作流,因为它确实能把事情做好。
|
|
52
52
|
|
|
@@ -184,12 +184,12 @@ claude --dangerously-skip-permissions
|
|
|
184
184
|
|
|
185
185
|
## 它是怎么工作的
|
|
186
186
|
|
|
187
|
-
> **已经有现成代码库?** 先运行 `/
|
|
187
|
+
> **已经有现成代码库?** 先运行 `/ez:map-codebase`。它会并行拉起多个代理分析你的技术栈、架构、约定和风险点。之后 `/ez:new-project` 就会真正"理解"你的代码库,提问会聚焦在你打算新增的部分,规划时也会自动加载你的现有模式。
|
|
188
188
|
|
|
189
189
|
### 1. 初始化项目
|
|
190
190
|
|
|
191
191
|
```
|
|
192
|
-
/
|
|
192
|
+
/ez:new-project
|
|
193
193
|
```
|
|
194
194
|
|
|
195
195
|
一个命令,一条完整流程。系统会:
|
|
@@ -208,7 +208,7 @@ claude --dangerously-skip-permissions
|
|
|
208
208
|
### 2. 讨论阶段
|
|
209
209
|
|
|
210
210
|
```
|
|
211
|
-
/
|
|
211
|
+
/ez:discuss-phase 1
|
|
212
212
|
```
|
|
213
213
|
|
|
214
214
|
**这是你塑造实现方式的地方。**
|
|
@@ -236,7 +236,7 @@ claude --dangerously-skip-permissions
|
|
|
236
236
|
### 3. 规划阶段
|
|
237
237
|
|
|
238
238
|
```
|
|
239
|
-
/
|
|
239
|
+
/ez:plan-phase 1
|
|
240
240
|
```
|
|
241
241
|
|
|
242
242
|
系统会:
|
|
@@ -254,7 +254,7 @@ claude --dangerously-skip-permissions
|
|
|
254
254
|
### 4. 执行阶段
|
|
255
255
|
|
|
256
256
|
```
|
|
257
|
-
/
|
|
257
|
+
/ez:execute-phase 1
|
|
258
258
|
```
|
|
259
259
|
|
|
260
260
|
系统会:
|
|
@@ -305,7 +305,7 @@ claude --dangerously-skip-permissions
|
|
|
305
305
|
### 5. 验证工作
|
|
306
306
|
|
|
307
307
|
```
|
|
308
|
-
/
|
|
308
|
+
/ez:verify-work 1
|
|
309
309
|
```
|
|
310
310
|
|
|
311
311
|
**这是你确认它是否真的可用的地方。**
|
|
@@ -319,7 +319,7 @@ claude --dangerously-skip-permissions
|
|
|
319
319
|
3. **自动诊断失败**:拉起 debug 代理定位根因
|
|
320
320
|
4. **创建验证过的修复计划**:可立刻重新执行
|
|
321
321
|
|
|
322
|
-
如果一切通过,就进入下一步;如果哪里坏了,你不需要手动 debug,只要重新运行 `/
|
|
322
|
+
如果一切通过,就进入下一步;如果哪里坏了,你不需要手动 debug,只要重新运行 `/ez:execute-phase`,执行它自动生成的修复计划即可。
|
|
323
323
|
|
|
324
324
|
**生成:** `{phase_num}-UAT.md`,以及发现问题时的修复计划
|
|
325
325
|
|
|
@@ -328,36 +328,36 @@ claude --dangerously-skip-permissions
|
|
|
328
328
|
### 6. 重复 → 完成 → 下一个里程碑
|
|
329
329
|
|
|
330
330
|
```
|
|
331
|
-
/
|
|
332
|
-
/
|
|
333
|
-
/
|
|
334
|
-
/
|
|
331
|
+
/ez:discuss-phase 2
|
|
332
|
+
/ez:plan-phase 2
|
|
333
|
+
/ez:execute-phase 2
|
|
334
|
+
/ez:verify-work 2
|
|
335
335
|
...
|
|
336
|
-
/
|
|
337
|
-
/
|
|
336
|
+
/ez:complete-milestone
|
|
337
|
+
/ez:new-milestone
|
|
338
338
|
```
|
|
339
339
|
|
|
340
340
|
循环执行 **讨论 → 规划 → 执行 → 验证**,直到整个里程碑完成。
|
|
341
341
|
|
|
342
|
-
如果你希望在讨论阶段更快收集信息,可以用 `/
|
|
342
|
+
如果你希望在讨论阶段更快收集信息,可以用 `/ez:discuss-phase <n> --batch`,一次回答一小组问题,而不是逐个问答。
|
|
343
343
|
|
|
344
344
|
每个阶段都会得到你的输入(discuss)、充分研究(plan)、干净执行(execute)和人工验证(verify)。上下文始终保持新鲜,质量也能持续稳定。
|
|
345
345
|
|
|
346
|
-
当所有阶段完成后,`/
|
|
346
|
+
当所有阶段完成后,`/ez:complete-milestone` 会归档当前里程碑并打 release tag。
|
|
347
347
|
|
|
348
|
-
接着用 `/
|
|
348
|
+
接着用 `/ez:new-milestone` 开启下一个版本。它和 `new-project` 流程相同,只是面向你现有的代码库。你描述下一步想构建什么,系统研究领域、梳理需求,再产出新的路线图。每个里程碑都是一个干净周期:定义 → 构建 → 发布。
|
|
349
349
|
|
|
350
350
|
---
|
|
351
351
|
|
|
352
352
|
### 快速模式
|
|
353
353
|
|
|
354
354
|
```
|
|
355
|
-
/
|
|
355
|
+
/ez:quick
|
|
356
356
|
```
|
|
357
357
|
|
|
358
358
|
**适用于不需要完整规划的临时任务。**
|
|
359
359
|
|
|
360
|
-
快速模式保留
|
|
360
|
+
快速模式保留 EZ Agents 的核心保障(原子提交、状态跟踪),但路径更短:
|
|
361
361
|
|
|
362
362
|
- **相同的代理体系**:同样是 planner + executor,质量不降
|
|
363
363
|
- **跳过可选步骤**:没有 research、plan checker、verifier
|
|
@@ -366,7 +366,7 @@ claude --dangerously-skip-permissions
|
|
|
366
366
|
适用场景:修 bug、小功能、配置改动、一次性任务。
|
|
367
367
|
|
|
368
368
|
```
|
|
369
|
-
/
|
|
369
|
+
/ez:quick
|
|
370
370
|
> What do you want to do? "Add dark mode toggle to settings"
|
|
371
371
|
```
|
|
372
372
|
|
|
@@ -380,7 +380,7 @@ claude --dangerously-skip-permissions
|
|
|
380
380
|
|
|
381
381
|
Claude Code 非常强大,前提是你把它需要的上下文给对。大多数人做不到。
|
|
382
382
|
|
|
383
|
-
|
|
383
|
+
EZ Agents 会替你处理:
|
|
384
384
|
|
|
385
385
|
| 文件 | 作用 |
|
|
386
386
|
|------|------|
|
|
@@ -463,58 +463,58 @@ lmn012o feat(08-02): create registration endpoint
|
|
|
463
463
|
|
|
464
464
|
| 命令 | 作用 |
|
|
465
465
|
|------|------|
|
|
466
|
-
| `/
|
|
467
|
-
| `/
|
|
468
|
-
| `/
|
|
469
|
-
| `/
|
|
470
|
-
| `/
|
|
471
|
-
| `/
|
|
472
|
-
| `/
|
|
473
|
-
| `/
|
|
466
|
+
| `/ez:new-project [--auto]` | 完整初始化:提问 → 研究 → 需求 → 路线图 |
|
|
467
|
+
| `/ez:discuss-phase [N] [--auto]` | 在规划前收集实现决策 |
|
|
468
|
+
| `/ez:plan-phase [N] [--auto]` | 为某个阶段执行研究 + 规划 + 验证 |
|
|
469
|
+
| `/ez:execute-phase <N>` | 以并行 wave 执行全部计划,完成后验证 |
|
|
470
|
+
| `/ez:verify-work [N]` | 人工用户验收测试 ¹ |
|
|
471
|
+
| `/ez:audit-milestone` | 验证里程碑是否达到完成定义 |
|
|
472
|
+
| `/ez:complete-milestone` | 归档里程碑并打 release tag |
|
|
473
|
+
| `/ez:new-milestone [name]` | 开始下一个版本:提问 → 研究 → 需求 → 路线图 |
|
|
474
474
|
|
|
475
475
|
### 导航
|
|
476
476
|
|
|
477
477
|
| 命令 | 作用 |
|
|
478
478
|
|------|------|
|
|
479
|
-
| `/
|
|
480
|
-
| `/
|
|
481
|
-
| `/
|
|
482
|
-
| `/
|
|
479
|
+
| `/ez:progress` | 我现在在哪?下一步是什么? |
|
|
480
|
+
| `/ez:help` | 显示全部命令和使用指南 |
|
|
481
|
+
| `/ez:update` | 更新 EZ Agents,并预览变更日志 |
|
|
482
|
+
| `/ez:join-discord` | 加入 EZ Agents Discord 社区 |
|
|
483
483
|
|
|
484
484
|
### Brownfield
|
|
485
485
|
|
|
486
486
|
| 命令 | 作用 |
|
|
487
487
|
|------|------|
|
|
488
|
-
| `/
|
|
488
|
+
| `/ez:map-codebase` | 在 `new-project` 前分析现有代码库 |
|
|
489
489
|
|
|
490
490
|
### 阶段管理
|
|
491
491
|
|
|
492
492
|
| 命令 | 作用 |
|
|
493
493
|
|------|------|
|
|
494
|
-
| `/
|
|
495
|
-
| `/
|
|
496
|
-
| `/
|
|
497
|
-
| `/
|
|
498
|
-
| `/
|
|
494
|
+
| `/ez:add-phase` | 在路线图末尾追加 phase |
|
|
495
|
+
| `/ez:insert-phase [N]` | 在 phase 之间插入紧急工作 |
|
|
496
|
+
| `/ez:remove-phase [N]` | 删除未来 phase,并重编号 |
|
|
497
|
+
| `/ez:list-phase-assumptions [N]` | 在规划前查看 Claude 打算采用的方案 |
|
|
498
|
+
| `/ez:plan-milestone-gaps` | 为 audit 发现的缺口创建 phase |
|
|
499
499
|
|
|
500
500
|
### 会话
|
|
501
501
|
|
|
502
502
|
| 命令 | 作用 |
|
|
503
503
|
|------|------|
|
|
504
|
-
| `/
|
|
505
|
-
| `/
|
|
504
|
+
| `/ez:pause-work` | 在中途暂停时创建交接上下文 |
|
|
505
|
+
| `/ez:resume-work` | 从上一次会话恢复 |
|
|
506
506
|
|
|
507
507
|
### 工具
|
|
508
508
|
|
|
509
509
|
| 命令 | 作用 |
|
|
510
510
|
|------|------|
|
|
511
|
-
| `/
|
|
512
|
-
| `/
|
|
513
|
-
| `/
|
|
514
|
-
| `/
|
|
515
|
-
| `/
|
|
516
|
-
| `/
|
|
517
|
-
| `/
|
|
511
|
+
| `/ez:settings` | 配置模型 profile 和工作流代理 |
|
|
512
|
+
| `/ez:set-profile <profile>` | 切换模型 profile(quality / balanced / budget) |
|
|
513
|
+
| `/ez:add-todo [desc]` | 记录一个待办想法 |
|
|
514
|
+
| `/ez:check-todos` | 查看待办列表 |
|
|
515
|
+
| `/ez:debug [desc]` | 使用持久状态进行系统化调试 |
|
|
516
|
+
| `/ez:quick [--full] [--discuss]` | 以 EZ Agents 保障执行临时任务(`--full` 增加计划检查和验证,`--discuss` 先补上下文) |
|
|
517
|
+
| `/ez:health [--repair]` | 校验 `.planning/` 目录完整性,带 `--repair` 时自动修复 |
|
|
518
518
|
|
|
519
519
|
<sup>¹ 由 reddit 用户 OracleGreyBeard 贡献</sup>
|
|
520
520
|
|
|
@@ -522,7 +522,7 @@ lmn012o feat(08-02): create registration endpoint
|
|
|
522
522
|
|
|
523
523
|
## 配置
|
|
524
524
|
|
|
525
|
-
|
|
525
|
+
EZ Agents 将项目设置保存在 `.planning/config.json`。你可以在 `/ez:new-project` 时配置,也可以稍后通过 `/ez:settings` 修改。完整的配置 schema、工作流开关、git branching 选项以及各代理的模型分配,请查看[用户指南](docs/USER-GUIDE.md#configuration-reference)。
|
|
526
526
|
|
|
527
527
|
### 核心设置
|
|
528
528
|
|
|
@@ -543,10 +543,10 @@ GSD 将项目设置保存在 `.planning/config.json`。你可以在 `/gsd:new-pr
|
|
|
543
543
|
|
|
544
544
|
切换方式:
|
|
545
545
|
```
|
|
546
|
-
/
|
|
546
|
+
/ez:set-profile budget
|
|
547
547
|
```
|
|
548
548
|
|
|
549
|
-
也可以通过 `/
|
|
549
|
+
也可以通过 `/ez:settings` 配置。
|
|
550
550
|
|
|
551
551
|
### 工作流代理
|
|
552
552
|
|
|
@@ -559,9 +559,9 @@ GSD 将项目设置保存在 `.planning/config.json`。你可以在 `/gsd:new-pr
|
|
|
559
559
|
| `workflow.verifier` | `true` | 执行后确认“必须交付项”是否已经落地 |
|
|
560
560
|
| `workflow.auto_advance` | `false` | 自动串联 discuss → plan → execute,不中途停下 |
|
|
561
561
|
|
|
562
|
-
可以用 `/
|
|
563
|
-
- `/
|
|
564
|
-
- `/
|
|
562
|
+
可以用 `/ez:settings` 开关这些项,也可以在单次命令里覆盖:
|
|
563
|
+
- `/ez:plan-phase --skip-research`
|
|
564
|
+
- `/ez:plan-phase --skip-verify`
|
|
565
565
|
|
|
566
566
|
### 执行
|
|
567
567
|
|
|
@@ -572,20 +572,20 @@ GSD 将项目设置保存在 `.planning/config.json`。你可以在 `/gsd:new-pr
|
|
|
572
572
|
|
|
573
573
|
### Git 分支策略
|
|
574
574
|
|
|
575
|
-
控制
|
|
575
|
+
控制 EZ Agents 在执行过程中如何处理分支。
|
|
576
576
|
|
|
577
577
|
| Setting | Options | Default | 作用 |
|
|
578
578
|
|---------|---------|---------|------|
|
|
579
579
|
| `git.branching_strategy` | `none`, `phase`, `milestone` | `none` | 分支创建策略 |
|
|
580
|
-
| `git.phase_branch_template` | string | `
|
|
581
|
-
| `git.milestone_branch_template` | string | `
|
|
580
|
+
| `git.phase_branch_template` | string | `EZ Agents/phase-{phase}-{slug}` | phase 分支模板 |
|
|
581
|
+
| `git.milestone_branch_template` | string | `EZ Agents/{milestone}-{slug}` | milestone 分支模板 |
|
|
582
582
|
|
|
583
583
|
**策略说明:**
|
|
584
|
-
- **`none`**:直接提交到当前分支(
|
|
584
|
+
- **`none`**:直接提交到当前分支(EZ Agents 默认行为)
|
|
585
585
|
- **`phase`**:每个 phase 创建一个分支,在 phase 完成时合并
|
|
586
586
|
- **`milestone`**:整个里程碑只用一个分支,在里程碑完成时合并
|
|
587
587
|
|
|
588
|
-
在里程碑完成时,
|
|
588
|
+
在里程碑完成时,EZ Agents 会提供 squash merge(推荐)或保留历史的 merge 选项。
|
|
589
589
|
|
|
590
590
|
---
|
|
591
591
|
|
|
@@ -593,7 +593,7 @@ GSD 将项目设置保存在 `.planning/config.json`。你可以在 `/gsd:new-pr
|
|
|
593
593
|
|
|
594
594
|
### 保护敏感文件
|
|
595
595
|
|
|
596
|
-
|
|
596
|
+
EZ Agents 的代码库映射和分析命令会读取文件来理解你的项目。**包含机密信息的文件应当加入 Claude Code 的 deny list**:
|
|
597
597
|
|
|
598
598
|
1. 打开 Claude Code 设置(项目级 `.claude/settings.json` 或全局设置)
|
|
599
599
|
2. 把敏感文件模式加入 deny list:
|
|
@@ -616,7 +616,7 @@ GSD 的代码库映射和分析命令会读取文件来理解你的项目。**
|
|
|
616
616
|
这样无论你运行什么命令,Claude 都无法读取这些文件。
|
|
617
617
|
|
|
618
618
|
> [!IMPORTANT]
|
|
619
|
-
>
|
|
619
|
+
> EZ Agents 内建了防止提交 secrets 的保护,但纵深防御依然是最佳实践。第一道防线应该是直接禁止读取敏感文件。
|
|
620
620
|
|
|
621
621
|
---
|
|
622
622
|
|
|
@@ -624,66 +624,66 @@ GSD 的代码库映射和分析命令会读取文件来理解你的项目。**
|
|
|
624
624
|
|
|
625
625
|
**安装后找不到命令?**
|
|
626
626
|
- 重启你的运行时,让命令或 skills 重新加载
|
|
627
|
-
- 检查文件是否存在于 `~/.claude/commands/
|
|
628
|
-
- 对 Codex,检查 skills 是否存在于 `~/.codex/skills
|
|
627
|
+
- 检查文件是否存在于 `~/.claude/commands/EZ Agents/`(全局)或 `./.claude/commands/EZ Agents/`(本地)
|
|
628
|
+
- 对 Codex,检查 skills 是否存在于 `~/.codex/skills/*/SKILL.md`(全局)或 `./.codex/skills/*/SKILL.md`(本地)
|
|
629
629
|
|
|
630
630
|
**命令行为不符合预期?**
|
|
631
|
-
- 运行 `/
|
|
632
|
-
- 重新执行 `npx
|
|
631
|
+
- 运行 `/ez:help` 确认安装成功
|
|
632
|
+
- 重新执行 `npx ez-agents` 进行重装
|
|
633
633
|
|
|
634
634
|
**想更新到最新版本?**
|
|
635
635
|
```bash
|
|
636
|
-
npx
|
|
636
|
+
npx ez-agents@latest
|
|
637
637
|
```
|
|
638
638
|
|
|
639
639
|
**在 Docker 或容器环境中使用?**
|
|
640
640
|
|
|
641
641
|
如果使用波浪线路径(`~/.claude/...`)时读取失败,请在安装前设置 `CLAUDE_CONFIG_DIR`:
|
|
642
642
|
```bash
|
|
643
|
-
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx
|
|
643
|
+
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx ez-agents --global
|
|
644
644
|
```
|
|
645
645
|
这样可以确保使用绝对路径,而不是在容器里可能无法正确展开的 `~`。
|
|
646
646
|
|
|
647
647
|
### 卸载
|
|
648
648
|
|
|
649
|
-
如果你想彻底移除
|
|
649
|
+
如果你想彻底移除 EZ Agents:
|
|
650
650
|
|
|
651
651
|
```bash
|
|
652
652
|
# 全局安装
|
|
653
|
-
npx
|
|
654
|
-
npx
|
|
655
|
-
npx
|
|
653
|
+
npx ez-agents --claude --global --uninstall
|
|
654
|
+
npx ez-agents --opencode --global --uninstall
|
|
655
|
+
npx ez-agents --codex --global --uninstall
|
|
656
656
|
|
|
657
657
|
# 本地安装(当前项目)
|
|
658
|
-
npx
|
|
659
|
-
npx
|
|
660
|
-
npx
|
|
658
|
+
npx ez-agents --claude --local --uninstall
|
|
659
|
+
npx ez-agents --opencode --local --uninstall
|
|
660
|
+
npx ez-agents --codex --local --uninstall
|
|
661
661
|
```
|
|
662
662
|
|
|
663
|
-
这会移除所有
|
|
663
|
+
这会移除所有 EZ Agents 命令、代理、hooks 和设置,但会保留你其他配置。
|
|
664
664
|
|
|
665
665
|
---
|
|
666
666
|
|
|
667
667
|
## 社区移植版本
|
|
668
668
|
|
|
669
|
-
OpenCode、Gemini CLI 和 Codex 现在都已经通过 `npx
|
|
669
|
+
OpenCode、Gemini CLI 和 Codex 现在都已经通过 `npx ez-agents` 获得原生支持。
|
|
670
670
|
|
|
671
671
|
这些社区移植版本曾率先探索多运行时支持:
|
|
672
672
|
|
|
673
673
|
| Project | Platform | Description |
|
|
674
674
|
|---------|----------|-------------|
|
|
675
|
-
| [
|
|
676
|
-
|
|
|
675
|
+
| [ez-opencode](https://github.com/rokicool/ez-opencode) | OpenCode | 最初的 OpenCode 适配版本 |
|
|
676
|
+
| ez-gemini (archived) | Gemini CLI | uberfuzzy 制作的最初 Gemini 适配版本 |
|
|
677
677
|
|
|
678
678
|
---
|
|
679
679
|
|
|
680
680
|
## Star History
|
|
681
681
|
|
|
682
|
-
<a href="https://star-history.com/#glittercowboy/
|
|
682
|
+
<a href="https://star-history.com/#glittercowboy/ez-agents&Date">
|
|
683
683
|
<picture>
|
|
684
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=glittercowboy/
|
|
685
|
-
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=glittercowboy/
|
|
686
|
-
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=glittercowboy/
|
|
684
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=glittercowboy/ez-agents&type=Date&theme=dark" />
|
|
685
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=glittercowboy/ez-agents&type=Date" />
|
|
686
|
+
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=glittercowboy/ez-agents&type=Date" />
|
|
687
687
|
</picture>
|
|
688
688
|
</a>
|
|
689
689
|
|
|
@@ -697,6 +697,6 @@ MIT License。详情见 [LICENSE](LICENSE)。
|
|
|
697
697
|
|
|
698
698
|
<div align="center">
|
|
699
699
|
|
|
700
|
-
**Claude Code 很强,
|
|
700
|
+
**Claude Code 很强,EZ Agents 让它变得可靠。**
|
|
701
701
|
|
|
702
702
|
</div>
|
package/agents/ez-ui-auditor.md
CHANGED
|
@@ -3,8 +3,6 @@ name: ez-ui-auditor
|
|
|
3
3
|
description: Retroactive 6-pillar visual audit of implemented frontend code. Produces scored UI-REVIEW.md. Spawned by /ez:ui-review orchestrator.
|
|
4
4
|
tools: Read, Write, Bash, Grep, Glob
|
|
5
5
|
color: "#F472B6"
|
|
6
|
-
skills:
|
|
7
|
-
- gsd-ui-auditor-workflow
|
|
8
6
|
# hooks:
|
|
9
7
|
# PostToolUse:
|
|
10
8
|
# - matcher: "Write|Edit"
|
package/agents/ez-ui-checker.md
CHANGED
|
@@ -3,14 +3,12 @@ name: ez-ui-checker
|
|
|
3
3
|
description: Validates UI-SPEC.md design contracts against 6 quality dimensions. Produces BLOCK/FLAG/PASS verdicts. Spawned by /ez:ui-phase orchestrator.
|
|
4
4
|
tools: Read, Bash, Glob, Grep
|
|
5
5
|
color: "#22D3EE"
|
|
6
|
-
skills:
|
|
7
|
-
- gsd-ui-checker-workflow
|
|
8
6
|
---
|
|
9
7
|
|
|
10
8
|
<role>
|
|
11
9
|
You are a EZ Agents UI checker. Verify that UI-SPEC.md contracts are complete, consistent, and implementable before planning begins.
|
|
12
10
|
|
|
13
|
-
Spawned by `/ez:ui-phase` orchestrator (after
|
|
11
|
+
Spawned by `/ez:ui-phase` orchestrator (after ez-ui-researcher creates UI-SPEC.md) or re-verification (after researcher revises).
|
|
14
12
|
|
|
15
13
|
**CRITICAL: Mandatory Initial Read**
|
|
16
14
|
If the prompt contains a `<files_to_read>` block, you MUST use the `Read` tool to load every file listed there before performing any other actions. This is your primary context.
|
|
@@ -41,7 +39,7 @@ This ensures verification respects project-specific design conventions.
|
|
|
41
39
|
</project_context>
|
|
42
40
|
|
|
43
41
|
<upstream_input>
|
|
44
|
-
**UI-SPEC.md** — Design contract from
|
|
42
|
+
**UI-SPEC.md** — Design contract from ez-ui-researcher (primary input)
|
|
45
43
|
|
|
46
44
|
**CONTEXT.md** (if exists) — User decisions from `/ez:discuss-phase`
|
|
47
45
|
|
|
@@ -3,8 +3,6 @@ name: ez-ui-researcher
|
|
|
3
3
|
description: Produces UI-SPEC.md design contract for frontend phases. Reads upstream artifacts, detects design system state, asks only unanswered questions. Spawned by /ez:ui-phase orchestrator.
|
|
4
4
|
tools: Read, Write, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*
|
|
5
5
|
color: "#E879F9"
|
|
6
|
-
skills:
|
|
7
|
-
- ez-ui-researcher-workflow
|
|
8
6
|
# hooks:
|
|
9
7
|
# PostToolUse:
|
|
10
8
|
# - matcher: "Write|Edit"
|