@howlil/ez-agents 3.4.1 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +84 -20
  3. package/agents/ez-observer-agent.md +260 -0
  4. package/agents/ez-release-agent.md +333 -0
  5. package/agents/ez-requirements-agent.md +377 -0
  6. package/agents/ez-scrum-master-agent.md +242 -0
  7. package/agents/ez-tech-lead-agent.md +267 -0
  8. package/bin/install.js +3221 -3230
  9. package/commands/ez/arch-review.md +102 -0
  10. package/commands/ez/execute-phase.md +11 -0
  11. package/commands/ez/export-session.md +79 -0
  12. package/commands/ez/gather-requirements.md +117 -0
  13. package/commands/ez/git-workflow.md +72 -0
  14. package/commands/ez/hotfix.md +120 -0
  15. package/commands/ez/import-session.md +82 -0
  16. package/commands/ez/join-discord.md +18 -18
  17. package/commands/ez/list-sessions.md +96 -0
  18. package/commands/ez/package-manager.md +316 -0
  19. package/commands/ez/plan-phase.md +9 -1
  20. package/commands/ez/preflight.md +79 -0
  21. package/commands/ez/progress.md +13 -1
  22. package/commands/ez/release.md +153 -0
  23. package/commands/ez/resume.md +107 -0
  24. package/commands/ez/standup.md +85 -0
  25. package/ez-agents/bin/ez-tools.cjs +1095 -716
  26. package/ez-agents/bin/lib/assistant-adapter.cjs +264 -264
  27. package/ez-agents/bin/lib/audit-exec.cjs +7 -2
  28. package/ez-agents/bin/lib/bdd-validator.cjs +622 -0
  29. package/ez-agents/bin/lib/circuit-breaker.cjs +118 -118
  30. package/ez-agents/bin/lib/config.cjs +190 -190
  31. package/ez-agents/bin/lib/content-scanner.cjs +238 -0
  32. package/ez-agents/bin/lib/context-cache.cjs +154 -0
  33. package/ez-agents/bin/lib/context-errors.cjs +71 -0
  34. package/ez-agents/bin/lib/context-manager.cjs +220 -0
  35. package/ez-agents/bin/lib/discussion-synthesizer.cjs +458 -0
  36. package/ez-agents/bin/lib/file-access.cjs +207 -0
  37. package/ez-agents/bin/lib/file-lock.cjs +236 -236
  38. package/ez-agents/bin/lib/frontmatter.cjs +299 -299
  39. package/ez-agents/bin/lib/fs-utils.cjs +153 -153
  40. package/ez-agents/bin/lib/git-errors.cjs +83 -0
  41. package/ez-agents/bin/lib/git-utils.cjs +118 -0
  42. package/ez-agents/bin/lib/git-workflow-engine.cjs +1157 -0
  43. package/ez-agents/bin/lib/index.cjs +157 -113
  44. package/ez-agents/bin/lib/init.cjs +757 -757
  45. package/ez-agents/bin/lib/lockfile-validator.cjs +227 -0
  46. package/ez-agents/bin/lib/logger.cjs +124 -124
  47. package/ez-agents/bin/lib/memory-compression.cjs +256 -0
  48. package/ez-agents/bin/lib/metrics-tracker.cjs +406 -0
  49. package/ez-agents/bin/lib/milestone.cjs +241 -241
  50. package/ez-agents/bin/lib/model-provider.cjs +241 -241
  51. package/ez-agents/bin/lib/package-manager-detector.cjs +203 -0
  52. package/ez-agents/bin/lib/package-manager-executor.cjs +385 -0
  53. package/ez-agents/bin/lib/package-manager-service.cjs +216 -0
  54. package/ez-agents/bin/lib/phase.cjs +925 -925
  55. package/ez-agents/bin/lib/planning-write.cjs +107 -107
  56. package/ez-agents/bin/lib/release-validator.cjs +614 -0
  57. package/ez-agents/bin/lib/retry.cjs +119 -119
  58. package/ez-agents/bin/lib/roadmap.cjs +306 -306
  59. package/ez-agents/bin/lib/safe-exec.cjs +128 -128
  60. package/ez-agents/bin/lib/safe-path.cjs +130 -130
  61. package/ez-agents/bin/lib/session-chain.cjs +304 -0
  62. package/ez-agents/bin/lib/session-errors.cjs +81 -0
  63. package/ez-agents/bin/lib/session-export.cjs +251 -0
  64. package/ez-agents/bin/lib/session-import.cjs +262 -0
  65. package/ez-agents/bin/lib/session-manager.cjs +280 -0
  66. package/ez-agents/bin/lib/state.cjs +736 -736
  67. package/ez-agents/bin/lib/temp-file.cjs +239 -239
  68. package/ez-agents/bin/lib/template.cjs +223 -223
  69. package/ez-agents/bin/lib/test-file-lock.cjs +112 -112
  70. package/ez-agents/bin/lib/test-graceful.cjs +93 -93
  71. package/ez-agents/bin/lib/test-logger.cjs +60 -60
  72. package/ez-agents/bin/lib/test-safe-exec.cjs +38 -38
  73. package/ez-agents/bin/lib/test-safe-path.cjs +33 -33
  74. package/ez-agents/bin/lib/test-temp-file.cjs +125 -125
  75. package/ez-agents/bin/lib/tier-manager.cjs +428 -0
  76. package/ez-agents/bin/lib/timeout-exec.cjs +63 -63
  77. package/ez-agents/bin/lib/url-fetch.cjs +170 -0
  78. package/ez-agents/bin/lib/verify.cjs +15 -1
  79. package/ez-agents/references/checkpoints.md +776 -776
  80. package/ez-agents/references/continuation-format.md +249 -249
  81. package/ez-agents/references/metrics-schema.md +118 -0
  82. package/ez-agents/references/planning-config.md +140 -0
  83. package/ez-agents/references/questioning.md +162 -162
  84. package/ez-agents/references/tdd.md +263 -263
  85. package/ez-agents/references/tier-strategy.md +103 -0
  86. package/ez-agents/templates/bdd-feature.md +173 -0
  87. package/ez-agents/templates/codebase/concerns.md +310 -310
  88. package/ez-agents/templates/codebase/conventions.md +307 -307
  89. package/ez-agents/templates/codebase/integrations.md +280 -280
  90. package/ez-agents/templates/codebase/stack.md +186 -186
  91. package/ez-agents/templates/codebase/testing.md +480 -480
  92. package/ez-agents/templates/config.json +37 -37
  93. package/ez-agents/templates/continue-here.md +78 -78
  94. package/ez-agents/templates/discussion.md +68 -0
  95. package/ez-agents/templates/incident-runbook.md +205 -0
  96. package/ez-agents/templates/milestone-archive.md +123 -123
  97. package/ez-agents/templates/milestone.md +115 -115
  98. package/ez-agents/templates/release-checklist.md +133 -0
  99. package/ez-agents/templates/requirements.md +231 -231
  100. package/ez-agents/templates/research-project/ARCHITECTURE.md +204 -204
  101. package/ez-agents/templates/research-project/FEATURES.md +147 -147
  102. package/ez-agents/templates/research-project/PITFALLS.md +200 -200
  103. package/ez-agents/templates/research-project/STACK.md +120 -120
  104. package/ez-agents/templates/research-project/SUMMARY.md +170 -170
  105. package/ez-agents/templates/retrospective.md +54 -54
  106. package/ez-agents/templates/roadmap.md +202 -202
  107. package/ez-agents/templates/rollback-plan.md +201 -0
  108. package/ez-agents/templates/summary-minimal.md +41 -41
  109. package/ez-agents/templates/summary-standard.md +48 -48
  110. package/ez-agents/templates/summary.md +248 -248
  111. package/ez-agents/templates/user-setup.md +311 -311
  112. package/ez-agents/templates/verification-report.md +322 -322
  113. package/ez-agents/workflows/add-phase.md +112 -112
  114. package/ez-agents/workflows/add-tests.md +351 -351
  115. package/ez-agents/workflows/add-todo.md +158 -158
  116. package/ez-agents/workflows/arch-review.md +54 -0
  117. package/ez-agents/workflows/audit-milestone.md +332 -332
  118. package/ez-agents/workflows/autonomous.md +131 -30
  119. package/ez-agents/workflows/check-todos.md +177 -177
  120. package/ez-agents/workflows/cleanup.md +152 -152
  121. package/ez-agents/workflows/complete-milestone.md +766 -766
  122. package/ez-agents/workflows/diagnose-issues.md +219 -219
  123. package/ez-agents/workflows/discovery-phase.md +289 -289
  124. package/ez-agents/workflows/discuss-phase.md +762 -762
  125. package/ez-agents/workflows/execute-phase.md +513 -468
  126. package/ez-agents/workflows/execute-plan.md +483 -483
  127. package/ez-agents/workflows/export-session.md +255 -0
  128. package/ez-agents/workflows/gather-requirements.md +206 -0
  129. package/ez-agents/workflows/health.md +159 -159
  130. package/ez-agents/workflows/help.md +584 -492
  131. package/ez-agents/workflows/hotfix.md +291 -0
  132. package/ez-agents/workflows/import-session.md +303 -0
  133. package/ez-agents/workflows/insert-phase.md +130 -130
  134. package/ez-agents/workflows/list-phase-assumptions.md +178 -178
  135. package/ez-agents/workflows/map-codebase.md +316 -316
  136. package/ez-agents/workflows/new-milestone.md +339 -10
  137. package/ez-agents/workflows/new-project.md +293 -299
  138. package/ez-agents/workflows/node-repair.md +92 -92
  139. package/ez-agents/workflows/pause-work.md +122 -122
  140. package/ez-agents/workflows/plan-milestone-gaps.md +274 -274
  141. package/ez-agents/workflows/plan-phase.md +673 -651
  142. package/ez-agents/workflows/progress.md +372 -382
  143. package/ez-agents/workflows/quick.md +610 -610
  144. package/ez-agents/workflows/release.md +253 -0
  145. package/ez-agents/workflows/remove-phase.md +155 -155
  146. package/ez-agents/workflows/research-phase.md +74 -74
  147. package/ez-agents/workflows/resume-project.md +307 -307
  148. package/ez-agents/workflows/resume-session.md +215 -0
  149. package/ez-agents/workflows/set-profile.md +81 -81
  150. package/ez-agents/workflows/settings.md +242 -242
  151. package/ez-agents/workflows/standup.md +64 -0
  152. package/ez-agents/workflows/stats.md +57 -57
  153. package/ez-agents/workflows/transition.md +544 -544
  154. package/ez-agents/workflows/ui-phase.md +290 -290
  155. package/ez-agents/workflows/ui-review.md +157 -157
  156. package/ez-agents/workflows/update.md +320 -320
  157. package/ez-agents/workflows/validate-phase.md +167 -167
  158. package/ez-agents/workflows/verify-phase.md +243 -243
  159. package/ez-agents/workflows/verify-work.md +584 -584
  160. package/package.json +10 -4
  161. package/scripts/build-hooks.js +43 -43
  162. package/scripts/run-tests.cjs +29 -29
@@ -1,242 +1,242 @@
1
- <purpose>
2
- Interactive configuration of EZ workflow agents (research, plan_check, verifier) and model profile selection via multi-question prompt. Updates .planning/config.json with user preferences. Optionally saves settings as global defaults (`~/.ez/defaults.json`) for future projects.
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="ensure_and_load_config">
12
- Ensure config exists and load current state:
13
-
14
- ```bash
15
- node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" config-ensure-section
16
- INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" state load)
17
- if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
18
- ```
19
-
20
- Creates `.planning/config.json` with defaults if missing and loads current config values.
21
- </step>
22
-
23
- <step name="read_current">
24
- ```bash
25
- cat .planning/config.json
26
- ```
27
-
28
- Parse current values (default to `true` if not present):
29
- - `workflow.research` — spawn researcher during plan-phase
30
- - `workflow.plan_check` — spawn plan checker during plan-phase
31
- - `workflow.verifier` — spawn verifier during execute-phase
32
- - `workflow.nyquist_validation` — validation architecture research during plan-phase (default: true if absent)
33
- - `workflow.ui_phase` — generate UI-SPEC.md design contracts for frontend phases (default: true if absent)
34
- - `workflow.ui_safety_gate` — prompt to run /ez:ui-phase before planning frontend phases (default: true if absent)
35
- - `model_profile` — which model each agent uses (default: `balanced`)
36
- - `git.branching_strategy` — branching approach (default: `"none"`)
37
- </step>
38
-
39
- <step name="present_settings">
40
- Use AskUserQuestion with current values pre-selected:
41
-
42
- ```
43
- AskUserQuestion([
44
- {
45
- question: "Which model profile for agents?",
46
- header: "Model",
47
- multiSelect: false,
48
- options: [
49
- { label: "Quality", description: "Opus everywhere except verification (highest cost)" },
50
- { label: "Balanced (Recommended)", description: "Opus for planning, Sonnet for execution/verification" },
51
- { label: "Budget", description: "Sonnet for writing, Haiku for research/verification (lowest cost)" }
52
- ]
53
- },
54
- {
55
- question: "Spawn Plan Researcher? (researches domain before planning)",
56
- header: "Research",
57
- multiSelect: false,
58
- options: [
59
- { label: "Yes", description: "Research phase goals before planning" },
60
- { label: "No", description: "Skip research, plan directly" }
61
- ]
62
- },
63
- {
64
- question: "Spawn Plan Checker? (verifies plans before execution)",
65
- header: "Plan Check",
66
- multiSelect: false,
67
- options: [
68
- { label: "Yes", description: "Verify plans meet phase goals" },
69
- { label: "No", description: "Skip plan verification" }
70
- ]
71
- },
72
- {
73
- question: "Spawn Execution Verifier? (verifies phase completion)",
74
- header: "Verifier",
75
- multiSelect: false,
76
- options: [
77
- { label: "Yes", description: "Verify must-haves after execution" },
78
- { label: "No", description: "Skip post-execution verification" }
79
- ]
80
- },
81
- {
82
- question: "Auto-advance pipeline? (discuss → plan → execute automatically)",
83
- header: "Auto",
84
- multiSelect: false,
85
- options: [
86
- { label: "No (Recommended)", description: "Manual /clear + paste between stages" },
87
- { label: "Yes", description: "Chain stages via Task() subagents (same isolation)" }
88
- ]
89
- },
90
- {
91
- question: "Enable Nyquist Validation? (researches test coverage during planning)",
92
- header: "Nyquist",
93
- multiSelect: false,
94
- options: [
95
- { label: "Yes (Recommended)", description: "Research automated test coverage during plan-phase. Adds validation requirements to plans. Blocks approval if tasks lack automated verify." },
96
- { label: "No", description: "Skip validation research. Good for rapid prototyping or no-test phases." }
97
- ]
98
- },
99
- // Note: Nyquist validation depends on research output. If research is disabled,
100
- // plan-phase automatically skips Nyquist steps (no RESEARCH.md to extract from).
101
- {
102
- question: "Enable UI Phase? (generates UI-SPEC.md design contracts for frontend phases)",
103
- header: "UI Phase",
104
- multiSelect: false,
105
- options: [
106
- { label: "Yes (Recommended)", description: "Generate UI design contracts before planning frontend phases. Locks spacing, typography, color, and copywriting." },
107
- { label: "No", description: "Skip UI-SPEC generation. Good for backend-only projects or API phases." }
108
- ]
109
- },
110
- {
111
- question: "Enable UI Safety Gate? (prompts to run /ez:ui-phase before planning frontend phases)",
112
- header: "UI Gate",
113
- multiSelect: false,
114
- options: [
115
- { label: "Yes (Recommended)", description: "plan-phase asks to run /ez:ui-phase first when frontend indicators detected." },
116
- { label: "No", description: "No prompt — plan-phase proceeds without UI-SPEC check." }
117
- ]
118
- },
119
- {
120
- question: "Git branching strategy?",
121
- header: "Branching",
122
- multiSelect: false,
123
- options: [
124
- { label: "None (Recommended)", description: "Commit directly to current branch" },
125
- { label: "Per Phase", description: "Create branch for each phase (ez/phase-{N}-{name})" },
126
- { label: "Per Milestone", description: "Create branch for entire milestone (ez/{version}-{name})" }
127
- ]
128
- }
129
- ])
130
- ```
131
- </step>
132
-
133
- <step name="update_config">
134
- Merge new settings into existing config.json:
135
-
136
- ```json
137
- {
138
- ...existing_config,
139
- "model_profile": "quality" | "balanced" | "budget",
140
- "workflow": {
141
- "research": true/false,
142
- "plan_check": true/false,
143
- "verifier": true/false,
144
- "auto_advance": true/false,
145
- "nyquist_validation": true/false,
146
- "ui_phase": true/false,
147
- "ui_safety_gate": true/false
148
- },
149
- "git": {
150
- "branching_strategy": "none" | "phase" | "milestone"
151
- }
152
- }
153
- ```
154
-
155
- Write updated config to `.planning/config.json`.
156
- </step>
157
-
158
- <step name="save_as_defaults">
159
- Ask whether to save these settings as global defaults for future projects:
160
-
161
- ```
162
- AskUserQuestion([
163
- {
164
- question: "Save these as default settings for all new projects?",
165
- header: "Defaults",
166
- multiSelect: false,
167
- options: [
168
- { label: "Yes", description: "New projects start with these settings (saved to ~/.ez/defaults.json)" },
169
- { label: "No", description: "Only apply to this project" }
170
- ]
171
- }
172
- ])
173
- ```
174
-
175
- If "Yes": write the same config object (minus project-specific fields like `brave_search`) to `~/.ez/defaults.json`:
176
-
177
- ```bash
178
- mkdir -p ~/.ez
179
- ```
180
-
181
- Write `~/.ez/defaults.json` with:
182
- ```json
183
- {
184
- "mode": <current>,
185
- "granularity": <current>,
186
- "model_profile": <current>,
187
- "commit_docs": <current>,
188
- "parallelization": <current>,
189
- "branching_strategy": <current>,
190
- "workflow": {
191
- "research": <current>,
192
- "plan_check": <current>,
193
- "verifier": <current>,
194
- "auto_advance": <current>,
195
- "nyquist_validation": <current>,
196
- "ui_phase": <current>,
197
- "ui_safety_gate": <current>
198
- }
199
- }
200
- ```
201
- </step>
202
-
203
- <step name="confirm">
204
- Display:
205
-
206
- ```
207
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
208
- EZ ► SETTINGS UPDATED
209
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
210
-
211
- | Setting | Value |
212
- |----------------------|-------|
213
- | Model Profile | {quality/balanced/budget} |
214
- | Plan Researcher | {On/Off} |
215
- | Plan Checker | {On/Off} |
216
- | Execution Verifier | {On/Off} |
217
- | Auto-Advance | {On/Off} |
218
- | Nyquist Validation | {On/Off} |
219
- | UI Phase | {On/Off} |
220
- | UI Safety Gate | {On/Off} |
221
- | Git Branching | {None/Per Phase/Per Milestone} |
222
- | Saved as Defaults | {Yes/No} |
223
-
224
- These settings apply to future /ez:plan-phase and /ez:execute-phase runs.
225
-
226
- Quick commands:
227
- - /ez:set-profile <profile> — switch model profile
228
- - /ez:plan-phase --research — force research
229
- - /ez:plan-phase --skip-research — skip research
230
- - /ez:plan-phase --skip-verify — skip plan check
231
- ```
232
- </step>
233
-
234
- </process>
235
-
236
- <success_criteria>
237
- - [ ] Current config read
238
- - [ ] User presented with 9 settings (profile + 7 workflow toggles + git branching)
239
- - [ ] Config updated with model_profile, workflow, and git sections
240
- - [ ] User offered to save as global defaults (~/.ez/defaults.json)
241
- - [ ] Changes confirmed to user
242
- </success_criteria>
1
+ <purpose>
2
+ Interactive configuration of EZ workflow agents (research, plan_check, verifier) and model profile selection via multi-question prompt. Updates .planning/config.json with user preferences. Optionally saves settings as global defaults (`~/.ez/defaults.json`) for future projects.
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="ensure_and_load_config">
12
+ Ensure config exists and load current state:
13
+
14
+ ```bash
15
+ node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" config-ensure-section
16
+ INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" state load)
17
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
18
+ ```
19
+
20
+ Creates `.planning/config.json` with defaults if missing and loads current config values.
21
+ </step>
22
+
23
+ <step name="read_current">
24
+ ```bash
25
+ cat .planning/config.json
26
+ ```
27
+
28
+ Parse current values (default to `true` if not present):
29
+ - `workflow.research` — spawn researcher during plan-phase
30
+ - `workflow.plan_check` — spawn plan checker during plan-phase
31
+ - `workflow.verifier` — spawn verifier during execute-phase
32
+ - `workflow.nyquist_validation` — validation architecture research during plan-phase (default: true if absent)
33
+ - `workflow.ui_phase` — generate UI-SPEC.md design contracts for frontend phases (default: true if absent)
34
+ - `workflow.ui_safety_gate` — prompt to run /ez:ui-phase before planning frontend phases (default: true if absent)
35
+ - `model_profile` — which model each agent uses (default: `balanced`)
36
+ - `git.branching_strategy` — branching approach (default: `"none"`)
37
+ </step>
38
+
39
+ <step name="present_settings">
40
+ Use AskUserQuestion with current values pre-selected:
41
+
42
+ ```
43
+ AskUserQuestion([
44
+ {
45
+ question: "Which model profile for agents?",
46
+ header: "Model",
47
+ multiSelect: false,
48
+ options: [
49
+ { label: "Quality", description: "Opus everywhere except verification (highest cost)" },
50
+ { label: "Balanced (Recommended)", description: "Opus for planning, Sonnet for execution/verification" },
51
+ { label: "Budget", description: "Sonnet for writing, Haiku for research/verification (lowest cost)" }
52
+ ]
53
+ },
54
+ {
55
+ question: "Spawn Plan Researcher? (researches domain before planning)",
56
+ header: "Research",
57
+ multiSelect: false,
58
+ options: [
59
+ { label: "Yes", description: "Research phase goals before planning" },
60
+ { label: "No", description: "Skip research, plan directly" }
61
+ ]
62
+ },
63
+ {
64
+ question: "Spawn Plan Checker? (verifies plans before execution)",
65
+ header: "Plan Check",
66
+ multiSelect: false,
67
+ options: [
68
+ { label: "Yes", description: "Verify plans meet phase goals" },
69
+ { label: "No", description: "Skip plan verification" }
70
+ ]
71
+ },
72
+ {
73
+ question: "Spawn Execution Verifier? (verifies phase completion)",
74
+ header: "Verifier",
75
+ multiSelect: false,
76
+ options: [
77
+ { label: "Yes", description: "Verify must-haves after execution" },
78
+ { label: "No", description: "Skip post-execution verification" }
79
+ ]
80
+ },
81
+ {
82
+ question: "Auto-advance pipeline? (discuss → plan → execute automatically)",
83
+ header: "Auto",
84
+ multiSelect: false,
85
+ options: [
86
+ { label: "No (Recommended)", description: "Manual /clear + paste between stages" },
87
+ { label: "Yes", description: "Chain stages via Task() subagents (same isolation)" }
88
+ ]
89
+ },
90
+ {
91
+ question: "Enable Nyquist Validation? (researches test coverage during planning)",
92
+ header: "Nyquist",
93
+ multiSelect: false,
94
+ options: [
95
+ { label: "Yes (Recommended)", description: "Research automated test coverage during plan-phase. Adds validation requirements to plans. Blocks approval if tasks lack automated verify." },
96
+ { label: "No", description: "Skip validation research. Good for rapid prototyping or no-test phases." }
97
+ ]
98
+ },
99
+ // Note: Nyquist validation depends on research output. If research is disabled,
100
+ // plan-phase automatically skips Nyquist steps (no RESEARCH.md to extract from).
101
+ {
102
+ question: "Enable UI Phase? (generates UI-SPEC.md design contracts for frontend phases)",
103
+ header: "UI Phase",
104
+ multiSelect: false,
105
+ options: [
106
+ { label: "Yes (Recommended)", description: "Generate UI design contracts before planning frontend phases. Locks spacing, typography, color, and copywriting." },
107
+ { label: "No", description: "Skip UI-SPEC generation. Good for backend-only projects or API phases." }
108
+ ]
109
+ },
110
+ {
111
+ question: "Enable UI Safety Gate? (prompts to run /ez:ui-phase before planning frontend phases)",
112
+ header: "UI Gate",
113
+ multiSelect: false,
114
+ options: [
115
+ { label: "Yes (Recommended)", description: "plan-phase asks to run /ez:ui-phase first when frontend indicators detected." },
116
+ { label: "No", description: "No prompt — plan-phase proceeds without UI-SPEC check." }
117
+ ]
118
+ },
119
+ {
120
+ question: "Git branching strategy?",
121
+ header: "Branching",
122
+ multiSelect: false,
123
+ options: [
124
+ { label: "None (Recommended)", description: "Commit directly to current branch" },
125
+ { label: "Per Phase", description: "Create branch for each phase (ez/phase-{N}-{name})" },
126
+ { label: "Per Milestone", description: "Create branch for entire milestone (ez/{version}-{name})" }
127
+ ]
128
+ }
129
+ ])
130
+ ```
131
+ </step>
132
+
133
+ <step name="update_config">
134
+ Merge new settings into existing config.json:
135
+
136
+ ```json
137
+ {
138
+ ...existing_config,
139
+ "model_profile": "quality" | "balanced" | "budget",
140
+ "workflow": {
141
+ "research": true/false,
142
+ "plan_check": true/false,
143
+ "verifier": true/false,
144
+ "auto_advance": true/false,
145
+ "nyquist_validation": true/false,
146
+ "ui_phase": true/false,
147
+ "ui_safety_gate": true/false
148
+ },
149
+ "git": {
150
+ "branching_strategy": "none" | "phase" | "milestone"
151
+ }
152
+ }
153
+ ```
154
+
155
+ Write updated config to `.planning/config.json`.
156
+ </step>
157
+
158
+ <step name="save_as_defaults">
159
+ Ask whether to save these settings as global defaults for future projects:
160
+
161
+ ```
162
+ AskUserQuestion([
163
+ {
164
+ question: "Save these as default settings for all new projects?",
165
+ header: "Defaults",
166
+ multiSelect: false,
167
+ options: [
168
+ { label: "Yes", description: "New projects start with these settings (saved to ~/.ez/defaults.json)" },
169
+ { label: "No", description: "Only apply to this project" }
170
+ ]
171
+ }
172
+ ])
173
+ ```
174
+
175
+ If "Yes": write the same config object (minus project-specific fields like `brave_search`) to `~/.ez/defaults.json`:
176
+
177
+ ```bash
178
+ mkdir -p ~/.ez
179
+ ```
180
+
181
+ Write `~/.ez/defaults.json` with:
182
+ ```json
183
+ {
184
+ "mode": <current>,
185
+ "granularity": <current>,
186
+ "model_profile": <current>,
187
+ "commit_docs": <current>,
188
+ "parallelization": <current>,
189
+ "branching_strategy": <current>,
190
+ "workflow": {
191
+ "research": <current>,
192
+ "plan_check": <current>,
193
+ "verifier": <current>,
194
+ "auto_advance": <current>,
195
+ "nyquist_validation": <current>,
196
+ "ui_phase": <current>,
197
+ "ui_safety_gate": <current>
198
+ }
199
+ }
200
+ ```
201
+ </step>
202
+
203
+ <step name="confirm">
204
+ Display:
205
+
206
+ ```
207
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
208
+ EZ ► SETTINGS UPDATED
209
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
210
+
211
+ | Setting | Value |
212
+ |----------------------|-------|
213
+ | Model Profile | {quality/balanced/budget} |
214
+ | Plan Researcher | {On/Off} |
215
+ | Plan Checker | {On/Off} |
216
+ | Execution Verifier | {On/Off} |
217
+ | Auto-Advance | {On/Off} |
218
+ | Nyquist Validation | {On/Off} |
219
+ | UI Phase | {On/Off} |
220
+ | UI Safety Gate | {On/Off} |
221
+ | Git Branching | {None/Per Phase/Per Milestone} |
222
+ | Saved as Defaults | {Yes/No} |
223
+
224
+ These settings apply to future /ez:plan-phase and /ez:execute-phase runs.
225
+
226
+ Quick commands:
227
+ - /ez:set-profile <profile> — switch model profile
228
+ - /ez:plan-phase --research — force research
229
+ - /ez:plan-phase --skip-research — skip research
230
+ - /ez:plan-phase --skip-verify — skip plan check
231
+ ```
232
+ </step>
233
+
234
+ </process>
235
+
236
+ <success_criteria>
237
+ - [ ] Current config read
238
+ - [ ] User presented with 9 settings (profile + 7 workflow toggles + git branching)
239
+ - [ ] Config updated with model_profile, workflow, and git sections
240
+ - [ ] User offered to save as global defaults (~/.ez/defaults.json)
241
+ - [ ] Changes confirmed to user
242
+ </success_criteria>
@@ -0,0 +1,64 @@
1
+ <purpose>
2
+ Generate a sprint standup report. Analyzes recent SUMMARY.md files, STATE.md decisions/blockers, and phase progress to produce yesterday/today/blockers/velocity/health score.
3
+ </purpose>
4
+
5
+ <process>
6
+
7
+ ## 1. Initialize
8
+
9
+ ```bash
10
+ INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" init progress)
11
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
12
+ ```
13
+
14
+ Parse optional phase from $ARGUMENTS.
15
+
16
+ ## 2. Gather Data
17
+
18
+ ```bash
19
+ STATE=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" state-snapshot)
20
+ ROADMAP=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" roadmap analyze)
21
+ PROGRESS_BAR=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" progress bar --raw)
22
+ ```
23
+
24
+ Find 3-5 most recent SUMMARY.md files (last 2 sessions worth of work).
25
+
26
+ ## 3. Calculate Sprint Health
27
+
28
+ Score 0-100 based on:
29
+ - Plans completed vs planned (velocity): 30pts
30
+ - Active blockers (0=30pts, 1=15pts, 2+=0pts): 30pts
31
+ - Requirements coverage from ROADMAP: 20pts
32
+ - Deviation rate from STATE.md: 20pts
33
+
34
+ ## 4. Generate Standup Report
35
+
36
+ ```
37
+ ## Daily Standup — {date}
38
+
39
+ ### Yesterday
40
+ {recent SUMMARY.md one-liners}
41
+
42
+ ### Today (Planned)
43
+ {next phase/plans from ROADMAP}
44
+
45
+ ### Blockers
46
+ {from STATE.md blockers[] or "None"}
47
+
48
+ ### Velocity Trend
49
+ {calculated from plan completion rate}
50
+
51
+ Sprint Health: {score}/100 — {status}
52
+ {one-line recommendation}
53
+ ```
54
+
55
+ Status thresholds: 80-100=HEALTHY, 60-79=SOME FRICTION, 40-59=STRUGGLING, <40=AT RISK.
56
+
57
+ </process>
58
+
59
+ <success_criteria>
60
+ - [ ] Recent work summarized
61
+ - [ ] Next steps identified
62
+ - [ ] Blockers surfaced
63
+ - [ ] Sprint health score calculated
64
+ </success_criteria>
@@ -1,57 +1,57 @@
1
- <purpose>
2
- Display comprehensive project statistics including phases, plans, requirements, git metrics, and timeline.
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="gather_stats">
12
- Gather project statistics:
13
-
14
- ```bash
15
- STATS=$(node "$EZ_TOOLS" stats json)
16
- if [[ "$STATS" == @file:* ]]; then STATS=$(cat "${STATS#@file:}"); fi
17
- ```
18
-
19
- Extract fields from JSON: `milestone_version`, `milestone_name`, `phases`, `total_plans`, `total_summaries`, `percent`, `requirements_total`, `requirements_complete`, `git_commits`, `git_first_commit_date`, `last_activity`.
20
- </step>
21
-
22
- <step name="present_stats">
23
- Present to the user with this format:
24
-
25
- ```
26
- # 📊 Project Statistics — {milestone_version} {milestone_name}
27
-
28
- ## Progress
29
- [████████░░] X/Y plans (Z%)
30
-
31
- ## Phases
32
- | Phase | Name | Plans | Completed | Status |
33
- |-------|------|-------|-----------|--------|
34
- | ... | ... | ... | ... | ... |
35
-
36
- ## Requirements
37
- ✅ X/Y requirements complete
38
-
39
- ## Git
40
- - **Commits:** N
41
- - **Started:** YYYY-MM-DD
42
- - **Last activity:** YYYY-MM-DD
43
-
44
- ## Timeline
45
- - **Project age:** N days
46
- ```
47
-
48
- If no `.planning/` directory exists, inform the user to run `/ez:new-project` first.
49
- </step>
50
-
51
- </process>
52
-
53
- <success_criteria>
54
- - [ ] Statistics gathered from project state
55
- - [ ] Results formatted clearly
56
- - [ ] Displayed to user
57
- </success_criteria>
1
+ <purpose>
2
+ Display comprehensive project statistics including phases, plans, requirements, git metrics, and timeline.
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="gather_stats">
12
+ Gather project statistics:
13
+
14
+ ```bash
15
+ STATS=$(node "$EZ_TOOLS" stats json)
16
+ if [[ "$STATS" == @file:* ]]; then STATS=$(cat "${STATS#@file:}"); fi
17
+ ```
18
+
19
+ Extract fields from JSON: `milestone_version`, `milestone_name`, `phases`, `total_plans`, `total_summaries`, `percent`, `requirements_total`, `requirements_complete`, `git_commits`, `git_first_commit_date`, `last_activity`.
20
+ </step>
21
+
22
+ <step name="present_stats">
23
+ Present to the user with this format:
24
+
25
+ ```
26
+ # 📊 Project Statistics — {milestone_version} {milestone_name}
27
+
28
+ ## Progress
29
+ [████████░░] X/Y plans (Z%)
30
+
31
+ ## Phases
32
+ | Phase | Name | Plans | Completed | Status |
33
+ |-------|------|-------|-----------|--------|
34
+ | ... | ... | ... | ... | ... |
35
+
36
+ ## Requirements
37
+ ✅ X/Y requirements complete
38
+
39
+ ## Git
40
+ - **Commits:** N
41
+ - **Started:** YYYY-MM-DD
42
+ - **Last activity:** YYYY-MM-DD
43
+
44
+ ## Timeline
45
+ - **Project age:** N days
46
+ ```
47
+
48
+ If no `.planning/` directory exists, inform the user to run `/ez:new-project` first.
49
+ </step>
50
+
51
+ </process>
52
+
53
+ <success_criteria>
54
+ - [ ] Statistics gathered from project state
55
+ - [ ] Results formatted clearly
56
+ - [ ] Displayed to user
57
+ </success_criteria>