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.
- package/.claude-plugin/marketplace.json +18 -0
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +7 -1
- package/README.md +16 -12
- package/agents/ace-code-discovery-analyst.md +245 -245
- package/agents/ace-code-integration-analyst.md +248 -248
- package/agents/ace-code-reviewer.md +375 -375
- package/agents/ace-product-owner.md +365 -361
- package/agents/ace-project-researcher.md +606 -606
- package/agents/ace-technical-application-architect.md +315 -315
- package/bin/install.js +587 -173
- package/hooks/ace-check-update.js +15 -14
- package/hooks/ace-statusline.js +30 -12
- package/hooks/hooks.json +14 -0
- package/package.json +3 -2
- package/shared/lib/ace-core.js +53 -0
- package/shared/lib/ace-core.test.js +308 -308
- package/shared/lib/ace-story.test.js +250 -250
- package/skills/execute-story/SKILL.md +116 -110
- package/skills/execute-story/script.js +13 -27
- package/skills/execute-story/script.test.js +261 -261
- package/skills/execute-story/story-template.xml +451 -451
- package/skills/execute-story/workflow.xml +3 -1
- package/skills/help/SKILL.md +71 -69
- package/skills/help/script.js +32 -35
- package/skills/help/script.test.js +183 -183
- package/skills/help/workflow.xml +14 -3
- package/skills/init-coding-standards/SKILL.md +91 -72
- package/skills/init-coding-standards/coding-standards-template.xml +531 -531
- package/skills/init-coding-standards/script.js +50 -59
- package/skills/init-coding-standards/script.test.js +70 -70
- package/skills/init-coding-standards/workflow.xml +1 -1
- package/skills/map-cross-cutting/SKILL.md +126 -89
- package/skills/map-cross-cutting/workflow.xml +1 -1
- package/skills/map-guide/SKILL.md +126 -89
- package/skills/map-guide/workflow.xml +1 -1
- package/skills/map-pattern/SKILL.md +125 -89
- package/skills/map-pattern/workflow.xml +1 -1
- package/skills/map-story/SKILL.md +180 -127
- package/skills/map-story/templates/tech-debt-index.xml +125 -125
- package/skills/map-story/workflow.xml +2 -2
- package/skills/map-subsystem/SKILL.md +155 -111
- package/skills/map-subsystem/script.js +51 -60
- package/skills/map-subsystem/script.test.js +68 -68
- package/skills/map-subsystem/templates/subsystem-architecture.xml +343 -343
- package/skills/map-subsystem/templates/subsystem-structure.xml +234 -234
- package/skills/map-subsystem/workflow.xml +1173 -1173
- package/skills/map-sys-doc/SKILL.md +125 -90
- package/skills/map-sys-doc/workflow.xml +1 -1
- package/skills/map-system/SKILL.md +103 -85
- package/skills/map-system/script.js +75 -84
- package/skills/map-system/script.test.js +73 -73
- package/skills/map-system/templates/system-structure.xml +177 -177
- package/skills/map-system/templates/testing-framework.xml +283 -283
- package/skills/map-system/workflow.xml +667 -667
- package/skills/map-walkthrough/SKILL.md +140 -92
- package/skills/map-walkthrough/workflow.xml +457 -457
- package/skills/plan-backlog/SKILL.md +93 -75
- package/skills/plan-backlog/script.js +121 -136
- package/skills/plan-backlog/script.test.js +83 -83
- package/skills/plan-backlog/workflow.xml +1348 -1348
- package/skills/plan-feature/SKILL.md +99 -76
- package/skills/plan-feature/feature-template.xml +361 -361
- package/skills/plan-feature/script.js +131 -148
- package/skills/plan-feature/script.test.js +80 -80
- package/skills/plan-feature/workflow.xml +1 -1
- package/skills/plan-product-vision/SKILL.md +91 -75
- package/skills/plan-product-vision/product-vision-template.xml +227 -227
- package/skills/plan-product-vision/script.js +51 -60
- package/skills/plan-product-vision/script.test.js +69 -69
- package/skills/plan-product-vision/workflow.xml +337 -337
- package/skills/plan-story/SKILL.md +125 -102
- package/skills/plan-story/script.js +18 -49
- package/skills/plan-story/story-template.xml +8 -1
- package/skills/plan-story/workflow.xml +17 -1
- package/skills/research-external-solution/SKILL.md +120 -107
- package/skills/research-external-solution/external-solution-template.xml +832 -832
- package/skills/research-external-solution/script.js +229 -238
- package/skills/research-external-solution/script.test.js +134 -134
- package/skills/research-external-solution/workflow.xml +657 -657
- package/skills/research-integration-solution/SKILL.md +121 -98
- package/skills/research-integration-solution/integration-solution-template.xml +1015 -1015
- package/skills/research-integration-solution/script.js +223 -231
- package/skills/research-integration-solution/script.test.js +134 -134
- package/skills/research-integration-solution/workflow.xml +711 -711
- package/skills/research-story-wiki/SKILL.md +101 -92
- package/skills/research-story-wiki/script.js +223 -231
- package/skills/research-story-wiki/script.test.js +138 -138
- package/skills/research-story-wiki/story-wiki-template.xml +194 -194
- package/skills/research-story-wiki/workflow.xml +473 -473
- package/skills/research-technical-solution/SKILL.md +131 -103
- package/skills/research-technical-solution/script.js +223 -231
- package/skills/research-technical-solution/script.test.js +134 -134
- package/skills/research-technical-solution/technical-solution-template.xml +1025 -1025
- package/skills/research-technical-solution/workflow.xml +761 -761
- package/skills/review-story/SKILL.md +99 -100
- package/skills/review-story/script.js +8 -16
- package/skills/review-story/script.test.js +169 -169
- package/skills/review-story/story-template.xml +451 -451
- package/skills/review-story/workflow.xml +1 -1
- package/skills/update/SKILL.md +65 -53
- 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
|
-
|
|
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>
|