@rse/ase 0.9.8 → 0.9.9

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 (67) hide show
  1. package/dst/ase-getopt.js +60 -4
  2. package/dst/ase-hook.js +6 -21
  3. package/dst/ase-markdown.js +32 -11
  4. package/dst/ase-mcp.js +22 -8
  5. package/dst/ase-notify.js +32 -0
  6. package/dst/ase-service.js +5 -2
  7. package/dst/ase-setup.js +45 -131
  8. package/dst/ase-skills.js +17 -13
  9. package/dst/ase-statusline.js +8 -12
  10. package/dst/ase-task.js +12 -2
  11. package/package.json +2 -2
  12. package/plugin/.claude-plugin/plugin.json +1 -1
  13. package/plugin/.github/plugin/plugin.json +1 -1
  14. package/plugin/meta/ase-dialog.md +105 -7
  15. package/plugin/meta/ase-getopt.md +31 -23
  16. package/plugin/meta/ase-skill.md +62 -6
  17. package/plugin/package.json +1 -1
  18. package/plugin/skills/ase-arch-analyze/help.md +2 -2
  19. package/plugin/skills/ase-arch-discover/SKILL.md +40 -27
  20. package/plugin/skills/ase-arch-discover/help.md +1 -1
  21. package/plugin/skills/ase-code-analyze/help.md +2 -2
  22. package/plugin/skills/ase-code-craft/SKILL.md +43 -38
  23. package/plugin/skills/ase-code-craft/help.md +2 -2
  24. package/plugin/skills/ase-code-explain/help.md +1 -1
  25. package/plugin/skills/ase-code-insight/help.md +1 -1
  26. package/plugin/skills/ase-code-lint/SKILL.md +20 -11
  27. package/plugin/skills/ase-code-lint/help.md +2 -2
  28. package/plugin/skills/ase-code-refactor/SKILL.md +42 -38
  29. package/plugin/skills/ase-code-refactor/help.md +2 -2
  30. package/plugin/skills/ase-code-resolve/SKILL.md +42 -37
  31. package/plugin/skills/ase-code-resolve/help.md +3 -3
  32. package/plugin/skills/ase-docs-distill/help.md +1 -1
  33. package/plugin/skills/ase-docs-proofread/SKILL.md +18 -10
  34. package/plugin/skills/ase-docs-proofread/help.md +1 -1
  35. package/plugin/skills/ase-meta-brainstorm/SKILL.md +5 -3
  36. package/plugin/skills/ase-meta-brainstorm/help.md +1 -1
  37. package/plugin/skills/ase-meta-changelog/help.md +1 -1
  38. package/plugin/skills/ase-meta-chat/help.md +1 -1
  39. package/plugin/skills/ase-meta-commit/help.md +1 -1
  40. package/plugin/skills/ase-meta-diaboli/help.md +2 -2
  41. package/plugin/skills/ase-meta-diff/SKILL.md +1 -1
  42. package/plugin/skills/ase-meta-diff/help.md +1 -1
  43. package/plugin/skills/ase-meta-evaluate/help.md +2 -2
  44. package/plugin/skills/ase-meta-persona/help.md +1 -1
  45. package/plugin/skills/ase-meta-quorum/help.md +1 -1
  46. package/plugin/skills/ase-meta-review/SKILL.md +0 -1
  47. package/plugin/skills/ase-meta-review/help.md +2 -2
  48. package/plugin/skills/ase-meta-search/help.md +1 -1
  49. package/plugin/skills/ase-meta-steelman/help.md +2 -2
  50. package/plugin/skills/ase-meta-why/help.md +1 -1
  51. package/plugin/skills/ase-task-condense/SKILL.md +4 -2
  52. package/plugin/skills/ase-task-condense/help.md +2 -2
  53. package/plugin/skills/ase-task-delete/help.md +2 -2
  54. package/plugin/skills/ase-task-edit/SKILL.md +8 -4
  55. package/plugin/skills/ase-task-edit/help.md +2 -2
  56. package/plugin/skills/ase-task-grill/SKILL.md +4 -2
  57. package/plugin/skills/ase-task-grill/help.md +3 -3
  58. package/plugin/skills/ase-task-id/help.md +2 -2
  59. package/plugin/skills/ase-task-implement/SKILL.md +4 -2
  60. package/plugin/skills/ase-task-implement/help.md +2 -2
  61. package/plugin/skills/ase-task-list/help.md +2 -2
  62. package/plugin/skills/ase-task-preflight/SKILL.md +4 -2
  63. package/plugin/skills/ase-task-preflight/help.md +2 -2
  64. package/plugin/skills/ase-task-reboot/SKILL.md +4 -2
  65. package/plugin/skills/ase-task-reboot/help.md +2 -2
  66. package/plugin/skills/ase-task-rename/help.md +2 -2
  67. package/plugin/skills/ase-task-view/help.md +2 -2
@@ -53,7 +53,9 @@ You *MUST* *NOT* call `Edit`, `Write`, `NotebookEdit`, or any
53
53
  filesystem-modifying tool during this entire skill. The *only*
54
54
  permitted way to persist artifacts is via `ase_task_save(...)`.
55
55
 
56
- 1. **Reason About Feature**:
56
+ <flow>
57
+
58
+ 1. <step id="STEP 1: Reason About Feature">
57
59
 
58
60
  1. <if condition="
59
61
  <feature/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
@@ -114,7 +116,9 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
114
116
 
115
117
  8. Do not output anything in this step, unless you asked the user.
116
118
 
117
- 2. **Investigate Code Base**:
119
+ </step>
120
+
121
+ 2. <step id="STEP 2: Investigate Code Base">
118
122
 
119
123
  1. Check the existing source files for all code which is related to the
120
124
  requested new <feature/>.
@@ -122,9 +126,11 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
122
126
  2. Check the architecture of the existing code base to understand the
123
127
  overall structures and dynamics.
124
128
 
125
- 3. Do not output anything in this step.
129
+ 3. Do not output anything in this STEP 2.
126
130
 
127
- 3. **Internalize Crafting Tenets**:
131
+ </step>
132
+
133
+ 3. <step id="STEP 3: Internalize Crafting Tenets">
128
134
 
129
135
  You *MUST* internalize and honor the following tenets when crafting the new feature.
130
136
  Do not output anything.
@@ -179,7 +185,9 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
179
185
  Honor the non-functional requirements Performance, Security,
180
186
  Scalability, Comprehensibility.
181
187
 
182
- 4. **Find Feature Crafting Approaches**:
188
+ </step>
189
+
190
+ 4. <step id="STEP 4: Choose Feature Crafting Approaches">
183
191
 
184
192
  You *MUST* perform the following sub-steps *internally* and *without
185
193
  any output* until and including the recommendation decision. Only
@@ -208,16 +216,14 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
208
216
  </template>
209
217
 
210
218
  5. Now report each approach with the following <template/>,
211
- inlining its pros/cons derived in sub-step 2:
219
+ inlining its pros/cons derived in sub-step 2, and do not output
220
+ anything else in this step:
212
221
 
213
222
  <template>
214
223
  ● **APPROACH A<n/>**<annotation/>: *<summary/>*
215
224
  ○ [...]
216
- ○ [...]
217
- ○ [...]
218
225
  ⊕ **PRO**: [...]
219
226
  ⊖ **CON**: [...]
220
- <optional-diagram/>
221
227
  </template>
222
228
 
223
229
  Hints:
@@ -225,23 +231,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
225
231
  - Give a short one-sentence <summary/> of the feature
226
232
  approach plus *precise* and *ultra brief and concise*
227
233
  feature information. Try to keep the number of bullet points
228
- () in the range of 1-4.
229
-
230
- - In case of a *complex feature situation* only, visualize
231
- it with an optional diagram <optional-diagram/> by building
232
- a Mermaid specification <mermaid-spec/> (e.g. `flowchart
233
- TB`, `stateDiagram-v2`, `sequenceDiagram`, `classDiagram`,
234
- or `erDiagram`, depending on intent) and dispatching the
235
- rendering to the `ase-meta-diagram` sub-agent by calling
236
- the tool `Agent(name: "ase-meta-diagram", description:
237
- "Diagram Rendering", subagent_type: "ase:ase-meta-diagram",
238
- prompt: <mermaid-spec/>)`, reproducing its returned fenced
239
- code block verbatim. For *current vs. proposed* comparisons,
240
- render each side as a *separate* `ase-meta-diagram`
241
- invocation and stack the rendered blocks *vertically*
242
- (labels `**Before:**` / `**After:**`); never side-by-side.
243
- Omit <optional-diagram/> entirely for simple or purely local
244
- situations.
234
+ (`○ [...]`) in the range of 1-4.
245
235
 
246
236
  6. Indicate end of reporting by showing the following <template/>:
247
237
 
@@ -249,28 +239,40 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
249
239
  <ase-tpl-foot title="APPROACHES"/>
250
240
  </template>
251
241
 
252
- 5. **Choose Feature Crafting Approach**:
242
+ 7. <if condition="<getopt-option-auto/> is not equal `true`">
243
+
244
+ You *MUST* use the custom `custom-dialog` and *NOT* the
245
+ `AskUserQuestion`-based `user-dialog` to let the *user
246
+ interactively choose* the preferred approach A<n/>.
247
+
248
+ Per approach A<n/>, use the option `A<n/>: <short-summary/>`
249
+ where <short-summary/> is an ultra brief summary of the approach
250
+ A<n/>. For your recommended approach, use
251
+ `A<n/>: ⚝ **RECOMMENDATION** ⚝: <short-summary/>` instead.
252
+
253
+ Now raise the user dialog:
254
+
255
+ <expand name="custom-dialog">
256
+ Select Approach: Select your preferred crafting approach to follow?
257
+ A<n/>: <short-summary/>
258
+ [...]
259
+ </expand>
253
260
 
254
- 1. <if condition="<getopt-option-auto/> is equal `false`">
255
- Let the *user interactively choose* the preferred feature
256
- approach A<n/> with the help of the <user-dialog-tool/> tool.
257
- Use the header `Select Approach`, use `A<n/>: <short-summary/>`
258
- for the option (where <short-summary/> is an ultra brief summary
259
- of the approach A<n/>), and *single-selection* only and provide
260
- small *code change previews*. Mark your recommended feature
261
- approach with ` ⚝ **RECOMMENDATION** ⚝` here again.
262
261
  </if>
262
+ <else>
263
263
 
264
- 2. <else>
265
264
  Set <n/> to the number of the feature approach A<n/> you recommend.
266
265
  Output a hint with the following <template/>:
267
266
 
268
267
  <template>
269
268
  ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **auto-chosen approach A<n/>**
270
269
  </template>
270
+
271
271
  </else>
272
272
 
273
- 6. **Compose Feature Crafting Plan**:
273
+ </step>
274
+
275
+ 5. <step id="STEP 5: Compose Feature Crafting Plan">
274
276
 
275
277
  1. *Compose a feature plan* for the chosen feature A<n/> by
276
278
  closely aligning to the existing architecture and the existing
@@ -300,7 +302,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
300
302
  <timestamp-modified/> information and calculate the number of
301
303
  words <words/> of <content/>.
302
304
 
303
- 3. You *MUST* *save* the resulting plan content with the
305
+ 3. You then *MUST* *save* the resulting plan content with the
304
306
  `ase_task_save(id: "<ase-task-id/>", text: "<content/>")`.
305
307
 
306
308
  4. Output a hint with the following <template/>:
@@ -351,3 +353,6 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
351
353
  Then call the tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`.
352
354
  </else>
353
355
 
356
+ <step>
357
+
358
+ </flow>
@@ -86,5 +86,5 @@ Craft a feature under a named task and directly hand off to implementation:
86
86
 
87
87
  ## SEE ALSO
88
88
 
89
- `ase-code-refactor`, `ase-code-resolve`, `ase-task-edit`,
90
- `ase-task-preflight`, `ase-task-implement`.
89
+ [`ase-code-refactor`](../ase-code-refactor/help.md), [`ase-code-resolve`](../ase-code-resolve/help.md), [`ase-task-edit`](../ase-task-edit/help.md),
90
+ [`ase-task-preflight`](../ase-task-preflight/help.md), [`ase-task-implement`](../ase-task-implement/help.md).
@@ -40,4 +40,4 @@ Explain a specific function:
40
40
 
41
41
  ## SEE ALSO
42
42
 
43
- `ase-code-insight`, `ase-code-analyze`, `ase-arch-analyze`.
43
+ [`ase-code-insight`](../ase-code-insight/help.md), [`ase-code-analyze`](../ase-code-analyze/help.md), [`ase-arch-analyze`](../ase-arch-analyze/help.md).
@@ -40,4 +40,4 @@ Get insights into a specific subsystem:
40
40
 
41
41
  ## SEE ALSO
42
42
 
43
- `ase-code-explain`, `ase-code-analyze`, `ase-arch-analyze`.
43
+ [`ase-code-explain`](../ase-code-explain/help.md), [`ase-code-analyze`](../ase-code-analyze/help.md), [`ase-arch-analyze`](../ase-arch-analyze/help.md).
@@ -100,10 +100,12 @@ related to a set of code quality aspects.
100
100
 
101
101
  3. <step id="STEP 3: Correction">
102
102
 
103
- 1. You *MUST* call the MCP tool `ase_config_set(key: "agent.skill", val:
104
- "ase-code-lint", scope: "session:<ase-session-id/>")` of the
105
- `ase` MCP server. You *MUST* *NOT* output anything related to
106
- this.
103
+ 1. *Mark this skill as the active edit-capable skill* so that the
104
+ ASE `pre-tool-use` hook auto-approves the subsequent `Edit`
105
+ invocations on *any* invocation path (slash command *or* `Skill`
106
+ tool). Call the `ase_config_set(key: "agent.skill", val:
107
+ "ase-code-lint", scope: "session:<ase-session-id/>")` tool
108
+ from the `ase` MCP server. Do not output anything in this substep.
107
109
 
108
110
  2. Iterate over all problems:
109
111
 
@@ -213,9 +215,11 @@ related to a set of code quality aspects.
213
215
 
214
216
  6. <if condition="<getopt-option-auto/> is not 'true'">
215
217
 
216
- Ask the user how to proceed via an interactive user dialog:
218
+ Let the *user interactively choose* what to do as the next
219
+ step. For this you *MUST* use the custom `custom-dialog` and
220
+ not the `AskUserQuestion` based `user-dialog`:
217
221
 
218
- <expand name="user-dialog">
222
+ <expand name="custom-dialog">
219
223
  CORRECTION: How would you like to proceed with this proposed correction?
220
224
  ACCEPT: Apply the proposed correction.
221
225
  REJECT: Skip this proposed correction.
@@ -234,8 +238,11 @@ related to a set of code quality aspects.
234
238
 
235
239
  - <if condition="<result/> is 'ACCEPT'">
236
240
  Invoke the `Edit` tool to apply the changes exactly
237
- as shown in the <diff/>. After applying the changes,
238
- just continue with the next <item/>.
241
+ as shown in the <diff/>. The operation will be
242
+ auto-approved by the ASE `pre-tool-use` hook (which
243
+ tracks the active skill), so *no* interactive permission
244
+ prompt will appear. After applying the changes, just
245
+ continue with the next <item/>.
239
246
  </if>
240
247
 
241
248
  - <if condition="<result/> starts with 'OTHER'">
@@ -257,9 +264,11 @@ related to a set of code quality aspects.
257
264
 
258
265
  </for>
259
266
 
260
- 3. You *MUST* call the MCP tool `ase_config_delete(key: "agent.skill",
261
- scope: "session:<ase-session-id/>")` of the `ase` MCP server.
262
- You *MUST* *NOT* output anything related to this.
267
+ 3. *Clear the active edit-capable skill marker* now that all `Edit`
268
+ invocations are done, so a later unrelated `Edit` is *not*
269
+ auto-approved. Call the `ase_config_delete(key: "agent.skill",
270
+ scope: "session:<ase-session-id/>")` tool from the `ase` MCP
271
+ server. Do not output anything in this substep.
263
272
 
264
273
  4. You *MUST* *NOT* output any further additional explanations or
265
274
  summaries at the end of this skill processing, except for the
@@ -63,5 +63,5 @@ Lint a directory, reporting only `MEDIUM` and `HIGH` findings:
63
63
 
64
64
  ## SEE ALSO
65
65
 
66
- `ase-code-analyze`, `ase-code-resolve`, `ase-code-refactor`,
67
- `ase-docs-proofread`.
66
+ [`ase-code-analyze`](../ase-code-analyze/help.md), [`ase-code-resolve`](../ase-code-resolve/help.md), [`ase-code-refactor`](../ase-code-refactor/help.md),
67
+ [`ase-docs-proofread`](../ase-docs-proofread/help.md).
@@ -53,7 +53,9 @@ You *MUST* *NOT* call `Edit`, `Write`, `NotebookEdit`, or any
53
53
  filesystem-modifying tool during this entire skill. The *only*
54
54
  permitted way to persist artifacts is via `ase_task_save(...)`.
55
55
 
56
- 1. **Reason About Refactoring**:
56
+ <flow>
57
+
58
+ 1. <step id="STEP 1: Reason About Refactoring">
57
59
 
58
60
  1. <if condition="
59
61
  <request/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
@@ -114,7 +116,9 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
114
116
 
115
117
  8. Do not output anything in this step, unless you asked the user.
116
118
 
117
- 2. **Investigate Code Base**:
119
+ </step>
120
+
121
+ 2. <step id="STEP 2: Investigate Code Base">
118
122
 
119
123
  1. Check the existing source files for all code which is related to the
120
124
  refactoring <request/>.
@@ -122,9 +126,11 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
122
126
  2. Check the architecture of the existing code base to understand the
123
127
  overall structures and dynamics.
124
128
 
125
- 3. Do not output anything in this step.
129
+ 3. Do not output anything in this STEP 2.
126
130
 
127
- 3. **Internalize Refactoring Tenets**:
131
+ </step>
132
+
133
+ 3. <step id="STEP 3: Internalize Refactoring Tenets">
128
134
 
129
135
  You *MUST* internalize and honor the following tenets when refactoring.
130
136
  Do not output anything.
@@ -168,7 +174,9 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
168
174
  Design clear interfaces, contracts, and data models --
169
175
  with high attention to boundaries and modularity.
170
176
 
171
- 4. **Find Refactoring Approaches**:
177
+ </step>
178
+
179
+ 4. <step id="STEP 4: Choose Refactoring Approaches">
172
180
 
173
181
  You *MUST* perform the following sub-steps *internally* and *without
174
182
  any output* until and including the recommendation decision. Only
@@ -203,11 +211,8 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
203
211
  <template>
204
212
  ● **APPROACH A<n/>**<annotation/>: *<summary/>*
205
213
  ○ [...]
206
- ○ [...]
207
- ○ [...]
208
214
  ⊕ **PRO**: [...]
209
215
  ⊖ **CON**: [...]
210
- <optional-diagram/>
211
216
  </template>
212
217
 
213
218
  Hints:
@@ -215,23 +220,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
215
220
  - Give a short one-sentence <summary/> of the refactoring
216
221
  approach plus *precise* and *ultra brief and concise*
217
222
  refactoring information. Try to keep the number of bullet
218
- points () in the range of 1-4.
219
-
220
- - In case of a *complex refactoring situation* only,
221
- visualize it with an optional diagram <optional-diagram/>
222
- by building a Mermaid specification <mermaid-spec/>
223
- (e.g. `flowchart TB`, `stateDiagram-v2`, `sequenceDiagram`,
224
- `classDiagram`, or `erDiagram`, depending on intent) and
225
- dispatching the rendering to the `ase-meta-diagram`
226
- sub-agent by calling the tool `Agent(name: "ase-meta-diagram",
227
- description: "Diagram Rendering", subagent_type:
228
- "ase:ase-meta-diagram", prompt: <mermaid-spec/>)`, reproducing
229
- its returned fenced code block verbatim. For *current
230
- vs. proposed* comparisons, render each side as a *separate*
231
- `ase-meta-diagram` invocation and stack the rendered blocks
232
- *vertically* (labels `**Before:**` / `**After:**`); never
233
- side-by-side. Omit <optional-diagram/> entirely for simple
234
- or purely local situations.
223
+ points (`○ [...]`) in the range of 1-4.
235
224
 
236
225
  6. Indicate end of reporting by showing the following <template/>:
237
226
 
@@ -239,29 +228,40 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
239
228
  <ase-tpl-foot title="APPROACHES"/>
240
229
  </template>
241
230
 
242
- 5. **Choose Refactoring Approach**:
243
-
244
- 1. <if condition="<getopt-option-auto/> is not 'true'">
245
- Let the *user interactively choose* the preferred refactoring
246
- approach A<n/> with the help of the <user-dialog-tool/> tool.
247
- Use the header `Select Approach`, use `A<n/>: <short-summary/>`
248
- for the option (where <short-summary/> is an ultra brief summary
249
- of the approach A<n/>), and *single-selection* only and provide
250
- small *code change previews*. Mark your recommended refactoring
251
- approach with ` ⚝ **RECOMMENDATION** ⚝` here again. Except for
252
- the interactive selection, do not output anything in this step.
231
+ 7. <if condition="<getopt-option-auto/> is not `true`">
232
+
233
+ You *MUST* use the custom `custom-dialog` and *NOT* the
234
+ `AskUserQuestion`-based `user-dialog` to let the *user
235
+ interactively choose* the preferred approach A<n/>.
236
+
237
+ Per approach A<n/>, use the option `A<n/>: <short-summary/>`
238
+ where <short-summary/> is an ultra brief summary of the approach
239
+ A<n/>. For your recommended approach, use
240
+ `A<n/>: ⚝ **RECOMMENDATION** ⚝: <short-summary/>` instead.
241
+
242
+ Now raise the user dialog:
243
+
244
+ <expand name="custom-dialog">
245
+ Select Approach: Select your preferred refactoring approach to follow?
246
+ A<n/>: <short-summary/>
247
+ [...]
248
+ </expand>
249
+
253
250
  </if>
251
+ <else>
254
252
 
255
- 2. <else>
256
253
  Set <n/> to the number of the refactoring approach A<n/> you recommend.
257
254
  Output a hint with the following <template/>:
258
255
 
259
256
  <template>
260
257
  ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **auto-chosen approach A<n/>**
261
258
  </template>
259
+
262
260
  </else>
263
261
 
264
- 6. **Compose Refactoring Plan**:
262
+ </step>
263
+
264
+ 5. <step id="STEP 5: Compose Refactoring Plan">
265
265
 
266
266
  1. *Compose a refactoring plan* for the chosen refactoring A<n/> by
267
267
  closely aligning to the existing architecture and the existing
@@ -342,3 +342,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
342
342
  Then call the tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`.
343
343
  </else>
344
344
 
345
+ <step>
346
+
347
+ </flow>
348
+
@@ -86,5 +86,5 @@ Refactor under a named task and directly hand off to implementation:
86
86
 
87
87
  ## SEE ALSO
88
88
 
89
- `ase-code-craft`, `ase-code-resolve`, `ase-task-edit`,
90
- `ase-task-preflight`, `ase-task-implement`.
89
+ [`ase-code-craft`](../ase-code-craft/help.md), [`ase-code-resolve`](../ase-code-resolve/help.md), [`ase-task-edit`](../ase-task-edit/help.md),
90
+ [`ase-task-preflight`](../ase-task-preflight/help.md), [`ase-task-implement`](../ase-task-implement/help.md).
@@ -53,7 +53,9 @@ You *MUST* *NOT* call `Edit`, `Write`, `NotebookEdit`, or any
53
53
  filesystem-modifying tool during this entire skill. The *only*
54
54
  permitted way to persist artifacts is via `ase_task_save(...)`.
55
55
 
56
- 1. **Reason About Problem**:
56
+ <flow>
57
+
58
+ 1. <step id="STEP 1: Reason About Problem">
57
59
 
58
60
  1. If <problem/> matches the regexp `^[PT]\d+$` (i.e. a bare issue
59
61
  identifier like `P1`, `P2`, `T1`, `T2`, ...),
@@ -166,7 +168,9 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
166
168
  verbatim. Omit <optional-diagram/> entirely for simple or
167
169
  purely local situations.
168
170
 
169
- 2. **Investigate Code Base**:
171
+ </step>
172
+
173
+ 2. <step id="STEP 2: Investigate Code Base">
170
174
 
171
175
  1. Check the existing source files for all code which is related to the
172
176
  requested <problem/> resolution.
@@ -174,9 +178,11 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
174
178
  2. Check the architecture of the existing code base to understand the
175
179
  overall structures and dynamics.
176
180
 
177
- 3. Do not output anything in this step.
181
+ 3. Do not output anything in this STEP 2.
178
182
 
179
- 3. **Internalize Problem Resolution Tenets**:
183
+ </step>
184
+
185
+ 3. <step id="STEP 3: Internalize Problem Resolution Tenets">
180
186
 
181
187
  You *MUST* internalize and honor the following tenets when resolving the problem.
182
188
  Do not output anything.
@@ -218,7 +224,9 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
218
224
  *theoretical, fictive, or unexpected* errors *should* be
219
225
  handled more generally and in parent scopes.
220
226
 
221
- 4. **Find Problem Resolution Approaches**:
227
+ </step>
228
+
229
+ 4. <step id="STEP 4: Choose Problem Resolution Approaches">
222
230
 
223
231
  You *MUST* perform the following sub-steps *internally* and *without
224
232
  any output* until and including the recommendation decision. Only
@@ -253,35 +261,16 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
253
261
  <template>
254
262
  ● **APPROACH A<n/>**<annotation/>: *<summary/>*
255
263
  ○ [...]
256
- ○ [...]
257
- ○ [...]
258
264
  ⊕ **PRO**: [...]
259
265
  ⊖ **CON**: [...]
260
- <optional-diagram/>
261
266
  </template>
262
267
 
263
268
  Hints:
264
269
 
265
270
  - Give a short one-sentence <summary/> of the resolution
266
271
  approach plus *precise* and *ultra brief and concise*
267
- resolution information. Try to keep the number of bullet
268
- points (●) in the range of 1-4.
269
-
270
- - In case of a *complex resolution situation* only,
271
- visualize it with an optional diagram <optional-diagram/>
272
- by building a Mermaid specification <mermaid-spec/>
273
- (e.g. `flowchart TB`, `stateDiagram-v2`, `sequenceDiagram`,
274
- `classDiagram`, or `erDiagram`, depending on intent) and
275
- dispatching the rendering to the `ase-meta-diagram`
276
- sub-agent by calling the tool `Agent(name: "ase-meta-diagram",
277
- description: "Diagram Rendering", subagent_type:
278
- "ase:ase-meta-diagram", prompt: <mermaid-spec/>)`, reproducing
279
- its returned fenced code block verbatim. For *current
280
- vs. proposed* comparisons, render each side as a *separate*
281
- `ase-meta-diagram` invocation and stack the rendered blocks
282
- *vertically* (labels `**Before:**` / `**After:**`); never
283
- side-by-side. Omit <optional-diagram/> entirely for simple
284
- or purely local situations.
272
+ resolution information. Try to keep the number of bullet points
273
+ (`○ [...]`) in the range of 1-4.
285
274
 
286
275
  6. Indicate end of reporting by showing the following <template/>:
287
276
 
@@ -289,28 +278,40 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
289
278
  <ase-tpl-foot title="APPROACHES"/>
290
279
  </template>
291
280
 
292
- 5. **Choose Problem Resolution Approach**:
281
+ 7. <if condition="<getopt-option-auto/> is not `true`">
282
+
283
+ You *MUST* use the custom `custom-dialog` and *NOT* the
284
+ `AskUserQuestion`-based `user-dialog` to let the *user
285
+ interactively choose* the preferred approach A<n/>.
286
+
287
+ Per approach A<n/>, use the option `A<n/>: <short-summary/>`
288
+ where <short-summary/> is an ultra brief summary of the approach
289
+ A<n/>. For your recommended approach, use
290
+ `A<n/>: ⚝ **RECOMMENDATION** ⚝: <short-summary/>` instead.
291
+
292
+ Now raise the user dialog:
293
+
294
+ <expand name="custom-dialog">
295
+ Select Approach: Select your preferred resolution approach to follow?
296
+ A<n/>: <short-summary/>
297
+ [...]
298
+ </expand>
293
299
 
294
- 1. <if condition="<getopt-option-auto/> is not 'true'">
295
- Let the *user interactively choose* the preferred resolution
296
- approach A<n/> with the help of the <user-dialog-tool/> tool.
297
- Use the header `Select Approach`, use `A<n/>: <short-summary/>`
298
- for the option (where <short-summary/> is an ultra brief summary
299
- of the approach A<n/>), and *single-selection* only and provide
300
- small *code change previews*. Mark your recommended resolution
301
- approach with ` ⚝ **RECOMMENDATION** ⚝` here again.
302
300
  </if>
301
+ <else>
303
302
 
304
- 2. <else>
305
303
  Set <n/> to the number of the resolution approach A<n/> you recommend.
306
304
  Output a hint with the following <template/>:
307
305
 
308
306
  <template>
309
307
  ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **auto-chosen approach A<n/>**
310
308
  </template>
309
+
311
310
  </else>
312
311
 
313
- 6. **Compose Problem Resolution Plan**:
312
+ </step>
313
+
314
+ 5. <step id="STEP 5: Compose Problem Resolution Plan">
314
315
 
315
316
  1. *Compose a plan* with code references, a precise description of the
316
317
  problem, the chosen resolution approach, a preview of the *unified
@@ -398,3 +399,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
398
399
  Then call the tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`.
399
400
  </else>
400
401
 
402
+ <step>
403
+
404
+ </flow>
405
+
@@ -92,6 +92,6 @@ Resolve a previously analyzed issue and hand off to implementation:
92
92
 
93
93
  ## SEE ALSO
94
94
 
95
- `ase-code-craft`, `ase-code-refactor`, `ase-code-analyze`,
96
- `ase-arch-analyze`, `ase-task-edit`, `ase-task-preflight`,
97
- `ase-task-implement`.
95
+ [`ase-code-craft`](../ase-code-craft/help.md), [`ase-code-refactor`](../ase-code-refactor/help.md), [`ase-code-analyze`](../ase-code-analyze/help.md),
96
+ [`ase-arch-analyze`](../ase-arch-analyze/help.md), [`ase-task-edit`](../ase-task-edit/help.md), [`ase-task-preflight`](../ase-task-preflight/help.md),
97
+ [`ase-task-implement`](../ase-task-implement/help.md).
@@ -72,5 +72,5 @@ Distill a pasted block of text:
72
72
 
73
73
  ## SEE ALSO
74
74
 
75
- `ase-meta-search`, `ase-docs-proofread`, `ase-meta-why`.
75
+ [`ase-meta-search`](../ase-meta-search/help.md), [`ase-docs-proofread`](../ase-docs-proofread/help.md), [`ase-meta-why`](../ase-meta-why/help.md).
76
76
 
@@ -89,9 +89,12 @@ Analyze documents for spelling, punctuation, or grammar errors
89
89
 
90
90
  3. <step id="STEP 3: Correction">
91
91
 
92
- 1. You *MUST* call the MCP tool `ase_config_set(key: "agent.skill", val:
93
- "ase-docs-proofread", scope: "session:<ase-session-id/>")` of the
94
- `ase` MCP server.
92
+ 1. *Mark this skill as the active edit-capable skill* so that the
93
+ ASE `pre-tool-use` hook auto-approves the subsequent `Edit`
94
+ invocations on *any* invocation path (slash command *or* `Skill`
95
+ tool). Call the `ase_config_set(key: "agent.skill", val:
96
+ "ase-docs-proofread", scope: "session:<ase-session-id/>")` tool
97
+ from the `ase` MCP server. Do not output anything in this substep.
95
98
 
96
99
  2. Iterate over all problems:
97
100
 
@@ -151,9 +154,11 @@ Analyze documents for spelling, punctuation, or grammar errors
151
154
 
152
155
  4. <if condition="<getopt-option-auto/> is not 'true'">
153
156
 
154
- Ask the user how to proceed via an interactive user dialog:
157
+ Let the *user interactively choose* what to do as the next
158
+ step. For this you *MUST* use the custom `custom-dialog` and
159
+ not the `AskUserQuestion` based `user-dialog`:
155
160
 
156
- <expand name="user-dialog">
161
+ <expand name="custom-dialog">
157
162
  CORRECTION: How would you like to proceed with this proposed correction?
158
163
  ACCEPT: Apply the proposed correction.
159
164
  REJECT: Skip this proposed correction.
@@ -173,9 +178,9 @@ Analyze documents for spelling, punctuation, or grammar errors
173
178
 
174
179
  Invoke the `Edit` tool to apply the change by replacing
175
180
  <old-text/> with <new-text/> at <file/>:<line/>. The operation
176
- will be auto-approved because of the active proofread marker,
177
- so *no* interactive permission prompt will appear. Then
178
- continue with the next <item/>.
181
+ will be auto-approved by the ASE `pre-tool-use` hook (which
182
+ tracks the active skill), so *no* interactive permission
183
+ prompt will appear. Then continue with the next <item/>.
179
184
 
180
185
  </if>
181
186
 
@@ -202,8 +207,11 @@ Analyze documents for spelling, punctuation, or grammar errors
202
207
 
203
208
  </for>
204
209
 
205
- 3. You *MUST* call the MCP tool `ase_config_delete(key: "agent.skill",
206
- scope: "session:<ase-session-id/>")` of the `ase` MCP server.
210
+ 3. *Clear the active edit-capable skill marker* now that all `Edit`
211
+ invocations are done, so a later unrelated `Edit` is *not*
212
+ auto-approved. Call the `ase_config_delete(key: "agent.skill",
213
+ scope: "session:<ase-session-id/>")` tool from the `ase` MCP
214
+ server. Do not output anything in this substep.
207
215
 
208
216
  4. You *MUST* *NOT* output any further additional explanations or
209
217
  summaries at the end of this skill processing, except for the
@@ -51,4 +51,4 @@ Proofread an entire documentation directory automatically:
51
51
 
52
52
  ## SEE ALSO
53
53
 
54
- `ase-code-lint`, `ase-meta-changelog`.
54
+ [`ase-code-lint`](../ase-code-lint/help.md), [`ase-meta-changelog`](../ase-meta-changelog/help.md).
@@ -78,7 +78,7 @@ Honor the following tenets throughout the brainstorming:
78
78
 
79
79
  1. <step id="STEP 1: Restate Topic">
80
80
 
81
- Restate the topic to be brainstormed by output the following <template/>:
81
+ Restate the topic to be brainstormed by outputting the following <template/>:
82
82
 
83
83
  <template>
84
84
  <ase-tpl-bullet-secondary/> **TOPIC**: <topic/>
@@ -121,9 +121,11 @@ Honor the following tenets throughout the brainstorming:
121
121
  question <question-M/>, and let the user select the
122
122
  <answer-M/> out of the candidate answers <answer-M-K/> (leave
123
123
  out the answer lines of those candidate answers you have
124
- not determined)
124
+ not determined). For this you *MUST* use the custom
125
+ `custom-dialog` and *NOT* the `AskUserQuestion` based
126
+ "user-dialog":
125
127
 
126
- <expand name="user-dialog">
128
+ <expand name="custom-dialog">
127
129
  <facet-M/>: <question-M/>
128
130
  <answer-M-1/>: (first grounded candidate answer)
129
131
  <answer-M-2/>: (second grounded candidate answer)