agile-context-engineering 0.2.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/.claude-plugin/plugin.json +10 -0
  2. package/CHANGELOG.md +82 -0
  3. package/README.md +27 -18
  4. package/agents/ace-product-owner.md +1 -1
  5. package/agents/ace-technical-application-architect.md +28 -0
  6. package/agents/ace-wiki-mapper.md +144 -29
  7. package/bin/install.js +67 -63
  8. package/hooks/ace-check-update.js +17 -9
  9. package/package.json +7 -5
  10. package/shared/lib/ace-core.js +308 -0
  11. package/shared/lib/ace-core.test.js +308 -0
  12. package/shared/lib/ace-github.js +753 -0
  13. package/shared/lib/ace-story.js +400 -0
  14. package/shared/lib/ace-story.test.js +250 -0
  15. package/{agile-context-engineering → shared}/utils/ui-formatting.md +299 -299
  16. package/skills/execute-story/SKILL.md +110 -0
  17. package/skills/execute-story/script.js +305 -0
  18. package/skills/execute-story/script.test.js +261 -0
  19. package/skills/execute-story/walkthrough-template.xml +255 -0
  20. package/{agile-context-engineering/workflows/execute-story.xml → skills/execute-story/workflow.xml} +83 -9
  21. package/skills/help/SKILL.md +69 -0
  22. package/skills/help/script.js +318 -0
  23. package/skills/help/script.test.js +183 -0
  24. package/{agile-context-engineering/workflows/help.xml → skills/help/workflow.xml} +8 -8
  25. package/skills/init-coding-standards/SKILL.md +72 -0
  26. package/{agile-context-engineering/templates/wiki/coding-standards.xml → skills/init-coding-standards/coding-standards-template.xml} +38 -0
  27. package/skills/init-coding-standards/script.js +59 -0
  28. package/skills/init-coding-standards/script.test.js +70 -0
  29. package/{agile-context-engineering/workflows/init-coding-standards.xml → skills/init-coding-standards/workflow.xml} +4 -9
  30. package/skills/map-cross-cutting/SKILL.md +89 -0
  31. package/skills/map-cross-cutting/workflow.xml +330 -0
  32. package/skills/map-guide/SKILL.md +89 -0
  33. package/skills/map-guide/workflow.xml +320 -0
  34. package/skills/map-pattern/SKILL.md +89 -0
  35. package/skills/map-pattern/workflow.xml +331 -0
  36. package/skills/map-story/SKILL.md +127 -0
  37. package/skills/map-story/templates/guide.xml +137 -0
  38. package/skills/map-story/templates/pattern.xml +159 -0
  39. package/skills/map-story/templates/system-cross-cutting.xml +197 -0
  40. package/skills/map-story/templates/walkthrough.xml +255 -0
  41. package/{agile-context-engineering/workflows/map-story.xml → skills/map-story/workflow.xml} +258 -9
  42. package/skills/map-subsystem/SKILL.md +111 -0
  43. package/skills/map-subsystem/script.js +60 -0
  44. package/skills/map-subsystem/script.test.js +68 -0
  45. package/skills/map-subsystem/templates/decizions.xml +115 -0
  46. package/skills/map-subsystem/templates/guide.xml +137 -0
  47. package/{agile-context-engineering/templates/wiki → skills/map-subsystem/templates}/module-discovery.xml +3 -3
  48. package/skills/map-subsystem/templates/pattern.xml +159 -0
  49. package/skills/map-subsystem/templates/system-cross-cutting.xml +197 -0
  50. package/skills/map-subsystem/templates/system.xml +381 -0
  51. package/skills/map-subsystem/templates/walkthrough.xml +255 -0
  52. package/{agile-context-engineering/workflows/map-subsystem.xml → skills/map-subsystem/workflow.xml} +17 -21
  53. package/skills/map-sys-doc/SKILL.md +90 -0
  54. package/skills/map-sys-doc/system.xml +381 -0
  55. package/skills/map-sys-doc/workflow.xml +336 -0
  56. package/skills/map-system/SKILL.md +85 -0
  57. package/skills/map-system/script.js +84 -0
  58. package/skills/map-system/script.test.js +73 -0
  59. package/skills/map-system/templates/wiki-readme.xml +297 -0
  60. package/{agile-context-engineering/workflows/map-system.xml → skills/map-system/workflow.xml} +11 -16
  61. package/skills/map-walkthrough/SKILL.md +92 -0
  62. package/skills/map-walkthrough/walkthrough.xml +255 -0
  63. package/skills/map-walkthrough/workflow.xml +457 -0
  64. package/skills/plan-backlog/SKILL.md +75 -0
  65. package/skills/plan-backlog/script.js +136 -0
  66. package/skills/plan-backlog/script.test.js +83 -0
  67. package/{agile-context-engineering/workflows/plan-backlog.xml → skills/plan-backlog/workflow.xml} +13 -21
  68. package/skills/plan-feature/SKILL.md +76 -0
  69. package/skills/plan-feature/script.js +148 -0
  70. package/skills/plan-feature/script.test.js +80 -0
  71. package/{agile-context-engineering/workflows/plan-feature.xml → skills/plan-feature/workflow.xml} +21 -29
  72. package/skills/plan-product-vision/SKILL.md +75 -0
  73. package/skills/plan-product-vision/script.js +60 -0
  74. package/skills/plan-product-vision/script.test.js +69 -0
  75. package/{agile-context-engineering/workflows/plan-product-vision.xml → skills/plan-product-vision/workflow.xml} +4 -9
  76. package/skills/plan-story/SKILL.md +116 -0
  77. package/skills/plan-story/script.js +326 -0
  78. package/skills/plan-story/script.test.js +240 -0
  79. package/skills/plan-story/story-template.xml +451 -0
  80. package/{agile-context-engineering/workflows/plan-story.xml → skills/plan-story/workflow.xml} +1285 -909
  81. package/skills/research-external-solution/SKILL.md +107 -0
  82. package/skills/research-external-solution/script.js +238 -0
  83. package/skills/research-external-solution/script.test.js +134 -0
  84. package/{agile-context-engineering/workflows/research-external-solution.xml → skills/research-external-solution/workflow.xml} +4 -6
  85. package/skills/research-integration-solution/SKILL.md +98 -0
  86. package/{agile-context-engineering/templates/product/story-integration-solution.xml → skills/research-integration-solution/integration-solution-template.xml} +1 -0
  87. package/skills/research-integration-solution/script.js +231 -0
  88. package/skills/research-integration-solution/script.test.js +134 -0
  89. package/{agile-context-engineering/workflows/research-integration-solution.xml → skills/research-integration-solution/workflow.xml} +4 -5
  90. package/skills/research-story-wiki/SKILL.md +92 -0
  91. package/skills/research-story-wiki/script.js +231 -0
  92. package/skills/research-story-wiki/script.test.js +138 -0
  93. package/{agile-context-engineering/templates/product/story-wiki.xml → skills/research-story-wiki/story-wiki-template.xml} +4 -0
  94. package/{agile-context-engineering/workflows/research-story-wiki.xml → skills/research-story-wiki/workflow.xml} +5 -6
  95. package/skills/research-technical-solution/SKILL.md +103 -0
  96. package/skills/research-technical-solution/script.js +231 -0
  97. package/skills/research-technical-solution/script.test.js +134 -0
  98. package/{agile-context-engineering/workflows/research-technical-solution.xml → skills/research-technical-solution/workflow.xml} +4 -5
  99. package/skills/review-story/SKILL.md +100 -0
  100. package/skills/review-story/script.js +257 -0
  101. package/skills/review-story/script.test.js +169 -0
  102. package/skills/review-story/story-template.xml +451 -0
  103. package/{agile-context-engineering/workflows/review-story.xml → skills/review-story/workflow.xml} +1 -3
  104. package/skills/update/SKILL.md +53 -0
  105. package/{agile-context-engineering/workflows/update.xml → skills/update/workflow.xml} +237 -207
  106. package/agile-context-engineering/src/ace-tools.js +0 -2881
  107. package/agile-context-engineering/src/ace-tools.test.js +0 -1089
  108. package/agile-context-engineering/templates/_command.md +0 -54
  109. package/agile-context-engineering/templates/_workflow.xml +0 -17
  110. package/agile-context-engineering/templates/config.json +0 -0
  111. package/agile-context-engineering/templates/product/integration-solution.xml +0 -0
  112. package/agile-context-engineering/templates/wiki/wiki-readme.xml +0 -276
  113. package/commands/ace/execute-story.md +0 -137
  114. package/commands/ace/help.md +0 -93
  115. package/commands/ace/init-coding-standards.md +0 -83
  116. package/commands/ace/map-story.md +0 -156
  117. package/commands/ace/map-subsystem.md +0 -138
  118. package/commands/ace/map-system.md +0 -92
  119. package/commands/ace/plan-backlog.md +0 -83
  120. package/commands/ace/plan-feature.md +0 -89
  121. package/commands/ace/plan-product-vision.md +0 -81
  122. package/commands/ace/plan-story.md +0 -145
  123. package/commands/ace/research-external-solution.md +0 -138
  124. package/commands/ace/research-integration-solution.md +0 -135
  125. package/commands/ace/research-story-wiki.md +0 -116
  126. package/commands/ace/research-technical-solution.md +0 -147
  127. package/commands/ace/review-story.md +0 -109
  128. package/commands/ace/update.md +0 -54
  129. /package/{agile-context-engineering → shared}/utils/questioning.xml +0 -0
  130. /package/{agile-context-engineering/templates/product/story.xml → skills/execute-story/story-template.xml} +0 -0
  131. /package/{agile-context-engineering/templates/wiki → skills/map-cross-cutting}/system-cross-cutting.xml +0 -0
  132. /package/{agile-context-engineering/templates/wiki → skills/map-guide}/guide.xml +0 -0
  133. /package/{agile-context-engineering/templates/wiki → skills/map-pattern}/pattern.xml +0 -0
  134. /package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/decizions.xml +0 -0
  135. /package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/system.xml +0 -0
  136. /package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/tech-debt-index.xml +0 -0
  137. /package/{agile-context-engineering/templates/wiki → skills/map-subsystem/templates}/subsystem-architecture.xml +0 -0
  138. /package/{agile-context-engineering/templates/wiki → skills/map-subsystem/templates}/subsystem-structure.xml +0 -0
  139. /package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/system-architecture.xml +0 -0
  140. /package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/system-structure.xml +0 -0
  141. /package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/testing-framework.xml +0 -0
  142. /package/{agile-context-engineering/templates/product/product-backlog.xml → skills/plan-backlog/product-backlog-template.xml} +0 -0
  143. /package/{agile-context-engineering/templates/product/feature.xml → skills/plan-feature/feature-template.xml} +0 -0
  144. /package/{agile-context-engineering/templates/product/product-vision.xml → skills/plan-product-vision/product-vision-template.xml} +0 -0
  145. /package/{agile-context-engineering/templates/product/external-solution.xml → skills/research-external-solution/external-solution-template.xml} +0 -0
  146. /package/{agile-context-engineering/templates/product/story-technical-solution.xml → skills/research-technical-solution/technical-solution-template.xml} +0 -0
@@ -1,207 +1,237 @@
1
- <workflow>
2
-
3
- <purpose>
4
- Check for ACE updates via npm, display version comparison, obtain user confirmation,
5
- and execute clean installation with cache clearing.
6
- </purpose>
7
-
8
- <mandatory-context>
9
- Read all files referenced by the invoking prompt's execution-context before starting.
10
- </mandatory-context>
11
-
12
- <process>
13
-
14
- <!-- ══════════════════════════════════════════════════════════════════ -->
15
- <!-- STEP 1: DETECT INSTALLATION -->
16
- <!-- ══════════════════════════════════════════════════════════════════ -->
17
-
18
- <step name="detect-installation" order="1">
19
- Detect whether ACE is installed locally or globally, and for which runtime.
20
-
21
- ```bash
22
- if [ -f "./.claude/agile-context-engineering/VERSION" ]; then
23
- echo "SCOPE=local"
24
- echo "RUNTIME=claude"
25
- echo "VERSION=$(cat ./.claude/agile-context-engineering/VERSION)"
26
- elif [ -f "$HOME/.claude/agile-context-engineering/VERSION" ]; then
27
- echo "SCOPE=global"
28
- echo "RUNTIME=claude"
29
- echo "VERSION=$(cat $HOME/.claude/agile-context-engineering/VERSION)"
30
- elif [ -f "./.opencode/agile-context-engineering/VERSION" ]; then
31
- echo "SCOPE=local"
32
- echo "RUNTIME=opencode"
33
- echo "VERSION=$(cat ./.opencode/agile-context-engineering/VERSION)"
34
- elif [ -f "$HOME/.opencode/agile-context-engineering/VERSION" ]; then
35
- echo "SCOPE=global"
36
- echo "RUNTIME=opencode"
37
- echo "VERSION=$(cat $HOME/.opencode/agile-context-engineering/VERSION)"
38
- else
39
- echo "SCOPE=unknown"
40
- echo "RUNTIME=claude"
41
- echo "VERSION=0.0.0"
42
- fi
43
- ```
44
-
45
- Parse SCOPE, RUNTIME, and VERSION from the output.
46
-
47
- **If SCOPE is "unknown":**
48
- ```
49
- ## ACE Update
50
-
51
- **Installed version:** Unknown
52
-
53
- Your installation doesn't include version tracking.
54
- Running fresh install...
55
- ```
56
-
57
- Proceed with VERSION=0.0.0.
58
- </step>
59
-
60
- <!-- ══════════════════════════════════════════════════════════════════ -->
61
- <!-- STEP 2: CHECK LATEST VERSION -->
62
- <!-- ══════════════════════════════════════════════════════════════════ -->
63
-
64
- <step name="check-latest-version" order="2">
65
- Check npm for the latest published version:
66
-
67
- ```bash
68
- npm view agile-context-engineering version 2>/dev/null
69
- ```
70
-
71
- **If npm check fails:**
72
- ```
73
- Couldn't check for updates (offline or npm unavailable).
74
-
75
- To update manually: `npx agile-context-engineering --claude --global`
76
- ```
77
- Exit.
78
- </step>
79
-
80
- <!-- ══════════════════════════════════════════════════════════════════ -->
81
- <!-- STEP 3: COMPARE VERSIONS -->
82
- <!-- ══════════════════════════════════════════════════════════════════ -->
83
-
84
- <step name="compare-versions" order="3">
85
- Compare installed vs latest.
86
-
87
- **If installed == latest:**
88
- ```
89
- ## ACE Update
90
-
91
- **Installed:** X.Y.Z
92
- **Latest:** X.Y.Z
93
-
94
- You're already on the latest version.
95
- ```
96
- Exit.
97
-
98
- **If installed > latest:**
99
- ```
100
- ## ACE Update
101
-
102
- **Installed:** X.Y.Z
103
- **Latest:** A.B.C
104
-
105
- You're ahead of the latest release (development version?).
106
- ```
107
- Exit.
108
- </step>
109
-
110
- <!-- ══════════════════════════════════════════════════════════════════ -->
111
- <!-- STEP 4: CONFIRM UPDATE -->
112
- <!-- ══════════════════════════════════════════════════════════════════ -->
113
-
114
- <step name="confirm-update" order="4">
115
- If update is available, show what will happen and ask for confirmation:
116
-
117
- ```
118
- ## ACE Update Available
119
-
120
- **Installed:** {installed_version}
121
- **Latest:** {latest_version}
122
-
123
- The installer performs a clean install of ACE folders:
124
- - `commands/ace/` will be wiped and replaced
125
- - `agile-context-engineering/` will be wiped and replaced
126
- - `agents/ace-*` files will be replaced
127
-
128
- Your custom files are preserved:
129
- - Custom commands not in `commands/ace/`
130
- - Custom agents not prefixed with `ace-`
131
- - Your CLAUDE.md files
132
- - Your .ace/ project artifacts
133
- ```
134
-
135
- Use AskUserQuestion:
136
- - Question: "Proceed with update?"
137
- - Options:
138
- - "Yes, update now"
139
- - "No, cancel"
140
-
141
- **If user cancels:** Exit.
142
- </step>
143
-
144
- <!-- ══════════════════════════════════════════════════════════════════ -->
145
- <!-- STEP 5: RUN UPDATE -->
146
- <!-- ══════════════════════════════════════════════════════════════════ -->
147
-
148
- <step name="run-update" order="5">
149
- Run the update using detected SCOPE and RUNTIME from step 1.
150
-
151
- Build the command: `npx agile-context-engineering --{RUNTIME} --{SCOPE}`
152
-
153
- Examples:
154
- - Global Claude: `npx agile-context-engineering --claude --global`
155
- - Local Claude: `npx agile-context-engineering --claude --local`
156
- - Global Crush: `npx agile-context-engineering --opencode --global`
157
- - Local Crush: `npx agile-context-engineering --opencode --local`
158
-
159
- If SCOPE was "unknown", default to `--claude --global`.
160
-
161
- Capture output. If install fails, show error and exit.
162
-
163
- Clear the update cache so statusline indicator disappears:
164
-
165
- **If SCOPE is "local":**
166
- ```bash
167
- rm -f ./.claude/cache/ace-update-check.json
168
- ```
169
-
170
- **If SCOPE is "global":**
171
- ```bash
172
- rm -f "$HOME/.claude/cache/ace-update-check.json"
173
- ```
174
-
175
- For Crush runtime, substitute `.opencode` for `.claude` in the cache path.
176
- </step>
177
-
178
- <!-- ══════════════════════════════════════════════════════════════════ -->
179
- <!-- STEP 6: DISPLAY RESULT -->
180
- <!-- ══════════════════════════════════════════════════════════════════ -->
181
-
182
- <step name="display-result" order="6">
183
- Format completion message:
184
-
185
- ```
186
- ============================================================
187
- ACE Updated: v{old} -> v{new}
188
- ============================================================
189
-
190
- Restart Claude Code to pick up the new commands.
191
- ```
192
- </step>
193
-
194
- </process>
195
-
196
- <success_criteria>
197
- <check>Installed version detected correctly (local/global, claude/crush)</check>
198
- <check>Latest version checked via npm</check>
199
- <check>Update skipped if already current</check>
200
- <check>Clean install warning shown</check>
201
- <check>User confirmation obtained before update</check>
202
- <check>Update executed with correct --runtime and --scope flags</check>
203
- <check>Update cache cleared</check>
204
- <check>Restart reminder shown</check>
205
- </success_criteria>
206
-
207
- </workflow>
1
+ <workflow>
2
+
3
+ <purpose>
4
+ Check for ACE updates via npm, display changelog for versions between installed and latest,
5
+ obtain user confirmation, and execute clean installation with cache clearing.
6
+ </purpose>
7
+
8
+ <mandatory-context>
9
+ Read all files referenced by the invoking prompt's execution-context before starting.
10
+ </mandatory-context>
11
+
12
+ <process>
13
+
14
+ <!-- ══════════════════════════════════════════════════════════════════ -->
15
+ <!-- STEP 1: DETECT INSTALLATION -->
16
+ <!-- ══════════════════════════════════════════════════════════════════ -->
17
+
18
+ <step name="detect-installation" order="1">
19
+ Detect whether ACE is installed locally or globally, and for which runtime.
20
+
21
+ ```bash
22
+ if [ -f "./.claude/shared/VERSION" ]; then
23
+ echo "SCOPE=local"
24
+ echo "RUNTIME=claude"
25
+ echo "VERSION=$(cat ./.claude/shared/VERSION)"
26
+ elif [ -f "$HOME/.claude/shared/VERSION" ]; then
27
+ echo "SCOPE=global"
28
+ echo "RUNTIME=claude"
29
+ echo "VERSION=$(cat $HOME/.claude/shared/VERSION)"
30
+ elif [ -f "./.opencode/shared/VERSION" ]; then
31
+ echo "SCOPE=local"
32
+ echo "RUNTIME=opencode"
33
+ echo "VERSION=$(cat ./.opencode/shared/VERSION)"
34
+ elif [ -f "$HOME/.opencode/shared/VERSION" ]; then
35
+ echo "SCOPE=global"
36
+ echo "RUNTIME=opencode"
37
+ echo "VERSION=$(cat $HOME/.opencode/shared/VERSION)"
38
+ else
39
+ echo "SCOPE=unknown"
40
+ echo "RUNTIME=claude"
41
+ echo "VERSION=0.0.0"
42
+ fi
43
+ ```
44
+
45
+ Parse SCOPE, RUNTIME, and VERSION from the output.
46
+
47
+ **If SCOPE is "unknown":**
48
+ ```
49
+ ## ACE Update
50
+
51
+ **Installed version:** Unknown
52
+
53
+ Your installation doesn't include version tracking.
54
+ Running fresh install...
55
+ ```
56
+
57
+ Proceed with VERSION=0.0.0.
58
+ </step>
59
+
60
+ <!-- ══════════════════════════════════════════════════════════════════ -->
61
+ <!-- STEP 2: CHECK LATEST VERSION -->
62
+ <!-- ══════════════════════════════════════════════════════════════════ -->
63
+
64
+ <step name="check-latest-version" order="2">
65
+ Check npm for the latest published version:
66
+
67
+ ```bash
68
+ npm view agile-context-engineering version 2>/dev/null
69
+ ```
70
+
71
+ **If npm check fails:**
72
+ ```
73
+ Couldn't check for updates (offline or npm unavailable).
74
+
75
+ To update manually: `npx agile-context-engineering --claude --global`
76
+ ```
77
+ Exit.
78
+ </step>
79
+
80
+ <!-- ══════════════════════════════════════════════════════════════════ -->
81
+ <!-- STEP 3: COMPARE VERSIONS -->
82
+ <!-- ══════════════════════════════════════════════════════════════════ -->
83
+
84
+ <step name="compare-versions" order="3">
85
+ Compare installed vs latest.
86
+
87
+ **If installed == latest:**
88
+ ```
89
+ ## ACE Update
90
+
91
+ **Installed:** X.Y.Z
92
+ **Latest:** X.Y.Z
93
+
94
+ You're already on the latest version.
95
+ ```
96
+ Exit.
97
+
98
+ **If installed > latest:**
99
+ ```
100
+ ## ACE Update
101
+
102
+ **Installed:** X.Y.Z
103
+ **Latest:** A.B.C
104
+
105
+ You're ahead of the latest release (development version?).
106
+ ```
107
+ Exit.
108
+ </step>
109
+
110
+ <!-- ══════════════════════════════════════════════════════════════════ -->
111
+ <!-- STEP 4: FETCH AND SHOW CHANGELOG -->
112
+ <!-- ══════════════════════════════════════════════════════════════════ -->
113
+
114
+ <step name="show-changelog-and-confirm" order="4">
115
+ If update is available, fetch the changelog and show what's new BEFORE updating.
116
+
117
+ 1. **Try local changelog first** — check if CHANGELOG.md exists in the installation:
118
+
119
+ For SCOPE=local: `./.claude/shared/CHANGELOG.md`
120
+ For SCOPE=global: `~/.claude/shared/CHANGELOG.md`
121
+ (substitute `.opencode` for Crush runtime)
122
+
123
+ If found, read it directly.
124
+
125
+ 2. **Fall back to GitHub** if local file not found, use WebFetch to fetch:
126
+ `https://raw.githubusercontent.com/Quantarcane/ACE/main/CHANGELOG.md`
127
+
128
+ If fetch fails, skip changelog display and proceed without it.
129
+
130
+ 3. **Extract relevant entries** from the fetched/read content, extract all
131
+ changelog sections between the installed version and the latest version.
132
+
133
+ Look for lines matching `## [X.Y.Z]` and extract everything from
134
+ `## [{latest_version}]` down to (but not including) `## [{installed_version}]`.
135
+
136
+ 4. **Display preview and ask for confirmation:**
137
+
138
+ ```
139
+ ## ACE Update Available
140
+
141
+ **Installed:** {installed_version}
142
+ **Latest:** {latest_version}
143
+
144
+ ### What's New
145
+ ────────────────────────────────────────────────────────────
146
+
147
+ {extracted changelog entries}
148
+
149
+ ────────────────────────────────────────────────────────────
150
+
151
+ The installer performs a clean install of ACE folders:
152
+ - `skills/`, `shared/`, `.claude-plugin/` will be wiped and replaced
153
+ - `agents/ace-*` files will be replaced
154
+
155
+ Your custom files are preserved:
156
+ - Custom skills not in the ACE plugin
157
+ - Custom agents not prefixed with `ace-`
158
+ - Your CLAUDE.md files
159
+ - Your .ace/ project artifacts
160
+ ```
161
+
162
+ Use AskUserQuestion:
163
+ - Question: "Proceed with update?"
164
+ - Options:
165
+ - "Yes, update now"
166
+ - "No, cancel"
167
+
168
+ **If user cancels:** Exit.
169
+ </step>
170
+
171
+ <!-- ══════════════════════════════════════════════════════════════════ -->
172
+ <!-- STEP 5: RUN UPDATE -->
173
+ <!-- ══════════════════════════════════════════════════════════════════ -->
174
+
175
+ <step name="run-update" order="5">
176
+ Run the update using detected SCOPE and RUNTIME from step 1.
177
+
178
+ Build the command: `npx agile-context-engineering --{RUNTIME} --{SCOPE}`
179
+
180
+ Examples:
181
+ - Global Claude: `npx agile-context-engineering --claude --global`
182
+ - Local Claude: `npx agile-context-engineering --claude --local`
183
+ - Global Crush: `npx agile-context-engineering --opencode --global`
184
+ - Local Crush: `npx agile-context-engineering --opencode --local`
185
+
186
+ If SCOPE was "unknown", default to `--claude --global`.
187
+
188
+ Capture output. If install fails, show error and exit.
189
+
190
+ Clear the update cache so statusline indicator disappears:
191
+
192
+ **If SCOPE is "local":**
193
+ ```bash
194
+ rm -f ./.claude/cache/ace-update-check.json
195
+ ```
196
+
197
+ **If SCOPE is "global":**
198
+ ```bash
199
+ rm -f "$HOME/.claude/cache/ace-update-check.json"
200
+ ```
201
+
202
+ For Crush runtime, substitute `.opencode` for `.claude` in the cache path.
203
+ </step>
204
+
205
+ <!-- ══════════════════════════════════════════════════════════════════ -->
206
+ <!-- STEP 6: DISPLAY RESULT -->
207
+ <!-- ══════════════════════════════════════════════════════════════════ -->
208
+
209
+ <step name="display-result" order="6">
210
+ Format completion message (changelog was already shown in confirmation step):
211
+
212
+ ```
213
+ ============================================================
214
+ ACE Updated: v{old} -> v{new}
215
+ ============================================================
216
+
217
+ Restart Claude Code to pick up the new commands.
218
+
219
+ View full changelog: https://github.com/Quantarcane/ACE/blob/main/CHANGELOG.md
220
+ ```
221
+ </step>
222
+
223
+ </process>
224
+
225
+ <success_criteria>
226
+ <check>Installed version detected correctly (local/global, claude/crush)</check>
227
+ <check>Latest version checked via npm</check>
228
+ <check>Update skipped if already current</check>
229
+ <check>Changelog fetched and displayed BEFORE update</check>
230
+ <check>Clean install warning shown</check>
231
+ <check>User confirmation obtained before update</check>
232
+ <check>Update executed with correct --runtime and --scope flags</check>
233
+ <check>Update cache cleared</check>
234
+ <check>Restart reminder shown</check>
235
+ </success_criteria>
236
+
237
+ </workflow>