agile-context-engineering 0.2.2 → 0.3.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/CHANGELOG.md +82 -0
- package/LICENSE +51 -51
- package/README.md +324 -323
- package/agents/ace-research-synthesizer.md +228 -228
- package/agents/ace-technical-application-architect.md +28 -0
- package/agents/ace-wiki-mapper.md +445 -334
- package/agile-context-engineering/src/ace-tools.test.js +1089 -1089
- package/agile-context-engineering/templates/_command.md +53 -53
- package/agile-context-engineering/templates/_workflow.xml +16 -16
- package/agile-context-engineering/templates/product/product-backlog.xml +231 -231
- package/agile-context-engineering/templates/product/story-integration-solution.xml +1 -0
- package/agile-context-engineering/templates/product/story-wiki.xml +4 -0
- package/agile-context-engineering/templates/wiki/coding-standards.xml +38 -0
- package/agile-context-engineering/templates/wiki/decizions.xml +115 -115
- package/agile-context-engineering/templates/wiki/guide.xml +137 -137
- package/agile-context-engineering/templates/wiki/module-discovery.xml +174 -174
- package/agile-context-engineering/templates/wiki/pattern.xml +159 -159
- package/agile-context-engineering/templates/wiki/system-architecture.xml +254 -254
- package/agile-context-engineering/templates/wiki/system-cross-cutting.xml +197 -197
- package/agile-context-engineering/templates/wiki/system.xml +381 -381
- package/agile-context-engineering/templates/wiki/walkthrough.xml +255 -0
- package/agile-context-engineering/templates/wiki/wiki-readme.xml +297 -276
- package/agile-context-engineering/utils/questioning.xml +110 -110
- package/agile-context-engineering/workflows/execute-story.xml +1219 -1145
- package/agile-context-engineering/workflows/help.xml +540 -540
- package/agile-context-engineering/workflows/init-coding-standards.xml +386 -386
- package/agile-context-engineering/workflows/map-story.xml +1046 -797
- package/agile-context-engineering/workflows/map-subsystem.xml +2 -1
- package/agile-context-engineering/workflows/map-walkthrough.xml +457 -0
- package/agile-context-engineering/workflows/plan-feature.xml +1495 -1495
- package/agile-context-engineering/workflows/plan-story.xml +36 -1
- package/agile-context-engineering/workflows/research-integration-solution.xml +1 -0
- package/agile-context-engineering/workflows/research-story-wiki.xml +2 -1
- package/agile-context-engineering/workflows/research-technical-solution.xml +1 -0
- package/agile-context-engineering/workflows/review-story.xml +281 -281
- package/agile-context-engineering/workflows/update.xml +238 -207
- package/bin/install.js +8 -0
- package/commands/ace/execute-story.md +1 -0
- package/commands/ace/help.md +93 -93
- package/commands/ace/init-coding-standards.md +83 -83
- package/commands/ace/map-story.md +165 -156
- package/commands/ace/map-subsystem.md +140 -138
- package/commands/ace/map-system.md +92 -92
- package/commands/ace/map-walkthrough.md +127 -0
- package/commands/ace/plan-feature.md +89 -89
- package/commands/ace/plan-story.md +15 -1
- package/commands/ace/review-story.md +109 -109
- package/commands/ace/update.md +56 -54
- package/hooks/ace-check-update.js +62 -62
- package/hooks/ace-statusline.js +89 -89
- package/package.json +4 -3
|
@@ -1,540 +1,540 @@
|
|
|
1
|
-
<workflow>
|
|
2
|
-
|
|
3
|
-
<purpose>
|
|
4
|
-
Interactive state-checker, settings configurator, and guided router for project
|
|
5
|
-
initialization. Detects which ACE documents exist, ensures settings are configured
|
|
6
|
-
(including GitHub Project integration), displays a status dashboard, and offers to
|
|
7
|
-
run missing setup commands — following the GSD new-project interactive pattern.
|
|
8
|
-
</purpose>
|
|
9
|
-
|
|
10
|
-
<mandatory-context>
|
|
11
|
-
Read all files referenced by the invoking prompt's execution-context before starting.
|
|
12
|
-
</mandatory-context>
|
|
13
|
-
|
|
14
|
-
<process>
|
|
15
|
-
|
|
16
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
17
|
-
<!-- STEP 1: DETECT STATE -->
|
|
18
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
19
|
-
|
|
20
|
-
<step name="detect-state" order="1">
|
|
21
|
-
**MANDATORY FIRST STEP — Execute environment detection before any user interaction.**
|
|
22
|
-
|
|
23
|
-
<substep order="1.1" name="environment-detection">
|
|
24
|
-
```bash
|
|
25
|
-
INIT=$(node ~/.claude/agile-context-engineering/src/ace-tools.js init new-project)
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
<output-fields>
|
|
29
|
-
<field name="has_product_vision">Whether .docs/product/product-vision.md exists</field>
|
|
30
|
-
<field name="has_system_architecture">Whether .docs/wiki/system-wide/system-architecture.md exists</field>
|
|
31
|
-
<field name="has_system_structure">Whether .docs/wiki/system-wide/system-structure.md exists</field>
|
|
32
|
-
<field name="has_coding_standards">Whether .docs/wiki/system-wide/coding-standards.md exists</field>
|
|
33
|
-
<field name="has_testing_framework">Whether .docs/wiki/system-wide/testing-framework.md exists</field>
|
|
34
|
-
<field name="is_brownfield">Existing code or package files detected</field>
|
|
35
|
-
<field name="is_greenfield">No existing code detected</field>
|
|
36
|
-
<field name="has_git">Whether .git directory exists</field>
|
|
37
|
-
<field name="has_gh_cli">Whether GitHub CLI (gh) is installed</field>
|
|
38
|
-
</output-fields>
|
|
39
|
-
</substep>
|
|
40
|
-
|
|
41
|
-
<substep order="1.2" name="ensure-git">
|
|
42
|
-
<variant condition="has_git is false">
|
|
43
|
-
```bash
|
|
44
|
-
git init
|
|
45
|
-
```
|
|
46
|
-
</variant>
|
|
47
|
-
|
|
48
|
-
<variant condition="has_git is true">
|
|
49
|
-
No action needed.
|
|
50
|
-
</variant>
|
|
51
|
-
</substep>
|
|
52
|
-
</step>
|
|
53
|
-
|
|
54
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
55
|
-
<!-- STEP 2: ENSURE SETTINGS -->
|
|
56
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
57
|
-
|
|
58
|
-
<step name="ensure-settings" order="2">
|
|
59
|
-
**Create `.ace/settings.json` if it does not exist.**
|
|
60
|
-
|
|
61
|
-
<substep order="2.1" name="create-settings-file">
|
|
62
|
-
```bash
|
|
63
|
-
SETTINGS=$(node ~/.claude/agile-context-engineering/src/ace-tools.js ensure-settings)
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
<output-fields>
|
|
67
|
-
<field name="created">Whether settings.json was just created (true) or already existed (false)</field>
|
|
68
|
-
<field name="settings">The current settings object</field>
|
|
69
|
-
</output-fields>
|
|
70
|
-
</substep>
|
|
71
|
-
|
|
72
|
-
<substep order="2.2" name="display-settings-status">
|
|
73
|
-
<variant condition="created is true">
|
|
74
|
-
Display:
|
|
75
|
-
```
|
|
76
|
-
┌──────────────────────────────────────────────────┐
|
|
77
|
-
│ ACE > Settings │
|
|
78
|
-
└──────────────────────────────────────────────────┘
|
|
79
|
-
|
|
80
|
-
✓ Created .ace/settings.json with defaults.
|
|
81
|
-
```
|
|
82
|
-
</variant>
|
|
83
|
-
|
|
84
|
-
<variant condition="created is false">
|
|
85
|
-
No display needed — settings already exist.
|
|
86
|
-
</variant>
|
|
87
|
-
</substep>
|
|
88
|
-
</step>
|
|
89
|
-
|
|
90
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
91
|
-
<!-- STEP 3: GITHUB PROJECT SETUP (mandatory — always runs) -->
|
|
92
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
93
|
-
|
|
94
|
-
<step name="github-project-setup" order="3">
|
|
95
|
-
**Detect GitHub environment and ask the user about project board integration.**
|
|
96
|
-
|
|
97
|
-
<substep order="3.1" name="github-detection">
|
|
98
|
-
```bash
|
|
99
|
-
GH_STATUS=$(node ~/.claude/agile-context-engineering/src/ace-tools.js init setup-github)
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
<output-fields>
|
|
103
|
-
<field name="gh_installed">Whether GitHub CLI (gh) is available</field>
|
|
104
|
-
<field name="repo">Detected repository (e.g., owner/repo) or empty string</field>
|
|
105
|
-
<field name="owner">Repository owner or empty string</field>
|
|
106
|
-
<field name="projects">Array of {number, title} objects</field>
|
|
107
|
-
<field name="current_settings">Current github_project settings from settings.json</field>
|
|
108
|
-
</output-fields>
|
|
109
|
-
</substep>
|
|
110
|
-
|
|
111
|
-
<substep order="3.2" name="evaluate-github-state">
|
|
112
|
-
<variant condition="current_settings.enabled is true">
|
|
113
|
-
Already configured. Display:
|
|
114
|
-
```
|
|
115
|
-
✓ GitHub Project: #{current_settings.project_number}
|
|
116
|
-
Owner: {current_settings.owner}
|
|
117
|
-
Repo: {current_settings.repo}
|
|
118
|
-
```
|
|
119
|
-
Skip to step 4.
|
|
120
|
-
</variant>
|
|
121
|
-
|
|
122
|
-
<variant condition="gh_installed is false">
|
|
123
|
-
Display:
|
|
124
|
-
```
|
|
125
|
-
i GitHub CLI (gh) not found — GitHub Project integration unavailable.
|
|
126
|
-
Install from: https://cli.github.com/
|
|
127
|
-
```
|
|
128
|
-
Skip to step 4.
|
|
129
|
-
</variant>
|
|
130
|
-
|
|
131
|
-
<variant condition="gh_installed is true AND current_settings.enabled is false">
|
|
132
|
-
Continue to substep 3.3.
|
|
133
|
-
</variant>
|
|
134
|
-
</substep>
|
|
135
|
-
|
|
136
|
-
<substep order="3.3" name="ask-github-interest">
|
|
137
|
-
Use `AskUserQuestion`:
|
|
138
|
-
- header: "GitHub"
|
|
139
|
-
- question: "GitHub CLI detected. Do you want to connect a GitHub Project board for sprint tracking?"
|
|
140
|
-
- options:
|
|
141
|
-
- "Yes, set it up (Recommended)" — Connect a GitHub Project now
|
|
142
|
-
- "Skip for now" — Continue without GitHub Project integration
|
|
143
|
-
|
|
144
|
-
<variant condition="user chose Skip for now">
|
|
145
|
-
Skip to step 4.
|
|
146
|
-
</variant>
|
|
147
|
-
|
|
148
|
-
<variant condition="user chose Yes, set it up">
|
|
149
|
-
Continue to substep 3.4.
|
|
150
|
-
</variant>
|
|
151
|
-
</substep>
|
|
152
|
-
|
|
153
|
-
<substep order="3.4" name="confirm-repo">
|
|
154
|
-
<variant condition="repo is not empty">
|
|
155
|
-
Use `AskUserQuestion`:
|
|
156
|
-
- header: "Repository"
|
|
157
|
-
- question: "Detected repository: `{repo}`. Is this correct?"
|
|
158
|
-
- options:
|
|
159
|
-
- "Yes, use {repo}" — Confirm this repository
|
|
160
|
-
- "No, different repo" — I'll provide the correct repository
|
|
161
|
-
|
|
162
|
-
If "No, different repo": ask user to provide the correct `owner/repo` string.
|
|
163
|
-
Parse `owner` from the confirmed/provided repo string (everything before `/`).
|
|
164
|
-
</variant>
|
|
165
|
-
|
|
166
|
-
<variant condition="repo is empty">
|
|
167
|
-
Ask the user to provide their `owner/repo` string.
|
|
168
|
-
Parse `owner` from the provided string (everything before `/`).
|
|
169
|
-
</variant>
|
|
170
|
-
</substep>
|
|
171
|
-
|
|
172
|
-
<substep order="3.5" name="confirm-owner">
|
|
173
|
-
The `owner` is the GitHub user or organization that owns the project board.
|
|
174
|
-
By default it matches the repo owner, but it can differ (e.g., org project
|
|
175
|
-
boards used across multiple repos).
|
|
176
|
-
|
|
177
|
-
Use `AskUserQuestion`:
|
|
178
|
-
- header: "Owner"
|
|
179
|
-
- question: "Which GitHub user or organization owns the project board? Detected: `{owner}`"
|
|
180
|
-
- options:
|
|
181
|
-
- "Use {owner}" — The repo owner owns the project board
|
|
182
|
-
- "Different owner" — I'll provide the correct owner
|
|
183
|
-
|
|
184
|
-
<variant condition="user chose Use {owner}">
|
|
185
|
-
Keep `owner` as-is.
|
|
186
|
-
</variant>
|
|
187
|
-
|
|
188
|
-
<variant condition="user chose Different owner">
|
|
189
|
-
Ask user to provide the correct owner (GitHub username or org name).
|
|
190
|
-
Update `owner` with the provided value.
|
|
191
|
-
</variant>
|
|
192
|
-
</substep>
|
|
193
|
-
|
|
194
|
-
<substep order="3.6" name="select-project">
|
|
195
|
-
Re-fetch projects for the confirmed owner (in case owner changed in 3.5):
|
|
196
|
-
```bash
|
|
197
|
-
gh project list --owner {owner} --limit 10 --format json
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
<variant condition="projects array is not empty">
|
|
201
|
-
Use `AskUserQuestion`:
|
|
202
|
-
- header: "Project"
|
|
203
|
-
- question: "Which GitHub Project should ACE use?"
|
|
204
|
-
- options: (build from projects array, max 4)
|
|
205
|
-
- "{title} (#{number})" — for each project
|
|
206
|
-
</variant>
|
|
207
|
-
|
|
208
|
-
<variant condition="projects array is empty">
|
|
209
|
-
Display:
|
|
210
|
-
```
|
|
211
|
-
i No GitHub Projects found for {owner}.
|
|
212
|
-
Create one at https://github.com/orgs/{owner}/projects
|
|
213
|
-
or https://github.com/users/{owner}/projects
|
|
214
|
-
```
|
|
215
|
-
Skip to step 4.
|
|
216
|
-
</variant>
|
|
217
|
-
</substep>
|
|
218
|
-
|
|
219
|
-
<substep order="3.7" name="write-github-settings">
|
|
220
|
-
```bash
|
|
221
|
-
node ~/.claude/agile-context-engineering/src/ace-tools.js write-github-settings enabled=true gh_installed=true repo={repo} project_number={number} owner={owner}
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
Display:
|
|
225
|
-
```
|
|
226
|
-
✓ GitHub Project configured.
|
|
227
|
-
Owner: {owner}
|
|
228
|
-
Repo: {repo}
|
|
229
|
-
Project: {title} (#{number})
|
|
230
|
-
```
|
|
231
|
-
</substep>
|
|
232
|
-
</step>
|
|
233
|
-
|
|
234
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
235
|
-
<!-- STEP 4: AGENT TEAMS SETUP (optional — experimental feature) -->
|
|
236
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
237
|
-
|
|
238
|
-
<step name="agent-teams-setup" order="4">
|
|
239
|
-
**MANDATORY — MUST execute this step. DO NOT skip. Always ask the user about Agent Teams.**
|
|
240
|
-
|
|
241
|
-
This step syncs and configures the Claude Code Agent Teams experimental feature.
|
|
242
|
-
You MUST run the sync command below and MUST use AskUserQuestion to interact with the user.
|
|
243
|
-
|
|
244
|
-
<substep order="4.1" name="sync-agent-teams">
|
|
245
|
-
**MANDATORY — Run this command before evaluating state:**
|
|
246
|
-
|
|
247
|
-
```bash
|
|
248
|
-
AGENT_TEAMS=$(node ~/.claude/agile-context-engineering/src/ace-tools.js sync-agent-teams --raw)
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
Parse the JSON output. The `agent_teams` field is the synced boolean state.
|
|
252
|
-
</substep>
|
|
253
|
-
|
|
254
|
-
<substep order="4.2" name="ask-agent-teams">
|
|
255
|
-
**MANDATORY — You MUST use AskUserQuestion here. Do NOT skip this interaction.**
|
|
256
|
-
**IMPORTANT: When writing settings, you MUST use the Bash commands below.
|
|
257
|
-
NEVER directly edit .ace/settings.json or .claude/settings.json — the
|
|
258
|
-
write-agent-teams command updates BOTH files atomically.**
|
|
259
|
-
|
|
260
|
-
<variant condition="agent_teams is true (from sync output)">
|
|
261
|
-
Use `AskUserQuestion`:
|
|
262
|
-
- header: "Agent Teams"
|
|
263
|
-
- question: "Agent Teams (experimental) is currently ENABLED. This orchestrates multiple Claude Code sessions in parallel but significantly increases token usage. Would you like to keep it enabled?"
|
|
264
|
-
- options:
|
|
265
|
-
- "Keep enabled" — Continue with Agent Teams enabled
|
|
266
|
-
- "Disable" — Turn off Agent Teams to reduce token usage
|
|
267
|
-
|
|
268
|
-
<variant condition="user chose Disable">
|
|
269
|
-
```bash
|
|
270
|
-
node ~/.claude/agile-context-engineering/src/ace-tools.js write-agent-teams false
|
|
271
|
-
```
|
|
272
|
-
Display:
|
|
273
|
-
```
|
|
274
|
-
✓ Agent Teams disabled.
|
|
275
|
-
```
|
|
276
|
-
</variant>
|
|
277
|
-
</variant>
|
|
278
|
-
|
|
279
|
-
<variant condition="agent_teams is false (from sync output)">
|
|
280
|
-
Use `AskUserQuestion`:
|
|
281
|
-
- header: "Agent Teams"
|
|
282
|
-
- question: "Would you like to enable Claude Code Agent Teams? This is an experimental feature that orchestrates multiple Claude Code sessions working in parallel. WARNING: This significantly increases token usage."
|
|
283
|
-
- options:
|
|
284
|
-
- "Skip for now (Recommended)" — Keep Agent Teams disabled
|
|
285
|
-
- "Enable Agent Teams" — Enable experimental multi-session orchestration (higher token cost)
|
|
286
|
-
|
|
287
|
-
<variant condition="user chose Enable Agent Teams">
|
|
288
|
-
```bash
|
|
289
|
-
node ~/.claude/agile-context-engineering/src/ace-tools.js write-agent-teams true
|
|
290
|
-
```
|
|
291
|
-
Display:
|
|
292
|
-
```
|
|
293
|
-
✓ Agent Teams enabled.
|
|
294
|
-
- Set agent_teams: true in .ace/settings.json
|
|
295
|
-
- Set CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS in .claude/settings.json
|
|
296
|
-
⚠ This feature is experimental and increases token usage significantly.
|
|
297
|
-
```
|
|
298
|
-
</variant>
|
|
299
|
-
</variant>
|
|
300
|
-
</substep>
|
|
301
|
-
</step>
|
|
302
|
-
|
|
303
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
304
|
-
<!-- STEP 5: DISPLAY STATUS DASHBOARD -->
|
|
305
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
306
|
-
|
|
307
|
-
<step name="status-dashboard" order="5">
|
|
308
|
-
Build and display the project status dashboard.
|
|
309
|
-
|
|
310
|
-
<substep order="5.1" name="render-documents-section">
|
|
311
|
-
```
|
|
312
|
-
╔══════════════════════════════════════════════════╗
|
|
313
|
-
║ ACE > Project Status ║
|
|
314
|
-
╚══════════════════════════════════════════════════╝
|
|
315
|
-
|
|
316
|
-
Project type: {brownfield|greenfield}
|
|
317
|
-
|
|
318
|
-
Product Vision [{check}] {status} {suggestion}
|
|
319
|
-
System Architecture [{check}] {status} {suggestion}
|
|
320
|
-
System Structure [{check}] {status} {suggestion}
|
|
321
|
-
Coding Standards [{check}] {status} {suggestion}
|
|
322
|
-
Testing Framework [{check}] {status} {suggestion}
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
For each document:
|
|
326
|
-
- If exists: `[✓] exists` (no suggestion)
|
|
327
|
-
- If missing: `[ ] not created → /ace:command-name`
|
|
328
|
-
|
|
329
|
-
<doc-command-mapping>
|
|
330
|
-
<doc name="Product Vision" command="/ace:plan-product-vision" />
|
|
331
|
-
<doc name="System Architecture" command="/ace:map-system" />
|
|
332
|
-
<doc name="System Structure" command="/ace:map-system" />
|
|
333
|
-
<doc name="Coding Standards" command="/ace:init-coding-standards" />
|
|
334
|
-
<doc name="Testing Framework" command="/ace:map-system" />
|
|
335
|
-
</doc-command-mapping>
|
|
336
|
-
</substep>
|
|
337
|
-
|
|
338
|
-
<substep order="5.2" name="render-settings-section">
|
|
339
|
-
```
|
|
340
|
-
Settings [✓] .ace/settings.json
|
|
341
|
-
Model profile: {settings.model_profile}
|
|
342
|
-
Commit docs: {settings.commit_docs}
|
|
343
|
-
Agent Teams: {enabled (experimental) | disabled}
|
|
344
|
-
```
|
|
345
|
-
</substep>
|
|
346
|
-
|
|
347
|
-
<substep order="5.3" name="render-github-section">
|
|
348
|
-
```
|
|
349
|
-
GitHub CLI [{check}] {installed|not found}
|
|
350
|
-
Owner {owner or 'not detected'}
|
|
351
|
-
Repository {repo or 'not detected'}
|
|
352
|
-
GitHub Project [{check}] {configured — #number | not configured}
|
|
353
|
-
```
|
|
354
|
-
</substep>
|
|
355
|
-
</step>
|
|
356
|
-
|
|
357
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
358
|
-
<!-- STEP 6: OFFER CODEBASE MAPPING (brownfield only) -->
|
|
359
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
360
|
-
|
|
361
|
-
<step name="offer-map-system" order="6" condition="is_brownfield is true AND has_system_architecture is false">
|
|
362
|
-
|
|
363
|
-
<substep order="6.1" name="ask-map-codebase">
|
|
364
|
-
Use `AskUserQuestion`:
|
|
365
|
-
- header: "Codebase"
|
|
366
|
-
- question: "I detected existing code but no wiki documentation. Would you like to map your codebase first?"
|
|
367
|
-
- options:
|
|
368
|
-
- "Map codebase (Recommended)" — Run /ace:map-system to analyze architecture, structure, and testing framework
|
|
369
|
-
- "Skip for now" — Continue without mapping
|
|
370
|
-
</substep>
|
|
371
|
-
|
|
372
|
-
<substep order="6.2" name="route-map-decision">
|
|
373
|
-
<variant condition="user chose Map codebase">
|
|
374
|
-
Display:
|
|
375
|
-
```
|
|
376
|
-
Next > Run /ace:map-system to map your codebase.
|
|
377
|
-
This will generate system-structure, system-architecture,
|
|
378
|
-
and testing-framework documents.
|
|
379
|
-
```
|
|
380
|
-
**Exit workflow.**
|
|
381
|
-
</variant>
|
|
382
|
-
|
|
383
|
-
<variant condition="user chose Skip for now">
|
|
384
|
-
Continue to step 7.
|
|
385
|
-
</variant>
|
|
386
|
-
</substep>
|
|
387
|
-
</step>
|
|
388
|
-
|
|
389
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
390
|
-
<!-- STEP 7: OFFER PRODUCT VISION -->
|
|
391
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
392
|
-
|
|
393
|
-
<step name="offer-product-vision" order="7" condition="has_product_vision is false">
|
|
394
|
-
|
|
395
|
-
<substep order="7.1" name="ask-product-vision">
|
|
396
|
-
Use `AskUserQuestion`:
|
|
397
|
-
- header: "Vision"
|
|
398
|
-
- question: "No product vision found. Would you like to define one now?"
|
|
399
|
-
- options:
|
|
400
|
-
- "Create product vision (Recommended)" — Run /ace:plan-product-vision to define what you're building and why
|
|
401
|
-
- "Skip for now" — Continue without a product vision
|
|
402
|
-
</substep>
|
|
403
|
-
|
|
404
|
-
<substep order="7.2" name="route-vision-decision">
|
|
405
|
-
<variant condition="user chose Create product vision">
|
|
406
|
-
Display:
|
|
407
|
-
```
|
|
408
|
-
Next > Run /ace:plan-product-vision to define your product vision.
|
|
409
|
-
This drives all downstream planning.
|
|
410
|
-
```
|
|
411
|
-
**Exit workflow.**
|
|
412
|
-
</variant>
|
|
413
|
-
|
|
414
|
-
<variant condition="user chose Skip for now">
|
|
415
|
-
Continue to step 8.
|
|
416
|
-
</variant>
|
|
417
|
-
</substep>
|
|
418
|
-
</step>
|
|
419
|
-
|
|
420
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
421
|
-
<!-- STEP 8: OFFER CODING STANDARDS -->
|
|
422
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
423
|
-
|
|
424
|
-
<step name="offer-coding-standards" order="8" condition="has_coding_standards is false">
|
|
425
|
-
|
|
426
|
-
<substep order="8.1" name="ask-coding-standards">
|
|
427
|
-
Use `AskUserQuestion`:
|
|
428
|
-
- header: "Standards"
|
|
429
|
-
- question: "No coding standards found. Would you like to generate them?"
|
|
430
|
-
- options:
|
|
431
|
-
- "Generate coding standards (Recommended)" — Run /ace:init-coding-standards to create tailored standards
|
|
432
|
-
- "Skip for now" — Continue without coding standards
|
|
433
|
-
</substep>
|
|
434
|
-
|
|
435
|
-
<substep order="8.2" name="route-standards-decision">
|
|
436
|
-
<variant condition="user chose Generate coding standards">
|
|
437
|
-
Display:
|
|
438
|
-
```
|
|
439
|
-
Next > Run /ace:init-coding-standards to generate tailored coding standards.
|
|
440
|
-
```
|
|
441
|
-
**Exit workflow.**
|
|
442
|
-
</variant>
|
|
443
|
-
|
|
444
|
-
<variant condition="user chose Skip for now">
|
|
445
|
-
Continue to step 9.
|
|
446
|
-
</variant>
|
|
447
|
-
</substep>
|
|
448
|
-
</step>
|
|
449
|
-
|
|
450
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
451
|
-
<!-- STEP 9: OFFER PRODUCT BACKLOG -->
|
|
452
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
453
|
-
|
|
454
|
-
<step name="offer-product-backlog" order="9" condition="has_product_vision is true">
|
|
455
|
-
|
|
456
|
-
<substep order="9.1" name="check-backlog-exists">
|
|
457
|
-
```bash
|
|
458
|
-
HAS_BACKLOG=$(node ~/.claude/agile-context-engineering/src/ace-tools.js verify-path-exists .ace/artifacts/product/product-backlog.md --raw)
|
|
459
|
-
```
|
|
460
|
-
|
|
461
|
-
<variant condition="HAS_BACKLOG is true">
|
|
462
|
-
Backlog already exists. Skip to step 10.
|
|
463
|
-
</variant>
|
|
464
|
-
|
|
465
|
-
<variant condition="HAS_BACKLOG is false">
|
|
466
|
-
Continue to substep 8.2.
|
|
467
|
-
</variant>
|
|
468
|
-
</substep>
|
|
469
|
-
|
|
470
|
-
<substep order="9.2" name="ask-plan-backlog">
|
|
471
|
-
Use `AskUserQuestion`:
|
|
472
|
-
- header: "Backlog"
|
|
473
|
-
- question: "You have a product vision but no backlog. Would you like to plan your product backlog?"
|
|
474
|
-
- options:
|
|
475
|
-
- "Plan backlog (Recommended)" — Run /ace:plan-backlog to break your vision into epics and features
|
|
476
|
-
- "Skip for now" — Continue without a backlog
|
|
477
|
-
</substep>
|
|
478
|
-
|
|
479
|
-
<substep order="9.3" name="route-backlog-decision">
|
|
480
|
-
<variant condition="user chose Plan backlog">
|
|
481
|
-
Display:
|
|
482
|
-
```
|
|
483
|
-
Next > Run /ace:plan-backlog to break your vision into epics and features.
|
|
484
|
-
```
|
|
485
|
-
**Exit workflow.**
|
|
486
|
-
</variant>
|
|
487
|
-
|
|
488
|
-
<variant condition="user chose Skip for now">
|
|
489
|
-
Continue to step 10.
|
|
490
|
-
</variant>
|
|
491
|
-
</substep>
|
|
492
|
-
</step>
|
|
493
|
-
|
|
494
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
495
|
-
<!-- STEP 10: COMPLETION -->
|
|
496
|
-
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
497
|
-
|
|
498
|
-
<step name="completion" order="10">
|
|
499
|
-
|
|
500
|
-
<substep order="10.1" name="greenfield-note" condition="is_greenfield is true AND has_system_architecture is false">
|
|
501
|
-
Display:
|
|
502
|
-
```
|
|
503
|
-
i System architecture, structure, and testing framework docs
|
|
504
|
-
are created by /ace:map-system after you have code to analyze.
|
|
505
|
-
```
|
|
506
|
-
</substep>
|
|
507
|
-
|
|
508
|
-
<substep order="10.2" name="fully-initialized">
|
|
509
|
-
<variant condition="all documents exist (vision + architecture + structure + coding standards + testing framework)">
|
|
510
|
-
Display:
|
|
511
|
-
```
|
|
512
|
-
✓ Project is fully initialized. All core documents are in place.
|
|
513
|
-
|
|
514
|
-
Next > /ace:plan-project
|
|
515
|
-
Start planning your product backlog.
|
|
516
|
-
```
|
|
517
|
-
</variant>
|
|
518
|
-
|
|
519
|
-
<variant condition="some documents are missing (user skipped offers)">
|
|
520
|
-
Display:
|
|
521
|
-
```
|
|
522
|
-
i Run /ace:help anytime to check status and pick up where you left off.
|
|
523
|
-
```
|
|
524
|
-
</variant>
|
|
525
|
-
</substep>
|
|
526
|
-
</step>
|
|
527
|
-
|
|
528
|
-
</process>
|
|
529
|
-
|
|
530
|
-
<success_criteria>
|
|
531
|
-
<check>Environment detection executed successfully</check>
|
|
532
|
-
<check>Settings.json ensured (created if missing)</check>
|
|
533
|
-
<check>GitHub Project integration offered to the user (not silently skipped)</check>
|
|
534
|
-
<check>Agent Teams: sync-agent-teams command executed AND AskUserQuestion presented (NEVER skip this)</check>
|
|
535
|
-
<check>Status dashboard displayed showing all document states, settings, and GitHub status</check>
|
|
536
|
-
<check>Missing setup commands offered interactively in priority order</check>
|
|
537
|
-
<check>No document creation performed (delegated to specialized commands)</check>
|
|
538
|
-
</success_criteria>
|
|
539
|
-
|
|
540
|
-
</workflow>
|
|
1
|
+
<workflow>
|
|
2
|
+
|
|
3
|
+
<purpose>
|
|
4
|
+
Interactive state-checker, settings configurator, and guided router for project
|
|
5
|
+
initialization. Detects which ACE documents exist, ensures settings are configured
|
|
6
|
+
(including GitHub Project integration), displays a status dashboard, and offers to
|
|
7
|
+
run missing setup commands — following the GSD new-project interactive pattern.
|
|
8
|
+
</purpose>
|
|
9
|
+
|
|
10
|
+
<mandatory-context>
|
|
11
|
+
Read all files referenced by the invoking prompt's execution-context before starting.
|
|
12
|
+
</mandatory-context>
|
|
13
|
+
|
|
14
|
+
<process>
|
|
15
|
+
|
|
16
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
17
|
+
<!-- STEP 1: DETECT STATE -->
|
|
18
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
19
|
+
|
|
20
|
+
<step name="detect-state" order="1">
|
|
21
|
+
**MANDATORY FIRST STEP — Execute environment detection before any user interaction.**
|
|
22
|
+
|
|
23
|
+
<substep order="1.1" name="environment-detection">
|
|
24
|
+
```bash
|
|
25
|
+
INIT=$(node ~/.claude/agile-context-engineering/src/ace-tools.js init new-project)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
<output-fields>
|
|
29
|
+
<field name="has_product_vision">Whether .docs/product/product-vision.md exists</field>
|
|
30
|
+
<field name="has_system_architecture">Whether .docs/wiki/system-wide/system-architecture.md exists</field>
|
|
31
|
+
<field name="has_system_structure">Whether .docs/wiki/system-wide/system-structure.md exists</field>
|
|
32
|
+
<field name="has_coding_standards">Whether .docs/wiki/system-wide/coding-standards.md exists</field>
|
|
33
|
+
<field name="has_testing_framework">Whether .docs/wiki/system-wide/testing-framework.md exists</field>
|
|
34
|
+
<field name="is_brownfield">Existing code or package files detected</field>
|
|
35
|
+
<field name="is_greenfield">No existing code detected</field>
|
|
36
|
+
<field name="has_git">Whether .git directory exists</field>
|
|
37
|
+
<field name="has_gh_cli">Whether GitHub CLI (gh) is installed</field>
|
|
38
|
+
</output-fields>
|
|
39
|
+
</substep>
|
|
40
|
+
|
|
41
|
+
<substep order="1.2" name="ensure-git">
|
|
42
|
+
<variant condition="has_git is false">
|
|
43
|
+
```bash
|
|
44
|
+
git init
|
|
45
|
+
```
|
|
46
|
+
</variant>
|
|
47
|
+
|
|
48
|
+
<variant condition="has_git is true">
|
|
49
|
+
No action needed.
|
|
50
|
+
</variant>
|
|
51
|
+
</substep>
|
|
52
|
+
</step>
|
|
53
|
+
|
|
54
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
55
|
+
<!-- STEP 2: ENSURE SETTINGS -->
|
|
56
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
57
|
+
|
|
58
|
+
<step name="ensure-settings" order="2">
|
|
59
|
+
**Create `.ace/settings.json` if it does not exist.**
|
|
60
|
+
|
|
61
|
+
<substep order="2.1" name="create-settings-file">
|
|
62
|
+
```bash
|
|
63
|
+
SETTINGS=$(node ~/.claude/agile-context-engineering/src/ace-tools.js ensure-settings)
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
<output-fields>
|
|
67
|
+
<field name="created">Whether settings.json was just created (true) or already existed (false)</field>
|
|
68
|
+
<field name="settings">The current settings object</field>
|
|
69
|
+
</output-fields>
|
|
70
|
+
</substep>
|
|
71
|
+
|
|
72
|
+
<substep order="2.2" name="display-settings-status">
|
|
73
|
+
<variant condition="created is true">
|
|
74
|
+
Display:
|
|
75
|
+
```
|
|
76
|
+
┌──────────────────────────────────────────────────┐
|
|
77
|
+
│ ACE > Settings │
|
|
78
|
+
└──────────────────────────────────────────────────┘
|
|
79
|
+
|
|
80
|
+
✓ Created .ace/settings.json with defaults.
|
|
81
|
+
```
|
|
82
|
+
</variant>
|
|
83
|
+
|
|
84
|
+
<variant condition="created is false">
|
|
85
|
+
No display needed — settings already exist.
|
|
86
|
+
</variant>
|
|
87
|
+
</substep>
|
|
88
|
+
</step>
|
|
89
|
+
|
|
90
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
91
|
+
<!-- STEP 3: GITHUB PROJECT SETUP (mandatory — always runs) -->
|
|
92
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
93
|
+
|
|
94
|
+
<step name="github-project-setup" order="3">
|
|
95
|
+
**Detect GitHub environment and ask the user about project board integration.**
|
|
96
|
+
|
|
97
|
+
<substep order="3.1" name="github-detection">
|
|
98
|
+
```bash
|
|
99
|
+
GH_STATUS=$(node ~/.claude/agile-context-engineering/src/ace-tools.js init setup-github)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
<output-fields>
|
|
103
|
+
<field name="gh_installed">Whether GitHub CLI (gh) is available</field>
|
|
104
|
+
<field name="repo">Detected repository (e.g., owner/repo) or empty string</field>
|
|
105
|
+
<field name="owner">Repository owner or empty string</field>
|
|
106
|
+
<field name="projects">Array of {number, title} objects</field>
|
|
107
|
+
<field name="current_settings">Current github_project settings from settings.json</field>
|
|
108
|
+
</output-fields>
|
|
109
|
+
</substep>
|
|
110
|
+
|
|
111
|
+
<substep order="3.2" name="evaluate-github-state">
|
|
112
|
+
<variant condition="current_settings.enabled is true">
|
|
113
|
+
Already configured. Display:
|
|
114
|
+
```
|
|
115
|
+
✓ GitHub Project: #{current_settings.project_number}
|
|
116
|
+
Owner: {current_settings.owner}
|
|
117
|
+
Repo: {current_settings.repo}
|
|
118
|
+
```
|
|
119
|
+
Skip to step 4.
|
|
120
|
+
</variant>
|
|
121
|
+
|
|
122
|
+
<variant condition="gh_installed is false">
|
|
123
|
+
Display:
|
|
124
|
+
```
|
|
125
|
+
i GitHub CLI (gh) not found — GitHub Project integration unavailable.
|
|
126
|
+
Install from: https://cli.github.com/
|
|
127
|
+
```
|
|
128
|
+
Skip to step 4.
|
|
129
|
+
</variant>
|
|
130
|
+
|
|
131
|
+
<variant condition="gh_installed is true AND current_settings.enabled is false">
|
|
132
|
+
Continue to substep 3.3.
|
|
133
|
+
</variant>
|
|
134
|
+
</substep>
|
|
135
|
+
|
|
136
|
+
<substep order="3.3" name="ask-github-interest">
|
|
137
|
+
Use `AskUserQuestion`:
|
|
138
|
+
- header: "GitHub"
|
|
139
|
+
- question: "GitHub CLI detected. Do you want to connect a GitHub Project board for sprint tracking?"
|
|
140
|
+
- options:
|
|
141
|
+
- "Yes, set it up (Recommended)" — Connect a GitHub Project now
|
|
142
|
+
- "Skip for now" — Continue without GitHub Project integration
|
|
143
|
+
|
|
144
|
+
<variant condition="user chose Skip for now">
|
|
145
|
+
Skip to step 4.
|
|
146
|
+
</variant>
|
|
147
|
+
|
|
148
|
+
<variant condition="user chose Yes, set it up">
|
|
149
|
+
Continue to substep 3.4.
|
|
150
|
+
</variant>
|
|
151
|
+
</substep>
|
|
152
|
+
|
|
153
|
+
<substep order="3.4" name="confirm-repo">
|
|
154
|
+
<variant condition="repo is not empty">
|
|
155
|
+
Use `AskUserQuestion`:
|
|
156
|
+
- header: "Repository"
|
|
157
|
+
- question: "Detected repository: `{repo}`. Is this correct?"
|
|
158
|
+
- options:
|
|
159
|
+
- "Yes, use {repo}" — Confirm this repository
|
|
160
|
+
- "No, different repo" — I'll provide the correct repository
|
|
161
|
+
|
|
162
|
+
If "No, different repo": ask user to provide the correct `owner/repo` string.
|
|
163
|
+
Parse `owner` from the confirmed/provided repo string (everything before `/`).
|
|
164
|
+
</variant>
|
|
165
|
+
|
|
166
|
+
<variant condition="repo is empty">
|
|
167
|
+
Ask the user to provide their `owner/repo` string.
|
|
168
|
+
Parse `owner` from the provided string (everything before `/`).
|
|
169
|
+
</variant>
|
|
170
|
+
</substep>
|
|
171
|
+
|
|
172
|
+
<substep order="3.5" name="confirm-owner">
|
|
173
|
+
The `owner` is the GitHub user or organization that owns the project board.
|
|
174
|
+
By default it matches the repo owner, but it can differ (e.g., org project
|
|
175
|
+
boards used across multiple repos).
|
|
176
|
+
|
|
177
|
+
Use `AskUserQuestion`:
|
|
178
|
+
- header: "Owner"
|
|
179
|
+
- question: "Which GitHub user or organization owns the project board? Detected: `{owner}`"
|
|
180
|
+
- options:
|
|
181
|
+
- "Use {owner}" — The repo owner owns the project board
|
|
182
|
+
- "Different owner" — I'll provide the correct owner
|
|
183
|
+
|
|
184
|
+
<variant condition="user chose Use {owner}">
|
|
185
|
+
Keep `owner` as-is.
|
|
186
|
+
</variant>
|
|
187
|
+
|
|
188
|
+
<variant condition="user chose Different owner">
|
|
189
|
+
Ask user to provide the correct owner (GitHub username or org name).
|
|
190
|
+
Update `owner` with the provided value.
|
|
191
|
+
</variant>
|
|
192
|
+
</substep>
|
|
193
|
+
|
|
194
|
+
<substep order="3.6" name="select-project">
|
|
195
|
+
Re-fetch projects for the confirmed owner (in case owner changed in 3.5):
|
|
196
|
+
```bash
|
|
197
|
+
gh project list --owner {owner} --limit 10 --format json
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
<variant condition="projects array is not empty">
|
|
201
|
+
Use `AskUserQuestion`:
|
|
202
|
+
- header: "Project"
|
|
203
|
+
- question: "Which GitHub Project should ACE use?"
|
|
204
|
+
- options: (build from projects array, max 4)
|
|
205
|
+
- "{title} (#{number})" — for each project
|
|
206
|
+
</variant>
|
|
207
|
+
|
|
208
|
+
<variant condition="projects array is empty">
|
|
209
|
+
Display:
|
|
210
|
+
```
|
|
211
|
+
i No GitHub Projects found for {owner}.
|
|
212
|
+
Create one at https://github.com/orgs/{owner}/projects
|
|
213
|
+
or https://github.com/users/{owner}/projects
|
|
214
|
+
```
|
|
215
|
+
Skip to step 4.
|
|
216
|
+
</variant>
|
|
217
|
+
</substep>
|
|
218
|
+
|
|
219
|
+
<substep order="3.7" name="write-github-settings">
|
|
220
|
+
```bash
|
|
221
|
+
node ~/.claude/agile-context-engineering/src/ace-tools.js write-github-settings enabled=true gh_installed=true repo={repo} project_number={number} owner={owner}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Display:
|
|
225
|
+
```
|
|
226
|
+
✓ GitHub Project configured.
|
|
227
|
+
Owner: {owner}
|
|
228
|
+
Repo: {repo}
|
|
229
|
+
Project: {title} (#{number})
|
|
230
|
+
```
|
|
231
|
+
</substep>
|
|
232
|
+
</step>
|
|
233
|
+
|
|
234
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
235
|
+
<!-- STEP 4: AGENT TEAMS SETUP (optional — experimental feature) -->
|
|
236
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
237
|
+
|
|
238
|
+
<step name="agent-teams-setup" order="4">
|
|
239
|
+
**MANDATORY — MUST execute this step. DO NOT skip. Always ask the user about Agent Teams.**
|
|
240
|
+
|
|
241
|
+
This step syncs and configures the Claude Code Agent Teams experimental feature.
|
|
242
|
+
You MUST run the sync command below and MUST use AskUserQuestion to interact with the user.
|
|
243
|
+
|
|
244
|
+
<substep order="4.1" name="sync-agent-teams">
|
|
245
|
+
**MANDATORY — Run this command before evaluating state:**
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
AGENT_TEAMS=$(node ~/.claude/agile-context-engineering/src/ace-tools.js sync-agent-teams --raw)
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
Parse the JSON output. The `agent_teams` field is the synced boolean state.
|
|
252
|
+
</substep>
|
|
253
|
+
|
|
254
|
+
<substep order="4.2" name="ask-agent-teams">
|
|
255
|
+
**MANDATORY — You MUST use AskUserQuestion here. Do NOT skip this interaction.**
|
|
256
|
+
**IMPORTANT: When writing settings, you MUST use the Bash commands below.
|
|
257
|
+
NEVER directly edit .ace/settings.json or .claude/settings.json — the
|
|
258
|
+
write-agent-teams command updates BOTH files atomically.**
|
|
259
|
+
|
|
260
|
+
<variant condition="agent_teams is true (from sync output)">
|
|
261
|
+
Use `AskUserQuestion`:
|
|
262
|
+
- header: "Agent Teams"
|
|
263
|
+
- question: "Agent Teams (experimental) is currently ENABLED. This orchestrates multiple Claude Code sessions in parallel but significantly increases token usage. Would you like to keep it enabled?"
|
|
264
|
+
- options:
|
|
265
|
+
- "Keep enabled" — Continue with Agent Teams enabled
|
|
266
|
+
- "Disable" — Turn off Agent Teams to reduce token usage
|
|
267
|
+
|
|
268
|
+
<variant condition="user chose Disable">
|
|
269
|
+
```bash
|
|
270
|
+
node ~/.claude/agile-context-engineering/src/ace-tools.js write-agent-teams false
|
|
271
|
+
```
|
|
272
|
+
Display:
|
|
273
|
+
```
|
|
274
|
+
✓ Agent Teams disabled.
|
|
275
|
+
```
|
|
276
|
+
</variant>
|
|
277
|
+
</variant>
|
|
278
|
+
|
|
279
|
+
<variant condition="agent_teams is false (from sync output)">
|
|
280
|
+
Use `AskUserQuestion`:
|
|
281
|
+
- header: "Agent Teams"
|
|
282
|
+
- question: "Would you like to enable Claude Code Agent Teams? This is an experimental feature that orchestrates multiple Claude Code sessions working in parallel. WARNING: This significantly increases token usage."
|
|
283
|
+
- options:
|
|
284
|
+
- "Skip for now (Recommended)" — Keep Agent Teams disabled
|
|
285
|
+
- "Enable Agent Teams" — Enable experimental multi-session orchestration (higher token cost)
|
|
286
|
+
|
|
287
|
+
<variant condition="user chose Enable Agent Teams">
|
|
288
|
+
```bash
|
|
289
|
+
node ~/.claude/agile-context-engineering/src/ace-tools.js write-agent-teams true
|
|
290
|
+
```
|
|
291
|
+
Display:
|
|
292
|
+
```
|
|
293
|
+
✓ Agent Teams enabled.
|
|
294
|
+
- Set agent_teams: true in .ace/settings.json
|
|
295
|
+
- Set CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS in .claude/settings.json
|
|
296
|
+
⚠ This feature is experimental and increases token usage significantly.
|
|
297
|
+
```
|
|
298
|
+
</variant>
|
|
299
|
+
</variant>
|
|
300
|
+
</substep>
|
|
301
|
+
</step>
|
|
302
|
+
|
|
303
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
304
|
+
<!-- STEP 5: DISPLAY STATUS DASHBOARD -->
|
|
305
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
306
|
+
|
|
307
|
+
<step name="status-dashboard" order="5">
|
|
308
|
+
Build and display the project status dashboard.
|
|
309
|
+
|
|
310
|
+
<substep order="5.1" name="render-documents-section">
|
|
311
|
+
```
|
|
312
|
+
╔══════════════════════════════════════════════════╗
|
|
313
|
+
║ ACE > Project Status ║
|
|
314
|
+
╚══════════════════════════════════════════════════╝
|
|
315
|
+
|
|
316
|
+
Project type: {brownfield|greenfield}
|
|
317
|
+
|
|
318
|
+
Product Vision [{check}] {status} {suggestion}
|
|
319
|
+
System Architecture [{check}] {status} {suggestion}
|
|
320
|
+
System Structure [{check}] {status} {suggestion}
|
|
321
|
+
Coding Standards [{check}] {status} {suggestion}
|
|
322
|
+
Testing Framework [{check}] {status} {suggestion}
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
For each document:
|
|
326
|
+
- If exists: `[✓] exists` (no suggestion)
|
|
327
|
+
- If missing: `[ ] not created → /ace:command-name`
|
|
328
|
+
|
|
329
|
+
<doc-command-mapping>
|
|
330
|
+
<doc name="Product Vision" command="/ace:plan-product-vision" />
|
|
331
|
+
<doc name="System Architecture" command="/ace:map-system" />
|
|
332
|
+
<doc name="System Structure" command="/ace:map-system" />
|
|
333
|
+
<doc name="Coding Standards" command="/ace:init-coding-standards" />
|
|
334
|
+
<doc name="Testing Framework" command="/ace:map-system" />
|
|
335
|
+
</doc-command-mapping>
|
|
336
|
+
</substep>
|
|
337
|
+
|
|
338
|
+
<substep order="5.2" name="render-settings-section">
|
|
339
|
+
```
|
|
340
|
+
Settings [✓] .ace/settings.json
|
|
341
|
+
Model profile: {settings.model_profile}
|
|
342
|
+
Commit docs: {settings.commit_docs}
|
|
343
|
+
Agent Teams: {enabled (experimental) | disabled}
|
|
344
|
+
```
|
|
345
|
+
</substep>
|
|
346
|
+
|
|
347
|
+
<substep order="5.3" name="render-github-section">
|
|
348
|
+
```
|
|
349
|
+
GitHub CLI [{check}] {installed|not found}
|
|
350
|
+
Owner {owner or 'not detected'}
|
|
351
|
+
Repository {repo or 'not detected'}
|
|
352
|
+
GitHub Project [{check}] {configured — #number | not configured}
|
|
353
|
+
```
|
|
354
|
+
</substep>
|
|
355
|
+
</step>
|
|
356
|
+
|
|
357
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
358
|
+
<!-- STEP 6: OFFER CODEBASE MAPPING (brownfield only) -->
|
|
359
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
360
|
+
|
|
361
|
+
<step name="offer-map-system" order="6" condition="is_brownfield is true AND has_system_architecture is false">
|
|
362
|
+
|
|
363
|
+
<substep order="6.1" name="ask-map-codebase">
|
|
364
|
+
Use `AskUserQuestion`:
|
|
365
|
+
- header: "Codebase"
|
|
366
|
+
- question: "I detected existing code but no wiki documentation. Would you like to map your codebase first?"
|
|
367
|
+
- options:
|
|
368
|
+
- "Map codebase (Recommended)" — Run /ace:map-system to analyze architecture, structure, and testing framework
|
|
369
|
+
- "Skip for now" — Continue without mapping
|
|
370
|
+
</substep>
|
|
371
|
+
|
|
372
|
+
<substep order="6.2" name="route-map-decision">
|
|
373
|
+
<variant condition="user chose Map codebase">
|
|
374
|
+
Display:
|
|
375
|
+
```
|
|
376
|
+
Next > Run /ace:map-system to map your codebase.
|
|
377
|
+
This will generate system-structure, system-architecture,
|
|
378
|
+
and testing-framework documents.
|
|
379
|
+
```
|
|
380
|
+
**Exit workflow.**
|
|
381
|
+
</variant>
|
|
382
|
+
|
|
383
|
+
<variant condition="user chose Skip for now">
|
|
384
|
+
Continue to step 7.
|
|
385
|
+
</variant>
|
|
386
|
+
</substep>
|
|
387
|
+
</step>
|
|
388
|
+
|
|
389
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
390
|
+
<!-- STEP 7: OFFER PRODUCT VISION -->
|
|
391
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
392
|
+
|
|
393
|
+
<step name="offer-product-vision" order="7" condition="has_product_vision is false">
|
|
394
|
+
|
|
395
|
+
<substep order="7.1" name="ask-product-vision">
|
|
396
|
+
Use `AskUserQuestion`:
|
|
397
|
+
- header: "Vision"
|
|
398
|
+
- question: "No product vision found. Would you like to define one now?"
|
|
399
|
+
- options:
|
|
400
|
+
- "Create product vision (Recommended)" — Run /ace:plan-product-vision to define what you're building and why
|
|
401
|
+
- "Skip for now" — Continue without a product vision
|
|
402
|
+
</substep>
|
|
403
|
+
|
|
404
|
+
<substep order="7.2" name="route-vision-decision">
|
|
405
|
+
<variant condition="user chose Create product vision">
|
|
406
|
+
Display:
|
|
407
|
+
```
|
|
408
|
+
Next > Run /ace:plan-product-vision to define your product vision.
|
|
409
|
+
This drives all downstream planning.
|
|
410
|
+
```
|
|
411
|
+
**Exit workflow.**
|
|
412
|
+
</variant>
|
|
413
|
+
|
|
414
|
+
<variant condition="user chose Skip for now">
|
|
415
|
+
Continue to step 8.
|
|
416
|
+
</variant>
|
|
417
|
+
</substep>
|
|
418
|
+
</step>
|
|
419
|
+
|
|
420
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
421
|
+
<!-- STEP 8: OFFER CODING STANDARDS -->
|
|
422
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
423
|
+
|
|
424
|
+
<step name="offer-coding-standards" order="8" condition="has_coding_standards is false">
|
|
425
|
+
|
|
426
|
+
<substep order="8.1" name="ask-coding-standards">
|
|
427
|
+
Use `AskUserQuestion`:
|
|
428
|
+
- header: "Standards"
|
|
429
|
+
- question: "No coding standards found. Would you like to generate them?"
|
|
430
|
+
- options:
|
|
431
|
+
- "Generate coding standards (Recommended)" — Run /ace:init-coding-standards to create tailored standards
|
|
432
|
+
- "Skip for now" — Continue without coding standards
|
|
433
|
+
</substep>
|
|
434
|
+
|
|
435
|
+
<substep order="8.2" name="route-standards-decision">
|
|
436
|
+
<variant condition="user chose Generate coding standards">
|
|
437
|
+
Display:
|
|
438
|
+
```
|
|
439
|
+
Next > Run /ace:init-coding-standards to generate tailored coding standards.
|
|
440
|
+
```
|
|
441
|
+
**Exit workflow.**
|
|
442
|
+
</variant>
|
|
443
|
+
|
|
444
|
+
<variant condition="user chose Skip for now">
|
|
445
|
+
Continue to step 9.
|
|
446
|
+
</variant>
|
|
447
|
+
</substep>
|
|
448
|
+
</step>
|
|
449
|
+
|
|
450
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
451
|
+
<!-- STEP 9: OFFER PRODUCT BACKLOG -->
|
|
452
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
453
|
+
|
|
454
|
+
<step name="offer-product-backlog" order="9" condition="has_product_vision is true">
|
|
455
|
+
|
|
456
|
+
<substep order="9.1" name="check-backlog-exists">
|
|
457
|
+
```bash
|
|
458
|
+
HAS_BACKLOG=$(node ~/.claude/agile-context-engineering/src/ace-tools.js verify-path-exists .ace/artifacts/product/product-backlog.md --raw)
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
<variant condition="HAS_BACKLOG is true">
|
|
462
|
+
Backlog already exists. Skip to step 10.
|
|
463
|
+
</variant>
|
|
464
|
+
|
|
465
|
+
<variant condition="HAS_BACKLOG is false">
|
|
466
|
+
Continue to substep 8.2.
|
|
467
|
+
</variant>
|
|
468
|
+
</substep>
|
|
469
|
+
|
|
470
|
+
<substep order="9.2" name="ask-plan-backlog">
|
|
471
|
+
Use `AskUserQuestion`:
|
|
472
|
+
- header: "Backlog"
|
|
473
|
+
- question: "You have a product vision but no backlog. Would you like to plan your product backlog?"
|
|
474
|
+
- options:
|
|
475
|
+
- "Plan backlog (Recommended)" — Run /ace:plan-backlog to break your vision into epics and features
|
|
476
|
+
- "Skip for now" — Continue without a backlog
|
|
477
|
+
</substep>
|
|
478
|
+
|
|
479
|
+
<substep order="9.3" name="route-backlog-decision">
|
|
480
|
+
<variant condition="user chose Plan backlog">
|
|
481
|
+
Display:
|
|
482
|
+
```
|
|
483
|
+
Next > Run /ace:plan-backlog to break your vision into epics and features.
|
|
484
|
+
```
|
|
485
|
+
**Exit workflow.**
|
|
486
|
+
</variant>
|
|
487
|
+
|
|
488
|
+
<variant condition="user chose Skip for now">
|
|
489
|
+
Continue to step 10.
|
|
490
|
+
</variant>
|
|
491
|
+
</substep>
|
|
492
|
+
</step>
|
|
493
|
+
|
|
494
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
495
|
+
<!-- STEP 10: COMPLETION -->
|
|
496
|
+
<!-- ══════════════════════════════════════════════════════════════════ -->
|
|
497
|
+
|
|
498
|
+
<step name="completion" order="10">
|
|
499
|
+
|
|
500
|
+
<substep order="10.1" name="greenfield-note" condition="is_greenfield is true AND has_system_architecture is false">
|
|
501
|
+
Display:
|
|
502
|
+
```
|
|
503
|
+
i System architecture, structure, and testing framework docs
|
|
504
|
+
are created by /ace:map-system after you have code to analyze.
|
|
505
|
+
```
|
|
506
|
+
</substep>
|
|
507
|
+
|
|
508
|
+
<substep order="10.2" name="fully-initialized">
|
|
509
|
+
<variant condition="all documents exist (vision + architecture + structure + coding standards + testing framework)">
|
|
510
|
+
Display:
|
|
511
|
+
```
|
|
512
|
+
✓ Project is fully initialized. All core documents are in place.
|
|
513
|
+
|
|
514
|
+
Next > /ace:plan-project
|
|
515
|
+
Start planning your product backlog.
|
|
516
|
+
```
|
|
517
|
+
</variant>
|
|
518
|
+
|
|
519
|
+
<variant condition="some documents are missing (user skipped offers)">
|
|
520
|
+
Display:
|
|
521
|
+
```
|
|
522
|
+
i Run /ace:help anytime to check status and pick up where you left off.
|
|
523
|
+
```
|
|
524
|
+
</variant>
|
|
525
|
+
</substep>
|
|
526
|
+
</step>
|
|
527
|
+
|
|
528
|
+
</process>
|
|
529
|
+
|
|
530
|
+
<success_criteria>
|
|
531
|
+
<check>Environment detection executed successfully</check>
|
|
532
|
+
<check>Settings.json ensured (created if missing)</check>
|
|
533
|
+
<check>GitHub Project integration offered to the user (not silently skipped)</check>
|
|
534
|
+
<check>Agent Teams: sync-agent-teams command executed AND AskUserQuestion presented (NEVER skip this)</check>
|
|
535
|
+
<check>Status dashboard displayed showing all document states, settings, and GitHub status</check>
|
|
536
|
+
<check>Missing setup commands offered interactively in priority order</check>
|
|
537
|
+
<check>No document creation performed (delegated to specialized commands)</check>
|
|
538
|
+
</success_criteria>
|
|
539
|
+
|
|
540
|
+
</workflow>
|