@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,158 +1,158 @@
1
- <purpose>
2
- Capture an idea, task, or issue that surfaces during an EZ session as a structured todo for later work. Enables "thought → capture → continue" flow without losing context.
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="init_context">
12
- Load todo context:
13
-
14
- ```bash
15
- INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" init todos)
16
- if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
17
- ```
18
-
19
- Extract from init JSON: `commit_docs`, `date`, `timestamp`, `todo_count`, `todos`, `pending_dir`, `todos_dir_exists`.
20
-
21
- Ensure directories exist:
22
- ```bash
23
- mkdir -p .planning/todos/pending .planning/todos/done
24
- ```
25
-
26
- Note existing areas from the todos array for consistency in infer_area step.
27
- </step>
28
-
29
- <step name="extract_content">
30
- **With arguments:** Use as the title/focus.
31
- - `/ez:add-todo Add auth token refresh` → title = "Add auth token refresh"
32
-
33
- **Without arguments:** Analyze recent conversation to extract:
34
- - The specific problem, idea, or task discussed
35
- - Relevant file paths mentioned
36
- - Technical details (error messages, line numbers, constraints)
37
-
38
- Formulate:
39
- - `title`: 3-10 word descriptive title (action verb preferred)
40
- - `problem`: What's wrong or why this is needed
41
- - `solution`: Approach hints or "TBD" if just an idea
42
- - `files`: Relevant paths with line numbers from conversation
43
- </step>
44
-
45
- <step name="infer_area">
46
- Infer area from file paths:
47
-
48
- | Path pattern | Area |
49
- |--------------|------|
50
- | `src/api/*`, `api/*` | `api` |
51
- | `src/components/*`, `src/ui/*` | `ui` |
52
- | `src/auth/*`, `auth/*` | `auth` |
53
- | `src/db/*`, `database/*` | `database` |
54
- | `tests/*`, `__tests__/*` | `testing` |
55
- | `docs/*` | `docs` |
56
- | `.planning/*` | `planning` |
57
- | `scripts/*`, `bin/*` | `tooling` |
58
- | No files or unclear | `general` |
59
-
60
- Use existing area from step 2 if similar match exists.
61
- </step>
62
-
63
- <step name="check_duplicates">
64
- ```bash
65
- # Search for key words from title in existing todos
66
- grep -l -i "[key words from title]" .planning/todos/pending/*.md 2>/dev/null
67
- ```
68
-
69
- If potential duplicate found:
70
- 1. Read the existing todo
71
- 2. Compare scope
72
-
73
- If overlapping, use AskUserQuestion:
74
- - header: "Duplicate?"
75
- - question: "Similar todo exists: [title]. What would you like to do?"
76
- - options:
77
- - "Skip" — keep existing todo
78
- - "Replace" — update existing with new context
79
- - "Add anyway" — create as separate todo
80
- </step>
81
-
82
- <step name="create_file">
83
- Use values from init context: `timestamp` and `date` are already available.
84
-
85
- Generate slug for the title:
86
- ```bash
87
- slug=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" generate-slug "$title" --raw)
88
- ```
89
-
90
- Write to `.planning/todos/pending/${date}-${slug}.md`:
91
-
92
- ```markdown
93
- ---
94
- created: [timestamp]
95
- title: [title]
96
- area: [area]
97
- files:
98
- - [file:lines]
99
- ---
100
-
101
- ## Problem
102
-
103
- [problem description - enough context for future Claude to understand weeks later]
104
-
105
- ## Solution
106
-
107
- [approach hints or "TBD"]
108
- ```
109
- </step>
110
-
111
- <step name="update_state">
112
- If `.planning/STATE.md` exists:
113
-
114
- 1. Use `todo_count` from init context (or re-run `init todos` if count changed)
115
- 2. Update "### Pending Todos" under "## Accumulated Context"
116
- </step>
117
-
118
- <step name="git_commit">
119
- Commit the todo and any updated state:
120
-
121
- ```bash
122
- node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "docs: capture todo - [title]" --files .planning/todos/pending/[filename] .planning/STATE.md
123
- ```
124
-
125
- Tool respects `commit_docs` config and gitignore automatically.
126
-
127
- Confirm: "Committed: docs: capture todo - [title]"
128
- </step>
129
-
130
- <step name="confirm">
131
- ```
132
- Todo saved: .planning/todos/pending/[filename]
133
-
134
- [title]
135
- Area: [area]
136
- Files: [count] referenced
137
-
138
- ---
139
-
140
- Would you like to:
141
-
142
- 1. Continue with current work
143
- 2. Add another todo
144
- 3. View all todos (/ez:check-todos)
145
- ```
146
- </step>
147
-
148
- </process>
149
-
150
- <success_criteria>
151
- - [ ] Directory structure exists
152
- - [ ] Todo file created with valid frontmatter
153
- - [ ] Problem section has enough context for future Claude
154
- - [ ] No duplicates (checked and resolved)
155
- - [ ] Area consistent with existing todos
156
- - [ ] STATE.md updated if exists
157
- - [ ] Todo and state committed to git
158
- </success_criteria>
1
+ <purpose>
2
+ Capture an idea, task, or issue that surfaces during an EZ session as a structured todo for later work. Enables "thought → capture → continue" flow without losing context.
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="init_context">
12
+ Load todo context:
13
+
14
+ ```bash
15
+ INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" init todos)
16
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
17
+ ```
18
+
19
+ Extract from init JSON: `commit_docs`, `date`, `timestamp`, `todo_count`, `todos`, `pending_dir`, `todos_dir_exists`.
20
+
21
+ Ensure directories exist:
22
+ ```bash
23
+ mkdir -p .planning/todos/pending .planning/todos/done
24
+ ```
25
+
26
+ Note existing areas from the todos array for consistency in infer_area step.
27
+ </step>
28
+
29
+ <step name="extract_content">
30
+ **With arguments:** Use as the title/focus.
31
+ - `/ez:add-todo Add auth token refresh` → title = "Add auth token refresh"
32
+
33
+ **Without arguments:** Analyze recent conversation to extract:
34
+ - The specific problem, idea, or task discussed
35
+ - Relevant file paths mentioned
36
+ - Technical details (error messages, line numbers, constraints)
37
+
38
+ Formulate:
39
+ - `title`: 3-10 word descriptive title (action verb preferred)
40
+ - `problem`: What's wrong or why this is needed
41
+ - `solution`: Approach hints or "TBD" if just an idea
42
+ - `files`: Relevant paths with line numbers from conversation
43
+ </step>
44
+
45
+ <step name="infer_area">
46
+ Infer area from file paths:
47
+
48
+ | Path pattern | Area |
49
+ |--------------|------|
50
+ | `src/api/*`, `api/*` | `api` |
51
+ | `src/components/*`, `src/ui/*` | `ui` |
52
+ | `src/auth/*`, `auth/*` | `auth` |
53
+ | `src/db/*`, `database/*` | `database` |
54
+ | `tests/*`, `__tests__/*` | `testing` |
55
+ | `docs/*` | `docs` |
56
+ | `.planning/*` | `planning` |
57
+ | `scripts/*`, `bin/*` | `tooling` |
58
+ | No files or unclear | `general` |
59
+
60
+ Use existing area from step 2 if similar match exists.
61
+ </step>
62
+
63
+ <step name="check_duplicates">
64
+ ```bash
65
+ # Search for key words from title in existing todos
66
+ grep -l -i "[key words from title]" .planning/todos/pending/*.md 2>/dev/null
67
+ ```
68
+
69
+ If potential duplicate found:
70
+ 1. Read the existing todo
71
+ 2. Compare scope
72
+
73
+ If overlapping, use AskUserQuestion:
74
+ - header: "Duplicate?"
75
+ - question: "Similar todo exists: [title]. What would you like to do?"
76
+ - options:
77
+ - "Skip" — keep existing todo
78
+ - "Replace" — update existing with new context
79
+ - "Add anyway" — create as separate todo
80
+ </step>
81
+
82
+ <step name="create_file">
83
+ Use values from init context: `timestamp` and `date` are already available.
84
+
85
+ Generate slug for the title:
86
+ ```bash
87
+ slug=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" generate-slug "$title" --raw)
88
+ ```
89
+
90
+ Write to `.planning/todos/pending/${date}-${slug}.md`:
91
+
92
+ ```markdown
93
+ ---
94
+ created: [timestamp]
95
+ title: [title]
96
+ area: [area]
97
+ files:
98
+ - [file:lines]
99
+ ---
100
+
101
+ ## Problem
102
+
103
+ [problem description - enough context for future Claude to understand weeks later]
104
+
105
+ ## Solution
106
+
107
+ [approach hints or "TBD"]
108
+ ```
109
+ </step>
110
+
111
+ <step name="update_state">
112
+ If `.planning/STATE.md` exists:
113
+
114
+ 1. Use `todo_count` from init context (or re-run `init todos` if count changed)
115
+ 2. Update "### Pending Todos" under "## Accumulated Context"
116
+ </step>
117
+
118
+ <step name="git_commit">
119
+ Commit the todo and any updated state:
120
+
121
+ ```bash
122
+ node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "docs: capture todo - [title]" --files .planning/todos/pending/[filename] .planning/STATE.md
123
+ ```
124
+
125
+ Tool respects `commit_docs` config and gitignore automatically.
126
+
127
+ Confirm: "Committed: docs: capture todo - [title]"
128
+ </step>
129
+
130
+ <step name="confirm">
131
+ ```
132
+ Todo saved: .planning/todos/pending/[filename]
133
+
134
+ [title]
135
+ Area: [area]
136
+ Files: [count] referenced
137
+
138
+ ---
139
+
140
+ Would you like to:
141
+
142
+ 1. Continue with current work
143
+ 2. Add another todo
144
+ 3. View all todos (/ez:check-todos)
145
+ ```
146
+ </step>
147
+
148
+ </process>
149
+
150
+ <success_criteria>
151
+ - [ ] Directory structure exists
152
+ - [ ] Todo file created with valid frontmatter
153
+ - [ ] Problem section has enough context for future Claude
154
+ - [ ] No duplicates (checked and resolved)
155
+ - [ ] Area consistent with existing todos
156
+ - [ ] STATE.md updated if exists
157
+ - [ ] Todo and state committed to git
158
+ </success_criteria>
@@ -0,0 +1,54 @@
1
+ <purpose>
2
+ Run a Tech Lead architecture review on phase plans. Reads phase PLAN.md files and checks for pattern drift, technical debt, security issues, and design conflicts.
3
+ </purpose>
4
+
5
+ <process>
6
+
7
+ ## 1. Initialize
8
+
9
+ Parse $ARGUMENTS for phase number.
10
+
11
+ ```bash
12
+ INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" init plan-phase "$PHASE")
13
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
14
+ ```
15
+
16
+ Extract: `phase_dir`, `phase_number`, `phase_name`, `planner_model`.
17
+
18
+ ## 2. Validate
19
+
20
+ Check phase directory and plans exist. If no PLAN.md found: error "No plans found for phase {N}. Run /ez:plan-phase first."
21
+
22
+ ## 3. Spawn Tech Lead Review
23
+
24
+ Display:
25
+ ```
26
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
27
+ EZ ► ARCH REVIEW — Phase {N}: {Name}
28
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
29
+ ```
30
+
31
+ ```
32
+ Task(
33
+ prompt="Review architecture of Phase {phase_number}: {phase_name}.
34
+ Read all PLAN.md files in {phase_dir}.
35
+ Check: pattern consistency, technical debt, security, cross-phase conflicts, dependencies.
36
+ Report: BLOCKERS (must fix), WARNINGS (should fix), ADVISORY (consider).
37
+ Output: ## Tech Lead Review: Phase {N} — {status}",
38
+ subagent_type="ez-tech-lead-agent",
39
+ model="{planner_model}"
40
+ )
41
+ ```
42
+
43
+ ## 4. Present Results
44
+
45
+ Display agent output directly. If BLOCKER found: highlight "Fix before /ez:execute-phase". If APPROVE: confirm safe to execute.
46
+
47
+ </process>
48
+
49
+ <success_criteria>
50
+ - [ ] Phase validated
51
+ - [ ] Tech lead agent spawned
52
+ - [ ] Findings presented with severity
53
+ - [ ] Clear go/no-go for execution
54
+ </success_criteria>