@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-refactor
3
3
  argument-hint: "[--help|-h] [--auto|-a] [--dry|-d] [--quick|-Q] [--next|-n <option>[,...]] [<task-id>:] <request>"
4
4
  description: >
5
- Refactor Code Base:
6
- Use when user wants to refactor the code base.
5
+ Refactor Code:
6
+ Use when user wants to "refactor", or "change" the code base.
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 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_-]*$`
@@ -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 <request/> has the format `<id/>: <text/>` where <id/> matches
73
- the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`, then set
74
- <request><text/></request> 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
+ <request/> has the format `<id/>: <text/>` AND
76
+ <id/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
77
+ ">
78
+ Set <request><text/></request> 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 <request/> is empty,
80
- ask the user interactively, without a special tool, for the
85
+ 3. <if condition="<request/> is empty">
86
+ Ask the user interactively, without a special tool, for the
81
87
  initial request with a single question:
82
88
 
83
89
  `**No refactoring details known yet. What is the refactoring you want to request?**`
84
90
 
85
91
  Then set <request/> 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
  refactoring <request/>.
@@ -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 Refactoring Tenets**:
131
+ </step>
132
+
133
+ 3. <step id="STEP 3: Internalize Refactoring Tenets">
123
134
 
124
135
  You *MUST* internalize and honor the following tenets when refactoring.
125
136
  Do not output anything.
@@ -163,7 +174,9 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
163
174
  Design clear interfaces, contracts, and data models --
164
175
  with high attention to boundaries and modularity.
165
176
 
166
- 4. **Find Refactoring Approaches**:
177
+ </step>
178
+
179
+ 4. <step id="STEP 4: Choose Refactoring Approaches">
167
180
 
168
181
  You *MUST* perform the following sub-steps *internally* and *without
169
182
  any output* until and including the recommendation decision. Only
@@ -198,11 +211,8 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
198
211
  <template>
199
212
  ● **APPROACH A<n/>**<annotation/>: *<summary/>*
200
213
  ○ [...]
201
- [...]
202
- [...]
203
- ⊕ **PRO*: [...]
204
- ⊖ **CON*: [...]
205
- <optional-diagram/>
214
+ **PRO**: [...]
215
+ **CON**: [...]
206
216
  </template>
207
217
 
208
218
  Hints:
@@ -210,23 +220,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
210
220
  - Give a short one-sentence <summary/> of the refactoring
211
221
  approach plus *precise* and *ultra brief and concise*
212
222
  refactoring information. Try to keep the number of bullet
213
- points () in the range of 1-4.
214
-
215
- - In case of a *complex refactoring situation* only,
216
- visualize it with an optional diagram <optional-diagram/>
217
- by building a Mermaid specification <mermaid-spec/>
218
- (e.g. `flowchart TB`, `stateDiagram-v2`, `sequenceDiagram`,
219
- `classDiagram`, or `erDiagram`, depending on intent) and
220
- dispatching the rendering to the `ase-meta-diagram`
221
- sub-agent by calling the tool `Agent(name: "ase-meta-diagram",
222
- description: "Diagram Rendering", subagent_type:
223
- "ase:ase-meta-diagram", prompt: <mermaid-spec/>)`, reproducing
224
- its returned fenced code block verbatim. For *current
225
- vs. proposed* comparisons, render each side as a *separate*
226
- `ase-meta-diagram` invocation and stack the rendered blocks
227
- *vertically* (labels `**Before:**` / `**After:**`); never
228
- side-by-side. Omit <optional-diagram/> entirely for simple
229
- or purely local situations.
223
+ points (`○ [...]`) in the range of 1-4.
230
224
 
231
225
  6. Indicate end of reporting by showing the following <template/>:
232
226
 
@@ -234,19 +228,28 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
234
228
  <ase-tpl-foot title="APPROACHES"/>
235
229
  </template>
236
230
 
237
- 5. **Choose Refactoring Approach**:
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/>.
238
236
 
239
- 1. If <getopt-option-auto/> is equal `false`:
240
- Let the *user interactively choose* the preferred refactoring
241
- approach A<n/> with the help of the <user-dialog-tool/> tool.
242
- Use the header `Select Approach`, use `A<n/>: <short-summary/>`
243
- for the option (where <short-summary/> is an ultra brief summary
244
- of the approach A<n/>), and *single-selection* only and provide
245
- small *code change previews*. Mark your recommended refactoring
246
- approach with ` ⚝ **RECOMMENDATION** ⚝` here again. Except for
247
- the interactive selection, do not output anything in this step.
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
+
250
+ </if>
251
+ <else>
248
252
 
249
- 2. If <getopt-option-auto/> is equal `true`:
250
253
  Set <n/> to the number of the refactoring approach A<n/> you recommend.
251
254
  Output a hint with the following <template/>:
252
255
 
@@ -254,7 +257,11 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
254
257
  ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **auto-chosen approach A<n/>**
255
258
  </template>
256
259
 
257
- 6. **Compose Refactoring Plan**:
260
+ </else>
261
+
262
+ </step>
263
+
264
+ 5. <step id="STEP 5: Compose Refactoring Plan">
258
265
 
259
266
  1. *Compose a refactoring plan* for the chosen refactoring A<n/> by
260
267
  closely aligning to the existing architecture and the existing
@@ -298,40 +305,44 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
298
305
  Treat <getopt-option-next/> as a comma-separated chronological
299
306
  list of pre-selected next-step tokens. *Peek* the *first* token
300
307
  as <head/> (or `none` if the list is `none`/empty).
308
+ Set <args>--int-reuse-task</args>.
301
309
 
302
310
  1. <if condition="<head/> is equal `IMPLEMENT`">
303
311
  Consume the head: set <getopt-option-next/> to the remaining
304
- tokens (joined back with `,`, or `none` if empty). Set
305
- <args></args> (empty).
312
+ tokens (joined back with `,`, or `none` if empty).
306
313
  <if condition="<getopt-option-next/> is not equal `none`">
307
- Set <args>--next <getopt-option-next/></args> (forward
308
- remaining list tokens to the downstream skill).
314
+ Set <args><args/> --next <getopt-option-next/></args>
309
315
  </if>
310
- Call the tool `Skill(skill: "ase:ase-task-implement", args: <args/>)`
316
+ Call the tool `Skill(skill: "ase:ase-task-implement", args: "<args/>")`
311
317
  to *implement* the freshly composed plan, bypassing `ase-task-edit`.
312
318
  </if>
313
319
 
314
- 2. <if condition="<head/> is equal `PREFLIGHT`">
320
+ 2. <elseif condition="<head/> is equal `PREFLIGHT`">
315
321
  Consume the head: set <getopt-option-next/> to the remaining
316
- tokens (joined back with `,`, or `none` if empty). Set
317
- <args></args> (empty).
322
+ tokens (joined back with `,`, or `none` if empty).
318
323
  <if condition="<getopt-option-next/> is not equal `none`">
319
- Set <args>--next <getopt-option-next/></args> (forward
320
- remaining list tokens to the downstream skill).
324
+ Set <args><args/> --next <getopt-option-next/></args>
321
325
  </if>
322
- Call the tool `Skill(skill: "ase:ase-task-preflight", args: <args/>)`
326
+ Call the tool `Skill(skill: "ase:ase-task-preflight", args: "<args/>")`
323
327
  to *preflight* the freshly composed plan, bypassing `ase-task-edit`.
324
- </if>
328
+ </elseif>
325
329
 
326
- 3. <if condition="
327
- <head/> is not equal `IMPLEMENT` AND
328
- <head/> is not equal `PREFLIGHT`
329
- ">
330
- Forward the *entire* (unshifted) list to `ase-task-edit`, which
331
- will consume its head itself. Set <args></args> (empty).
332
- <if condition="<getopt-option-next/> is not equal `none`">
333
- Set <args>--next <getopt-option-next/></args> (append to args).
330
+ 3. <else>
331
+ Hand off to `ase-task-edit`.
332
+ <if condition="<head/> is equal `EDIT`">
333
+ Consume the head: set <getopt-option-next/> to the remaining
334
+ tokens (joined back with `,`, or `none` if empty).
334
335
  </if>
335
- Then call the tool `Skill(skill: "ase:ase-task-edit", args: <args/>)`.
336
+ All remaining tokens are `ase-task-edit`'s own vocabulary
337
+ and are forwarded verbatim, so `ase-task-edit` consumes its
338
+ head itself.
339
+ <if condition="<getopt-option-next/> is not equal `none`">
340
+ Set <args><args/> --next <getopt-option-next/></args>
336
341
  </if>
342
+ Then call the tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`.
343
+ </else>
344
+
345
+ <step>
346
+
347
+ </flow>
337
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).
@@ -3,7 +3,7 @@ name: ase-code-resolve
3
3
  argument-hint: "[--help|-h] [--auto|-a] [--dry|-d] [--quick|-Q] [--next|-n <option>[,...]] [<task-id>:] <problem>"
4
4
  description: >
5
5
  Resolve Problem:
6
- Use when user wants a bug fixed or problem resolved.
6
+ Use when user wants to "bugfix" or "fix" code or "resolve" a problem.
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 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`, ...),
@@ -81,20 +83,26 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
81
83
  </template>
82
84
  </if>
83
85
 
84
- 3. If <problem/> has the format `<id/>: <text/>` where <id/> matches
85
- the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`, then set
86
- <problem><text/></problem> and <ase-task-id><id/></ase-task-id>
87
- and call the `ase_task_id(id: "<ase-task-id/>", session:
88
- "<ase-session-id/>")` tool from the `ase` MCP server to
89
- implicitly switch the task. Do not output anything.
86
+ 3. <if condition="
87
+ <problem-id/> is not set AND
88
+ <problem/> has the format `<id/>: <text/>` AND
89
+ <id/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
90
+ ">
91
+ Set <problem><text/></problem> and
92
+ <ase-task-id><id/></ase-task-id> and call the `ase_task_id(id:
93
+ "<ase-task-id/>", session: "<ase-session-id/>")` tool from the
94
+ `ase` MCP server to implicitly switch the task. Do not output
95
+ anything.
96
+ </if>
90
97
 
91
- 4. If <problem/> is empty,
92
- ask the user interactively, without a special tool, for the
98
+ 4. <if condition="<problem/> is empty">
99
+ Ask the user interactively, without a special tool, for the
93
100
  initial problem with a single question:
94
101
 
95
102
  `**No problem details known yet. What is the problem you want to resolve?**`
96
103
 
97
104
  Then set <problem/> to the response of the user.
105
+ </if>
98
106
 
99
107
  5. <if condition="
100
108
  <ase-task-id/> is equal `default` and
@@ -160,7 +168,9 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
160
168
  verbatim. Omit <optional-diagram/> entirely for simple or
161
169
  purely local situations.
162
170
 
163
- 2. **Investigate Code Base**:
171
+ </step>
172
+
173
+ 2. <step id="STEP 2: Investigate Code Base">
164
174
 
165
175
  1. Check the existing source files for all code which is related to the
166
176
  requested <problem/> resolution.
@@ -168,9 +178,11 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
168
178
  2. Check the architecture of the existing code base to understand the
169
179
  overall structures and dynamics.
170
180
 
171
- 3. Do not output anything in this step.
181
+ 3. Do not output anything in this STEP 2.
182
+
183
+ </step>
172
184
 
173
- 3. **Internalize Problem Resolution Tenets**:
185
+ 3. <step id="STEP 3: Internalize Problem Resolution Tenets">
174
186
 
175
187
  You *MUST* internalize and honor the following tenets when resolving the problem.
176
188
  Do not output anything.
@@ -212,7 +224,9 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
212
224
  *theoretical, fictive, or unexpected* errors *should* be
213
225
  handled more generally and in parent scopes.
214
226
 
215
- 4. **Find Problem Resolution Approaches**:
227
+ </step>
228
+
229
+ 4. <step id="STEP 4: Choose Problem Resolution Approaches">
216
230
 
217
231
  You *MUST* perform the following sub-steps *internally* and *without
218
232
  any output* until and including the recommendation decision. Only
@@ -247,35 +261,16 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
247
261
  <template>
248
262
  ● **APPROACH A<n/>**<annotation/>: *<summary/>*
249
263
  ○ [...]
250
- [...]
251
- [...]
252
- ⊕ *PRO*: [...]
253
- ⊖ *CON*: [...]
254
- <optional-diagram/>
264
+ **PRO**: [...]
265
+ **CON**: [...]
255
266
  </template>
256
267
 
257
268
  Hints:
258
269
 
259
270
  - Give a short one-sentence <summary/> of the resolution
260
271
  approach plus *precise* and *ultra brief and concise*
261
- resolution information. Try to keep the number of bullet
262
- points (●) in the range of 1-4.
263
-
264
- - In case of a *complex resolution situation* only,
265
- visualize it with an optional diagram <optional-diagram/>
266
- by building a Mermaid specification <mermaid-spec/>
267
- (e.g. `flowchart TB`, `stateDiagram-v2`, `sequenceDiagram`,
268
- `classDiagram`, or `erDiagram`, depending on intent) and
269
- dispatching the rendering to the `ase-meta-diagram`
270
- sub-agent by calling the tool `Agent(name: "ase-meta-diagram",
271
- description: "Diagram Rendering", subagent_type:
272
- "ase:ase-meta-diagram", prompt: <mermaid-spec/>)`, reproducing
273
- its returned fenced code block verbatim. For *current
274
- vs. proposed* comparisons, render each side as a *separate*
275
- `ase-meta-diagram` invocation and stack the rendered blocks
276
- *vertically* (labels `**Before:**` / `**After:**`); never
277
- side-by-side. Omit <optional-diagram/> entirely for simple
278
- or purely local situations.
272
+ resolution information. Try to keep the number of bullet points
273
+ (`○ [...]`) in the range of 1-4.
279
274
 
280
275
  6. Indicate end of reporting by showing the following <template/>:
281
276
 
@@ -283,18 +278,28 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
283
278
  <ase-tpl-foot title="APPROACHES"/>
284
279
  </template>
285
280
 
286
- 5. **Choose Problem Resolution Approach**:
281
+ 7. <if condition="<getopt-option-auto/> is not `true`">
287
282
 
288
- 1. If <getopt-option-auto/> is equal `false`:
289
- Let the *user interactively choose* the preferred resolution
290
- approach A<n/> with the help of the <user-dialog-tool/> tool.
291
- Use the header `Select Approach`, use `A<n/>: <short-summary/>`
292
- for the option (where <short-summary/> is an ultra brief summary
293
- of the approach A<n/>), and *single-selection* only and provide
294
- small *code change previews*. Mark your recommended resolution
295
- approach with ` ⚝ **RECOMMENDATION** ⚝` here again.
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>
299
+
300
+ </if>
301
+ <else>
296
302
 
297
- 2. If <getopt-option-auto/> is equal `true`:
298
303
  Set <n/> to the number of the resolution approach A<n/> you recommend.
299
304
  Output a hint with the following <template/>:
300
305
 
@@ -302,7 +307,11 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
302
307
  ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **auto-chosen approach A<n/>**
303
308
  </template>
304
309
 
305
- 6. **Compose Problem Resolution Plan**:
310
+ </else>
311
+
312
+ </step>
313
+
314
+ 5. <step id="STEP 5: Compose Problem Resolution Plan">
306
315
 
307
316
  1. *Compose a plan* with code references, a precise description of the
308
317
  problem, the chosen resolution approach, a preview of the *unified
@@ -336,7 +345,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
336
345
  `ase_task_save(id: "<ase-task-id/>", text: "<content/>")`.
337
346
 
338
347
  4. If <problem-id/> is set (i.e. the <problem/> was retrieved from
339
- `ase_kv_get` in STEP 1.3 via key `ase-issue-<problem-id/>`),
348
+ `ase_kv_get` in STEP 1.1 via key `ase-issue-<problem-id/>`),
340
349
  you *MUST* additionally call the `ase_kv_delete(key:
341
350
  "ase-issue-<problem-id/>")` tool of the `ase` MCP
342
351
  server to remove the now-resolved analyzer result from the
@@ -353,40 +362,44 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
353
362
  Treat <getopt-option-next/> as a comma-separated chronological
354
363
  list of pre-selected next-step tokens. *Peek* the *first* token
355
364
  as <head/> (or `none` if the list is `none`/empty).
365
+ Set <args>--int-reuse-task</args>.
356
366
 
357
367
  1. <if condition="<head/> is equal `IMPLEMENT`">
358
368
  Consume the head: set <getopt-option-next/> to the remaining
359
- tokens (joined back with `,`, or `none` if empty). Set
360
- <args></args> (empty).
369
+ tokens (joined back with `,`, or `none` if empty).
361
370
  <if condition="<getopt-option-next/> is not equal `none`">
362
- Set <args>--next <getopt-option-next/></args> (forward
363
- remaining list tokens to the downstream skill).
371
+ Set <args><args/> --next <getopt-option-next/></args>
364
372
  </if>
365
- Call the tool `Skill(skill: "ase:ase-task-implement", args: <args/>)`
373
+ Call the tool `Skill(skill: "ase:ase-task-implement", args: "<args/>")`
366
374
  to *implement* the freshly composed plan, bypassing `ase-task-edit`.
367
375
  </if>
368
376
 
369
- 2. <if condition="<head/> is equal `PREFLIGHT`">
377
+ 2. <elseif condition="<head/> is equal `PREFLIGHT`">
370
378
  Consume the head: set <getopt-option-next/> to the remaining
371
- tokens (joined back with `,`, or `none` if empty). Set
372
- <args></args> (empty).
379
+ tokens (joined back with `,`, or `none` if empty).
373
380
  <if condition="<getopt-option-next/> is not equal `none`">
374
- Set <args>--next <getopt-option-next/></args> (forward
375
- remaining list tokens to the downstream skill).
381
+ Set <args><args/> --next <getopt-option-next/></args>
376
382
  </if>
377
- Call the tool `Skill(skill: "ase:ase-task-preflight", args: <args/>)`
383
+ Call the tool `Skill(skill: "ase:ase-task-preflight", args: "<args/>")`
378
384
  to *preflight* the freshly composed plan, bypassing `ase-task-edit`.
379
- </if>
385
+ </elseif>
380
386
 
381
- 3. <if condition="
382
- <head/> is not equal `IMPLEMENT` AND
383
- <head/> is not equal `PREFLIGHT`
384
- ">
385
- Forward the *entire* (unshifted) list to `ase-task-edit`, which
386
- will consume its head itself. Set <args></args> (empty).
387
- <if condition="<getopt-option-next/> is not equal `none`">
388
- Set <args>--next <getopt-option-next/></args> (append to args).
387
+ 3. <else>
388
+ Hand off to `ase-task-edit`.
389
+ <if condition="<head/> is equal `EDIT`">
390
+ Consume the head: set <getopt-option-next/> to the remaining
391
+ tokens (joined back with `,`, or `none` if empty).
389
392
  </if>
390
- Then call the tool `Skill(skill: "ase:ase-task-edit", args: <args/>)`.
393
+ All remaining tokens are `ase-task-edit`'s own vocabulary
394
+ and are forwarded verbatim, so `ase-task-edit` consumes its
395
+ head itself.
396
+ <if condition="<getopt-option-next/> is not equal `none`">
397
+ Set <args><args/> --next <getopt-option-next/></args>
391
398
  </if>
399
+ Then call the tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`.
400
+ </else>
401
+
402
+ <step>
403
+
404
+ </flow>
392
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).
@@ -122,7 +122,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
122
122
  only*: keep at most `min(<getopt-option-top/>, number of salient
123
123
  points)` points and *never pad* the list with filler to reach
124
124
  the bound. If <getopt-option-top/> is *non-numeric* or *less
125
- than or equal to 0*, use the default *10* instead.
125
+ than or equal to 0*, use the default *5* instead.
126
126
 
127
127
  You *MUST* *NOT* output anything in this STEP 2.
128
128
 
@@ -32,15 +32,15 @@ one block per point, each showing its *LOCATION*, *EVIDENCE*,
32
32
  ranking is *auditable* rather than an opaque ordering.
33
33
 
34
34
  The `--top`/`-t` *N* option is a *length dial* that bounds the list to at
35
- most *N* points (default *10*). It is an *upper bound only*: when the
35
+ most *N* points (default *5*). It is an *upper bound only*: when the
36
36
  document has fewer salient points than *N*, the skill emits only the
37
37
  points it found and *never pads* the list with filler; a `0`, negative, or
38
- non-numeric value falls back to the default *10*.
38
+ non-numeric value falls back to the default *5*.
39
39
 
40
40
  ## ARGUMENTS
41
41
 
42
42
  `--top`, `-t` *N*:
43
- Bound the ranked list to at most *N* key points (default *10*). The
43
+ Bound the ranked list to at most *N* key points (default *5*). The
44
44
  bound is a *cap*, never a *quota* - fewer points are emitted when the
45
45
  document does not contain *N* salient ones, and an invalid or
46
46
  non-positive *N* reverts to the default.
@@ -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