@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
|
@@ -16,21 +16,21 @@ function toPosixPath(p) {
|
|
|
16
16
|
// ─── Model Profile Table ─────────────────────────────────────────────────────
|
|
17
17
|
|
|
18
18
|
const MODEL_PROFILES = {
|
|
19
|
-
'
|
|
20
|
-
'
|
|
21
|
-
'
|
|
22
|
-
'
|
|
23
|
-
'
|
|
24
|
-
'
|
|
25
|
-
'
|
|
26
|
-
'
|
|
27
|
-
'
|
|
28
|
-
'
|
|
29
|
-
'
|
|
30
|
-
'
|
|
31
|
-
'
|
|
32
|
-
'
|
|
33
|
-
'
|
|
19
|
+
'ez-planner': { quality: 'opus', balanced: 'opus', budget: 'sonnet' },
|
|
20
|
+
'ez-roadmapper': { quality: 'opus', balanced: 'sonnet', budget: 'sonnet' },
|
|
21
|
+
'ez-executor': { quality: 'opus', balanced: 'sonnet', budget: 'sonnet' },
|
|
22
|
+
'ez-phase-researcher': { quality: 'opus', balanced: 'sonnet', budget: 'haiku' },
|
|
23
|
+
'ez-project-researcher': { quality: 'opus', balanced: 'sonnet', budget: 'haiku' },
|
|
24
|
+
'ez-research-synthesizer': { quality: 'sonnet', balanced: 'sonnet', budget: 'haiku' },
|
|
25
|
+
'ez-debugger': { quality: 'opus', balanced: 'sonnet', budget: 'sonnet' },
|
|
26
|
+
'ez-codebase-mapper': { quality: 'sonnet', balanced: 'haiku', budget: 'haiku' },
|
|
27
|
+
'ez-verifier': { quality: 'sonnet', balanced: 'sonnet', budget: 'haiku' },
|
|
28
|
+
'ez-plan-checker': { quality: 'sonnet', balanced: 'sonnet', budget: 'haiku' },
|
|
29
|
+
'ez-integration-checker': { quality: 'sonnet', balanced: 'sonnet', budget: 'haiku' },
|
|
30
|
+
'ez-nyquist-auditor': { quality: 'sonnet', balanced: 'sonnet', budget: 'haiku' },
|
|
31
|
+
'ez-ui-researcher': { quality: 'opus', balanced: 'sonnet', budget: 'haiku' },
|
|
32
|
+
'ez-ui-checker': { quality: 'sonnet', balanced: 'sonnet', budget: 'haiku' },
|
|
33
|
+
'ez-ui-auditor': { quality: 'sonnet', balanced: 'sonnet', budget: 'haiku' },
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
// ─── Output helpers ───────────────────────────────────────────────────────────
|
|
@@ -43,7 +43,7 @@ function output(result, raw, rawValue) {
|
|
|
43
43
|
// Large payloads exceed Claude Code's Bash tool buffer (~50KB).
|
|
44
44
|
// Write to tmpfile and output the path prefixed with @file: so callers can detect it.
|
|
45
45
|
if (json.length > 50000) {
|
|
46
|
-
const tmpPath = path.join(require('os').tmpdir(),
|
|
46
|
+
const tmpPath = path.join(require('os').tmpdir(), `${Date.now()}.json`);
|
|
47
47
|
fs.writeFileSync(tmpPath, json, 'utf-8');
|
|
48
48
|
process.stdout.write('@file:' + tmpPath);
|
|
49
49
|
} else {
|
|
@@ -25,8 +25,8 @@ function cmdInitExecutePhase(cwd, phase, raw) {
|
|
|
25
25
|
|
|
26
26
|
const result = {
|
|
27
27
|
// Models
|
|
28
|
-
executor_model: resolveModelInternal(cwd, '
|
|
29
|
-
verifier_model: resolveModelInternal(cwd, '
|
|
28
|
+
executor_model: resolveModelInternal(cwd, 'ez-executor'),
|
|
29
|
+
verifier_model: resolveModelInternal(cwd, 'ez-verifier'),
|
|
30
30
|
|
|
31
31
|
// Config flags
|
|
32
32
|
commit_docs: config.commit_docs,
|
|
@@ -97,9 +97,9 @@ function cmdInitPlanPhase(cwd, phase, raw) {
|
|
|
97
97
|
|
|
98
98
|
const result = {
|
|
99
99
|
// Models
|
|
100
|
-
researcher_model: resolveModelInternal(cwd, '
|
|
101
|
-
planner_model: resolveModelInternal(cwd, '
|
|
102
|
-
checker_model: resolveModelInternal(cwd, '
|
|
100
|
+
researcher_model: resolveModelInternal(cwd, 'ez-phase-researcher'),
|
|
101
|
+
planner_model: resolveModelInternal(cwd, 'ez-planner'),
|
|
102
|
+
checker_model: resolveModelInternal(cwd, 'ez-plan-checker'),
|
|
103
103
|
|
|
104
104
|
// Workflow flags
|
|
105
105
|
research_enabled: config.research,
|
|
@@ -187,9 +187,9 @@ function cmdInitNewProject(cwd, raw) {
|
|
|
187
187
|
|
|
188
188
|
const result = {
|
|
189
189
|
// Models
|
|
190
|
-
researcher_model: resolveModelInternal(cwd, '
|
|
191
|
-
synthesizer_model: resolveModelInternal(cwd, '
|
|
192
|
-
roadmapper_model: resolveModelInternal(cwd, '
|
|
190
|
+
researcher_model: resolveModelInternal(cwd, 'ez-project-researcher'),
|
|
191
|
+
synthesizer_model: resolveModelInternal(cwd, 'ez-research-synthesizer'),
|
|
192
|
+
roadmapper_model: resolveModelInternal(cwd, 'ez-roadmapper'),
|
|
193
193
|
|
|
194
194
|
// Config
|
|
195
195
|
commit_docs: config.commit_docs,
|
|
@@ -224,9 +224,9 @@ function cmdInitNewMilestone(cwd, raw) {
|
|
|
224
224
|
|
|
225
225
|
const result = {
|
|
226
226
|
// Models
|
|
227
|
-
researcher_model: resolveModelInternal(cwd, '
|
|
228
|
-
synthesizer_model: resolveModelInternal(cwd, '
|
|
229
|
-
roadmapper_model: resolveModelInternal(cwd, '
|
|
227
|
+
researcher_model: resolveModelInternal(cwd, 'ez-project-researcher'),
|
|
228
|
+
synthesizer_model: resolveModelInternal(cwd, 'ez-research-synthesizer'),
|
|
229
|
+
roadmapper_model: resolveModelInternal(cwd, 'ez-roadmapper'),
|
|
230
230
|
|
|
231
231
|
// Config
|
|
232
232
|
commit_docs: config.commit_docs,
|
|
@@ -270,10 +270,10 @@ function cmdInitQuick(cwd, description, raw) {
|
|
|
270
270
|
|
|
271
271
|
const result = {
|
|
272
272
|
// Models
|
|
273
|
-
planner_model: resolveModelInternal(cwd, '
|
|
274
|
-
executor_model: resolveModelInternal(cwd, '
|
|
275
|
-
checker_model: resolveModelInternal(cwd, '
|
|
276
|
-
verifier_model: resolveModelInternal(cwd, '
|
|
273
|
+
planner_model: resolveModelInternal(cwd, 'ez-planner'),
|
|
274
|
+
executor_model: resolveModelInternal(cwd, 'ez-executor'),
|
|
275
|
+
checker_model: resolveModelInternal(cwd, 'ez-plan-checker'),
|
|
276
|
+
verifier_model: resolveModelInternal(cwd, 'ez-verifier'),
|
|
277
277
|
|
|
278
278
|
// Config
|
|
279
279
|
commit_docs: config.commit_docs,
|
|
@@ -342,8 +342,8 @@ function cmdInitVerifyWork(cwd, phase, raw) {
|
|
|
342
342
|
|
|
343
343
|
const result = {
|
|
344
344
|
// Models
|
|
345
|
-
planner_model: resolveModelInternal(cwd, '
|
|
346
|
-
checker_model: resolveModelInternal(cwd, '
|
|
345
|
+
planner_model: resolveModelInternal(cwd, 'ez-planner'),
|
|
346
|
+
checker_model: resolveModelInternal(cwd, 'ez-plan-checker'),
|
|
347
347
|
|
|
348
348
|
// Config
|
|
349
349
|
commit_docs: config.commit_docs,
|
|
@@ -574,7 +574,7 @@ function cmdInitMapCodebase(cwd, raw) {
|
|
|
574
574
|
|
|
575
575
|
const result = {
|
|
576
576
|
// Models
|
|
577
|
-
mapper_model: resolveModelInternal(cwd, '
|
|
577
|
+
mapper_model: resolveModelInternal(cwd, 'ez-codebase-mapper'),
|
|
578
578
|
|
|
579
579
|
// Config
|
|
580
580
|
commit_docs: config.commit_docs,
|
|
@@ -658,8 +658,8 @@ function cmdInitProgress(cwd, raw) {
|
|
|
658
658
|
|
|
659
659
|
const result = {
|
|
660
660
|
// Models
|
|
661
|
-
executor_model: resolveModelInternal(cwd, '
|
|
662
|
-
planner_model: resolveModelInternal(cwd, '
|
|
661
|
+
executor_model: resolveModelInternal(cwd, 'ez-executor'),
|
|
662
|
+
planner_model: resolveModelInternal(cwd, 'ez-planner'),
|
|
663
663
|
|
|
664
664
|
// Config
|
|
665
665
|
commit_docs: config.commit_docs,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* GSD Logger — Centralized logging module for GSD workflow
|
|
5
5
|
*
|
|
6
6
|
* Provides structured logging with levels (ERROR, WARN, INFO, DEBUG)
|
|
7
|
-
* Writes to .planning/logs/
|
|
7
|
+
* Writes to .planning/logs/ez-{timestamp}.log
|
|
8
8
|
* Replaces silent catch {} blocks with proper error logging
|
|
9
9
|
*
|
|
10
10
|
* Usage:
|
|
@@ -34,7 +34,7 @@ class Logger {
|
|
|
34
34
|
if (!fs.existsSync(this.logDir)) {
|
|
35
35
|
fs.mkdirSync(this.logDir, { recursive: true });
|
|
36
36
|
}
|
|
37
|
-
this.logFile = path.join(this.logDir, `
|
|
37
|
+
this.logFile = path.join(this.logDir, `ez-${Date.now()}.log`);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
/**
|
|
@@ -54,7 +54,7 @@ function isPathSafe(basePath, targetPath) {
|
|
|
54
54
|
* @param {string} customBase - Custom base directory (default: os.tmpdir())
|
|
55
55
|
* @returns {Promise<string>} - Path to created temp directory
|
|
56
56
|
*/
|
|
57
|
-
async function createTempDir(prefix = '
|
|
57
|
+
async function createTempDir(prefix = 'ez-', customBase = null) {
|
|
58
58
|
const baseDir = customBase || os.tmpdir();
|
|
59
59
|
const tempPath = await fs.promises.mkdtemp(path.join(baseDir, prefix));
|
|
60
60
|
|
|
@@ -73,7 +73,7 @@ async function createTempDir(prefix = 'gsd-', customBase = null) {
|
|
|
73
73
|
* @param {string} content - Optional initial content
|
|
74
74
|
* @returns {Promise<string>} - Path to created temp file
|
|
75
75
|
*/
|
|
76
|
-
async function createTempFile(prefix = '
|
|
76
|
+
async function createTempFile(prefix = 'ez-', customBase = null, content = '') {
|
|
77
77
|
const baseDir = customBase || os.tmpdir();
|
|
78
78
|
const fileName = `${prefix}${generateSecureSuffix()}`;
|
|
79
79
|
const tempPath = path.join(baseDir, fileName);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Test script for GSD Temp File Handler
|
|
5
|
-
* Run: node
|
|
5
|
+
* Run: node ez-agents/bin/lib/test-temp-file.cjs
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
const os = require('os');
|
|
@@ -23,7 +23,7 @@ const {
|
|
|
23
23
|
async function testCreateTempDir() {
|
|
24
24
|
console.log('\n=== Test 1: Create Temp Directory ===');
|
|
25
25
|
|
|
26
|
-
const tempDir = await createTempDir('
|
|
26
|
+
const tempDir = await createTempDir('ez-test-');
|
|
27
27
|
console.log('Created temp dir:', tempDir);
|
|
28
28
|
|
|
29
29
|
const exists = require('fs').existsSync(tempDir);
|
|
@@ -42,7 +42,7 @@ Exit.
|
|
|
42
42
|
</step>
|
|
43
43
|
|
|
44
44
|
<step name="add_phase">
|
|
45
|
-
**Delegate the phase addition to
|
|
45
|
+
**Delegate the phase addition to ez-tools:**
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
48
|
RESULT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" phase add "${description}")
|
|
@@ -104,7 +104,7 @@ Roadmap updated: .planning/ROADMAP.md
|
|
|
104
104
|
</process>
|
|
105
105
|
|
|
106
106
|
<success_criteria>
|
|
107
|
-
- [ ] `
|
|
107
|
+
- [ ] `ez-tools phase add` executed successfully
|
|
108
108
|
- [ ] Phase directory created
|
|
109
109
|
- [ ] Roadmap updated with new phase entry
|
|
110
110
|
- [ ] STATE.md updated with roadmap evolution note
|
|
@@ -19,7 +19,7 @@ Extract from init JSON: `milestone_version`, `milestone_name`, `phase_count`, `c
|
|
|
19
19
|
|
|
20
20
|
Resolve integration checker model:
|
|
21
21
|
```bash
|
|
22
|
-
integration_checker_model=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" resolve-model
|
|
22
|
+
integration_checker_model=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" resolve-model ez-integration-checker --raw)
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
## 1. Determine Milestone Scope
|
|
@@ -175,7 +175,7 @@ Key accomplishments for this milestone:
|
|
|
175
175
|
|
|
176
176
|
<step name="create_milestone_entry">
|
|
177
177
|
|
|
178
|
-
**Note:** MILESTONES.md entry is now created automatically by `
|
|
178
|
+
**Note:** MILESTONES.md entry is now created automatically by `ez-tools milestone complete` in the archive_milestone step. The entry includes version, date, phase/plan/task counts, and accomplishments extracted from SUMMARY.md files.
|
|
179
179
|
|
|
180
180
|
If additional details are needed (e.g., user-provided "Delivered" summary, git range, LOC stats), add them manually after the CLI creates the base entry.
|
|
181
181
|
|
|
@@ -366,7 +366,7 @@ Update `.planning/ROADMAP.md` — group completed milestone phases:
|
|
|
366
366
|
|
|
367
367
|
<step name="archive_milestone">
|
|
368
368
|
|
|
369
|
-
**Delegate archival to
|
|
369
|
+
**Delegate archival to ez-tools:**
|
|
370
370
|
|
|
371
371
|
```bash
|
|
372
372
|
ARCHIVE=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" milestone complete "v[X.Y]" --name "[Milestone Name]")
|
|
@@ -451,7 +451,7 @@ ls .planning/RETROSPECTIVE.md 2>/dev/null
|
|
|
451
451
|
|
|
452
452
|
**If exists:** Read the file, append new milestone section before the "## Cross-Milestone Trends" section.
|
|
453
453
|
|
|
454
|
-
**If doesn't exist:** Create from template at `~/.claude/
|
|
454
|
+
**If doesn't exist:** Create from template at `~/.claude/ez-agents/templates/retrospective.md`.
|
|
455
455
|
|
|
456
456
|
**Gather retrospective data:**
|
|
457
457
|
|
|
File without changes
|
|
@@ -28,7 +28,7 @@ Claude's training data is 6-18 months stale. Always verify.
|
|
|
28
28
|
2. **Official docs** - When Context7 lacks coverage
|
|
29
29
|
3. **WebSearch LAST** - For comparisons and trends only
|
|
30
30
|
|
|
31
|
-
See ~/.claude/
|
|
31
|
+
See ~/.claude/ez-agents/templates/discovery.md `<discovery_protocol>` for full protocol.
|
|
32
32
|
</source_hierarchy>
|
|
33
33
|
|
|
34
34
|
<process>
|
|
@@ -107,7 +107,7 @@ For: Choosing between options, new external integration.
|
|
|
107
107
|
|
|
108
108
|
5. **Cross-verify:** Any WebSearch finding → confirm with Context7/official docs.
|
|
109
109
|
|
|
110
|
-
6. **Create DISCOVERY.md** using ~/.claude/
|
|
110
|
+
6. **Create DISCOVERY.md** using ~/.claude/ez-agents/templates/discovery.md structure:
|
|
111
111
|
|
|
112
112
|
- Summary with recommendation
|
|
113
113
|
- Key findings per option
|
|
@@ -126,7 +126,7 @@ For: Architectural decisions, novel problems, high-risk choices.
|
|
|
126
126
|
|
|
127
127
|
**Process:**
|
|
128
128
|
|
|
129
|
-
1. **Scope the discovery** using ~/.claude/
|
|
129
|
+
1. **Scope the discovery** using ~/.claude/ez-agents/templates/discovery.md:
|
|
130
130
|
|
|
131
131
|
- Define clear scope
|
|
132
132
|
- Define include/exclude boundaries
|
|
@@ -160,7 +160,7 @@ For: Architectural decisions, novel problems, high-risk choices.
|
|
|
160
160
|
|
|
161
161
|
6. **Create comprehensive DISCOVERY.md:**
|
|
162
162
|
|
|
163
|
-
- Full structure from ~/.claude/
|
|
163
|
+
- Full structure from ~/.claude/ez-agents/templates/discovery.md
|
|
164
164
|
- Quality report with source attribution
|
|
165
165
|
- Confidence by finding
|
|
166
166
|
- If LOW confidence on any critical finding → add validation checkpoints
|
|
@@ -184,7 +184,7 @@ Ask: What do we need to learn before we can plan this phase?
|
|
|
184
184
|
</step>
|
|
185
185
|
|
|
186
186
|
<step name="create_discovery_scope">
|
|
187
|
-
Use ~/.claude/
|
|
187
|
+
Use ~/.claude/ez-agents/templates/discovery.md.
|
|
188
188
|
|
|
189
189
|
Include:
|
|
190
190
|
|
|
@@ -7,11 +7,11 @@ You are a thinking partner, not an interviewer. The user is the visionary — yo
|
|
|
7
7
|
<downstream_awareness>
|
|
8
8
|
**CONTEXT.md feeds into:**
|
|
9
9
|
|
|
10
|
-
1. **
|
|
10
|
+
1. **ez-phase-researcher** — Reads CONTEXT.md to know WHAT to research
|
|
11
11
|
- "User wants card-based layout" → researcher investigates card component patterns
|
|
12
12
|
- "Infinite scroll decided" → researcher looks into virtualization libraries
|
|
13
13
|
|
|
14
|
-
2. **
|
|
14
|
+
2. **ez-planner** — Reads CONTEXT.md to know WHAT decisions are locked
|
|
15
15
|
- "Pull-to-refresh on mobile" → planner includes that in task specs
|
|
16
16
|
- "Claude's Discretion: loading skeleton" → planner can decide approach
|
|
17
17
|
|
|
@@ -119,10 +119,10 @@ Execute each wave in sequence. Within a wave: parallel if `PARALLELIZATION=true`
|
|
|
119
119
|
</objective>
|
|
120
120
|
|
|
121
121
|
<execution_context>
|
|
122
|
-
@~/.claude/
|
|
123
|
-
@~/.claude/
|
|
124
|
-
@~/.claude/
|
|
125
|
-
@~/.claude/
|
|
122
|
+
@~/.claude/ez-agents/workflows/execute-plan.md
|
|
123
|
+
@~/.claude/ez-agents/templates/summary.md
|
|
124
|
+
@~/.claude/ez-agents/references/checkpoints.md
|
|
125
|
+
@~/.claude/ez-agents/references/tdd.md
|
|
126
126
|
</execution_context>
|
|
127
127
|
|
|
128
128
|
<files_to_read>
|
|
@@ -432,7 +432,7 @@ STOP. Do not proceed to auto-advance or transition.
|
|
|
432
432
|
|
|
433
433
|
Execute the transition workflow inline (do NOT use Task — orchestrator context is ~10-15%, transition needs phase completion data already in context):
|
|
434
434
|
|
|
435
|
-
Read and follow `~/.claude/
|
|
435
|
+
Read and follow `~/.claude/ez-agents/workflows/transition.md`, passing through the `--auto` flag so it propagates to the next phase invocation.
|
|
436
436
|
|
|
437
437
|
**If none of `--auto`, `AUTO_CHAIN`, or `AUTO_CFG` is true:**
|
|
438
438
|
|
|
@@ -6,7 +6,7 @@ Execute a phase prompt (PLAN.md) and create the outcome summary (SUMMARY.md).
|
|
|
6
6
|
Read STATE.md before any operation to load project context.
|
|
7
7
|
Read config.json for planning behavior settings.
|
|
8
8
|
|
|
9
|
-
@~/.claude/
|
|
9
|
+
@~/.claude/ez-agents/references/git-integration.md
|
|
10
10
|
</required_reading>
|
|
11
11
|
|
|
12
12
|
<process>
|
|
@@ -35,7 +35,7 @@ Find first PLAN without matching SUMMARY. Decimal phases supported (`01.1-hotfix
|
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
37
|
PHASE=$(echo "$PLAN_PATH" | grep -oE '[0-9]+(\.[0-9]+)?-[0-9]+')
|
|
38
|
-
# config settings can be fetched via
|
|
38
|
+
# config settings can be fetched via ez-tools config-get if needed
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
<if mode="yolo">
|
|
@@ -100,7 +100,7 @@ Pattern B only (verify-only checkpoints). Skip for A/C.
|
|
|
100
100
|
|
|
101
101
|
1. Parse segment map: checkpoint locations and types
|
|
102
102
|
2. Per segment:
|
|
103
|
-
- Subagent route: spawn
|
|
103
|
+
- Subagent route: spawn ez-executor for assigned tasks only. Prompt: task range, plan path, read full plan for context, execute assigned tasks, track deviations, NO SUMMARY/commit. Track via agent protocol.
|
|
104
104
|
- Main route: execute tasks using standard flow (step name="execute")
|
|
105
105
|
3. After ALL segments: aggregate files/deviations/decisions → create SUMMARY.md → commit → self-check:
|
|
106
106
|
- Verify key-files.created exist on disk with `[ -f ]`
|
|
@@ -225,7 +225,7 @@ For `type: tdd` plans — RED-GREEN-REFACTOR:
|
|
|
225
225
|
|
|
226
226
|
Errors: RED doesn't fail → investigate test/existing feature. GREEN doesn't pass → debug, iterate. REFACTOR breaks → undo.
|
|
227
227
|
|
|
228
|
-
See `~/.claude/
|
|
228
|
+
See `~/.claude/ez-agents/references/tdd.md` for structure.
|
|
229
229
|
</tdd_plan_execution>
|
|
230
230
|
|
|
231
231
|
<precommit_failure_handling>
|
|
@@ -294,7 +294,7 @@ Display: `CHECKPOINT: [Type]` box → Progress {X}/{Y} → Task name → type-sp
|
|
|
294
294
|
|
|
295
295
|
After response: verify if specified. Pass → continue. Fail → inform, wait. WAIT for user — do NOT hallucinate completion.
|
|
296
296
|
|
|
297
|
-
See ~/.claude/
|
|
297
|
+
See ~/.claude/ez-agents/references/checkpoints.md for details.
|
|
298
298
|
</step>
|
|
299
299
|
|
|
300
300
|
<step name="checkpoint_return_for_orchestrator">
|
|
@@ -313,7 +313,7 @@ If verification fails:
|
|
|
313
313
|
NODE_REPAIR=$(node "./.claude/ez-agents/bin/ez-tools.cjs" config-get workflow.node_repair 2>/dev/null || echo "true")
|
|
314
314
|
```
|
|
315
315
|
|
|
316
|
-
If `NODE_REPAIR` is `true`: invoke `@./.claude/
|
|
316
|
+
If `NODE_REPAIR` is `true`: invoke `@./.claude/ez-agents/workflows/node-repair.md` with:
|
|
317
317
|
- FAILED_TASK: task number, name, done-criteria
|
|
318
318
|
- ERROR: expected vs actual result
|
|
319
319
|
- PLAN_CONTEXT: adjacent task names + phase goal
|
|
@@ -347,11 +347,11 @@ fi
|
|
|
347
347
|
grep -A 50 "^user_setup:" .planning/phases/XX-name/{phase}-{plan}-PLAN.md | head -50
|
|
348
348
|
```
|
|
349
349
|
|
|
350
|
-
If user_setup exists: create `{phase}-USER-SETUP.md` using template `~/.claude/
|
|
350
|
+
If user_setup exists: create `{phase}-USER-SETUP.md` using template `~/.claude/ez-agents/templates/user-setup.md`. Per service: env vars table, account setup checklist, dashboard config, local dev notes, verification commands. Status "Incomplete". Set `USER_SETUP_CREATED=true`. If empty/missing: skip.
|
|
351
351
|
</step>
|
|
352
352
|
|
|
353
353
|
<step name="create_summary">
|
|
354
|
-
Create `{phase}-{plan}-SUMMARY.md` at `.planning/phases/XX-name/`. Use `~/.claude/
|
|
354
|
+
Create `{phase}-{plan}-SUMMARY.md` at `.planning/phases/XX-name/`. Use `~/.claude/ez-agents/templates/summary.md`.
|
|
355
355
|
|
|
356
356
|
**Frontmatter:** phase, plan, subsystem, tags | requires/provides/affects | tech-stack.added/patterns | key-files.created/modified | key-decisions | requirements-completed (**MUST** copy `requirements` array from PLAN.md frontmatter verbatim) | duration ($DURATION), completed ($PLAN_END_TIME date).
|
|
357
357
|
|
|
@@ -365,7 +365,7 @@ Next: more plans → "Ready for {next-plan}" | last → "Phase complete, ready f
|
|
|
365
365
|
</step>
|
|
366
366
|
|
|
367
367
|
<step name="update_current_position">
|
|
368
|
-
Update STATE.md using
|
|
368
|
+
Update STATE.md using ez-tools:
|
|
369
369
|
|
|
370
370
|
```bash
|
|
371
371
|
# Advance plan counter (handles last-plan edge case)
|
|
@@ -396,7 +396,7 @@ node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" state add-blocker --text-file "$
|
|
|
396
396
|
</step>
|
|
397
397
|
|
|
398
398
|
<step name="update_session_continuity">
|
|
399
|
-
Update session info using
|
|
399
|
+
Update session info using ez-tools:
|
|
400
400
|
|
|
401
401
|
```bash
|
|
402
402
|
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" state record-session \
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
<purpose>
|
|
2
|
-
Display the complete
|
|
2
|
+
Display the complete EZ Agents command reference. Output ONLY the reference content. Do NOT add project-specific analysis, git status, next-step suggestions, or any commentary beyond the reference.
|
|
3
3
|
</purpose>
|
|
4
4
|
|
|
5
5
|
<reference>
|
|
6
|
-
#
|
|
6
|
+
# EZ Agents Command Reference
|
|
7
7
|
|
|
8
|
-
**
|
|
8
|
+
**EZ Agents** — Meta-prompting & Agent Orchestration, but ez. Creates hierarchical project plans optimized for solo agentic development with Claude Code, OpenCode, Gemini, Codex, and Copilot.
|
|
9
9
|
|
|
10
10
|
## Quick Start
|
|
11
11
|
|
|
@@ -15,10 +15,10 @@ Display the complete GSD command reference. Output ONLY the reference content. D
|
|
|
15
15
|
|
|
16
16
|
## Staying Updated
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
EZ Agents evolves fast. Update periodically:
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
npx
|
|
21
|
+
npx ez-agents@latest
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
## Core Workflow
|
|
@@ -331,21 +331,21 @@ Usage: `/ez:cleanup`
|
|
|
331
331
|
Show this command reference.
|
|
332
332
|
|
|
333
333
|
**`/ez:update`**
|
|
334
|
-
Update
|
|
334
|
+
Update EZ Agents to latest version with changelog preview.
|
|
335
335
|
|
|
336
336
|
- Shows installed vs latest version comparison
|
|
337
337
|
- Displays changelog entries for versions you've missed
|
|
338
338
|
- Highlights breaking changes
|
|
339
339
|
- Confirms before running install
|
|
340
|
-
- Better than raw `npx
|
|
340
|
+
- Better than raw `npx ez-agents`
|
|
341
341
|
|
|
342
342
|
Usage: `/ez:update`
|
|
343
343
|
|
|
344
344
|
**`/ez:join-discord`**
|
|
345
|
-
Join the
|
|
345
|
+
Join the EZ Agents Discord community.
|
|
346
346
|
|
|
347
347
|
- Get help, share what you're building, stay updated
|
|
348
|
-
- Connect with other
|
|
348
|
+
- Connect with other EZ Agents users
|
|
349
349
|
|
|
350
350
|
Usage: `/ez:join-discord`
|
|
351
351
|
|
|
@@ -46,7 +46,7 @@ Exit.
|
|
|
46
46
|
</step>
|
|
47
47
|
|
|
48
48
|
<step name="insert_phase">
|
|
49
|
-
**Delegate the phase insertion to
|
|
49
|
+
**Delegate the phase insertion to ez-tools:**
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
52
|
RESULT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" phase insert "${after_phase}" "${description}")
|
|
@@ -122,7 +122,7 @@ Project state updated: .planning/STATE.md
|
|
|
122
122
|
<success_criteria>
|
|
123
123
|
Phase insertion is complete when:
|
|
124
124
|
|
|
125
|
-
- [ ] `
|
|
125
|
+
- [ ] `ez-tools phase insert` executed successfully
|
|
126
126
|
- [ ] Phase directory created
|
|
127
127
|
- [ ] Roadmap updated with new phase entry (includes "(INSERTED)" marker)
|
|
128
128
|
- [ ] STATE.md updated with roadmap evolution note
|
|
@@ -83,11 +83,11 @@ Continue to spawn_agents.
|
|
|
83
83
|
</step>
|
|
84
84
|
|
|
85
85
|
<step name="spawn_agents">
|
|
86
|
-
Spawn 4 parallel
|
|
86
|
+
Spawn 4 parallel ez-codebase-mapper agents.
|
|
87
87
|
|
|
88
88
|
Use Task tool with `subagent_type="ez-codebase-mapper"`, `model="{mapper_model}"`, and `run_in_background=true` for parallel execution.
|
|
89
89
|
|
|
90
|
-
**CRITICAL:** Use the dedicated `
|
|
90
|
+
**CRITICAL:** Use the dedicated `ez-codebase-mapper` agent, NOT `Explore`. The mapper agent writes documents directly.
|
|
91
91
|
|
|
92
92
|
**Agent 1: Tech Focus**
|
|
93
93
|
|
|
@@ -307,7 +307,7 @@ End workflow.
|
|
|
307
307
|
|
|
308
308
|
<success_criteria>
|
|
309
309
|
- .planning/codebase/ directory created
|
|
310
|
-
- 4 parallel
|
|
310
|
+
- 4 parallel ez-codebase-mapper agents spawned with run_in_background=true
|
|
311
311
|
- Agents write documents directly (orchestrator doesn't receive document contents)
|
|
312
312
|
- Read agent output files to collect confirmations
|
|
313
313
|
- All 7 codebase documents exist
|
|
@@ -115,7 +115,7 @@ node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" config-set workflow.research fal
|
|
|
115
115
|
mkdir -p .planning/research
|
|
116
116
|
```
|
|
117
117
|
|
|
118
|
-
Spawn 4 parallel
|
|
118
|
+
Spawn 4 parallel ez-project-researcher agents. Each uses this template with dimension-specific fields:
|
|
119
119
|
|
|
120
120
|
**Common structure for all 4 researchers:**
|
|
121
121
|
```
|
|
@@ -140,7 +140,7 @@ Focus ONLY on what's needed for the NEW features.
|
|
|
140
140
|
|
|
141
141
|
<output>
|
|
142
142
|
Write to: .planning/research/{FILE}
|
|
143
|
-
Use template: ~/.claude/
|
|
143
|
+
Use template: ~/.claude/ez-agents/templates/research-project/{FILE}
|
|
144
144
|
</output>
|
|
145
145
|
", subagent_type="ez-project-researcher", model="{researcher_model}", description="{DIMENSION} research")
|
|
146
146
|
```
|
|
@@ -169,7 +169,7 @@ Synthesize research outputs into SUMMARY.md.
|
|
|
169
169
|
</files_to_read>
|
|
170
170
|
|
|
171
171
|
Write to: .planning/research/SUMMARY.md
|
|
172
|
-
Use template: ~/.claude/
|
|
172
|
+
Use template: ~/.claude/ez-agents/templates/research-project/SUMMARY.md
|
|
173
173
|
Commit after writing.
|
|
174
174
|
", subagent_type="ez-research-synthesizer", model="{synthesizer_model}", description="Synthesize research")
|
|
175
175
|
```
|
|
@@ -373,7 +373,7 @@ Also: `/ez:plan-phase [N]` — skip discussion, plan directly
|
|
|
373
373
|
- [ ] Research completed (if selected) — 4 parallel agents, milestone-aware
|
|
374
374
|
- [ ] Requirements gathered and scoped per category
|
|
375
375
|
- [ ] REQUIREMENTS.md created with REQ-IDs
|
|
376
|
-
- [ ]
|
|
376
|
+
- [ ] ez-roadmapper spawned with phase numbering context
|
|
377
377
|
- [ ] Roadmap files written immediately (not draft)
|
|
378
378
|
- [ ] User feedback incorporated (if any)
|
|
379
379
|
- [ ] ROADMAP.md phases continue from previous milestone
|