@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,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ez:arch-review
|
|
3
|
+
description: Run a Tech Lead architecture review on phase plans. Flags drift from established patterns, technical debt, and design conflicts.
|
|
4
|
+
argument-hint: "<phase>"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
- Glob
|
|
9
|
+
- Grep
|
|
10
|
+
- Task
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<execution_context>
|
|
14
|
+
@~/.claude/ez-agents/workflows/arch-review.md
|
|
15
|
+
</execution_context>
|
|
16
|
+
|
|
17
|
+
<process>
|
|
18
|
+
Execute the arch-review workflow from @~/.claude/ez-agents/workflows/arch-review.md end-to-end.
|
|
19
|
+
Parse ARGUMENTS for phase number before executing.
|
|
20
|
+
</process>
|
|
21
|
+
|
|
22
|
+
# /ez:arch-review
|
|
23
|
+
|
|
24
|
+
Run a Tech Lead architecture review on phase plans. The Tech Lead agent checks plans against established codebase patterns, prior design decisions, and security requirements.
|
|
25
|
+
|
|
26
|
+
## Usage
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
/ez:arch-review <phase>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Arguments
|
|
33
|
+
|
|
34
|
+
| Argument | Required | Description |
|
|
35
|
+
|----------|----------|-------------|
|
|
36
|
+
| `phase` | Yes | Phase number to review (e.g., `5`, `5.1`) |
|
|
37
|
+
|
|
38
|
+
## What Gets Reviewed
|
|
39
|
+
|
|
40
|
+
1. **Pattern Consistency** — Plans follow established codebase conventions
|
|
41
|
+
2. **Technical Debt Risk** — Plans avoid shortcuts that cost more later
|
|
42
|
+
3. **Cross-Phase Design Conflicts** — Plans don't contradict prior decisions
|
|
43
|
+
4. **Security Architecture** — Auth, input validation, sensitive data handled correctly
|
|
44
|
+
5. **Scalability Concerns** — No N+1 queries, unbounded operations
|
|
45
|
+
6. **Dependency Analysis** — New packages are appropriate and vetted
|
|
46
|
+
|
|
47
|
+
## Output
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
## Tech Lead Review: Phase 5 — Authentication
|
|
51
|
+
|
|
52
|
+
Technical Risk: LOW
|
|
53
|
+
Blockers: 0 | Warnings: 1 | Advisory: 2
|
|
54
|
+
|
|
55
|
+
### Findings
|
|
56
|
+
|
|
57
|
+
⚠️ WARNING — Security Architecture
|
|
58
|
+
Plan 5-02 adds POST /api/users endpoint without auth middleware.
|
|
59
|
+
Recommendation: Add requireAuth() middleware to protect this route.
|
|
60
|
+
|
|
61
|
+
💡 ADVISORY — Pattern Consistency
|
|
62
|
+
Plan 5-01 introduces bcrypt for password hashing. Existing codebase uses
|
|
63
|
+
argon2 in Phase 3. Consider using argon2 for consistency.
|
|
64
|
+
(Both are secure — this is style, not a blocker)
|
|
65
|
+
|
|
66
|
+
### Overall: APPROVE_WITH_WARNINGS
|
|
67
|
+
Plans are architecturally sound. Address the auth middleware warning before executing.
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Severity Levels
|
|
71
|
+
|
|
72
|
+
| Level | Meaning | Effect |
|
|
73
|
+
|-------|---------|--------|
|
|
74
|
+
| BLOCKER | Irreversible change or security hole | Must fix before execution |
|
|
75
|
+
| WARNING | Technical debt or missing validation | Highlight and suggest fix |
|
|
76
|
+
| ADVISORY | Alternative worth considering | Informational only |
|
|
77
|
+
|
|
78
|
+
## Integration with Planning
|
|
79
|
+
|
|
80
|
+
Arch review fits between planning and execution:
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
/ez:plan-phase 5 → Plans created
|
|
84
|
+
/ez:arch-review 5 → Tech lead reviews plans
|
|
85
|
+
/ez:execute-phase 5 → Execute with awareness of any warnings
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
The `execute-phase` workflow automatically spawns a tech lead review when `workflow.agent_discussion` is enabled in config.
|
|
89
|
+
|
|
90
|
+
## When to Use
|
|
91
|
+
|
|
92
|
+
- After planning a phase with significant new architecture
|
|
93
|
+
- When introducing new dependencies
|
|
94
|
+
- When modifying auth, payments, or other sensitive systems
|
|
95
|
+
- Before a major milestone
|
|
96
|
+
|
|
97
|
+
## Related Commands
|
|
98
|
+
|
|
99
|
+
- `/ez:standup` — Sprint health standup
|
|
100
|
+
- `/ez:plan-phase` — Create phase plans
|
|
101
|
+
- `/ez:execute-phase` — Execute with pre-flight checks
|
|
102
|
+
- `/ez:release` — Release validation
|
|
@@ -31,6 +31,17 @@ Phase: $ARGUMENTS
|
|
|
31
31
|
|
|
32
32
|
**Flags:**
|
|
33
33
|
- `--gaps-only` — Execute only gap closure plans (plans with `gap_closure: true` in frontmatter). Use after verify-work creates fix plans.
|
|
34
|
+
- `--no-auto` — Disable all smart orchestration auto-invocations (health check, discuss-phase, verify-work, add-todo). Expert mode.
|
|
35
|
+
- `--verbose` — Show detail for every auto-invocation step.
|
|
36
|
+
- `--skip-discussion` — Skip auto discuss-phase only (more granular than --no-auto).
|
|
37
|
+
|
|
38
|
+
**Smart Orchestration (auto, unless --no-auto):**
|
|
39
|
+
- Pre: health check (stops on FAIL)
|
|
40
|
+
- Pre (medium/enterprise tier, no CONTEXT.md): discuss-phase --auto
|
|
41
|
+
- Post: verify-work (warnings only, non-blocking)
|
|
42
|
+
- Post (scope creep detected in DISCUSSION.md): add-todo
|
|
43
|
+
|
|
44
|
+
All auto-invocations appear with `[auto]` prefix in output.
|
|
34
45
|
|
|
35
46
|
Context files are resolved inside the workflow via `ez-tools init execute-phase` and per-subagent `<files_to_read>` blocks.
|
|
36
47
|
</context>
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ez:export-session
|
|
3
|
+
description: Export session for model handoff
|
|
4
|
+
argument-hint: "[session_id] [--format markdown|json] [--output path]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<objective>
|
|
12
|
+
Export a session summary for handoff to a different model or for archival.
|
|
13
|
+
|
|
14
|
+
This command:
|
|
15
|
+
- Accepts optional session ID (default: last session)
|
|
16
|
+
- Supports markdown and JSON export formats
|
|
17
|
+
- Writes output to specified path or default location
|
|
18
|
+
- Shows confirmation message with export details
|
|
19
|
+
- Enables seamless model transitions (Claude ↔ Qwen ↔ OpenAI ↔ Kimi)
|
|
20
|
+
</objective>
|
|
21
|
+
|
|
22
|
+
<execution_context>
|
|
23
|
+
@~/.claude/ez-agents/workflows/export-session.md
|
|
24
|
+
</execution_context>
|
|
25
|
+
|
|
26
|
+
<context>
|
|
27
|
+
$ARGUMENTS
|
|
28
|
+
|
|
29
|
+
Parameters:
|
|
30
|
+
- session_id: Optional. Session ID to export (default: last session)
|
|
31
|
+
- --format: Optional. Export format: 'markdown' or 'json' (default: markdown)
|
|
32
|
+
- --output: Optional. Output file path (default: .planning/sessions/export-{session_id}.{ext})
|
|
33
|
+
</context>
|
|
34
|
+
|
|
35
|
+
<process>
|
|
36
|
+
**Follow the export-session workflow** from @~/.claude/ez-agents/workflows/export-session.md.
|
|
37
|
+
|
|
38
|
+
The workflow handles all export logic including:
|
|
39
|
+
|
|
40
|
+
1. **Parse parameters:**
|
|
41
|
+
- Extract session_id from args (or use "last")
|
|
42
|
+
- Extract --format flag (default: 'markdown')
|
|
43
|
+
- Extract --output flag (default: auto-generated)
|
|
44
|
+
|
|
45
|
+
2. **Resolve session ID:**
|
|
46
|
+
- If session_id === 'last':
|
|
47
|
+
- Call SessionManager.getLastSession()
|
|
48
|
+
- Use session.metadata.session_id
|
|
49
|
+
- Else: use provided session_id
|
|
50
|
+
|
|
51
|
+
3. **Validate format:**
|
|
52
|
+
- Must be 'markdown' or 'json'
|
|
53
|
+
- If invalid: error "Format must be 'markdown' or 'json'"
|
|
54
|
+
|
|
55
|
+
4. **Generate output path if not specified:**
|
|
56
|
+
- For markdown: `.planning/sessions/export-{session_id}.md`
|
|
57
|
+
- For JSON: `.planning/sessions/export-{session_id}.json`
|
|
58
|
+
|
|
59
|
+
5. **Export session:**
|
|
60
|
+
- Create SessionExport instance with SessionManager
|
|
61
|
+
- Call exportToFile(sessionId, format, outputPath)
|
|
62
|
+
- Catch SessionExportError and display user-friendly message
|
|
63
|
+
|
|
64
|
+
6. **Show confirmation:**
|
|
65
|
+
```
|
|
66
|
+
Session exported successfully!
|
|
67
|
+
|
|
68
|
+
Session: {session_id}
|
|
69
|
+
Format: {format}
|
|
70
|
+
Output: {outputPath}
|
|
71
|
+
|
|
72
|
+
You can now share this file with another model or import it later.
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
7. **Offer follow-up actions:**
|
|
76
|
+
- "Open file?"
|
|
77
|
+
- "Export another session?"
|
|
78
|
+
- "Return to work?"
|
|
79
|
+
</process>
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gather-requirements
|
|
3
|
+
description: Gather BDD/Gherkin requirements for a phase via user interview. Produces .feature files with MoSCoW tagging and INVEST validation.
|
|
4
|
+
usage: /ez:gather-requirements [phase] [--auto]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /ez:gather-requirements
|
|
8
|
+
|
|
9
|
+
Gather machine-verifiable BDD requirements for a phase. Spawns the `ez-requirements-agent` to interview you and produce Gherkin `.feature` files with MoSCoW priorities.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
/ez:gather-requirements [phase] [--auto]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Arguments
|
|
18
|
+
|
|
19
|
+
| Argument | Description |
|
|
20
|
+
|----------|-------------|
|
|
21
|
+
| `phase` | Phase number (e.g., `5`, `5.1`). Defaults to next unplanned phase. |
|
|
22
|
+
| `--auto` | Skip interview — derive requirements from ROADMAP.md and CONTEXT.md automatically. |
|
|
23
|
+
|
|
24
|
+
## What It Does
|
|
25
|
+
|
|
26
|
+
1. **Reads** existing REQUIREMENTS.md and phase CONTEXT.md to understand scope
|
|
27
|
+
2. **Interviews** you about user stories, acceptance criteria, and edge cases (unless `--auto`)
|
|
28
|
+
3. **Writes** `.feature` files to `specs/features/{domain}/` in your project
|
|
29
|
+
4. **Validates** INVEST criteria for each user story
|
|
30
|
+
5. **Tags** every scenario with MoSCoW (`@must/@should/@could/@wont`) and tier (`@mvp/@medium/@enterprise`)
|
|
31
|
+
6. **Creates** `.planning/phases/XX-name/XX-ACCEPTANCE-CRITERIA.md` — phase gate document
|
|
32
|
+
7. **Updates** `.planning/REQUIREMENTS-BDD.md` — traceability matrix
|
|
33
|
+
|
|
34
|
+
## Output Structure
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
specs/
|
|
38
|
+
features/
|
|
39
|
+
{domain}/
|
|
40
|
+
{feature}.feature ← Gherkin scenarios with MoSCoW tags
|
|
41
|
+
.planning/
|
|
42
|
+
phases/
|
|
43
|
+
XX-name/
|
|
44
|
+
XX-ACCEPTANCE-CRITERIA.md ← Phase gate: @must scenarios
|
|
45
|
+
REQUIREMENTS-BDD.md ← Traceability matrix
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Workflow
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
/ez:gather-requirements 5
|
|
52
|
+
→ ez-requirements-agent interviews you
|
|
53
|
+
→ Creates specs/features/...
|
|
54
|
+
→ Creates ACCEPTANCE-CRITERIA.md
|
|
55
|
+
→ Updates REQUIREMENTS-BDD.md
|
|
56
|
+
|
|
57
|
+
/ez:plan-phase 5
|
|
58
|
+
→ Planner reads .feature files
|
|
59
|
+
→ Plans address @must scenarios
|
|
60
|
+
→ BDD cross-check in plan
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Flags
|
|
64
|
+
|
|
65
|
+
### --auto
|
|
66
|
+
|
|
67
|
+
Skip the interactive interview. Requirements agent derives scenarios from:
|
|
68
|
+
- ROADMAP.md phase description and goal
|
|
69
|
+
- Phase CONTEXT.md (if from `/ez:discuss-phase`)
|
|
70
|
+
- Existing REQUIREMENTS.md
|
|
71
|
+
|
|
72
|
+
Use when you have detailed context already captured and want fast requirements generation.
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
/ez:gather-requirements 5 --auto
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Examples
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# Interactive — gather requirements for phase 5
|
|
82
|
+
/ez:gather-requirements 5
|
|
83
|
+
|
|
84
|
+
# Auto-derive from existing context
|
|
85
|
+
/ez:gather-requirements 5 --auto
|
|
86
|
+
|
|
87
|
+
# Gather for decimal gap-closure phase
|
|
88
|
+
/ez:gather-requirements 5.1
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Integration with Planning
|
|
92
|
+
|
|
93
|
+
Requirements gathered here feed directly into:
|
|
94
|
+
|
|
95
|
+
- **`/ez:plan-phase`** — Planner cross-checks plans against `.feature` files, ensures @must scenarios are addressed
|
|
96
|
+
- **`/ez:verify-work`** — Verifier checks BDD pass rate in VERIFICATION.md
|
|
97
|
+
- **`/ez:release`** — Release gate checks @must scenario coverage before promoting tier
|
|
98
|
+
|
|
99
|
+
## INVEST Quick Guide
|
|
100
|
+
|
|
101
|
+
Every user story (Feature + scenarios) must be:
|
|
102
|
+
|
|
103
|
+
| Letter | Criterion | Check |
|
|
104
|
+
|--------|-----------|-------|
|
|
105
|
+
| I | Independent | Can develop without other features |
|
|
106
|
+
| N | Negotiable | Implementation details not locked in Then clauses |
|
|
107
|
+
| V | Valuable | Feature statement explains user benefit |
|
|
108
|
+
| E | Estimable | Steps are detailed enough to estimate |
|
|
109
|
+
| S | Small | ≤8 @must scenarios fit in one phase |
|
|
110
|
+
| T | Testable | All Then clauses are automatable |
|
|
111
|
+
|
|
112
|
+
## Related Commands
|
|
113
|
+
|
|
114
|
+
- `/ez:discuss-phase` — Capture design decisions (run before gather-requirements)
|
|
115
|
+
- `/ez:plan-phase` — Create implementation plans (run after gather-requirements)
|
|
116
|
+
- `/ez:verify-work` — Verify BDD scenarios pass after implementation
|
|
117
|
+
- `/ez:release` — Release with BDD coverage gate
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ez:git-workflow
|
|
3
|
+
description: Git workflow management for phase-based development
|
|
4
|
+
argument-hint: "<operation> [options] — operations: create-phase, create-branch, merge, release, hotfix, rollback, validate, changelog"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Grep
|
|
10
|
+
- Glob
|
|
11
|
+
---
|
|
12
|
+
<objective>
|
|
13
|
+
Manage Git workflow operations for phase-based development with enterprise-grade branch management, validation, and merging.
|
|
14
|
+
|
|
15
|
+
**Operations:**
|
|
16
|
+
- `create-phase <N> <slug>` — Create phase branch (e.g., `phase/15-git-workflow`)
|
|
17
|
+
- `create-branch <type> <slug>` — Create feature/fix/docs/refactor branch
|
|
18
|
+
- `merge <source> <target>` — Merge branches with validation
|
|
19
|
+
- `release <version>` — Create and manage release branch
|
|
20
|
+
- `hotfix <description>` — Create hotfix branch from main
|
|
21
|
+
- `rollback <phase-number>` — Rollback a phase
|
|
22
|
+
- `validate <branch>` — Validate branch before merge
|
|
23
|
+
- `changelog <from-tag> [to-tag]` — Generate changelog from commits
|
|
24
|
+
</objective>
|
|
25
|
+
|
|
26
|
+
<execution_context>
|
|
27
|
+
@ez-agents/bin/lib/git-workflow-engine.cjs
|
|
28
|
+
@ez-agents/bin/lib/git-utils.cjs
|
|
29
|
+
@ez-agents/bin/lib/git-errors.cjs
|
|
30
|
+
@.planning/config.json
|
|
31
|
+
</execution_context>
|
|
32
|
+
|
|
33
|
+
<context>
|
|
34
|
+
**Branch Hierarchy:**
|
|
35
|
+
```
|
|
36
|
+
main (production) ← develop (staging) ← phase/* ← {feature,fix,docs,refactor}/*
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Configuration:**
|
|
40
|
+
- Merge strategies from `.planning/config.json`
|
|
41
|
+
- Enterprise mode settings (PR requirements, reviewers)
|
|
42
|
+
- Validation levels (minimal, standard, full)
|
|
43
|
+
|
|
44
|
+
**Environment:**
|
|
45
|
+
- GITHUB_TOKEN required for enterprise PR workflow
|
|
46
|
+
- GITHUB_TOKEN required for branch protection checks
|
|
47
|
+
</context>
|
|
48
|
+
|
|
49
|
+
<process>
|
|
50
|
+
1. Parse operation and arguments
|
|
51
|
+
2. Initialize GitWorkflowEngine with config
|
|
52
|
+
3. Execute requested operation:
|
|
53
|
+
- **create-phase**: Call `engine.createPhaseBranch(phaseNumber, phaseSlug)`
|
|
54
|
+
- **create-branch**: Call `engine.createWorkBranch(type, ticketId, slug)`
|
|
55
|
+
- **merge**: Call `engine.mergeBranch(source, target, options)`
|
|
56
|
+
- **release**: Call `engine.createReleaseBranch(version)` then `engine.mergeReleaseToMain(releaseBranch)`
|
|
57
|
+
- **hotfix**: Call `engine.createHotfix(description)` then `engine.mergeHotfix(hotfixBranch, version)`
|
|
58
|
+
- **rollback**: Call `engine.rollbackPhase(phaseNumber)`
|
|
59
|
+
- **validate**: Call `engine.validateBeforeMerge(branch, validationLevel)`
|
|
60
|
+
- **changelog**: Call `engine.generateChangelog(fromTag, toTag)`
|
|
61
|
+
4. Handle errors with appropriate error classes
|
|
62
|
+
5. Log operation result
|
|
63
|
+
6. Return success/failure status
|
|
64
|
+
</process>
|
|
65
|
+
|
|
66
|
+
<error_handling>
|
|
67
|
+
- `BranchExistsError`: Branch already exists, suggest different name or delete first
|
|
68
|
+
- `BranchNotFoundError`: Source/target branch doesn't exist
|
|
69
|
+
- `MergeConflictError`: Conflicts detected, provide conflict resolution guidance
|
|
70
|
+
- `ValidationFailedError`: Validation checks failed, list specific failures
|
|
71
|
+
- `GitWorkflowError`: General git workflow error
|
|
72
|
+
</error_handling>
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ez:hotfix
|
|
3
|
+
description: Create and complete a hotfix branch. Branches from production tag, fixes, then merges to main (and develop for enterprise).
|
|
4
|
+
argument-hint: "start <name> | complete <name> <version>"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Bash
|
|
10
|
+
- Glob
|
|
11
|
+
- Grep
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
<execution_context>
|
|
15
|
+
@~/.claude/ez-agents/workflows/hotfix.md
|
|
16
|
+
</execution_context>
|
|
17
|
+
|
|
18
|
+
<process>
|
|
19
|
+
Execute the hotfix workflow from @~/.claude/ez-agents/workflows/hotfix.md end-to-end.
|
|
20
|
+
Parse ARGUMENTS for subcommand (start|complete), name, and version before executing.
|
|
21
|
+
</process>
|
|
22
|
+
|
|
23
|
+
# /ez:hotfix
|
|
24
|
+
|
|
25
|
+
Create and complete a hotfix for a critical production bug. Hotfix branches from the production tag (or main), applies the fix, then merges atomically to both main and develop (if using GitFlow).
|
|
26
|
+
|
|
27
|
+
## Usage
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
/ez:hotfix start <name>
|
|
31
|
+
/ez:hotfix complete <name> <version>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Commands
|
|
35
|
+
|
|
36
|
+
### start
|
|
37
|
+
|
|
38
|
+
Create a hotfix branch from main:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
/ez:hotfix start critical-bug
|
|
42
|
+
# Creates: hotfix/critical-bug from main
|
|
43
|
+
# Prints: current version + how to complete
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### complete
|
|
47
|
+
|
|
48
|
+
Finish and release the hotfix:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
/ez:hotfix complete critical-bug 1.0.1
|
|
52
|
+
# 1. Runs security gates
|
|
53
|
+
# 2. Runs tests
|
|
54
|
+
# 3. Merges hotfix/critical-bug → main
|
|
55
|
+
# 4. Tags: v1.0.1
|
|
56
|
+
# 5. If GitFlow: syncs to develop
|
|
57
|
+
# 6. Creates rollback plan
|
|
58
|
+
# 7. Updates CHANGELOG.md
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Why Hotfix?
|
|
62
|
+
|
|
63
|
+
A hotfix keeps the main branch clean while you're fixing bugs:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Without hotfix: With hotfix:
|
|
67
|
+
main: A──B──C──D──[broken] main: A──B──C──D──fix──tag
|
|
68
|
+
↑ ↑
|
|
69
|
+
You committed hotfix/bug branches
|
|
70
|
+
incomplete work here, merges when done
|
|
71
|
+
to main
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
No incomplete work on main. No risk of accidentally shipping in-progress features.
|
|
75
|
+
|
|
76
|
+
## Tier Behavior
|
|
77
|
+
|
|
78
|
+
The hotfix workflow adapts to your release tier:
|
|
79
|
+
|
|
80
|
+
| Tier | Hotfix From | Hotfix To | Sync To |
|
|
81
|
+
|------|-------------|-----------|---------|
|
|
82
|
+
| MVP | main | main | — |
|
|
83
|
+
| Medium | main | main (PR) | — |
|
|
84
|
+
| Enterprise | main | main | develop |
|
|
85
|
+
|
|
86
|
+
In enterprise mode, after merging to main the hotfix is also merged to develop so no work is lost.
|
|
87
|
+
|
|
88
|
+
## Example Session
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# Production bug reported: login broken for @gmail.com users
|
|
92
|
+
/ez:hotfix start gmail-login-fix
|
|
93
|
+
|
|
94
|
+
# Now on hotfix/gmail-login-fix branch
|
|
95
|
+
# ... make the fix ...
|
|
96
|
+
# git add src/auth/login.ts
|
|
97
|
+
# git commit -m "fix(auth): handle + character in email addresses"
|
|
98
|
+
|
|
99
|
+
# Release the fix
|
|
100
|
+
/ez:hotfix complete gmail-login-fix 1.0.1
|
|
101
|
+
# Tests run, security gates pass
|
|
102
|
+
# Merged to main, tagged v1.0.1
|
|
103
|
+
# Changelog updated
|
|
104
|
+
# Rollback plan created
|
|
105
|
+
#
|
|
106
|
+
# Ready to push:
|
|
107
|
+
# git push origin main && git push origin v1.0.1
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Rollback Plan
|
|
111
|
+
|
|
112
|
+
Every hotfix creates a rollback plan in case the fix itself breaks something:
|
|
113
|
+
```
|
|
114
|
+
.planning/releases/v1.0.1-ROLLBACK-PLAN.md
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Related Commands
|
|
118
|
+
|
|
119
|
+
- `/ez:release` — Full release workflow
|
|
120
|
+
- `/ez:verify-work` — Verify fix before completing
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ez:import-session
|
|
3
|
+
description: Import session from file
|
|
4
|
+
argument-hint: "<file.json> [--source-model model]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- AskUserQuestion
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<objective>
|
|
13
|
+
Import a session from an exported file to continue work or switch models.
|
|
14
|
+
|
|
15
|
+
This command:
|
|
16
|
+
- Accepts a session file path (JSON format)
|
|
17
|
+
- Validates file exists and is valid JSON
|
|
18
|
+
- Validates session structure and chain integrity
|
|
19
|
+
- Calls SessionImport.import() with optional source model adapter
|
|
20
|
+
- Shows session summary after import
|
|
21
|
+
- Offers to resume imported session
|
|
22
|
+
</objective>
|
|
23
|
+
|
|
24
|
+
<execution_context>
|
|
25
|
+
@~/.claude/ez-agents/workflows/import-session.md
|
|
26
|
+
</execution_context>
|
|
27
|
+
|
|
28
|
+
<context>
|
|
29
|
+
$ARGUMENTS
|
|
30
|
+
|
|
31
|
+
Parameters:
|
|
32
|
+
- file_path: Required. Path to session export file (.json)
|
|
33
|
+
- --source-model: Optional. Source model for adapter (claude, qwen, openai, kimi)
|
|
34
|
+
</context>
|
|
35
|
+
|
|
36
|
+
<process>
|
|
37
|
+
**Follow the import-session workflow** from @~/.claude/ez-agents/workflows/import-session.md.
|
|
38
|
+
|
|
39
|
+
The workflow handles all import logic including:
|
|
40
|
+
|
|
41
|
+
1. **Validate file path:**
|
|
42
|
+
- Check file exists using fs.existsSync
|
|
43
|
+
- If not: error "File not found: {path}"
|
|
44
|
+
- Check file ends with .json
|
|
45
|
+
- If not: error "Import file must be .json format"
|
|
46
|
+
|
|
47
|
+
2. **Parse parameters:**
|
|
48
|
+
- Extract file_path from args
|
|
49
|
+
- Extract --source-model flag (optional)
|
|
50
|
+
|
|
51
|
+
3. **Import session:**
|
|
52
|
+
- Create SessionImport instance with SessionManager
|
|
53
|
+
- Call import(file_path, { sourceModel })
|
|
54
|
+
- Catch SessionImportError and display:
|
|
55
|
+
- Error type
|
|
56
|
+
- Validation errors
|
|
57
|
+
- Suggested fix
|
|
58
|
+
|
|
59
|
+
4. **Show import confirmation:**
|
|
60
|
+
```
|
|
61
|
+
Session imported successfully!
|
|
62
|
+
|
|
63
|
+
Session ID: {sessionId}
|
|
64
|
+
Source: {file_path}
|
|
65
|
+
Original model: {model}
|
|
66
|
+
Original phase: {phase}
|
|
67
|
+
|
|
68
|
+
Warnings: {warnings if any}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
5. **Show session summary:**
|
|
72
|
+
- Display key info from imported session:
|
|
73
|
+
- Tasks completed
|
|
74
|
+
- Tasks incomplete
|
|
75
|
+
- Key decisions
|
|
76
|
+
- File changes
|
|
77
|
+
|
|
78
|
+
6. **Offer follow-up actions:**
|
|
79
|
+
- "Resume this session?"
|
|
80
|
+
- "View session chain?"
|
|
81
|
+
- "Return to current session?"
|
|
82
|
+
</process>
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ez:join-discord
|
|
3
|
-
description: Join the EZ Agents Discord community
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
<objective>
|
|
7
|
-
Display the Discord invite link for the EZ Agents community server.
|
|
8
|
-
</objective>
|
|
9
|
-
|
|
10
|
-
<output>
|
|
11
|
-
# Join the EZ Agents Discord
|
|
12
|
-
|
|
13
|
-
Connect with other EZ Agents users, get help, share what you're building, and stay updated.
|
|
14
|
-
|
|
15
|
-
**Invite link:** https://discord.gg/ez-agents
|
|
16
|
-
|
|
17
|
-
Click the link or paste it into your browser to join.
|
|
18
|
-
</output>
|
|
1
|
+
---
|
|
2
|
+
name: ez:join-discord
|
|
3
|
+
description: Join the EZ Agents Discord community
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<objective>
|
|
7
|
+
Display the Discord invite link for the EZ Agents community server.
|
|
8
|
+
</objective>
|
|
9
|
+
|
|
10
|
+
<output>
|
|
11
|
+
# Join the EZ Agents Discord
|
|
12
|
+
|
|
13
|
+
Connect with other EZ Agents users, get help, share what you're building, and stay updated.
|
|
14
|
+
|
|
15
|
+
**Invite link:** https://discord.gg/ez-agents
|
|
16
|
+
|
|
17
|
+
Click the link or paste it into your browser to join.
|
|
18
|
+
</output>
|