@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.
- package/dst/ase-getopt.js +71 -5
- package/dst/ase-hook.js +6 -21
- package/dst/ase-markdown.js +32 -11
- package/dst/ase-mcp.js +22 -8
- package/dst/ase-notify.js +32 -0
- package/dst/ase-service.js +5 -2
- package/dst/ase-setup.js +45 -131
- package/dst/ase-skills.js +17 -13
- package/dst/ase-statusline.js +8 -12
- package/dst/ase-task.js +32 -23
- package/package.json +3 -3
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.github/plugin/plugin.json +1 -1
- package/plugin/agents/ase-docs-proofread.md +2 -2
- package/plugin/meta/ase-constitution.md +7 -0
- package/plugin/meta/ase-control.md +24 -3
- package/plugin/meta/ase-dialog.md +105 -7
- package/plugin/meta/ase-format-task.md +2 -2
- package/plugin/meta/ase-getopt.md +31 -22
- package/plugin/meta/ase-skill.md +87 -12
- package/plugin/package.json +2 -2
- package/plugin/skills/ase-arch-analyze/SKILL.md +88 -89
- package/plugin/skills/ase-arch-analyze/help.md +2 -2
- package/plugin/skills/ase-arch-discover/SKILL.md +56 -34
- package/plugin/skills/ase-arch-discover/help.md +1 -1
- package/plugin/skills/ase-code-analyze/SKILL.md +6 -5
- package/plugin/skills/ase-code-analyze/help.md +2 -2
- package/plugin/skills/ase-code-craft/SKILL.md +83 -71
- package/plugin/skills/ase-code-craft/help.md +2 -2
- package/plugin/skills/ase-code-explain/SKILL.md +1 -1
- package/plugin/skills/ase-code-explain/help.md +1 -1
- package/plugin/skills/ase-code-insight/SKILL.md +1 -1
- package/plugin/skills/ase-code-insight/help.md +1 -1
- package/plugin/skills/ase-code-lint/SKILL.md +35 -18
- package/plugin/skills/ase-code-lint/help.md +2 -2
- package/plugin/skills/ase-code-refactor/SKILL.md +81 -70
- package/plugin/skills/ase-code-refactor/help.md +2 -2
- package/plugin/skills/ase-code-resolve/SKILL.md +83 -70
- package/plugin/skills/ase-code-resolve/help.md +3 -3
- package/plugin/skills/ase-docs-distill/SKILL.md +1 -1
- package/plugin/skills/ase-docs-distill/help.md +4 -4
- package/plugin/skills/ase-docs-proofread/SKILL.md +36 -19
- package/plugin/skills/ase-docs-proofread/help.md +1 -1
- package/plugin/skills/ase-meta-brainstorm/SKILL.md +29 -8
- package/plugin/skills/ase-meta-brainstorm/help.md +7 -11
- package/plugin/skills/ase-meta-changelog/help.md +1 -1
- package/plugin/skills/ase-meta-chat/help.md +1 -1
- package/plugin/skills/ase-meta-commit/help.md +1 -1
- package/plugin/skills/ase-meta-diaboli/help.md +2 -2
- package/plugin/skills/ase-meta-diff/SKILL.md +6 -5
- package/plugin/skills/ase-meta-diff/help.md +11 -12
- package/plugin/skills/ase-meta-evaluate/SKILL.md +10 -9
- package/plugin/skills/ase-meta-evaluate/help.md +2 -2
- package/plugin/skills/ase-meta-persona/help.md +1 -1
- package/plugin/skills/ase-meta-quorum/SKILL.md +15 -5
- package/plugin/skills/ase-meta-quorum/help.md +1 -1
- package/plugin/skills/ase-meta-review/SKILL.md +3 -4
- package/plugin/skills/ase-meta-review/help.md +5 -5
- package/plugin/skills/ase-meta-search/SKILL.md +9 -8
- package/plugin/skills/ase-meta-search/help.md +1 -1
- package/plugin/skills/ase-meta-steelman/SKILL.md +1 -1
- package/plugin/skills/ase-meta-steelman/help.md +2 -2
- package/plugin/skills/ase-meta-why/SKILL.md +16 -10
- package/plugin/skills/ase-meta-why/help.md +1 -1
- package/plugin/skills/ase-task-condense/SKILL.md +36 -19
- package/plugin/skills/ase-task-condense/help.md +3 -3
- package/plugin/skills/ase-task-delete/SKILL.md +6 -3
- package/plugin/skills/ase-task-delete/help.md +2 -2
- package/plugin/skills/ase-task-edit/SKILL.md +61 -36
- package/plugin/skills/ase-task-edit/help.md +4 -4
- package/plugin/skills/ase-task-grill/SKILL.md +57 -26
- package/plugin/skills/ase-task-grill/help.md +3 -3
- package/plugin/skills/ase-task-id/SKILL.md +11 -2
- package/plugin/skills/ase-task-id/help.md +2 -2
- package/plugin/skills/ase-task-implement/SKILL.md +40 -17
- package/plugin/skills/ase-task-implement/help.md +2 -2
- package/plugin/skills/ase-task-list/SKILL.md +1 -1
- package/plugin/skills/ase-task-list/help.md +2 -2
- package/plugin/skills/ase-task-preflight/SKILL.md +44 -22
- package/plugin/skills/ase-task-preflight/help.md +3 -3
- package/plugin/skills/ase-task-reboot/SKILL.md +31 -20
- package/plugin/skills/ase-task-reboot/help.md +2 -2
- package/plugin/skills/ase-task-rename/SKILL.md +5 -3
- package/plugin/skills/ase-task-rename/help.md +2 -2
- 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
|
|
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
|
-
|
|
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.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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.
|
|
80
|
-
|
|
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
|
-
|
|
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
|
|
129
|
+
3. Do not output anything in this STEP 2.
|
|
121
130
|
|
|
122
|
-
|
|
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
|
-
|
|
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 (
|
|
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
|
-
|
|
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
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
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
|
-
|
|
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).
|
|
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
|
-
|
|
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. <
|
|
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).
|
|
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
|
-
|
|
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
|
-
</
|
|
328
|
+
</elseif>
|
|
325
329
|
|
|
326
|
-
3. <
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
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
|
-
|
|
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
|
|
90
|
-
`ase-task-preflight
|
|
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
|
|
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
|
-
|
|
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.
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
"
|
|
89
|
-
|
|
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.
|
|
92
|
-
|
|
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
|
-
|
|
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
|
|
181
|
+
3. Do not output anything in this STEP 2.
|
|
182
|
+
|
|
183
|
+
</step>
|
|
172
184
|
|
|
173
|
-
3.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
281
|
+
7. <if condition="<getopt-option-auto/> is not `true`">
|
|
287
282
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
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
|
-
|
|
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.
|
|
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).
|
|
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
|
-
|
|
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. <
|
|
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).
|
|
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
|
-
|
|
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
|
-
</
|
|
385
|
+
</elseif>
|
|
380
386
|
|
|
381
|
-
3. <
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
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
|
-
|
|
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
|
|
96
|
-
`ase-arch-analyze
|
|
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 *
|
|
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 *
|
|
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 *
|
|
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 *
|
|
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
|
|
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
|
|