@rse/ase 0.9.7 → 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 (85) hide show
  1. package/dst/ase-getopt.js +71 -5
  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 +32 -23
  11. package/package.json +3 -3
  12. package/plugin/.claude-plugin/plugin.json +1 -1
  13. package/plugin/.github/plugin/plugin.json +1 -1
  14. package/plugin/agents/ase-docs-proofread.md +2 -2
  15. package/plugin/meta/ase-constitution.md +7 -0
  16. package/plugin/meta/ase-control.md +24 -3
  17. package/plugin/meta/ase-dialog.md +105 -7
  18. package/plugin/meta/ase-format-task.md +2 -2
  19. package/plugin/meta/ase-getopt.md +31 -22
  20. package/plugin/meta/ase-skill.md +87 -12
  21. package/plugin/package.json +2 -2
  22. package/plugin/skills/ase-arch-analyze/SKILL.md +88 -89
  23. package/plugin/skills/ase-arch-analyze/help.md +2 -2
  24. package/plugin/skills/ase-arch-discover/SKILL.md +56 -34
  25. package/plugin/skills/ase-arch-discover/help.md +1 -1
  26. package/plugin/skills/ase-code-analyze/SKILL.md +6 -5
  27. package/plugin/skills/ase-code-analyze/help.md +2 -2
  28. package/plugin/skills/ase-code-craft/SKILL.md +83 -71
  29. package/plugin/skills/ase-code-craft/help.md +2 -2
  30. package/plugin/skills/ase-code-explain/SKILL.md +1 -1
  31. package/plugin/skills/ase-code-explain/help.md +1 -1
  32. package/plugin/skills/ase-code-insight/SKILL.md +1 -1
  33. package/plugin/skills/ase-code-insight/help.md +1 -1
  34. package/plugin/skills/ase-code-lint/SKILL.md +35 -18
  35. package/plugin/skills/ase-code-lint/help.md +2 -2
  36. package/plugin/skills/ase-code-refactor/SKILL.md +81 -70
  37. package/plugin/skills/ase-code-refactor/help.md +2 -2
  38. package/plugin/skills/ase-code-resolve/SKILL.md +83 -70
  39. package/plugin/skills/ase-code-resolve/help.md +3 -3
  40. package/plugin/skills/ase-docs-distill/SKILL.md +1 -1
  41. package/plugin/skills/ase-docs-distill/help.md +4 -4
  42. package/plugin/skills/ase-docs-proofread/SKILL.md +36 -19
  43. package/plugin/skills/ase-docs-proofread/help.md +1 -1
  44. package/plugin/skills/ase-meta-brainstorm/SKILL.md +29 -8
  45. package/plugin/skills/ase-meta-brainstorm/help.md +7 -11
  46. package/plugin/skills/ase-meta-changelog/help.md +1 -1
  47. package/plugin/skills/ase-meta-chat/help.md +1 -1
  48. package/plugin/skills/ase-meta-commit/help.md +1 -1
  49. package/plugin/skills/ase-meta-diaboli/help.md +2 -2
  50. package/plugin/skills/ase-meta-diff/SKILL.md +6 -5
  51. package/plugin/skills/ase-meta-diff/help.md +11 -12
  52. package/plugin/skills/ase-meta-evaluate/SKILL.md +10 -9
  53. package/plugin/skills/ase-meta-evaluate/help.md +2 -2
  54. package/plugin/skills/ase-meta-persona/help.md +1 -1
  55. package/plugin/skills/ase-meta-quorum/SKILL.md +15 -5
  56. package/plugin/skills/ase-meta-quorum/help.md +1 -1
  57. package/plugin/skills/ase-meta-review/SKILL.md +3 -4
  58. package/plugin/skills/ase-meta-review/help.md +5 -5
  59. package/plugin/skills/ase-meta-search/SKILL.md +9 -8
  60. package/plugin/skills/ase-meta-search/help.md +1 -1
  61. package/plugin/skills/ase-meta-steelman/SKILL.md +1 -1
  62. package/plugin/skills/ase-meta-steelman/help.md +2 -2
  63. package/plugin/skills/ase-meta-why/SKILL.md +16 -10
  64. package/plugin/skills/ase-meta-why/help.md +1 -1
  65. package/plugin/skills/ase-task-condense/SKILL.md +36 -19
  66. package/plugin/skills/ase-task-condense/help.md +3 -3
  67. package/plugin/skills/ase-task-delete/SKILL.md +6 -3
  68. package/plugin/skills/ase-task-delete/help.md +2 -2
  69. package/plugin/skills/ase-task-edit/SKILL.md +61 -36
  70. package/plugin/skills/ase-task-edit/help.md +4 -4
  71. package/plugin/skills/ase-task-grill/SKILL.md +57 -26
  72. package/plugin/skills/ase-task-grill/help.md +3 -3
  73. package/plugin/skills/ase-task-id/SKILL.md +11 -2
  74. package/plugin/skills/ase-task-id/help.md +2 -2
  75. package/plugin/skills/ase-task-implement/SKILL.md +40 -17
  76. package/plugin/skills/ase-task-implement/help.md +2 -2
  77. package/plugin/skills/ase-task-list/SKILL.md +1 -1
  78. package/plugin/skills/ase-task-list/help.md +2 -2
  79. package/plugin/skills/ase-task-preflight/SKILL.md +44 -22
  80. package/plugin/skills/ase-task-preflight/help.md +3 -3
  81. package/plugin/skills/ase-task-reboot/SKILL.md +31 -20
  82. package/plugin/skills/ase-task-reboot/help.md +2 -2
  83. package/plugin/skills/ase-task-rename/SKILL.md +5 -3
  84. package/plugin/skills/ase-task-rename/help.md +2 -2
  85. package/plugin/skills/ase-task-view/help.md +26 -7
@@ -2,8 +2,8 @@
2
2
  name: ase-code-craft
3
3
  argument-hint: "[--help|-h] [--auto|-a] [--dry|-d] [--quick|-Q] [--next|-n <option>[,...]] [<task-id>:] <feature>"
4
4
  description: >
5
- Craft Source Code:
6
- Use when user wants to create or craft a new feature from scratch.
5
+ Craft Source:
6
+ Use when user wants to "create", "add", or "craft" a new feature from scratch.
7
7
  user-invocable: true
8
8
  disable-model-invocation: false
9
9
  effort: xhigh
@@ -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_-]*$`
@@ -69,20 +71,25 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
69
71
  </template>
70
72
  </if>
71
73
 
72
- 2. If <feature/> has the format `<id/>: <text/>` where <id/> matches
73
- the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`, then set
74
- <feature><text/></feature> and <ase-task-id><id/></ase-task-id>
75
- and call the `ase_task_id(id: "<ase-task-id/>", session:
76
- "<ase-session-id/>")` tool from the `ase` MCP server to
77
- implicitly switch the task. Do not output anything.
74
+ 2. <if condition="
75
+ <feature/> has the format `<id/>: <text/>` AND
76
+ <id/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
77
+ ">
78
+ Set <feature><text/></feature> and
79
+ <ase-task-id><id/></ase-task-id> and call the `ase_task_id(id:
80
+ "<ase-task-id/>", session: "<ase-session-id/>")` tool from the
81
+ `ase` MCP server to implicitly switch the task. Do not output
82
+ anything.
83
+ </if>
78
84
 
79
- 3. If <feature/> is empty,
80
- ask the user interactively, without a special tool, for the
85
+ 3. <if condition="<feature/> is empty">
86
+ Ask the user interactively, without a special tool, for the
81
87
  initial feature with a single question:
82
88
 
83
89
  `**No feature known yet. What is the feature you want to craft?**`
84
90
 
85
91
  Then set <feature/> to the response of the user.
92
+ </if>
86
93
 
87
94
  4. <if condition="
88
95
  <ase-task-id/> is equal `default` and
@@ -109,7 +116,9 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
109
116
 
110
117
  8. Do not output anything in this step, unless you asked the user.
111
118
 
112
- 2. **Investigate Code Base**:
119
+ </step>
120
+
121
+ 2. <step id="STEP 2: Investigate Code Base">
113
122
 
114
123
  1. Check the existing source files for all code which is related to the
115
124
  requested new <feature/>.
@@ -117,9 +126,11 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
117
126
  2. Check the architecture of the existing code base to understand the
118
127
  overall structures and dynamics.
119
128
 
120
- 3. Do not output anything in this step.
129
+ 3. Do not output anything in this STEP 2.
121
130
 
122
- 3. **Internalize Crafting Tenets**:
131
+ </step>
132
+
133
+ 3. <step id="STEP 3: Internalize Crafting Tenets">
123
134
 
124
135
  You *MUST* internalize and honor the following tenets when crafting the new feature.
125
136
  Do not output anything.
@@ -174,7 +185,9 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
174
185
  Honor the non-functional requirements Performance, Security,
175
186
  Scalability, Comprehensibility.
176
187
 
177
- 4. **Find Feature Crafting Approaches**:
188
+ </step>
189
+
190
+ 4. <step id="STEP 4: Choose Feature Crafting Approaches">
178
191
 
179
192
  You *MUST* perform the following sub-steps *internally* and *without
180
193
  any output* until and including the recommendation decision. Only
@@ -203,16 +216,14 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
203
216
  </template>
204
217
 
205
218
  5. Now report each approach with the following <template/>,
206
- 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:
207
221
 
208
222
  <template>
209
223
  ● **APPROACH A<n/>**<annotation/>: *<summary/>*
210
224
  ○ [...]
211
- [...]
212
- [...]
213
- ⊕ *PRO*: [...]
214
- ⊖ *CON*: [...]
215
- <optional-diagram/>
225
+ **PRO**: [...]
226
+ **CON**: [...]
216
227
  </template>
217
228
 
218
229
  Hints:
@@ -220,23 +231,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
220
231
  - Give a short one-sentence <summary/> of the feature
221
232
  approach plus *precise* and *ultra brief and concise*
222
233
  feature information. Try to keep the number of bullet points
223
- () in the range of 1-4.
224
-
225
- - In case of a *complex feature situation* only, visualize
226
- it with an optional diagram <optional-diagram/> by building
227
- a Mermaid specification <mermaid-spec/> (e.g. `flowchart
228
- TB`, `stateDiagram-v2`, `sequenceDiagram`, `classDiagram`,
229
- or `erDiagram`, depending on intent) and dispatching the
230
- rendering to the `ase-meta-diagram` sub-agent by calling
231
- the tool `Agent(name: "ase-meta-diagram", description:
232
- "Diagram Rendering", subagent_type: "ase:ase-meta-diagram",
233
- prompt: <mermaid-spec/>)`, reproducing its returned fenced
234
- code block verbatim. For *current vs. proposed* comparisons,
235
- render each side as a *separate* `ase-meta-diagram`
236
- invocation and stack the rendered blocks *vertically*
237
- (labels `**Before:**` / `**After:**`); never side-by-side.
238
- Omit <optional-diagram/> entirely for simple or purely local
239
- situations.
234
+ (`○ [...]`) in the range of 1-4.
240
235
 
241
236
  6. Indicate end of reporting by showing the following <template/>:
242
237
 
@@ -244,18 +239,28 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
244
239
  <ase-tpl-foot title="APPROACHES"/>
245
240
  </template>
246
241
 
247
- 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/>.
248
247
 
249
- 1. If <getopt-option-auto/> is equal `false`:
250
- Let the *user interactively choose* the preferred feature
251
- approach A<n/> with the help of the <user-dialog-tool/> tool.
252
- Use the header `Select Approach`, use `A<n/>: <short-summary/>`
253
- for the option (where <short-summary/> is an ultra brief summary
254
- of the approach A<n/>), and *single-selection* only and provide
255
- small *code change previews*. Mark your recommended feature
256
- approach with ` ⚝ **RECOMMENDATION** ⚝` here again.
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>
260
+
261
+ </if>
262
+ <else>
257
263
 
258
- 2. If <getopt-option-auto/> is equal `true`:
259
264
  Set <n/> to the number of the feature approach A<n/> you recommend.
260
265
  Output a hint with the following <template/>:
261
266
 
@@ -263,7 +268,11 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
263
268
  ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **auto-chosen approach A<n/>**
264
269
  </template>
265
270
 
266
- 6. **Compose Feature Crafting Plan**:
271
+ </else>
272
+
273
+ </step>
274
+
275
+ 5. <step id="STEP 5: Compose Feature Crafting Plan">
267
276
 
268
277
  1. *Compose a feature plan* for the chosen feature A<n/> by
269
278
  closely aligning to the existing architecture and the existing
@@ -293,7 +302,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
293
302
  <timestamp-modified/> information and calculate the number of
294
303
  words <words/> of <content/>.
295
304
 
296
- 3. You *MUST* *save* the resulting plan content with the
305
+ 3. You then *MUST* *save* the resulting plan content with the
297
306
  `ase_task_save(id: "<ase-task-id/>", text: "<content/>")`.
298
307
 
299
308
  4. Output a hint with the following <template/>:
@@ -307,40 +316,43 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
307
316
  Treat <getopt-option-next/> as a comma-separated chronological
308
317
  list of pre-selected next-step tokens. *Peek* the *first* token
309
318
  as <head/> (or `none` if the list is `none`/empty).
319
+ Set <args>--int-reuse-task</args>.
310
320
 
311
321
  1. <if condition="<head/> is equal `IMPLEMENT`">
312
322
  Consume the head: set <getopt-option-next/> to the remaining
313
- tokens (joined back with `,`, or `none` if empty). Set
314
- <args></args> (empty).
323
+ tokens (joined back with `,`, or `none` if empty).
315
324
  <if condition="<getopt-option-next/> is not equal `none`">
316
- Set <args>--next <getopt-option-next/></args> (forward
317
- remaining list tokens to the downstream skill).
325
+ Set <args><args/> --next <getopt-option-next/></args>
318
326
  </if>
319
- Call the tool `Skill(skill: "ase:ase-task-implement", args: <args/>)`
327
+ Call the tool `Skill(skill: "ase:ase-task-implement", args: "<args/>")`
320
328
  to *implement* the freshly composed plan, bypassing `ase-task-edit`.
321
329
  </if>
322
330
 
323
- 2. <if condition="<head/> is equal `PREFLIGHT`">
331
+ 2. <elseif condition="<head/> is equal `PREFLIGHT`">
324
332
  Consume the head: set <getopt-option-next/> to the remaining
325
- tokens (joined back with `,`, or `none` if empty). Set
326
- <args></args> (empty).
333
+ tokens (joined back with `,`, or `none` if empty).
327
334
  <if condition="<getopt-option-next/> is not equal `none`">
328
- Set <args>--next <getopt-option-next/></args> (forward
329
- remaining list tokens to the downstream skill).
335
+ Set <args><args/> --next <getopt-option-next/></args>
330
336
  </if>
331
- Call the tool `Skill(skill: "ase:ase-task-preflight", args: <args/>)`
337
+ Call the tool `Skill(skill: "ase:ase-task-preflight", args: "<args/>")`
332
338
  to *preflight* the freshly composed plan, bypassing `ase-task-edit`.
333
- </if>
339
+ </elseif>
334
340
 
335
- 3. <if condition="
336
- <head/> is not equal `IMPLEMENT` AND
337
- <head/> is not equal `PREFLIGHT`
338
- ">
339
- Forward the *entire* (unshifted) list to `ase-task-edit`, which
340
- will consume its head itself. Set <args></args> (empty).
341
- <if condition="<getopt-option-next/> is not equal `none`">
342
- Set <args>--next <getopt-option-next/></args> (append to args).
341
+ 3. <else>
342
+ Hand off to `ase-task-edit`.
343
+ <if condition="<head/> is equal `EDIT`">
344
+ Consume the head: set <getopt-option-next/> to the remaining
345
+ tokens (joined back with `,`, or `none` if empty).
343
346
  </if>
344
- Then call the tool `Skill(skill: "ase:ase-task-edit", args: <args/>)`.
347
+ All remaining tokens are `ase-task-edit`'s own vocabulary
348
+ and are forwarded verbatim, so `ase-task-edit` consumes its
349
+ head itself.
350
+ <if condition="<getopt-option-next/> is not equal `none`">
351
+ Set <args><args/> --next <getopt-option-next/></args>
345
352
  </if>
353
+ Then call the tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`.
354
+ </else>
355
+
356
+ <step>
346
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).
@@ -71,7 +71,7 @@ code and *explain* it in a *brief*, *standardized*, and *concise* way.
71
71
  `sequenceDiagram` for actor/message flow, or `flowchart TB` for
72
72
  boxes-and-lines component layouts. Then dispatch the rendering to
73
73
  the `ase-meta-diagram` sub-agent by calling the tool `Agent(name:
74
- "ase:ase-meta-diagram", description: "Diagram Rendering", subagent_type:
74
+ "ase-meta-diagram", description: "Diagram Rendering", subagent_type:
75
75
  "ase:ase-meta-diagram", prompt: <mermaid-spec/>)` and reproduce its
76
76
  returned fenced code block verbatim in the response text. Do *not*
77
77
  hand-draw.
@@ -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).
@@ -70,7 +70,7 @@ Give *insights* into the project through the source code of $ARGUMENTS.
70
70
  Then run the following command...
71
71
 
72
72
  ```
73
- git log --format=format: --name-only --since="1 year ago" | sort | uniq -c | sort -nr | head -10
73
+ git log --format=format: --name-only --since="1 year ago" | grep -v '^$' | sort | uniq -c | sort -nr | head -10
74
74
  ```
75
75
 
76
76
  ...and then display its result as a table with a table head and
@@ -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-docs-proofread", 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
 
@@ -150,7 +152,7 @@ related to a set of code quality aspects.
150
152
  3. Append the following <template/> to <diff-file/>:
151
153
 
152
154
  <template>
153
- @@ -<line/>,<n/> +<line/>,<m/> @@
155
+ @@ -<old-start/>,<n/> +<new-start/>,<m/> @@
154
156
  <context-before/>
155
157
  -<old-text/>
156
158
  +<new-text/>
@@ -158,8 +160,16 @@ related to a set of code quality aspects.
158
160
  </template>
159
161
 
160
162
  Hints:
161
- - The <n/> is the number of lines in <old-text/>.
162
- - The <m/> is the number of lines in <new-text/>.
163
+ - The <old-start/> is the line of the first hunk line, i.e.,
164
+ the line of <context-before/> (one before <line/>).
165
+ - The <new-start/> is the same as <old-start/> (the unchanged
166
+ <context-before/> line shares the same start in both files).
167
+ - The <n/> is the total number of old-side hunk lines, i.e.,
168
+ the number of lines in <context-before/>, <old-text/>, and
169
+ <context-after/> combined.
170
+ - The <m/> is the total number of new-side hunk lines, i.e.,
171
+ the number of lines in <context-before/>, <new-text/>, and
172
+ <context-after/> combined.
163
173
 
164
174
  </for>
165
175
 
@@ -190,7 +200,7 @@ related to a set of code quality aspects.
190
200
  </template>
191
201
 
192
202
  </if>
193
- <if condition="<getopt-option-auto/> is 'true'">
203
+ <else>
194
204
 
195
205
  Report the solution with the following <template/>:
196
206
 
@@ -201,13 +211,15 @@ related to a set of code quality aspects.
201
211
 
202
212
  </template>
203
213
 
204
- </if>
214
+ </else>
205
215
 
206
216
  6. <if condition="<getopt-option-auto/> is not 'true'">
207
217
 
208
- 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`:
209
221
 
210
- <expand name="user-dialog">
222
+ <expand name="custom-dialog">
211
223
  CORRECTION: How would you like to proceed with this proposed correction?
212
224
  ACCEPT: Apply the proposed correction.
213
225
  REJECT: Skip this proposed correction.
@@ -215,19 +227,22 @@ related to a set of code quality aspects.
215
227
 
216
228
  </if>
217
229
 
218
- <if condition="<getopt-option-auto/> is 'true'">
230
+ <else>
219
231
 
220
232
  Set <result>ACCEPT</result>.
221
233
  You *MUST* *NOT* output anything else in this step 6.
222
234
 
223
- </if>
235
+ </else>
224
236
 
225
237
  7. Check <result/> and dispatch accordingly:
226
238
 
227
239
  - <if condition="<result/> is 'ACCEPT'">
228
240
  Invoke the `Edit` tool to apply the changes exactly
229
- as shown in the <diff/>. After applying the changes,
230
- 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/>.
231
246
  </if>
232
247
 
233
248
  - <if condition="<result/> starts with 'OTHER'">
@@ -249,9 +264,11 @@ related to a set of code quality aspects.
249
264
 
250
265
  </for>
251
266
 
252
- 3. You *MUST* call the MCP tool `ase_config_delete(key: "agent.skill",
253
- scope: "session:<ase-session-id/>")` of the `ase` MCP server.
254
- 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.
255
272
 
256
273
  4. You *MUST* *NOT* output any further additional explanations or
257
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).