@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.
- package/LICENSE +21 -21
- package/README.md +84 -20
- package/agents/ez-observer-agent.md +260 -0
- package/agents/ez-release-agent.md +333 -0
- package/agents/ez-requirements-agent.md +377 -0
- package/agents/ez-scrum-master-agent.md +242 -0
- package/agents/ez-tech-lead-agent.md +267 -0
- package/bin/install.js +3221 -3230
- package/commands/ez/arch-review.md +102 -0
- package/commands/ez/execute-phase.md +11 -0
- package/commands/ez/export-session.md +79 -0
- package/commands/ez/gather-requirements.md +117 -0
- package/commands/ez/git-workflow.md +72 -0
- package/commands/ez/hotfix.md +120 -0
- package/commands/ez/import-session.md +82 -0
- package/commands/ez/join-discord.md +18 -18
- package/commands/ez/list-sessions.md +96 -0
- package/commands/ez/package-manager.md +316 -0
- package/commands/ez/plan-phase.md +9 -1
- package/commands/ez/preflight.md +79 -0
- package/commands/ez/progress.md +13 -1
- package/commands/ez/release.md +153 -0
- package/commands/ez/resume.md +107 -0
- package/commands/ez/standup.md +85 -0
- package/ez-agents/bin/ez-tools.cjs +1095 -716
- package/ez-agents/bin/lib/assistant-adapter.cjs +264 -264
- package/ez-agents/bin/lib/audit-exec.cjs +7 -2
- package/ez-agents/bin/lib/bdd-validator.cjs +622 -0
- package/ez-agents/bin/lib/circuit-breaker.cjs +118 -118
- package/ez-agents/bin/lib/config.cjs +190 -190
- package/ez-agents/bin/lib/content-scanner.cjs +238 -0
- package/ez-agents/bin/lib/context-cache.cjs +154 -0
- package/ez-agents/bin/lib/context-errors.cjs +71 -0
- package/ez-agents/bin/lib/context-manager.cjs +220 -0
- package/ez-agents/bin/lib/discussion-synthesizer.cjs +458 -0
- package/ez-agents/bin/lib/file-access.cjs +207 -0
- package/ez-agents/bin/lib/file-lock.cjs +236 -236
- package/ez-agents/bin/lib/frontmatter.cjs +299 -299
- package/ez-agents/bin/lib/fs-utils.cjs +153 -153
- package/ez-agents/bin/lib/git-errors.cjs +83 -0
- package/ez-agents/bin/lib/git-utils.cjs +118 -0
- package/ez-agents/bin/lib/git-workflow-engine.cjs +1157 -0
- package/ez-agents/bin/lib/index.cjs +157 -113
- package/ez-agents/bin/lib/init.cjs +757 -757
- package/ez-agents/bin/lib/lockfile-validator.cjs +227 -0
- package/ez-agents/bin/lib/logger.cjs +124 -124
- package/ez-agents/bin/lib/memory-compression.cjs +256 -0
- package/ez-agents/bin/lib/metrics-tracker.cjs +406 -0
- package/ez-agents/bin/lib/milestone.cjs +241 -241
- package/ez-agents/bin/lib/model-provider.cjs +241 -241
- package/ez-agents/bin/lib/package-manager-detector.cjs +203 -0
- package/ez-agents/bin/lib/package-manager-executor.cjs +385 -0
- package/ez-agents/bin/lib/package-manager-service.cjs +216 -0
- package/ez-agents/bin/lib/phase.cjs +925 -925
- package/ez-agents/bin/lib/planning-write.cjs +107 -107
- package/ez-agents/bin/lib/release-validator.cjs +614 -0
- package/ez-agents/bin/lib/retry.cjs +119 -119
- package/ez-agents/bin/lib/roadmap.cjs +306 -306
- package/ez-agents/bin/lib/safe-exec.cjs +128 -128
- package/ez-agents/bin/lib/safe-path.cjs +130 -130
- package/ez-agents/bin/lib/session-chain.cjs +304 -0
- package/ez-agents/bin/lib/session-errors.cjs +81 -0
- package/ez-agents/bin/lib/session-export.cjs +251 -0
- package/ez-agents/bin/lib/session-import.cjs +262 -0
- package/ez-agents/bin/lib/session-manager.cjs +280 -0
- package/ez-agents/bin/lib/state.cjs +736 -736
- package/ez-agents/bin/lib/temp-file.cjs +239 -239
- package/ez-agents/bin/lib/template.cjs +223 -223
- package/ez-agents/bin/lib/test-file-lock.cjs +112 -112
- package/ez-agents/bin/lib/test-graceful.cjs +93 -93
- package/ez-agents/bin/lib/test-logger.cjs +60 -60
- package/ez-agents/bin/lib/test-safe-exec.cjs +38 -38
- package/ez-agents/bin/lib/test-safe-path.cjs +33 -33
- package/ez-agents/bin/lib/test-temp-file.cjs +125 -125
- package/ez-agents/bin/lib/tier-manager.cjs +428 -0
- package/ez-agents/bin/lib/timeout-exec.cjs +63 -63
- package/ez-agents/bin/lib/url-fetch.cjs +170 -0
- package/ez-agents/bin/lib/verify.cjs +15 -1
- package/ez-agents/references/checkpoints.md +776 -776
- package/ez-agents/references/continuation-format.md +249 -249
- package/ez-agents/references/metrics-schema.md +118 -0
- package/ez-agents/references/planning-config.md +140 -0
- package/ez-agents/references/questioning.md +162 -162
- package/ez-agents/references/tdd.md +263 -263
- package/ez-agents/references/tier-strategy.md +103 -0
- package/ez-agents/templates/bdd-feature.md +173 -0
- package/ez-agents/templates/codebase/concerns.md +310 -310
- package/ez-agents/templates/codebase/conventions.md +307 -307
- package/ez-agents/templates/codebase/integrations.md +280 -280
- package/ez-agents/templates/codebase/stack.md +186 -186
- package/ez-agents/templates/codebase/testing.md +480 -480
- package/ez-agents/templates/config.json +37 -37
- package/ez-agents/templates/continue-here.md +78 -78
- package/ez-agents/templates/discussion.md +68 -0
- package/ez-agents/templates/incident-runbook.md +205 -0
- package/ez-agents/templates/milestone-archive.md +123 -123
- package/ez-agents/templates/milestone.md +115 -115
- package/ez-agents/templates/release-checklist.md +133 -0
- package/ez-agents/templates/requirements.md +231 -231
- package/ez-agents/templates/research-project/ARCHITECTURE.md +204 -204
- package/ez-agents/templates/research-project/FEATURES.md +147 -147
- package/ez-agents/templates/research-project/PITFALLS.md +200 -200
- package/ez-agents/templates/research-project/STACK.md +120 -120
- package/ez-agents/templates/research-project/SUMMARY.md +170 -170
- package/ez-agents/templates/retrospective.md +54 -54
- package/ez-agents/templates/roadmap.md +202 -202
- package/ez-agents/templates/rollback-plan.md +201 -0
- package/ez-agents/templates/summary-minimal.md +41 -41
- package/ez-agents/templates/summary-standard.md +48 -48
- package/ez-agents/templates/summary.md +248 -248
- package/ez-agents/templates/user-setup.md +311 -311
- package/ez-agents/templates/verification-report.md +322 -322
- package/ez-agents/workflows/add-phase.md +112 -112
- package/ez-agents/workflows/add-tests.md +351 -351
- package/ez-agents/workflows/add-todo.md +158 -158
- package/ez-agents/workflows/arch-review.md +54 -0
- package/ez-agents/workflows/audit-milestone.md +332 -332
- package/ez-agents/workflows/autonomous.md +131 -30
- package/ez-agents/workflows/check-todos.md +177 -177
- package/ez-agents/workflows/cleanup.md +152 -152
- package/ez-agents/workflows/complete-milestone.md +766 -766
- package/ez-agents/workflows/diagnose-issues.md +219 -219
- package/ez-agents/workflows/discovery-phase.md +289 -289
- package/ez-agents/workflows/discuss-phase.md +762 -762
- package/ez-agents/workflows/execute-phase.md +513 -468
- package/ez-agents/workflows/execute-plan.md +483 -483
- package/ez-agents/workflows/export-session.md +255 -0
- package/ez-agents/workflows/gather-requirements.md +206 -0
- package/ez-agents/workflows/health.md +159 -159
- package/ez-agents/workflows/help.md +584 -492
- package/ez-agents/workflows/hotfix.md +291 -0
- package/ez-agents/workflows/import-session.md +303 -0
- package/ez-agents/workflows/insert-phase.md +130 -130
- package/ez-agents/workflows/list-phase-assumptions.md +178 -178
- package/ez-agents/workflows/map-codebase.md +316 -316
- package/ez-agents/workflows/new-milestone.md +339 -10
- package/ez-agents/workflows/new-project.md +293 -299
- package/ez-agents/workflows/node-repair.md +92 -92
- package/ez-agents/workflows/pause-work.md +122 -122
- package/ez-agents/workflows/plan-milestone-gaps.md +274 -274
- package/ez-agents/workflows/plan-phase.md +673 -651
- package/ez-agents/workflows/progress.md +372 -382
- package/ez-agents/workflows/quick.md +610 -610
- package/ez-agents/workflows/release.md +253 -0
- package/ez-agents/workflows/remove-phase.md +155 -155
- package/ez-agents/workflows/research-phase.md +74 -74
- package/ez-agents/workflows/resume-project.md +307 -307
- package/ez-agents/workflows/resume-session.md +215 -0
- package/ez-agents/workflows/set-profile.md +81 -81
- package/ez-agents/workflows/settings.md +242 -242
- package/ez-agents/workflows/standup.md +64 -0
- package/ez-agents/workflows/stats.md +57 -57
- package/ez-agents/workflows/transition.md +544 -544
- package/ez-agents/workflows/ui-phase.md +290 -290
- package/ez-agents/workflows/ui-review.md +157 -157
- package/ez-agents/workflows/update.md +320 -320
- package/ez-agents/workflows/validate-phase.md +167 -167
- package/ez-agents/workflows/verify-phase.md +243 -243
- package/ez-agents/workflows/verify-work.md +584 -584
- package/package.json +10 -4
- package/scripts/build-hooks.js +43 -43
- package/scripts/run-tests.cjs +29 -29
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# BDD Feature File Template
|
|
2
|
+
|
|
3
|
+
Use this template when creating `.feature` files for a phase.
|
|
4
|
+
|
|
5
|
+
Replace `{placeholders}` with actual content.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
```gherkin
|
|
10
|
+
# specs/features/{domain}/{feature-name}.feature
|
|
11
|
+
#
|
|
12
|
+
# Feature: {feature-name}
|
|
13
|
+
# Phase: {phase-number} — {phase-name}
|
|
14
|
+
# MoSCoW: @must | @should | @could | @wont
|
|
15
|
+
# Tier: @mvp | @medium | @enterprise
|
|
16
|
+
#
|
|
17
|
+
# Requirements: {REQ-IDs this feature satisfies}
|
|
18
|
+
|
|
19
|
+
Feature: {Feature Name}
|
|
20
|
+
As a {user role}
|
|
21
|
+
I want to {action/capability}
|
|
22
|
+
So that {benefit/value delivered}
|
|
23
|
+
|
|
24
|
+
# Background sets up shared preconditions for all scenarios in this Feature.
|
|
25
|
+
# Remove if no shared setup needed.
|
|
26
|
+
Background:
|
|
27
|
+
Given {shared precondition 1}
|
|
28
|
+
And {shared precondition 2}
|
|
29
|
+
|
|
30
|
+
# ─────────────────────────────────────────────
|
|
31
|
+
# MUST — Required for MVP (phase gate)
|
|
32
|
+
# ─────────────────────────────────────────────
|
|
33
|
+
|
|
34
|
+
@must @mvp
|
|
35
|
+
Scenario: {Happy path — primary success case}
|
|
36
|
+
Given {initial context / system state}
|
|
37
|
+
When {user performs action}
|
|
38
|
+
Then {expected outcome}
|
|
39
|
+
And {additional assertion}
|
|
40
|
+
|
|
41
|
+
@must @mvp
|
|
42
|
+
Scenario: {Primary error case}
|
|
43
|
+
Given {initial context}
|
|
44
|
+
When {user performs invalid action}
|
|
45
|
+
Then {expected error response}
|
|
46
|
+
And {system remains in valid state}
|
|
47
|
+
|
|
48
|
+
# ─────────────────────────────────────────────
|
|
49
|
+
# SHOULD — Target for medium tier release
|
|
50
|
+
# ─────────────────────────────────────────────
|
|
51
|
+
|
|
52
|
+
@should @medium
|
|
53
|
+
Scenario: {Secondary success case or edge case}
|
|
54
|
+
Given {context}
|
|
55
|
+
When {action}
|
|
56
|
+
Then {outcome}
|
|
57
|
+
|
|
58
|
+
@should @medium
|
|
59
|
+
Scenario: {Error recovery or retry flow}
|
|
60
|
+
Given {context where partial failure occurred}
|
|
61
|
+
When {user attempts recovery}
|
|
62
|
+
Then {system handles gracefully}
|
|
63
|
+
|
|
64
|
+
# ─────────────────────────────────────────────
|
|
65
|
+
# COULD — Nice-to-have for enterprise tier
|
|
66
|
+
# ─────────────────────────────────────────────
|
|
67
|
+
|
|
68
|
+
@could @enterprise
|
|
69
|
+
Scenario: {Advanced or compliance feature}
|
|
70
|
+
Given {enterprise context}
|
|
71
|
+
When {action}
|
|
72
|
+
Then {enterprise-specific outcome}
|
|
73
|
+
|
|
74
|
+
# ─────────────────────────────────────────────
|
|
75
|
+
# WONT — Explicitly deferred (document reasons)
|
|
76
|
+
# ─────────────────────────────────────────────
|
|
77
|
+
# @wont — SSO integration: deferred to Phase XX, depends on identity provider decision
|
|
78
|
+
# @wont — Biometric auth: deferred — mobile-only feature, out of scope for web
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Scenario Writing Guide
|
|
84
|
+
|
|
85
|
+
### Given (Precondition)
|
|
86
|
+
Sets up the world before the action. Should be:
|
|
87
|
+
- Specific: "Given a user exists with email test@example.com" not "Given a user exists"
|
|
88
|
+
- Minimal: Only include context relevant to this scenario
|
|
89
|
+
- Reusable: Use Background for context shared by all scenarios
|
|
90
|
+
|
|
91
|
+
```gherkin
|
|
92
|
+
# Good
|
|
93
|
+
Given a registered user with email "alice@example.com" exists
|
|
94
|
+
And the user's account is in "active" status
|
|
95
|
+
|
|
96
|
+
# Bad (too vague)
|
|
97
|
+
Given there is a user
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### When (Action)
|
|
101
|
+
The single event being tested. Rules:
|
|
102
|
+
- One action per scenario (split if multiple)
|
|
103
|
+
- Active voice: "When I submit the form" not "When the form is submitted"
|
|
104
|
+
- From user's perspective
|
|
105
|
+
|
|
106
|
+
```gherkin
|
|
107
|
+
# Good
|
|
108
|
+
When I submit the login form with email "alice@example.com" and password "secret123"
|
|
109
|
+
|
|
110
|
+
# Bad (multiple actions)
|
|
111
|
+
When I fill in the form and click submit and wait for response
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Then (Outcome)
|
|
115
|
+
Observable, verifiable result. Must be:
|
|
116
|
+
- Testable: Can be automated
|
|
117
|
+
- Specific: Exact values, not "something happens"
|
|
118
|
+
- From user's perspective
|
|
119
|
+
|
|
120
|
+
```gherkin
|
|
121
|
+
# Good
|
|
122
|
+
Then I am redirected to "/dashboard"
|
|
123
|
+
And the page title contains "Welcome, Alice"
|
|
124
|
+
And a session cookie named "ez_session" is present
|
|
125
|
+
|
|
126
|
+
# Bad (subjective)
|
|
127
|
+
Then it works correctly
|
|
128
|
+
And the user is happy
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### And / But
|
|
132
|
+
- `And` — continues the clause type (Given+And, When+And, Then+And)
|
|
133
|
+
- `But` — negative assertion ("But I should not see...")
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## MoSCoW Quick Reference
|
|
138
|
+
|
|
139
|
+
| Tag | When to Use | Tier |
|
|
140
|
+
|-----|-------------|------|
|
|
141
|
+
| `@must` | System is broken/unusable without it | `@mvp` |
|
|
142
|
+
| `@should` | Important but workaround exists | `@medium` |
|
|
143
|
+
| `@could` | Enhances experience but not critical | `@enterprise` |
|
|
144
|
+
| `@wont` | Explicitly out of scope (document why) | — |
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## File Naming Convention
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
specs/
|
|
152
|
+
features/
|
|
153
|
+
{domain}/
|
|
154
|
+
{feature-name}.feature # e.g., auth/login.feature
|
|
155
|
+
{feature-name}.feature # e.g., auth/registration.feature
|
|
156
|
+
{domain2}/
|
|
157
|
+
{feature-name}.feature
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Domain examples: `auth`, `payments`, `dashboard`, `onboarding`, `settings`, `api`
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## INVEST Checklist
|
|
165
|
+
|
|
166
|
+
Before finalizing a Feature, verify all scenarios as a group:
|
|
167
|
+
|
|
168
|
+
- [ ] **Independent**: Feature can be developed without dependency on other features in this file
|
|
169
|
+
- [ ] **Negotiable**: Implementation details (not described in Then) are flexible
|
|
170
|
+
- [ ] **Valuable**: The Feature statement explains clear user value
|
|
171
|
+
- [ ] **Estimable**: A developer can estimate effort from these scenarios
|
|
172
|
+
- [ ] **Small**: All @must scenarios fit in one phase (split if more than ~8 must scenarios)
|
|
173
|
+
- [ ] **Testable**: Every Then clause can be automated
|