agile-context-engineering 0.5.0 → 0.5.1

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 (102) hide show
  1. package/.claude-plugin/marketplace.json +18 -0
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +7 -1
  4. package/README.md +16 -12
  5. package/agents/ace-code-discovery-analyst.md +245 -245
  6. package/agents/ace-code-integration-analyst.md +248 -248
  7. package/agents/ace-code-reviewer.md +375 -375
  8. package/agents/ace-product-owner.md +365 -361
  9. package/agents/ace-project-researcher.md +606 -606
  10. package/agents/ace-technical-application-architect.md +315 -315
  11. package/bin/install.js +587 -173
  12. package/hooks/ace-check-update.js +15 -14
  13. package/hooks/ace-statusline.js +30 -12
  14. package/hooks/hooks.json +14 -0
  15. package/package.json +3 -2
  16. package/shared/lib/ace-core.js +53 -0
  17. package/shared/lib/ace-core.test.js +308 -308
  18. package/shared/lib/ace-story.test.js +250 -250
  19. package/skills/execute-story/SKILL.md +116 -110
  20. package/skills/execute-story/script.js +13 -27
  21. package/skills/execute-story/script.test.js +261 -261
  22. package/skills/execute-story/story-template.xml +451 -451
  23. package/skills/execute-story/workflow.xml +3 -1
  24. package/skills/help/SKILL.md +71 -69
  25. package/skills/help/script.js +32 -35
  26. package/skills/help/script.test.js +183 -183
  27. package/skills/help/workflow.xml +14 -3
  28. package/skills/init-coding-standards/SKILL.md +91 -72
  29. package/skills/init-coding-standards/coding-standards-template.xml +531 -531
  30. package/skills/init-coding-standards/script.js +50 -59
  31. package/skills/init-coding-standards/script.test.js +70 -70
  32. package/skills/init-coding-standards/workflow.xml +1 -1
  33. package/skills/map-cross-cutting/SKILL.md +126 -89
  34. package/skills/map-cross-cutting/workflow.xml +1 -1
  35. package/skills/map-guide/SKILL.md +126 -89
  36. package/skills/map-guide/workflow.xml +1 -1
  37. package/skills/map-pattern/SKILL.md +125 -89
  38. package/skills/map-pattern/workflow.xml +1 -1
  39. package/skills/map-story/SKILL.md +180 -127
  40. package/skills/map-story/templates/tech-debt-index.xml +125 -125
  41. package/skills/map-story/workflow.xml +2 -2
  42. package/skills/map-subsystem/SKILL.md +155 -111
  43. package/skills/map-subsystem/script.js +51 -60
  44. package/skills/map-subsystem/script.test.js +68 -68
  45. package/skills/map-subsystem/templates/subsystem-architecture.xml +343 -343
  46. package/skills/map-subsystem/templates/subsystem-structure.xml +234 -234
  47. package/skills/map-subsystem/workflow.xml +1173 -1173
  48. package/skills/map-sys-doc/SKILL.md +125 -90
  49. package/skills/map-sys-doc/workflow.xml +1 -1
  50. package/skills/map-system/SKILL.md +103 -85
  51. package/skills/map-system/script.js +75 -84
  52. package/skills/map-system/script.test.js +73 -73
  53. package/skills/map-system/templates/system-structure.xml +177 -177
  54. package/skills/map-system/templates/testing-framework.xml +283 -283
  55. package/skills/map-system/workflow.xml +667 -667
  56. package/skills/map-walkthrough/SKILL.md +140 -92
  57. package/skills/map-walkthrough/workflow.xml +457 -457
  58. package/skills/plan-backlog/SKILL.md +93 -75
  59. package/skills/plan-backlog/script.js +121 -136
  60. package/skills/plan-backlog/script.test.js +83 -83
  61. package/skills/plan-backlog/workflow.xml +1348 -1348
  62. package/skills/plan-feature/SKILL.md +99 -76
  63. package/skills/plan-feature/feature-template.xml +361 -361
  64. package/skills/plan-feature/script.js +131 -148
  65. package/skills/plan-feature/script.test.js +80 -80
  66. package/skills/plan-feature/workflow.xml +1 -1
  67. package/skills/plan-product-vision/SKILL.md +91 -75
  68. package/skills/plan-product-vision/product-vision-template.xml +227 -227
  69. package/skills/plan-product-vision/script.js +51 -60
  70. package/skills/plan-product-vision/script.test.js +69 -69
  71. package/skills/plan-product-vision/workflow.xml +337 -337
  72. package/skills/plan-story/SKILL.md +125 -102
  73. package/skills/plan-story/script.js +18 -49
  74. package/skills/plan-story/story-template.xml +8 -1
  75. package/skills/plan-story/workflow.xml +17 -1
  76. package/skills/research-external-solution/SKILL.md +120 -107
  77. package/skills/research-external-solution/external-solution-template.xml +832 -832
  78. package/skills/research-external-solution/script.js +229 -238
  79. package/skills/research-external-solution/script.test.js +134 -134
  80. package/skills/research-external-solution/workflow.xml +657 -657
  81. package/skills/research-integration-solution/SKILL.md +121 -98
  82. package/skills/research-integration-solution/integration-solution-template.xml +1015 -1015
  83. package/skills/research-integration-solution/script.js +223 -231
  84. package/skills/research-integration-solution/script.test.js +134 -134
  85. package/skills/research-integration-solution/workflow.xml +711 -711
  86. package/skills/research-story-wiki/SKILL.md +101 -92
  87. package/skills/research-story-wiki/script.js +223 -231
  88. package/skills/research-story-wiki/script.test.js +138 -138
  89. package/skills/research-story-wiki/story-wiki-template.xml +194 -194
  90. package/skills/research-story-wiki/workflow.xml +473 -473
  91. package/skills/research-technical-solution/SKILL.md +131 -103
  92. package/skills/research-technical-solution/script.js +223 -231
  93. package/skills/research-technical-solution/script.test.js +134 -134
  94. package/skills/research-technical-solution/technical-solution-template.xml +1025 -1025
  95. package/skills/research-technical-solution/workflow.xml +761 -761
  96. package/skills/review-story/SKILL.md +99 -100
  97. package/skills/review-story/script.js +8 -16
  98. package/skills/review-story/script.test.js +169 -169
  99. package/skills/review-story/story-template.xml +451 -451
  100. package/skills/review-story/workflow.xml +1 -1
  101. package/skills/update/SKILL.md +65 -53
  102. package/skills/update/workflow.xml +21 -5
@@ -1,337 +1,337 @@
1
- <workflow>
2
-
3
- <purpose>
4
- Orchestrate product vision creation or update through environment detection, architecture-aware
5
- questioning, and document writing. Produces `.docs/product/product-vision.md` — the north star
6
- document that aligns the team on what the product is, who it's for, and why it matters.
7
-
8
- Brownfield projects with system architecture: use the Subsystem Responsibility Matrix to
9
- pre-populate suggested capabilities. Without architecture: suggest /ace:map-system first.
10
- Greenfield projects: gather everything from user interview directly.
11
- </purpose>
12
-
13
- <mandatory-context>
14
- Read all files referenced by the invoking command's execution-context before starting.
15
- Also read any document or text passed as parameter ($ARGUMENTS) in the invoking command.
16
- </mandatory-context>
17
-
18
- <process>
19
-
20
- <!-- ══════════════════════════════════════════════════════════════════ -->
21
- <!-- STEP 1: SETUP -->
22
- <!-- ══════════════════════════════════════════════════════════════════ -->
23
-
24
- <step name="setup" order="1">
25
- **MANDATORY FIRST STEP — Execute environment detection before any user interaction:**
26
-
27
- INIT is available from the preprocessed Environment Context above — do NOT re-run init.
28
-
29
- Parse INIT JSON for: `product_owner_model`, `commit_docs`, `has_product_vision`,
30
- `is_brownfield`, `is_greenfield`, `has_existing_code`, `has_package_file`,
31
- `has_system_architecture`, `has_git`.
32
-
33
- PO_MODEL is available from INIT.product_owner_model — do NOT re-run resolve-model.
34
-
35
- Display stage banner:
36
-
37
- ```
38
- ╔══════════════════════════════════════════════════╗
39
- ║ ACE > Product Vision ║
40
- ╚══════════════════════════════════════════════════╝
41
- ```
42
-
43
- **If `has_product_vision` is true:**
44
-
45
- Use AskUserQuestion:
46
- - header: "Vision exists"
47
- - question: "A product vision already exists at `.docs/product/product-vision.md`. What would you like to do?"
48
- - options:
49
- - "Update it" — Review and refine the existing vision
50
- - "Start fresh" — Discard and create a new vision from scratch
51
- - "Skip" — Keep the current vision as-is
52
-
53
- If "Update": Read existing file, hold as seed context, continue to step 2
54
- If "Start fresh": Ignore existing file, continue to step 2
55
- If "Skip": Exit workflow
56
-
57
- **If `has_git` is false:** Initialize git:
58
- ```bash
59
- git init
60
- ```
61
- </step>
62
-
63
- <!-- ══════════════════════════════════════════════════════════════════ -->
64
- <!-- STEP 2: PREREQUISITE CHECK + ARCHITECTURE CONTEXT -->
65
- <!-- ══════════════════════════════════════════════════════════════════ -->
66
-
67
- <step name="prerequisite-check" order="2">
68
-
69
- **If `is_brownfield` AND `has_system_architecture` is false:**
70
-
71
- Inform the user:
72
- "Your project has code but no system architecture document yet. The architecture
73
- analysis helps me understand your subsystems and infer capabilities for the product vision."
74
-
75
- Use AskUserQuestion:
76
- - header: "Architecture"
77
- - question: "Would you like to map your system architecture first? This helps me infer capabilities from your codebase."
78
- - options:
79
- - "Run /ace:map-system first" — Exit and map architecture before creating the vision
80
- - "Skip — I'll describe capabilities myself" — Continue without architecture context
81
-
82
- If "Run /ace:map-system first":
83
- - Display:
84
- ```
85
- ┌──────────────────────────────────────────────────┐
86
- │ Next > /ace:map-system │
87
- │ Then re-run /ace:plan-product-vision │
88
- └──────────────────────────────────────────────────┘
89
- ```
90
- - Exit workflow.
91
-
92
- If "Skip — I'll describe capabilities myself":
93
- - Hold architecture context as: `ARCHITECTURE = null`
94
- - Continue to step 3.
95
-
96
- **If `is_brownfield` AND `has_system_architecture` is true:**
97
-
98
- Read `.docs/wiki/system-wide/system-architecture.md`.
99
-
100
- Extract and hold as architecture context:
101
- - **System Overview** — what the system is and does
102
- - **Subsystem Responsibility Matrix** — subsystem names and their responsibilities
103
- (the "Responsibility" column maps directly to capability areas for the product vision)
104
- - **Tech Stack** — languages, frameworks, infrastructure
105
-
106
- Hold as `ARCHITECTURE` for use in step 3 questioning.
107
-
108
- **If `is_greenfield`:**
109
-
110
- No architecture context available.
111
- Hold architecture context as: `ARCHITECTURE = null`
112
- Continue to step 3.
113
- </step>
114
-
115
- <!-- ══════════════════════════════════════════════════════════════════ -->
116
- <!-- STEP 3: DEEP QUESTIONING -->
117
- <!-- ══════════════════════════════════════════════════════════════════ -->
118
-
119
- <step name="deep-questioning" order="3">
120
- Follow the questioning guide from `questioning.xml`. You are a thinking partner,
121
- not an interviewer.
122
-
123
- **Opening — adapt based on available context:**
124
-
125
- If greenfield (no architecture, no existing code):
126
- - Open with: "What do you want to build?"
127
- - Wait for their response. This gives you context for intelligent follow-ups.
128
-
129
- If brownfield WITH architecture context:
130
- - Acknowledge what you see: "I see your system [overview from ARCHITECTURE].
131
- Your subsystems handle: [list responsibilities from Subsystem Responsibility Matrix].
132
- Let's define the product vision around these capabilities."
133
- - Use the Subsystem Responsibility Matrix to pre-populate suggested high-level
134
- capabilities — the "Responsibility" column maps directly to capability areas.
135
- - Probe: what's the product's purpose beyond the technical capabilities?
136
- Who uses it? What problems does it solve?
137
-
138
- If brownfield WITHOUT architecture context:
139
- - Acknowledge existing code: "You have an existing codebase. Tell me about the product —
140
- what does it do and who is it for?"
141
- - Proceed with standard questioning.
142
-
143
- If user provided a document/text ($ARGUMENTS):
144
- - Absorb it first (do NOT summarize it back)
145
- - Use it as seed context, probe gaps and ambiguities
146
-
147
- **Follow the thread:**
148
-
149
- Based on what they said (and what you absorbed), ask follow-up questions that dig
150
- into their response. Use AskUserQuestion with options that probe what they mentioned —
151
- interpretations, clarifications, concrete examples.
152
-
153
- Keep following threads. Each answer opens new threads to explore:
154
- - What excited them
155
- - What problem sparked this
156
- - What they mean by vague terms
157
- - What it would actually look like
158
- - What's already decided vs open
159
- - Who specifically will use this
160
-
161
- **Map answers to product-vision template sections (background, not out loud):**
162
-
163
- As you question, mentally track coverage against the template:
164
- - [ ] Vision — why does this product exist? (1-2 sentence elevator pitch)
165
- - [ ] Target Audience — who specifically is this for?
166
- - [ ] Problem Statement — what pain or unmet need?
167
- - [ ] Value Proposition — why this over alternatives?
168
- - [ ] Key Objectives — measurable outcomes (3-5)
169
- - [ ] High-Level Capabilities — broad capability areas
170
- - [ ] Constraints — tech, timeline, budget, platform
171
- - [ ] Competitive Landscape — what alternatives exist?
172
-
173
- If architecture context exists, the High-Level Capabilities checklist item gets
174
- pre-populated from the Subsystem Responsibility Matrix. Confirm with the user
175
- rather than asking from scratch.
176
-
177
- Don't walk through this as a checklist. Weave questions naturally based on the
178
- conversation. If gaps remain after the conversation feels complete, probe those
179
- specific areas.
180
-
181
- **Decision gate:**
182
-
183
- When you could write a clear product-vision.md, use AskUserQuestion:
184
- - header: "Ready?"
185
- - question: "I think I understand what you're after. Ready to create the product vision?"
186
- - options:
187
- - "Create product vision" — Let's move forward
188
- - "Keep exploring" — I want to share more / ask me more
189
-
190
- If "Keep exploring" — ask what they want to add, or identify gaps and probe naturally.
191
-
192
- Loop until "Create product vision" selected.
193
- </step>
194
-
195
- <!-- ══════════════════════════════════════════════════════════════════ -->
196
- <!-- STEP 4: WRITE PRODUCT VISION -->
197
- <!-- ══════════════════════════════════════════════════════════════════ -->
198
-
199
- <step name="write" order="4">
200
- **Step 1 — Create directory structure:**
201
- ```bash
202
- mkdir -p .docs/product
203
- ```
204
-
205
- **Step 2 — Prepare a context brief (200-400 words max) that distills:**
206
- - What the product is, who it's for, what problem it solves
207
- - Key capabilities, constraints, competitive landscape discussed
208
- - If architecture context exists: subsystem-derived capabilities, tech stack constraints
209
- - Brownfield summary (if any existing product context was gathered)
210
-
211
- **Step 3 — Spawn the vision-writing agent:**
212
-
213
- ```
214
- Task(
215
- prompt="You are an Agile Product Owner writing a product vision document.
216
-
217
- **Context brief from questioning session:**
218
- {paste the context brief here}
219
-
220
- **Instructions:**
221
- 1. Read the product vision template: ${CLAUDE_SKILL_DIR}/product-vision-template.xml
222
- 2. Write `.docs/product/product-vision.md` following the template structure and guidelines
223
- 3. Do not compress — capture everything from the context brief
224
- 4. Write the file using the Write tool
225
-
226
- **Template guidelines:**
227
- - **Vision Statement:** Concise, inspiring, 1-2 sentences. Answers 'why does this product exist?'
228
- - **Target Audience:** Specific personas defined by behavior and need
229
- - **Problem Statement:** Framed from user's perspective. Specific pain, not vague descriptions.
230
- - **Value Proposition:** What differentiates this from alternatives. Use Geoffrey Moore's format if it fits.
231
- - **Key Objectives:** 3-5 measurable outcomes. 'Users can do X' not 'Build feature Y'.
232
- - **High-Level Capabilities:** Broad capability areas that define the product's shape. These inform epic planning downstream.
233
- - **Success Metrics:** Quantifiable indicators with targets and measurement method.
234
- - **Competitive Landscape:** Honest assessment of alternatives and gaps this product fills.
235
- - **Constraints and Assumptions:** Hard limits with rationale. Tech stack, timeline, budget, platform, dependencies.
236
- - **Risks:** Key uncertainties with likelihood, impact, and mitigation.
237
- - **Last updated:** 'after initialization'
238
-
239
- Do not compress. Capture everything gathered. If the user said it, it should be reflected somewhere in the document.
240
-
241
- **Return format — ONLY this, nothing else:**
242
- DONE
243
- - [Vision statement in one line]
244
- - [Target audience in one line]
245
- - [Core problem in one line]
246
- - [Number of capabilities listed]
247
- - [Number of objectives listed]",
248
- subagent_type="ace-product-owner",
249
- model="{PO_MODEL}",
250
- description="Write product vision document"
251
- )
252
- ```
253
- </step>
254
-
255
- <!-- ══════════════════════════════════════════════════════════════════ -->
256
- <!-- STEP 5: REVIEW AND APPROVE -->
257
- <!-- ══════════════════════════════════════════════════════════════════ -->
258
-
259
- <step name="review" order="5">
260
- Show the agent's returned summary to the user. Then:
261
-
262
- - header: "Vision"
263
- - question: "Product vision written to `.docs/product/product-vision.md`. Does this summary look right? Review the full file in your editor for details."
264
- - options:
265
- - "Approve" — Looks good, commit it
266
- - "Adjust" — I want to change some things
267
- - "Redo questioning" — Let's go back and explore more
268
-
269
- **If "Adjust":**
270
- - Ask what they want to change
271
- - Spawn a Task agent to edit:
272
- ```
273
- Task(
274
- prompt="Read `.docs/product/product-vision.md` and make these changes:
275
- {user's requested changes}.
276
- Use the Edit tool to modify in place. Return only a confirmation of what changed.",
277
- subagent_type="general-purpose",
278
- model="haiku",
279
- description="Adjust product vision"
280
- )
281
- ```
282
- - Present for review again. Loop until approved.
283
-
284
- **If "Redo questioning":**
285
- - Return to step 3 (deep-questioning), preserve architecture context
286
- - Hold previous answers as context
287
-
288
- **If "Approve":**
289
- Continue to commit step.
290
- </step>
291
-
292
- <!-- ══════════════════════════════════════════════════════════════════ -->
293
- <!-- STEP 6: COMMIT -->
294
- <!-- ══════════════════════════════════════════════════════════════════ -->
295
-
296
- <step name="commit" order="6">
297
- Commit the product vision:
298
-
299
- ```bash
300
- git add .docs/product/product-vision.md
301
- git commit -m "docs: initialize product vision"
302
- ```
303
-
304
- Display completion:
305
-
306
- ```
307
- ╔══════════════════════════════════════════════════╗
308
- ║ ACE > Product Vision Created ║
309
- ╚══════════════════════════════════════════════════╝
310
-
311
- + .docs/product/product-vision.md committed.
312
-
313
- i This vision will be used as context by ACE commands
314
- when planning epics, features, and stories.
315
-
316
- Next > /ace:init-coding-standards
317
- Establish coding standards for the project.
318
- > /ace:map-system
319
- Map your codebase structure and architecture.
320
- ```
321
- </step>
322
-
323
- </process>
324
-
325
- <success_criteria>
326
- - Init function executed (brownfield/greenfield detected, architecture checked)
327
- - Brownfield with architecture: subsystem responsibilities used to suggest capabilities
328
- - Brownfield without architecture: user offered /ace:map-system or continued manually
329
- - Greenfield: all context gathered from user interview
330
- - User interviewed about product vision, goals, audience, capabilities
331
- - product-vision.md written following template structure
332
- - Document captures everything discussed, not compressed
333
- - User reviewed and approved the document
334
- - Document committed to .docs/product/
335
- </success_criteria>
336
-
337
- </workflow>
1
+ <workflow>
2
+
3
+ <purpose>
4
+ Orchestrate product vision creation or update through environment detection, architecture-aware
5
+ questioning, and document writing. Produces `.docs/product/product-vision.md` — the north star
6
+ document that aligns the team on what the product is, who it's for, and why it matters.
7
+
8
+ Brownfield projects with system architecture: use the Subsystem Responsibility Matrix to
9
+ pre-populate suggested capabilities. Without architecture: suggest /ace:map-system first.
10
+ Greenfield projects: gather everything from user interview directly.
11
+ </purpose>
12
+
13
+ <mandatory-context>
14
+ All supporting resource files are auto-loaded in the skill prompt above. Do NOT re-read them.
15
+ Also read any document or text passed as parameter ($ARGUMENTS) in the invoking command.
16
+ </mandatory-context>
17
+
18
+ <process>
19
+
20
+ <!-- ══════════════════════════════════════════════════════════════════ -->
21
+ <!-- STEP 1: SETUP -->
22
+ <!-- ══════════════════════════════════════════════════════════════════ -->
23
+
24
+ <step name="setup" order="1">
25
+ **MANDATORY FIRST STEP — Execute environment detection before any user interaction:**
26
+
27
+ INIT is available from the preprocessed Environment Context above — do NOT re-run init.
28
+
29
+ Parse INIT JSON for: `product_owner_model`, `commit_docs`, `has_product_vision`,
30
+ `is_brownfield`, `is_greenfield`, `has_existing_code`, `has_package_file`,
31
+ `has_system_architecture`, `has_git`.
32
+
33
+ PO_MODEL is available from INIT.product_owner_model — do NOT re-run resolve-model.
34
+
35
+ Display stage banner:
36
+
37
+ ```
38
+ ╔══════════════════════════════════════════════════╗
39
+ ║ ACE > Product Vision ║
40
+ ╚══════════════════════════════════════════════════╝
41
+ ```
42
+
43
+ **If `has_product_vision` is true:**
44
+
45
+ Use AskUserQuestion:
46
+ - header: "Vision exists"
47
+ - question: "A product vision already exists at `.docs/product/product-vision.md`. What would you like to do?"
48
+ - options:
49
+ - "Update it" — Review and refine the existing vision
50
+ - "Start fresh" — Discard and create a new vision from scratch
51
+ - "Skip" — Keep the current vision as-is
52
+
53
+ If "Update": Read existing file, hold as seed context, continue to step 2
54
+ If "Start fresh": Ignore existing file, continue to step 2
55
+ If "Skip": Exit workflow
56
+
57
+ **If `has_git` is false:** Initialize git:
58
+ ```bash
59
+ git init
60
+ ```
61
+ </step>
62
+
63
+ <!-- ══════════════════════════════════════════════════════════════════ -->
64
+ <!-- STEP 2: PREREQUISITE CHECK + ARCHITECTURE CONTEXT -->
65
+ <!-- ══════════════════════════════════════════════════════════════════ -->
66
+
67
+ <step name="prerequisite-check" order="2">
68
+
69
+ **If `is_brownfield` AND `has_system_architecture` is false:**
70
+
71
+ Inform the user:
72
+ "Your project has code but no system architecture document yet. The architecture
73
+ analysis helps me understand your subsystems and infer capabilities for the product vision."
74
+
75
+ Use AskUserQuestion:
76
+ - header: "Architecture"
77
+ - question: "Would you like to map your system architecture first? This helps me infer capabilities from your codebase."
78
+ - options:
79
+ - "Run /ace:map-system first" — Exit and map architecture before creating the vision
80
+ - "Skip — I'll describe capabilities myself" — Continue without architecture context
81
+
82
+ If "Run /ace:map-system first":
83
+ - Display:
84
+ ```
85
+ ┌──────────────────────────────────────────────────┐
86
+ │ Next > /ace:map-system │
87
+ │ Then re-run /ace:plan-product-vision │
88
+ └──────────────────────────────────────────────────┘
89
+ ```
90
+ - Exit workflow.
91
+
92
+ If "Skip — I'll describe capabilities myself":
93
+ - Hold architecture context as: `ARCHITECTURE = null`
94
+ - Continue to step 3.
95
+
96
+ **If `is_brownfield` AND `has_system_architecture` is true:**
97
+
98
+ Read `.docs/wiki/system-wide/system-architecture.md`.
99
+
100
+ Extract and hold as architecture context:
101
+ - **System Overview** — what the system is and does
102
+ - **Subsystem Responsibility Matrix** — subsystem names and their responsibilities
103
+ (the "Responsibility" column maps directly to capability areas for the product vision)
104
+ - **Tech Stack** — languages, frameworks, infrastructure
105
+
106
+ Hold as `ARCHITECTURE` for use in step 3 questioning.
107
+
108
+ **If `is_greenfield`:**
109
+
110
+ No architecture context available.
111
+ Hold architecture context as: `ARCHITECTURE = null`
112
+ Continue to step 3.
113
+ </step>
114
+
115
+ <!-- ══════════════════════════════════════════════════════════════════ -->
116
+ <!-- STEP 3: DEEP QUESTIONING -->
117
+ <!-- ══════════════════════════════════════════════════════════════════ -->
118
+
119
+ <step name="deep-questioning" order="3">
120
+ Follow the questioning guide from `questioning.xml`. You are a thinking partner,
121
+ not an interviewer.
122
+
123
+ **Opening — adapt based on available context:**
124
+
125
+ If greenfield (no architecture, no existing code):
126
+ - Open with: "What do you want to build?"
127
+ - Wait for their response. This gives you context for intelligent follow-ups.
128
+
129
+ If brownfield WITH architecture context:
130
+ - Acknowledge what you see: "I see your system [overview from ARCHITECTURE].
131
+ Your subsystems handle: [list responsibilities from Subsystem Responsibility Matrix].
132
+ Let's define the product vision around these capabilities."
133
+ - Use the Subsystem Responsibility Matrix to pre-populate suggested high-level
134
+ capabilities — the "Responsibility" column maps directly to capability areas.
135
+ - Probe: what's the product's purpose beyond the technical capabilities?
136
+ Who uses it? What problems does it solve?
137
+
138
+ If brownfield WITHOUT architecture context:
139
+ - Acknowledge existing code: "You have an existing codebase. Tell me about the product —
140
+ what does it do and who is it for?"
141
+ - Proceed with standard questioning.
142
+
143
+ If user provided a document/text ($ARGUMENTS):
144
+ - Absorb it first (do NOT summarize it back)
145
+ - Use it as seed context, probe gaps and ambiguities
146
+
147
+ **Follow the thread:**
148
+
149
+ Based on what they said (and what you absorbed), ask follow-up questions that dig
150
+ into their response. Use AskUserQuestion with options that probe what they mentioned —
151
+ interpretations, clarifications, concrete examples.
152
+
153
+ Keep following threads. Each answer opens new threads to explore:
154
+ - What excited them
155
+ - What problem sparked this
156
+ - What they mean by vague terms
157
+ - What it would actually look like
158
+ - What's already decided vs open
159
+ - Who specifically will use this
160
+
161
+ **Map answers to product-vision template sections (background, not out loud):**
162
+
163
+ As you question, mentally track coverage against the template:
164
+ - [ ] Vision — why does this product exist? (1-2 sentence elevator pitch)
165
+ - [ ] Target Audience — who specifically is this for?
166
+ - [ ] Problem Statement — what pain or unmet need?
167
+ - [ ] Value Proposition — why this over alternatives?
168
+ - [ ] Key Objectives — measurable outcomes (3-5)
169
+ - [ ] High-Level Capabilities — broad capability areas
170
+ - [ ] Constraints — tech, timeline, budget, platform
171
+ - [ ] Competitive Landscape — what alternatives exist?
172
+
173
+ If architecture context exists, the High-Level Capabilities checklist item gets
174
+ pre-populated from the Subsystem Responsibility Matrix. Confirm with the user
175
+ rather than asking from scratch.
176
+
177
+ Don't walk through this as a checklist. Weave questions naturally based on the
178
+ conversation. If gaps remain after the conversation feels complete, probe those
179
+ specific areas.
180
+
181
+ **Decision gate:**
182
+
183
+ When you could write a clear product-vision.md, use AskUserQuestion:
184
+ - header: "Ready?"
185
+ - question: "I think I understand what you're after. Ready to create the product vision?"
186
+ - options:
187
+ - "Create product vision" — Let's move forward
188
+ - "Keep exploring" — I want to share more / ask me more
189
+
190
+ If "Keep exploring" — ask what they want to add, or identify gaps and probe naturally.
191
+
192
+ Loop until "Create product vision" selected.
193
+ </step>
194
+
195
+ <!-- ══════════════════════════════════════════════════════════════════ -->
196
+ <!-- STEP 4: WRITE PRODUCT VISION -->
197
+ <!-- ══════════════════════════════════════════════════════════════════ -->
198
+
199
+ <step name="write" order="4">
200
+ **Step 1 — Create directory structure:**
201
+ ```bash
202
+ mkdir -p .docs/product
203
+ ```
204
+
205
+ **Step 2 — Prepare a context brief (200-400 words max) that distills:**
206
+ - What the product is, who it's for, what problem it solves
207
+ - Key capabilities, constraints, competitive landscape discussed
208
+ - If architecture context exists: subsystem-derived capabilities, tech stack constraints
209
+ - Brownfield summary (if any existing product context was gathered)
210
+
211
+ **Step 3 — Spawn the vision-writing agent:**
212
+
213
+ ```
214
+ Task(
215
+ prompt="You are an Agile Product Owner writing a product vision document.
216
+
217
+ **Context brief from questioning session:**
218
+ {paste the context brief here}
219
+
220
+ **Instructions:**
221
+ 1. Read the product vision template: ${CLAUDE_SKILL_DIR}/product-vision-template.xml
222
+ 2. Write `.docs/product/product-vision.md` following the template structure and guidelines
223
+ 3. Do not compress — capture everything from the context brief
224
+ 4. Write the file using the Write tool
225
+
226
+ **Template guidelines:**
227
+ - **Vision Statement:** Concise, inspiring, 1-2 sentences. Answers 'why does this product exist?'
228
+ - **Target Audience:** Specific personas defined by behavior and need
229
+ - **Problem Statement:** Framed from user's perspective. Specific pain, not vague descriptions.
230
+ - **Value Proposition:** What differentiates this from alternatives. Use Geoffrey Moore's format if it fits.
231
+ - **Key Objectives:** 3-5 measurable outcomes. 'Users can do X' not 'Build feature Y'.
232
+ - **High-Level Capabilities:** Broad capability areas that define the product's shape. These inform epic planning downstream.
233
+ - **Success Metrics:** Quantifiable indicators with targets and measurement method.
234
+ - **Competitive Landscape:** Honest assessment of alternatives and gaps this product fills.
235
+ - **Constraints and Assumptions:** Hard limits with rationale. Tech stack, timeline, budget, platform, dependencies.
236
+ - **Risks:** Key uncertainties with likelihood, impact, and mitigation.
237
+ - **Last updated:** 'after initialization'
238
+
239
+ Do not compress. Capture everything gathered. If the user said it, it should be reflected somewhere in the document.
240
+
241
+ **Return format — ONLY this, nothing else:**
242
+ DONE
243
+ - [Vision statement in one line]
244
+ - [Target audience in one line]
245
+ - [Core problem in one line]
246
+ - [Number of capabilities listed]
247
+ - [Number of objectives listed]",
248
+ subagent_type="ace-product-owner",
249
+ model="{PO_MODEL}",
250
+ description="Write product vision document"
251
+ )
252
+ ```
253
+ </step>
254
+
255
+ <!-- ══════════════════════════════════════════════════════════════════ -->
256
+ <!-- STEP 5: REVIEW AND APPROVE -->
257
+ <!-- ══════════════════════════════════════════════════════════════════ -->
258
+
259
+ <step name="review" order="5">
260
+ Show the agent's returned summary to the user. Then:
261
+
262
+ - header: "Vision"
263
+ - question: "Product vision written to `.docs/product/product-vision.md`. Does this summary look right? Review the full file in your editor for details."
264
+ - options:
265
+ - "Approve" — Looks good, commit it
266
+ - "Adjust" — I want to change some things
267
+ - "Redo questioning" — Let's go back and explore more
268
+
269
+ **If "Adjust":**
270
+ - Ask what they want to change
271
+ - Spawn a Task agent to edit:
272
+ ```
273
+ Task(
274
+ prompt="Read `.docs/product/product-vision.md` and make these changes:
275
+ {user's requested changes}.
276
+ Use the Edit tool to modify in place. Return only a confirmation of what changed.",
277
+ subagent_type="general-purpose",
278
+ model="haiku",
279
+ description="Adjust product vision"
280
+ )
281
+ ```
282
+ - Present for review again. Loop until approved.
283
+
284
+ **If "Redo questioning":**
285
+ - Return to step 3 (deep-questioning), preserve architecture context
286
+ - Hold previous answers as context
287
+
288
+ **If "Approve":**
289
+ Continue to commit step.
290
+ </step>
291
+
292
+ <!-- ══════════════════════════════════════════════════════════════════ -->
293
+ <!-- STEP 6: COMMIT -->
294
+ <!-- ══════════════════════════════════════════════════════════════════ -->
295
+
296
+ <step name="commit" order="6">
297
+ Commit the product vision:
298
+
299
+ ```bash
300
+ git add .docs/product/product-vision.md
301
+ git commit -m "docs: initialize product vision"
302
+ ```
303
+
304
+ Display completion:
305
+
306
+ ```
307
+ ╔══════════════════════════════════════════════════╗
308
+ ║ ACE > Product Vision Created ║
309
+ ╚══════════════════════════════════════════════════╝
310
+
311
+ + .docs/product/product-vision.md committed.
312
+
313
+ i This vision will be used as context by ACE commands
314
+ when planning epics, features, and stories.
315
+
316
+ Next > /ace:init-coding-standards
317
+ Establish coding standards for the project.
318
+ > /ace:map-system
319
+ Map your codebase structure and architecture.
320
+ ```
321
+ </step>
322
+
323
+ </process>
324
+
325
+ <success_criteria>
326
+ - Init function executed (brownfield/greenfield detected, architecture checked)
327
+ - Brownfield with architecture: subsystem responsibilities used to suggest capabilities
328
+ - Brownfield without architecture: user offered /ace:map-system or continued manually
329
+ - Greenfield: all context gathered from user interview
330
+ - User interviewed about product vision, goals, audience, capabilities
331
+ - product-vision.md written following template structure
332
+ - Document captures everything discussed, not compressed
333
+ - User reviewed and approved the document
334
+ - Document committed to .docs/product/
335
+ </success_criteria>
336
+
337
+ </workflow>