@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
|
@@ -197,4 +197,144 @@ Squash merge is recommended — keeps main branch history clean while preserving
|
|
|
197
197
|
|
|
198
198
|
</branching_strategy_behavior>
|
|
199
199
|
|
|
200
|
+
|
|
201
|
+
<smart_orchestration_config>
|
|
202
|
+
|
|
203
|
+
**`smart_orchestration` block:**
|
|
204
|
+
|
|
205
|
+
```json
|
|
206
|
+
"smart_orchestration": {
|
|
207
|
+
"enabled": true,
|
|
208
|
+
"show_auto_prefix": true,
|
|
209
|
+
"auto_invoke": {
|
|
210
|
+
"preflight": ["progress", "execute-phase"],
|
|
211
|
+
"arch_review": ["execute-phase"],
|
|
212
|
+
"standup": []
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
| Option | Default | Description |
|
|
218
|
+
|--------|---------|-------------|
|
|
219
|
+
| `enabled` | `true` | Master toggle for smart orchestration auto-invocations |
|
|
220
|
+
| `show_auto_prefix` | `true` | Prefix auto-invoked agent output with `[AUTO]` label |
|
|
221
|
+
| `auto_invoke.preflight` | `["progress", "execute-phase"]` | Commands that silently run health check before executing |
|
|
222
|
+
| `auto_invoke.arch_review` | `["execute-phase"]` | Commands that auto-spawn tech lead review when `agent_discussion` enabled |
|
|
223
|
+
| `auto_invoke.standup` | `[]` | Commands that auto-generate standup before running |
|
|
224
|
+
|
|
225
|
+
**Disabling per-invocation:** Pass `--no-auto` flag to any command to skip smart orchestration for that run.
|
|
226
|
+
|
|
227
|
+
</smart_orchestration_config>
|
|
228
|
+
|
|
229
|
+
<agent_discussion_config>
|
|
230
|
+
|
|
231
|
+
**`agent_discussion` block:**
|
|
232
|
+
|
|
233
|
+
```json
|
|
234
|
+
"agent_discussion": {
|
|
235
|
+
"enabled": false,
|
|
236
|
+
"pre_flight_observer": false,
|
|
237
|
+
"tech_lead_review": false,
|
|
238
|
+
"scrum_master_standup": false,
|
|
239
|
+
"cost_warning": true
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
| Option | Default | Description |
|
|
244
|
+
|--------|---------|-------------|
|
|
245
|
+
| `enabled` | `false` | Master toggle for optional discussion agents |
|
|
246
|
+
| `pre_flight_observer` | `false` | Spawn observer agent before execution to surface risks |
|
|
247
|
+
| `tech_lead_review` | `false` | Auto-spawn tech lead review after `/ez:plan-phase` completes |
|
|
248
|
+
| `scrum_master_standup` | `false` | Auto-generate standup report at session start |
|
|
249
|
+
| `cost_warning` | `true` | Warn before spawning expensive agents (Opus-class) |
|
|
250
|
+
|
|
251
|
+
**Enable via `/ez:settings`:** The settings workflow provides a guided UI for toggling these options. Avoid manual JSON edits.
|
|
252
|
+
|
|
253
|
+
</agent_discussion_config>
|
|
254
|
+
|
|
255
|
+
<sessions_config>
|
|
256
|
+
|
|
257
|
+
**`sessions` block:**
|
|
258
|
+
|
|
259
|
+
```json
|
|
260
|
+
"sessions": {
|
|
261
|
+
"retention_policy": "keep_last_10",
|
|
262
|
+
"auto_compress_threshold": 50,
|
|
263
|
+
"chain_navigation_enabled": true
|
|
264
|
+
}
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
| Option | Default | Description |
|
|
268
|
+
|--------|---------|-------------|
|
|
269
|
+
| `retention_policy` | `"keep_last_10"` | How many sessions to retain. Options: `"keep_all"`, `"keep_last_N"`, `"keep_days_N"` |
|
|
270
|
+
| `auto_compress_threshold` | `50` | Compress session memory when token count exceeds this (in thousands) |
|
|
271
|
+
| `chain_navigation_enabled` | `true` | Enable `--previous`/`--next`/`--chain` flags in `/ez:resume` |
|
|
272
|
+
|
|
273
|
+
**Session files location:** `.planning/sessions/` — each session is a JSON file. Use `/ez:export-session` and `/ez:import-session` for cross-model handoffs.
|
|
274
|
+
|
|
275
|
+
</sessions_config>
|
|
276
|
+
|
|
277
|
+
<release_tiers_config>
|
|
278
|
+
|
|
279
|
+
**`release.tiers` block:**
|
|
280
|
+
|
|
281
|
+
```json
|
|
282
|
+
"release": {
|
|
283
|
+
"tier": "mvp",
|
|
284
|
+
"tiers": {
|
|
285
|
+
"mvp": {
|
|
286
|
+
"coverage_threshold": 0,
|
|
287
|
+
"checklist_items": ["build_passes", "no_blockers"],
|
|
288
|
+
"git_strategy": "direct_to_main"
|
|
289
|
+
},
|
|
290
|
+
"medium": {
|
|
291
|
+
"coverage_threshold": 60,
|
|
292
|
+
"checklist_items": ["build_passes", "no_blockers", "tests_pass", "security_scan"],
|
|
293
|
+
"git_strategy": "pr_required"
|
|
294
|
+
},
|
|
295
|
+
"enterprise": {
|
|
296
|
+
"coverage_threshold": 80,
|
|
297
|
+
"checklist_items": ["build_passes", "no_blockers", "tests_pass", "security_scan", "coverage_gate", "changelog_updated", "rollback_plan"],
|
|
298
|
+
"git_strategy": "gitflow"
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
| Tier | Coverage | Git Strategy | Checklist |
|
|
305
|
+
|------|----------|--------------|-----------|
|
|
306
|
+
| `mvp` | None | Direct to main | Build + no blockers |
|
|
307
|
+
| `medium` | 60% | PR required | Build + tests + security scan |
|
|
308
|
+
| `enterprise` | 80% | GitFlow (main + develop) | Full gates including rollback plan |
|
|
309
|
+
|
|
310
|
+
**Hotfix behavior by tier:** MVP hotfixes merge directly; Medium requires PR; Enterprise merges to main AND syncs to develop. See `/ez:hotfix` documentation.
|
|
311
|
+
|
|
312
|
+
**Set tier:** `node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" config-set release.tier enterprise`
|
|
313
|
+
|
|
314
|
+
</release_tiers_config>
|
|
315
|
+
|
|
316
|
+
<package_manager_config>
|
|
317
|
+
|
|
318
|
+
**`packageManager` block:**
|
|
319
|
+
|
|
320
|
+
```json
|
|
321
|
+
"packageManager": {
|
|
322
|
+
"default": "npm",
|
|
323
|
+
"autoDetect": true,
|
|
324
|
+
"respectLockfile": true
|
|
325
|
+
}
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
| Option | Default | Description |
|
|
329
|
+
|--------|---------|-------------|
|
|
330
|
+
| `default` | `"npm"` | Fallback package manager when auto-detection fails. Options: `"npm"`, `"yarn"`, `"pnpm"`, `"bun"` |
|
|
331
|
+
| `autoDetect` | `true` | Detect package manager from lock file presence (`yarn.lock`, `pnpm-lock.yaml`, `bun.lockb`) |
|
|
332
|
+
| `respectLockfile` | `true` | Use `--frozen-lockfile` / `--ci` flags during install to prevent lock file mutations |
|
|
333
|
+
|
|
334
|
+
**Auto-detection order:** `bun.lockb` → bun, `pnpm-lock.yaml` → pnpm, `yarn.lock` → yarn, `package-lock.json` → npm, fallback to `default`.
|
|
335
|
+
|
|
336
|
+
**Set explicitly:** `node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" config-set packageManager.default pnpm`
|
|
337
|
+
|
|
338
|
+
</package_manager_config>
|
|
339
|
+
|
|
200
340
|
</planning_config>
|
|
@@ -1,162 +1,162 @@
|
|
|
1
|
-
<questioning_guide>
|
|
2
|
-
|
|
3
|
-
Project initialization is dream extraction, not requirements gathering. You're helping the user discover and articulate what they want to build. This isn't a contract negotiation — it's collaborative thinking.
|
|
4
|
-
|
|
5
|
-
<philosophy>
|
|
6
|
-
|
|
7
|
-
**You are a thinking partner, not an interviewer.**
|
|
8
|
-
|
|
9
|
-
The user often has a fuzzy idea. Your job is to help them sharpen it. Ask questions that make them think "oh, I hadn't considered that" or "yes, that's exactly what I mean."
|
|
10
|
-
|
|
11
|
-
Don't interrogate. Collaborate. Don't follow a script. Follow the thread.
|
|
12
|
-
|
|
13
|
-
</philosophy>
|
|
14
|
-
|
|
15
|
-
<the_goal>
|
|
16
|
-
|
|
17
|
-
By the end of questioning, you need enough clarity to write a PROJECT.md that downstream phases can act on:
|
|
18
|
-
|
|
19
|
-
- **Research** needs: what domain to research, what the user already knows, what unknowns exist
|
|
20
|
-
- **Requirements** needs: clear enough vision to scope v1 features
|
|
21
|
-
- **Roadmap** needs: clear enough vision to decompose into phases, what "done" looks like
|
|
22
|
-
- **plan-phase** needs: specific requirements to break into tasks, context for implementation choices
|
|
23
|
-
- **execute-phase** needs: success criteria to verify against, the "why" behind requirements
|
|
24
|
-
|
|
25
|
-
A vague PROJECT.md forces every downstream phase to guess. The cost compounds.
|
|
26
|
-
|
|
27
|
-
</the_goal>
|
|
28
|
-
|
|
29
|
-
<how_to_question>
|
|
30
|
-
|
|
31
|
-
**Start open.** Let them dump their mental model. Don't interrupt with structure.
|
|
32
|
-
|
|
33
|
-
**Follow energy.** Whatever they emphasized, dig into that. What excited them? What problem sparked this?
|
|
34
|
-
|
|
35
|
-
**Challenge vagueness.** Never accept fuzzy answers. "Good" means what? "Users" means who? "Simple" means how?
|
|
36
|
-
|
|
37
|
-
**Make the abstract concrete.** "Walk me through using this." "What does that actually look like?"
|
|
38
|
-
|
|
39
|
-
**Clarify ambiguity.** "When you say Z, do you mean A or B?" "You mentioned X — tell me more."
|
|
40
|
-
|
|
41
|
-
**Know when to stop.** When you understand what they want, why they want it, who it's for, and what done looks like — offer to proceed.
|
|
42
|
-
|
|
43
|
-
</how_to_question>
|
|
44
|
-
|
|
45
|
-
<question_types>
|
|
46
|
-
|
|
47
|
-
Use these as inspiration, not a checklist. Pick what's relevant to the thread.
|
|
48
|
-
|
|
49
|
-
**Motivation — why this exists:**
|
|
50
|
-
- "What prompted this?"
|
|
51
|
-
- "What are you doing today that this replaces?"
|
|
52
|
-
- "What would you do if this existed?"
|
|
53
|
-
|
|
54
|
-
**Concreteness — what it actually is:**
|
|
55
|
-
- "Walk me through using this"
|
|
56
|
-
- "You said X — what does that actually look like?"
|
|
57
|
-
- "Give me an example"
|
|
58
|
-
|
|
59
|
-
**Clarification — what they mean:**
|
|
60
|
-
- "When you say Z, do you mean A or B?"
|
|
61
|
-
- "You mentioned X — tell me more about that"
|
|
62
|
-
|
|
63
|
-
**Success — how you'll know it's working:**
|
|
64
|
-
- "How will you know this is working?"
|
|
65
|
-
- "What does done look like?"
|
|
66
|
-
|
|
67
|
-
</question_types>
|
|
68
|
-
|
|
69
|
-
<using_askuserquestion>
|
|
70
|
-
|
|
71
|
-
Use AskUserQuestion to help users think by presenting concrete options to react to.
|
|
72
|
-
|
|
73
|
-
**Good options:**
|
|
74
|
-
- Interpretations of what they might mean
|
|
75
|
-
- Specific examples to confirm or deny
|
|
76
|
-
- Concrete choices that reveal priorities
|
|
77
|
-
|
|
78
|
-
**Bad options:**
|
|
79
|
-
- Generic categories ("Technical", "Business", "Other")
|
|
80
|
-
- Leading options that presume an answer
|
|
81
|
-
- Too many options (2-4 is ideal)
|
|
82
|
-
- Headers longer than 12 characters (hard limit — validation will reject them)
|
|
83
|
-
|
|
84
|
-
**Example — vague answer:**
|
|
85
|
-
User says "it should be fast"
|
|
86
|
-
|
|
87
|
-
- header: "Fast"
|
|
88
|
-
- question: "Fast how?"
|
|
89
|
-
- options: ["Sub-second response", "Handles large datasets", "Quick to build", "Let me explain"]
|
|
90
|
-
|
|
91
|
-
**Example — following a thread:**
|
|
92
|
-
User mentions "frustrated with current tools"
|
|
93
|
-
|
|
94
|
-
- header: "Frustration"
|
|
95
|
-
- question: "What specifically frustrates you?"
|
|
96
|
-
- options: ["Too many clicks", "Missing features", "Unreliable", "Let me explain"]
|
|
97
|
-
|
|
98
|
-
**Tip for users — modifying an option:**
|
|
99
|
-
Users who want a slightly modified version of an option can select "Other" and reference the option by number: `#1 but for finger joints only` or `#2 with pagination disabled`. This avoids retyping the full option text.
|
|
100
|
-
|
|
101
|
-
</using_askuserquestion>
|
|
102
|
-
|
|
103
|
-
<freeform_rule>
|
|
104
|
-
|
|
105
|
-
**When the user wants to explain freely, STOP using AskUserQuestion.**
|
|
106
|
-
|
|
107
|
-
If a user selects "Other" and their response signals they want to describe something in their own words (e.g., "let me describe it", "I'll explain", "something else", or any open-ended reply that isn't choosing/modifying an existing option), you MUST:
|
|
108
|
-
|
|
109
|
-
1. **Ask your follow-up as plain text** — NOT via AskUserQuestion
|
|
110
|
-
2. **Wait for them to type at the normal prompt**
|
|
111
|
-
3. **Resume AskUserQuestion** only after processing their freeform response
|
|
112
|
-
|
|
113
|
-
The same applies if YOU include a freeform-indicating option (like "Let me explain" or "Describe in detail") and the user selects it.
|
|
114
|
-
|
|
115
|
-
**Wrong:** User says "let me describe it" → AskUserQuestion("What feature?", ["Feature A", "Feature B", "Describe in detail"])
|
|
116
|
-
**Right:** User says "let me describe it" → "Go ahead — what are you thinking?"
|
|
117
|
-
|
|
118
|
-
</freeform_rule>
|
|
119
|
-
|
|
120
|
-
<context_checklist>
|
|
121
|
-
|
|
122
|
-
Use this as a **background checklist**, not a conversation structure. Check these mentally as you go. If gaps remain, weave questions naturally.
|
|
123
|
-
|
|
124
|
-
- [ ] What they're building (concrete enough to explain to a stranger)
|
|
125
|
-
- [ ] Why it needs to exist (the problem or desire driving it)
|
|
126
|
-
- [ ] Who it's for (even if just themselves)
|
|
127
|
-
- [ ] What "done" looks like (observable outcomes)
|
|
128
|
-
|
|
129
|
-
Four things. If they volunteer more, capture it.
|
|
130
|
-
|
|
131
|
-
</context_checklist>
|
|
132
|
-
|
|
133
|
-
<decision_gate>
|
|
134
|
-
|
|
135
|
-
When you could write a clear PROJECT.md, offer to proceed:
|
|
136
|
-
|
|
137
|
-
- header: "Ready?"
|
|
138
|
-
- question: "I think I understand what you're after. Ready to create PROJECT.md?"
|
|
139
|
-
- options:
|
|
140
|
-
- "Create PROJECT.md" — Let's move forward
|
|
141
|
-
- "Keep exploring" — I want to share more / ask me more
|
|
142
|
-
|
|
143
|
-
If "Keep exploring" — ask what they want to add or identify gaps and probe naturally.
|
|
144
|
-
|
|
145
|
-
Loop until "Create PROJECT.md" selected.
|
|
146
|
-
|
|
147
|
-
</decision_gate>
|
|
148
|
-
|
|
149
|
-
<anti_patterns>
|
|
150
|
-
|
|
151
|
-
- **Checklist walking** — Going through domains regardless of what they said
|
|
152
|
-
- **Canned questions** — "What's your core value?" "What's out of scope?" regardless of context
|
|
153
|
-
- **Corporate speak** — "What are your success criteria?" "Who are your stakeholders?"
|
|
154
|
-
- **Interrogation** — Firing questions without building on answers
|
|
155
|
-
- **Rushing** — Minimizing questions to get to "the work"
|
|
156
|
-
- **Shallow acceptance** — Taking vague answers without probing
|
|
157
|
-
- **Premature constraints** — Asking about tech stack before understanding the idea
|
|
158
|
-
- **User skills** — NEVER ask about user's technical experience. Claude builds.
|
|
159
|
-
|
|
160
|
-
</anti_patterns>
|
|
161
|
-
|
|
162
|
-
</questioning_guide>
|
|
1
|
+
<questioning_guide>
|
|
2
|
+
|
|
3
|
+
Project initialization is dream extraction, not requirements gathering. You're helping the user discover and articulate what they want to build. This isn't a contract negotiation — it's collaborative thinking.
|
|
4
|
+
|
|
5
|
+
<philosophy>
|
|
6
|
+
|
|
7
|
+
**You are a thinking partner, not an interviewer.**
|
|
8
|
+
|
|
9
|
+
The user often has a fuzzy idea. Your job is to help them sharpen it. Ask questions that make them think "oh, I hadn't considered that" or "yes, that's exactly what I mean."
|
|
10
|
+
|
|
11
|
+
Don't interrogate. Collaborate. Don't follow a script. Follow the thread.
|
|
12
|
+
|
|
13
|
+
</philosophy>
|
|
14
|
+
|
|
15
|
+
<the_goal>
|
|
16
|
+
|
|
17
|
+
By the end of questioning, you need enough clarity to write a PROJECT.md that downstream phases can act on:
|
|
18
|
+
|
|
19
|
+
- **Research** needs: what domain to research, what the user already knows, what unknowns exist
|
|
20
|
+
- **Requirements** needs: clear enough vision to scope v1 features
|
|
21
|
+
- **Roadmap** needs: clear enough vision to decompose into phases, what "done" looks like
|
|
22
|
+
- **plan-phase** needs: specific requirements to break into tasks, context for implementation choices
|
|
23
|
+
- **execute-phase** needs: success criteria to verify against, the "why" behind requirements
|
|
24
|
+
|
|
25
|
+
A vague PROJECT.md forces every downstream phase to guess. The cost compounds.
|
|
26
|
+
|
|
27
|
+
</the_goal>
|
|
28
|
+
|
|
29
|
+
<how_to_question>
|
|
30
|
+
|
|
31
|
+
**Start open.** Let them dump their mental model. Don't interrupt with structure.
|
|
32
|
+
|
|
33
|
+
**Follow energy.** Whatever they emphasized, dig into that. What excited them? What problem sparked this?
|
|
34
|
+
|
|
35
|
+
**Challenge vagueness.** Never accept fuzzy answers. "Good" means what? "Users" means who? "Simple" means how?
|
|
36
|
+
|
|
37
|
+
**Make the abstract concrete.** "Walk me through using this." "What does that actually look like?"
|
|
38
|
+
|
|
39
|
+
**Clarify ambiguity.** "When you say Z, do you mean A or B?" "You mentioned X — tell me more."
|
|
40
|
+
|
|
41
|
+
**Know when to stop.** When you understand what they want, why they want it, who it's for, and what done looks like — offer to proceed.
|
|
42
|
+
|
|
43
|
+
</how_to_question>
|
|
44
|
+
|
|
45
|
+
<question_types>
|
|
46
|
+
|
|
47
|
+
Use these as inspiration, not a checklist. Pick what's relevant to the thread.
|
|
48
|
+
|
|
49
|
+
**Motivation — why this exists:**
|
|
50
|
+
- "What prompted this?"
|
|
51
|
+
- "What are you doing today that this replaces?"
|
|
52
|
+
- "What would you do if this existed?"
|
|
53
|
+
|
|
54
|
+
**Concreteness — what it actually is:**
|
|
55
|
+
- "Walk me through using this"
|
|
56
|
+
- "You said X — what does that actually look like?"
|
|
57
|
+
- "Give me an example"
|
|
58
|
+
|
|
59
|
+
**Clarification — what they mean:**
|
|
60
|
+
- "When you say Z, do you mean A or B?"
|
|
61
|
+
- "You mentioned X — tell me more about that"
|
|
62
|
+
|
|
63
|
+
**Success — how you'll know it's working:**
|
|
64
|
+
- "How will you know this is working?"
|
|
65
|
+
- "What does done look like?"
|
|
66
|
+
|
|
67
|
+
</question_types>
|
|
68
|
+
|
|
69
|
+
<using_askuserquestion>
|
|
70
|
+
|
|
71
|
+
Use AskUserQuestion to help users think by presenting concrete options to react to.
|
|
72
|
+
|
|
73
|
+
**Good options:**
|
|
74
|
+
- Interpretations of what they might mean
|
|
75
|
+
- Specific examples to confirm or deny
|
|
76
|
+
- Concrete choices that reveal priorities
|
|
77
|
+
|
|
78
|
+
**Bad options:**
|
|
79
|
+
- Generic categories ("Technical", "Business", "Other")
|
|
80
|
+
- Leading options that presume an answer
|
|
81
|
+
- Too many options (2-4 is ideal)
|
|
82
|
+
- Headers longer than 12 characters (hard limit — validation will reject them)
|
|
83
|
+
|
|
84
|
+
**Example — vague answer:**
|
|
85
|
+
User says "it should be fast"
|
|
86
|
+
|
|
87
|
+
- header: "Fast"
|
|
88
|
+
- question: "Fast how?"
|
|
89
|
+
- options: ["Sub-second response", "Handles large datasets", "Quick to build", "Let me explain"]
|
|
90
|
+
|
|
91
|
+
**Example — following a thread:**
|
|
92
|
+
User mentions "frustrated with current tools"
|
|
93
|
+
|
|
94
|
+
- header: "Frustration"
|
|
95
|
+
- question: "What specifically frustrates you?"
|
|
96
|
+
- options: ["Too many clicks", "Missing features", "Unreliable", "Let me explain"]
|
|
97
|
+
|
|
98
|
+
**Tip for users — modifying an option:**
|
|
99
|
+
Users who want a slightly modified version of an option can select "Other" and reference the option by number: `#1 but for finger joints only` or `#2 with pagination disabled`. This avoids retyping the full option text.
|
|
100
|
+
|
|
101
|
+
</using_askuserquestion>
|
|
102
|
+
|
|
103
|
+
<freeform_rule>
|
|
104
|
+
|
|
105
|
+
**When the user wants to explain freely, STOP using AskUserQuestion.**
|
|
106
|
+
|
|
107
|
+
If a user selects "Other" and their response signals they want to describe something in their own words (e.g., "let me describe it", "I'll explain", "something else", or any open-ended reply that isn't choosing/modifying an existing option), you MUST:
|
|
108
|
+
|
|
109
|
+
1. **Ask your follow-up as plain text** — NOT via AskUserQuestion
|
|
110
|
+
2. **Wait for them to type at the normal prompt**
|
|
111
|
+
3. **Resume AskUserQuestion** only after processing their freeform response
|
|
112
|
+
|
|
113
|
+
The same applies if YOU include a freeform-indicating option (like "Let me explain" or "Describe in detail") and the user selects it.
|
|
114
|
+
|
|
115
|
+
**Wrong:** User says "let me describe it" → AskUserQuestion("What feature?", ["Feature A", "Feature B", "Describe in detail"])
|
|
116
|
+
**Right:** User says "let me describe it" → "Go ahead — what are you thinking?"
|
|
117
|
+
|
|
118
|
+
</freeform_rule>
|
|
119
|
+
|
|
120
|
+
<context_checklist>
|
|
121
|
+
|
|
122
|
+
Use this as a **background checklist**, not a conversation structure. Check these mentally as you go. If gaps remain, weave questions naturally.
|
|
123
|
+
|
|
124
|
+
- [ ] What they're building (concrete enough to explain to a stranger)
|
|
125
|
+
- [ ] Why it needs to exist (the problem or desire driving it)
|
|
126
|
+
- [ ] Who it's for (even if just themselves)
|
|
127
|
+
- [ ] What "done" looks like (observable outcomes)
|
|
128
|
+
|
|
129
|
+
Four things. If they volunteer more, capture it.
|
|
130
|
+
|
|
131
|
+
</context_checklist>
|
|
132
|
+
|
|
133
|
+
<decision_gate>
|
|
134
|
+
|
|
135
|
+
When you could write a clear PROJECT.md, offer to proceed:
|
|
136
|
+
|
|
137
|
+
- header: "Ready?"
|
|
138
|
+
- question: "I think I understand what you're after. Ready to create PROJECT.md?"
|
|
139
|
+
- options:
|
|
140
|
+
- "Create PROJECT.md" — Let's move forward
|
|
141
|
+
- "Keep exploring" — I want to share more / ask me more
|
|
142
|
+
|
|
143
|
+
If "Keep exploring" — ask what they want to add or identify gaps and probe naturally.
|
|
144
|
+
|
|
145
|
+
Loop until "Create PROJECT.md" selected.
|
|
146
|
+
|
|
147
|
+
</decision_gate>
|
|
148
|
+
|
|
149
|
+
<anti_patterns>
|
|
150
|
+
|
|
151
|
+
- **Checklist walking** — Going through domains regardless of what they said
|
|
152
|
+
- **Canned questions** — "What's your core value?" "What's out of scope?" regardless of context
|
|
153
|
+
- **Corporate speak** — "What are your success criteria?" "Who are your stakeholders?"
|
|
154
|
+
- **Interrogation** — Firing questions without building on answers
|
|
155
|
+
- **Rushing** — Minimizing questions to get to "the work"
|
|
156
|
+
- **Shallow acceptance** — Taking vague answers without probing
|
|
157
|
+
- **Premature constraints** — Asking about tech stack before understanding the idea
|
|
158
|
+
- **User skills** — NEVER ask about user's technical experience. Claude builds.
|
|
159
|
+
|
|
160
|
+
</anti_patterns>
|
|
161
|
+
|
|
162
|
+
</questioning_guide>
|