@howlil/ez-agents 3.4.1 → 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.
Files changed (102) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +7 -18
  3. package/bin/install.js +52 -10
  4. package/commands/ez/join-discord.md +18 -18
  5. package/ez-agents/bin/lib/assistant-adapter.cjs +264 -264
  6. package/ez-agents/bin/lib/audit-exec.cjs +7 -2
  7. package/ez-agents/bin/lib/circuit-breaker.cjs +118 -118
  8. package/ez-agents/bin/lib/config.cjs +190 -190
  9. package/ez-agents/bin/lib/file-lock.cjs +236 -236
  10. package/ez-agents/bin/lib/frontmatter.cjs +299 -299
  11. package/ez-agents/bin/lib/fs-utils.cjs +153 -153
  12. package/ez-agents/bin/lib/git-utils.cjs +203 -203
  13. package/ez-agents/bin/lib/index.cjs +113 -113
  14. package/ez-agents/bin/lib/init.cjs +757 -757
  15. package/ez-agents/bin/lib/logger.cjs +47 -17
  16. package/ez-agents/bin/lib/milestone.cjs +241 -241
  17. package/ez-agents/bin/lib/model-provider.cjs +241 -241
  18. package/ez-agents/bin/lib/phase.cjs +925 -925
  19. package/ez-agents/bin/lib/planning-write.cjs +107 -107
  20. package/ez-agents/bin/lib/retry.cjs +119 -119
  21. package/ez-agents/bin/lib/roadmap.cjs +306 -306
  22. package/ez-agents/bin/lib/safe-exec.cjs +90 -4
  23. package/ez-agents/bin/lib/safe-path.cjs +130 -130
  24. package/ez-agents/bin/lib/state.cjs +736 -736
  25. package/ez-agents/bin/lib/temp-file.cjs +239 -239
  26. package/ez-agents/bin/lib/template.cjs +223 -223
  27. package/ez-agents/bin/lib/test-file-lock.cjs +112 -112
  28. package/ez-agents/bin/lib/test-graceful.cjs +93 -93
  29. package/ez-agents/bin/lib/test-logger.cjs +60 -60
  30. package/ez-agents/bin/lib/test-safe-exec.cjs +38 -38
  31. package/ez-agents/bin/lib/test-safe-path.cjs +33 -33
  32. package/ez-agents/bin/lib/test-temp-file.cjs +125 -125
  33. package/ez-agents/bin/lib/timeout-exec.cjs +63 -63
  34. package/ez-agents/bin/lib/verify.cjs +15 -1
  35. package/ez-agents/references/checkpoints.md +776 -776
  36. package/ez-agents/references/continuation-format.md +249 -249
  37. package/ez-agents/references/questioning.md +162 -162
  38. package/ez-agents/references/tdd.md +263 -263
  39. package/ez-agents/templates/codebase/concerns.md +310 -310
  40. package/ez-agents/templates/codebase/conventions.md +307 -307
  41. package/ez-agents/templates/codebase/integrations.md +280 -280
  42. package/ez-agents/templates/codebase/stack.md +186 -186
  43. package/ez-agents/templates/codebase/testing.md +480 -480
  44. package/ez-agents/templates/config.json +37 -37
  45. package/ez-agents/templates/continue-here.md +78 -78
  46. package/ez-agents/templates/milestone-archive.md +123 -123
  47. package/ez-agents/templates/milestone.md +115 -115
  48. package/ez-agents/templates/requirements.md +231 -231
  49. package/ez-agents/templates/research-project/ARCHITECTURE.md +204 -204
  50. package/ez-agents/templates/research-project/FEATURES.md +147 -147
  51. package/ez-agents/templates/research-project/PITFALLS.md +200 -200
  52. package/ez-agents/templates/research-project/STACK.md +120 -120
  53. package/ez-agents/templates/research-project/SUMMARY.md +170 -170
  54. package/ez-agents/templates/retrospective.md +54 -54
  55. package/ez-agents/templates/roadmap.md +202 -202
  56. package/ez-agents/templates/summary-minimal.md +41 -41
  57. package/ez-agents/templates/summary-standard.md +48 -48
  58. package/ez-agents/templates/summary.md +248 -248
  59. package/ez-agents/templates/user-setup.md +311 -311
  60. package/ez-agents/templates/verification-report.md +322 -322
  61. package/ez-agents/workflows/add-phase.md +112 -112
  62. package/ez-agents/workflows/add-tests.md +351 -351
  63. package/ez-agents/workflows/add-todo.md +158 -158
  64. package/ez-agents/workflows/audit-milestone.md +332 -332
  65. package/ez-agents/workflows/autonomous.md +743 -743
  66. package/ez-agents/workflows/check-todos.md +177 -177
  67. package/ez-agents/workflows/cleanup.md +152 -152
  68. package/ez-agents/workflows/complete-milestone.md +766 -766
  69. package/ez-agents/workflows/diagnose-issues.md +219 -219
  70. package/ez-agents/workflows/discovery-phase.md +289 -289
  71. package/ez-agents/workflows/discuss-phase.md +762 -762
  72. package/ez-agents/workflows/execute-phase.md +468 -468
  73. package/ez-agents/workflows/execute-plan.md +483 -483
  74. package/ez-agents/workflows/health.md +159 -159
  75. package/ez-agents/workflows/help.md +492 -492
  76. package/ez-agents/workflows/insert-phase.md +130 -130
  77. package/ez-agents/workflows/list-phase-assumptions.md +178 -178
  78. package/ez-agents/workflows/map-codebase.md +316 -316
  79. package/ez-agents/workflows/new-milestone.md +384 -384
  80. package/ez-agents/workflows/new-project.md +1113 -1113
  81. package/ez-agents/workflows/node-repair.md +92 -92
  82. package/ez-agents/workflows/pause-work.md +122 -122
  83. package/ez-agents/workflows/plan-milestone-gaps.md +274 -274
  84. package/ez-agents/workflows/plan-phase.md +651 -651
  85. package/ez-agents/workflows/progress.md +382 -382
  86. package/ez-agents/workflows/quick.md +610 -610
  87. package/ez-agents/workflows/remove-phase.md +155 -155
  88. package/ez-agents/workflows/research-phase.md +74 -74
  89. package/ez-agents/workflows/resume-project.md +307 -307
  90. package/ez-agents/workflows/set-profile.md +81 -81
  91. package/ez-agents/workflows/settings.md +242 -242
  92. package/ez-agents/workflows/stats.md +57 -57
  93. package/ez-agents/workflows/transition.md +544 -544
  94. package/ez-agents/workflows/ui-phase.md +290 -290
  95. package/ez-agents/workflows/ui-review.md +157 -157
  96. package/ez-agents/workflows/update.md +320 -320
  97. package/ez-agents/workflows/validate-phase.md +167 -167
  98. package/ez-agents/workflows/verify-phase.md +243 -243
  99. package/ez-agents/workflows/verify-work.md +584 -584
  100. package/package.json +2 -3
  101. package/scripts/build-hooks.js +43 -43
  102. package/scripts/run-tests.cjs +29 -29
@@ -1,155 +1,155 @@
1
- <purpose>
2
- Remove an unstarted future phase from the project roadmap, delete its directory, renumber all subsequent phases to maintain a clean linear sequence, and commit the change. The git commit serves as the historical record of removal.
3
- </purpose>
4
-
5
- <required_reading>
6
- Read all files referenced by the invoking prompt's execution_context before starting.
7
- </required_reading>
8
-
9
- <process>
10
-
11
- <step name="parse_arguments">
12
- Parse the command arguments:
13
- - Argument is the phase number to remove (integer or decimal)
14
- - Example: `/ez:remove-phase 17` → phase = 17
15
- - Example: `/ez:remove-phase 16.1` → phase = 16.1
16
-
17
- If no argument provided:
18
-
19
- ```
20
- ERROR: Phase number required
21
- Usage: /ez:remove-phase <phase-number>
22
- Example: /ez:remove-phase 17
23
- ```
24
-
25
- Exit.
26
- </step>
27
-
28
- <step name="init_context">
29
- Load phase operation context:
30
-
31
- ```bash
32
- INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" init phase-op "${target}")
33
- if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
34
- ```
35
-
36
- Extract: `phase_found`, `phase_dir`, `phase_number`, `commit_docs`, `roadmap_exists`.
37
-
38
- Also read STATE.md and ROADMAP.md content for parsing current position.
39
- </step>
40
-
41
- <step name="validate_future_phase">
42
- Verify the phase is a future phase (not started):
43
-
44
- 1. Compare target phase to current phase from STATE.md
45
- 2. Target must be > current phase number
46
-
47
- If target <= current phase:
48
-
49
- ```
50
- ERROR: Cannot remove Phase {target}
51
-
52
- Only future phases can be removed:
53
- - Current phase: {current}
54
- - Phase {target} is current or completed
55
-
56
- To abandon current work, use /ez:pause-work instead.
57
- ```
58
-
59
- Exit.
60
- </step>
61
-
62
- <step name="confirm_removal">
63
- Present removal summary and confirm:
64
-
65
- ```
66
- Removing Phase {target}: {Name}
67
-
68
- This will:
69
- - Delete: .planning/phases/{target}-{slug}/
70
- - Renumber all subsequent phases
71
- - Update: ROADMAP.md, STATE.md
72
-
73
- Proceed? (y/n)
74
- ```
75
-
76
- Wait for confirmation.
77
- </step>
78
-
79
- <step name="execute_removal">
80
- **Delegate the entire removal operation to ez-tools:**
81
-
82
- ```bash
83
- RESULT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" phase remove "${target}")
84
- ```
85
-
86
- If the phase has executed plans (SUMMARY.md files), ez-tools will error. Use `--force` only if the user confirms:
87
-
88
- ```bash
89
- RESULT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" phase remove "${target}" --force)
90
- ```
91
-
92
- The CLI handles:
93
- - Deleting the phase directory
94
- - Renumbering all subsequent directories (in reverse order to avoid conflicts)
95
- - Renaming all files inside renumbered directories (PLAN.md, SUMMARY.md, etc.)
96
- - Updating ROADMAP.md (removing section, renumbering all phase references, updating dependencies)
97
- - Updating STATE.md (decrementing phase count)
98
-
99
- Extract from result: `removed`, `directory_deleted`, `renamed_directories`, `renamed_files`, `roadmap_updated`, `state_updated`.
100
- </step>
101
-
102
- <step name="commit">
103
- Stage and commit the removal:
104
-
105
- ```bash
106
- node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "chore: remove phase {target} ({original-phase-name})" --files .planning/
107
- ```
108
-
109
- The commit message preserves the historical record of what was removed.
110
- </step>
111
-
112
- <step name="completion">
113
- Present completion summary:
114
-
115
- ```
116
- Phase {target} ({original-name}) removed.
117
-
118
- Changes:
119
- - Deleted: .planning/phases/{target}-{slug}/
120
- - Renumbered: {N} directories and {M} files
121
- - Updated: ROADMAP.md, STATE.md
122
- - Committed: chore: remove phase {target} ({original-name})
123
-
124
- ---
125
-
126
- ## What's Next
127
-
128
- Would you like to:
129
- - `/ez:progress` — see updated roadmap status
130
- - Continue with current phase
131
- - Review roadmap
132
-
133
- ---
134
- ```
135
- </step>
136
-
137
- </process>
138
-
139
- <anti_patterns>
140
-
141
- - Don't remove completed phases (have SUMMARY.md files) without --force
142
- - Don't remove current or past phases
143
- - Don't manually renumber — use `ez-tools phase remove` which handles all renumbering
144
- - Don't add "removed phase" notes to STATE.md — git commit is the record
145
- - Don't modify completed phase directories
146
- </anti_patterns>
147
-
148
- <success_criteria>
149
- Phase removal is complete when:
150
-
151
- - [ ] Target phase validated as future/unstarted
152
- - [ ] `ez-tools phase remove` executed successfully
153
- - [ ] Changes committed with descriptive message
154
- - [ ] User informed of changes
155
- </success_criteria>
1
+ <purpose>
2
+ Remove an unstarted future phase from the project roadmap, delete its directory, renumber all subsequent phases to maintain a clean linear sequence, and commit the change. The git commit serves as the historical record of removal.
3
+ </purpose>
4
+
5
+ <required_reading>
6
+ Read all files referenced by the invoking prompt's execution_context before starting.
7
+ </required_reading>
8
+
9
+ <process>
10
+
11
+ <step name="parse_arguments">
12
+ Parse the command arguments:
13
+ - Argument is the phase number to remove (integer or decimal)
14
+ - Example: `/ez:remove-phase 17` → phase = 17
15
+ - Example: `/ez:remove-phase 16.1` → phase = 16.1
16
+
17
+ If no argument provided:
18
+
19
+ ```
20
+ ERROR: Phase number required
21
+ Usage: /ez:remove-phase <phase-number>
22
+ Example: /ez:remove-phase 17
23
+ ```
24
+
25
+ Exit.
26
+ </step>
27
+
28
+ <step name="init_context">
29
+ Load phase operation context:
30
+
31
+ ```bash
32
+ INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" init phase-op "${target}")
33
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
34
+ ```
35
+
36
+ Extract: `phase_found`, `phase_dir`, `phase_number`, `commit_docs`, `roadmap_exists`.
37
+
38
+ Also read STATE.md and ROADMAP.md content for parsing current position.
39
+ </step>
40
+
41
+ <step name="validate_future_phase">
42
+ Verify the phase is a future phase (not started):
43
+
44
+ 1. Compare target phase to current phase from STATE.md
45
+ 2. Target must be > current phase number
46
+
47
+ If target <= current phase:
48
+
49
+ ```
50
+ ERROR: Cannot remove Phase {target}
51
+
52
+ Only future phases can be removed:
53
+ - Current phase: {current}
54
+ - Phase {target} is current or completed
55
+
56
+ To abandon current work, use /ez:pause-work instead.
57
+ ```
58
+
59
+ Exit.
60
+ </step>
61
+
62
+ <step name="confirm_removal">
63
+ Present removal summary and confirm:
64
+
65
+ ```
66
+ Removing Phase {target}: {Name}
67
+
68
+ This will:
69
+ - Delete: .planning/phases/{target}-{slug}/
70
+ - Renumber all subsequent phases
71
+ - Update: ROADMAP.md, STATE.md
72
+
73
+ Proceed? (y/n)
74
+ ```
75
+
76
+ Wait for confirmation.
77
+ </step>
78
+
79
+ <step name="execute_removal">
80
+ **Delegate the entire removal operation to ez-tools:**
81
+
82
+ ```bash
83
+ RESULT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" phase remove "${target}")
84
+ ```
85
+
86
+ If the phase has executed plans (SUMMARY.md files), ez-tools will error. Use `--force` only if the user confirms:
87
+
88
+ ```bash
89
+ RESULT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" phase remove "${target}" --force)
90
+ ```
91
+
92
+ The CLI handles:
93
+ - Deleting the phase directory
94
+ - Renumbering all subsequent directories (in reverse order to avoid conflicts)
95
+ - Renaming all files inside renumbered directories (PLAN.md, SUMMARY.md, etc.)
96
+ - Updating ROADMAP.md (removing section, renumbering all phase references, updating dependencies)
97
+ - Updating STATE.md (decrementing phase count)
98
+
99
+ Extract from result: `removed`, `directory_deleted`, `renamed_directories`, `renamed_files`, `roadmap_updated`, `state_updated`.
100
+ </step>
101
+
102
+ <step name="commit">
103
+ Stage and commit the removal:
104
+
105
+ ```bash
106
+ node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "chore: remove phase {target} ({original-phase-name})" --files .planning/
107
+ ```
108
+
109
+ The commit message preserves the historical record of what was removed.
110
+ </step>
111
+
112
+ <step name="completion">
113
+ Present completion summary:
114
+
115
+ ```
116
+ Phase {target} ({original-name}) removed.
117
+
118
+ Changes:
119
+ - Deleted: .planning/phases/{target}-{slug}/
120
+ - Renumbered: {N} directories and {M} files
121
+ - Updated: ROADMAP.md, STATE.md
122
+ - Committed: chore: remove phase {target} ({original-name})
123
+
124
+ ---
125
+
126
+ ## What's Next
127
+
128
+ Would you like to:
129
+ - `/ez:progress` — see updated roadmap status
130
+ - Continue with current phase
131
+ - Review roadmap
132
+
133
+ ---
134
+ ```
135
+ </step>
136
+
137
+ </process>
138
+
139
+ <anti_patterns>
140
+
141
+ - Don't remove completed phases (have SUMMARY.md files) without --force
142
+ - Don't remove current or past phases
143
+ - Don't manually renumber — use `ez-tools phase remove` which handles all renumbering
144
+ - Don't add "removed phase" notes to STATE.md — git commit is the record
145
+ - Don't modify completed phase directories
146
+ </anti_patterns>
147
+
148
+ <success_criteria>
149
+ Phase removal is complete when:
150
+
151
+ - [ ] Target phase validated as future/unstarted
152
+ - [ ] `ez-tools phase remove` executed successfully
153
+ - [ ] Changes committed with descriptive message
154
+ - [ ] User informed of changes
155
+ </success_criteria>
@@ -1,74 +1,74 @@
1
- <purpose>
2
- Research how to implement a phase. Spawns ez-phase-researcher with phase context.
3
-
4
- Standalone research command. For most workflows, use `/ez:plan-phase` which integrates research automatically.
5
- </purpose>
6
-
7
- <process>
8
-
9
- ## Step 0: Resolve Model Profile
10
-
11
- @~/.claude/ez-agents/references/model-profile-resolution.md
12
-
13
- Resolve model for:
14
- - `ez-phase-researcher`
15
-
16
- ## Step 1: Normalize and Validate Phase
17
-
18
- @~/.claude/ez-agents/references/phase-argument-parsing.md
19
-
20
- ```bash
21
- PHASE_INFO=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" roadmap get-phase "${PHASE}")
22
- ```
23
-
24
- If `found` is false: Error and exit.
25
-
26
- ## Step 2: Check Existing Research
27
-
28
- ```bash
29
- ls .planning/phases/${PHASE}-*/RESEARCH.md 2>/dev/null
30
- ```
31
-
32
- If exists: Offer update/view/skip options.
33
-
34
- ## Step 3: Gather Phase Context
35
-
36
- ```bash
37
- INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" init phase-op "${PHASE}")
38
- if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
39
- # Extract: phase_dir, padded_phase, phase_number, state_path, requirements_path, context_path
40
- ```
41
-
42
- ## Step 4: Spawn Researcher
43
-
44
- ```
45
- Task(
46
- prompt="<objective>
47
- Research implementation approach for Phase {phase}: {name}
48
- </objective>
49
-
50
- <files_to_read>
51
- - {context_path} (USER DECISIONS from /ez:discuss-phase)
52
- - {requirements_path} (Project requirements)
53
- - {state_path} (Project decisions and history)
54
- </files_to_read>
55
-
56
- <additional_context>
57
- Phase description: {description}
58
- </additional_context>
59
-
60
- <output>
61
- Write to: .planning/phases/${PHASE}-{slug}/${PHASE}-RESEARCH.md
62
- </output>",
63
- subagent_type="ez-phase-researcher",
64
- model="{researcher_model}"
65
- )
66
- ```
67
-
68
- ## Step 5: Handle Return
69
-
70
- - `## RESEARCH COMPLETE` — Display summary, offer: Plan/Dig deeper/Review/Done
71
- - `## CHECKPOINT REACHED` — Present to user, spawn continuation
72
- - `## RESEARCH INCONCLUSIVE` — Show attempts, offer: Add context/Try different mode/Manual
73
-
74
- </process>
1
+ <purpose>
2
+ Research how to implement a phase. Spawns ez-phase-researcher with phase context.
3
+
4
+ Standalone research command. For most workflows, use `/ez:plan-phase` which integrates research automatically.
5
+ </purpose>
6
+
7
+ <process>
8
+
9
+ ## Step 0: Resolve Model Profile
10
+
11
+ @~/.claude/ez-agents/references/model-profile-resolution.md
12
+
13
+ Resolve model for:
14
+ - `ez-phase-researcher`
15
+
16
+ ## Step 1: Normalize and Validate Phase
17
+
18
+ @~/.claude/ez-agents/references/phase-argument-parsing.md
19
+
20
+ ```bash
21
+ PHASE_INFO=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" roadmap get-phase "${PHASE}")
22
+ ```
23
+
24
+ If `found` is false: Error and exit.
25
+
26
+ ## Step 2: Check Existing Research
27
+
28
+ ```bash
29
+ ls .planning/phases/${PHASE}-*/RESEARCH.md 2>/dev/null
30
+ ```
31
+
32
+ If exists: Offer update/view/skip options.
33
+
34
+ ## Step 3: Gather Phase Context
35
+
36
+ ```bash
37
+ INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" init phase-op "${PHASE}")
38
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
39
+ # Extract: phase_dir, padded_phase, phase_number, state_path, requirements_path, context_path
40
+ ```
41
+
42
+ ## Step 4: Spawn Researcher
43
+
44
+ ```
45
+ Task(
46
+ prompt="<objective>
47
+ Research implementation approach for Phase {phase}: {name}
48
+ </objective>
49
+
50
+ <files_to_read>
51
+ - {context_path} (USER DECISIONS from /ez:discuss-phase)
52
+ - {requirements_path} (Project requirements)
53
+ - {state_path} (Project decisions and history)
54
+ </files_to_read>
55
+
56
+ <additional_context>
57
+ Phase description: {description}
58
+ </additional_context>
59
+
60
+ <output>
61
+ Write to: .planning/phases/${PHASE}-{slug}/${PHASE}-RESEARCH.md
62
+ </output>",
63
+ subagent_type="ez-phase-researcher",
64
+ model="{researcher_model}"
65
+ )
66
+ ```
67
+
68
+ ## Step 5: Handle Return
69
+
70
+ - `## RESEARCH COMPLETE` — Display summary, offer: Plan/Dig deeper/Review/Done
71
+ - `## CHECKPOINT REACHED` — Present to user, spawn continuation
72
+ - `## RESEARCH INCONCLUSIVE` — Show attempts, offer: Add context/Try different mode/Manual
73
+
74
+ </process>