@rse/ase 0.9.7 → 0.9.8
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 +11 -1
- package/dst/ase-task.js +20 -21
- package/package.json +2 -2
- 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-format-task.md +2 -2
- package/plugin/meta/ase-getopt.md +2 -1
- package/plugin/meta/ase-skill.md +28 -9
- package/plugin/package.json +2 -2
- package/plugin/skills/ase-arch-analyze/SKILL.md +88 -89
- package/plugin/skills/ase-arch-discover/SKILL.md +18 -9
- package/plugin/skills/ase-code-analyze/SKILL.md +6 -5
- package/plugin/skills/ase-code-craft/SKILL.md +42 -35
- package/plugin/skills/ase-code-explain/SKILL.md +1 -1
- package/plugin/skills/ase-code-insight/SKILL.md +1 -1
- package/plugin/skills/ase-code-lint/SKILL.md +16 -8
- package/plugin/skills/ase-code-refactor/SKILL.md +42 -35
- package/plugin/skills/ase-code-resolve/SKILL.md +43 -35
- package/plugin/skills/ase-docs-distill/SKILL.md +1 -1
- package/plugin/skills/ase-docs-distill/help.md +3 -3
- package/plugin/skills/ase-docs-proofread/SKILL.md +22 -13
- package/plugin/skills/ase-meta-brainstorm/SKILL.md +25 -6
- package/plugin/skills/ase-meta-brainstorm/help.md +6 -10
- package/plugin/skills/ase-meta-diff/SKILL.md +5 -4
- package/plugin/skills/ase-meta-diff/help.md +10 -11
- package/plugin/skills/ase-meta-evaluate/SKILL.md +10 -9
- package/plugin/skills/ase-meta-quorum/SKILL.md +15 -5
- package/plugin/skills/ase-meta-review/SKILL.md +3 -3
- package/plugin/skills/ase-meta-review/help.md +3 -3
- package/plugin/skills/ase-meta-search/SKILL.md +9 -8
- package/plugin/skills/ase-meta-steelman/SKILL.md +1 -1
- package/plugin/skills/ase-meta-why/SKILL.md +16 -10
- package/plugin/skills/ase-task-condense/SKILL.md +32 -17
- package/plugin/skills/ase-task-condense/help.md +1 -1
- package/plugin/skills/ase-task-delete/SKILL.md +6 -3
- package/plugin/skills/ase-task-edit/SKILL.md +53 -32
- package/plugin/skills/ase-task-edit/help.md +2 -2
- package/plugin/skills/ase-task-grill/SKILL.md +53 -24
- package/plugin/skills/ase-task-id/SKILL.md +11 -2
- package/plugin/skills/ase-task-implement/SKILL.md +36 -15
- package/plugin/skills/ase-task-list/SKILL.md +1 -1
- package/plugin/skills/ase-task-preflight/SKILL.md +40 -20
- package/plugin/skills/ase-task-preflight/help.md +1 -1
- package/plugin/skills/ase-task-reboot/SKILL.md +27 -18
- package/plugin/skills/ase-task-rename/SKILL.md +5 -3
- package/plugin/skills/ase-task-view/help.md +24 -5
|
@@ -86,6 +86,15 @@ for the technology stack to *provide* the *needed functionality*
|
|
|
86
86
|
</step>
|
|
87
87
|
|
|
88
88
|
3. <step id="STEP 3: Discover Components">
|
|
89
|
+
- If <stack/> is "Unknown", the technology stack could not be
|
|
90
|
+
determined and no component discovery backend is available.
|
|
91
|
+
Inform the user with just the following <template/> and then
|
|
92
|
+
*STOP* the entire flow (do not perform any further steps):
|
|
93
|
+
|
|
94
|
+
<template>
|
|
95
|
+
<ase-tpl-bullet-normal/> **RESULT**: technology stack could not be determined -- component discovery is only supported for JavaScript, TypeScript, Java, and Kotlin projects.
|
|
96
|
+
</template>
|
|
97
|
+
|
|
89
98
|
- From <stack/> and <functionality/>, derive essential keywords
|
|
90
99
|
<keyword-L/> (L=1-M), which allow you to search for suitable
|
|
91
100
|
components.
|
|
@@ -122,7 +131,7 @@ for the technology stack to *provide* the *needed functionality*
|
|
|
122
131
|
their unique Maven coordinates <package-K/> of the form
|
|
123
132
|
`groupId:artifactId`.
|
|
124
133
|
|
|
125
|
-
- Use the shell command `curl -s 'https://search.maven.org/solrsearch/select?q=<keyword-1
|
|
134
|
+
- Use the shell command `curl -s 'https://search.maven.org/solrsearch/select?q=<keyword-1/>+[...]+<keyword-M/>&rows=<getopt-option-limit/>&wt=json'`
|
|
126
135
|
to *specifically* discover an additional set of a maximum
|
|
127
136
|
of <getopt-option-limit/> *Maven packages* <component-K/> and at least their
|
|
128
137
|
unique Maven coordinates <package-K/> (i.e. `<g/>:<a/>` from
|
|
@@ -167,11 +176,11 @@ for the technology stack to *provide* the *needed functionality*
|
|
|
167
176
|
<template>
|
|
168
177
|
<ase-tpl-bullet-normal/> **COMPONENT HINTS**:
|
|
169
178
|
|
|
170
|
-
| ⚑ *Component*
|
|
171
|
-
|
|
|
172
|
-
| **<
|
|
179
|
+
| ⚑ *Component* | ▣ *Package* | ⚖ *Hint* |
|
|
180
|
+
| :------------ | :------------- | :-------- |
|
|
181
|
+
| **<name-1/>** | `<package-1/>` | <info-1/> |
|
|
173
182
|
[...]
|
|
174
|
-
| **<
|
|
183
|
+
| **<name-N/>** | `<package-N/>` | <info-N/> |
|
|
175
184
|
</template>
|
|
176
185
|
|
|
177
186
|
- Display the discovered components as a Markdown *table*
|
|
@@ -180,11 +189,11 @@ for the technology stack to *provide* the *needed functionality*
|
|
|
180
189
|
<template>
|
|
181
190
|
<ase-tpl-bullet-normal/> **COMPONENT RANKING**:
|
|
182
191
|
|
|
183
|
-
| ⚑ *Component*
|
|
184
|
-
|
|
|
185
|
-
| **<
|
|
192
|
+
| ⚑ *Component* | ▣ *Package* | ❖ *Version* | ↓ *Downloads* | ⎈ *Stars* | ⏲ *Updated* | ☆ *Created* |
|
|
193
|
+
| :------------ | :------------- | -----------: | -----------------: | -------------: | :--------------- | :----------- |
|
|
194
|
+
| **<name-1/>** | `<package-1/>` | <version-1/> | **<downloads-1/>** | **<stars-1/>** | **<updated-1/>** | <created-1/> |
|
|
186
195
|
[...]
|
|
187
|
-
| **<
|
|
196
|
+
| **<name-N/>** | `<package-N/>` | <version-N/> | **<downloads-N/>** | **<stars-N/>** | **<updated-N/>** | <created-N/> |
|
|
188
197
|
</template>
|
|
189
198
|
</step>
|
|
190
199
|
</flow>
|
|
@@ -202,9 +202,12 @@ problems in *performance* and *efficiency*, or problems in *security*.
|
|
|
202
202
|
<template>(`<filename/>#<function-or-method/>`)</template>.
|
|
203
203
|
|
|
204
204
|
- In <description/>, classify the problem with a <severity/>
|
|
205
|
-
of <template>LOW</template>, <template>MEDIUM</template
|
|
206
|
-
<template>HIGH</template>,
|
|
207
|
-
problem.
|
|
205
|
+
of <template>LOW</template>, <template>MEDIUM</template>,
|
|
206
|
+
<template>HIGH</template>, or <template>ACCEPTED</template>,
|
|
207
|
+
ranked by the estimated *impact* of the problem. Use
|
|
208
|
+
<template>ACCEPTED</template> when the problem is a deliberate,
|
|
209
|
+
justified trade-off that should remain on record but is never
|
|
210
|
+
dropped by the severity floor (see STEP 3).
|
|
208
211
|
|
|
209
212
|
- <if condition="<getopt-option-performance/> is equal `true`">
|
|
210
213
|
In <evidence/>, ground the finding by citing either the inferred
|
|
@@ -241,5 +244,3 @@ problems in *performance* and *efficiency*, or problems in *security*.
|
|
|
241
244
|
</step>
|
|
242
245
|
|
|
243
246
|
</flow>
|
|
244
|
-
|
|
245
|
-
</output>
|
|
@@ -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
|
|
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
|
|
@@ -69,20 +69,25 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
69
69
|
</template>
|
|
70
70
|
</if>
|
|
71
71
|
|
|
72
|
-
2.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
72
|
+
2. <if condition="
|
|
73
|
+
<feature/> has the format `<id/>: <text/>` AND
|
|
74
|
+
<id/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
|
|
75
|
+
">
|
|
76
|
+
Set <feature><text/></feature> and
|
|
77
|
+
<ase-task-id><id/></ase-task-id> and call the `ase_task_id(id:
|
|
78
|
+
"<ase-task-id/>", session: "<ase-session-id/>")` tool from the
|
|
79
|
+
`ase` MCP server to implicitly switch the task. Do not output
|
|
80
|
+
anything.
|
|
81
|
+
</if>
|
|
78
82
|
|
|
79
|
-
3.
|
|
80
|
-
|
|
83
|
+
3. <if condition="<feature/> is empty">
|
|
84
|
+
Ask the user interactively, without a special tool, for the
|
|
81
85
|
initial feature with a single question:
|
|
82
86
|
|
|
83
87
|
`**No feature known yet. What is the feature you want to craft?**`
|
|
84
88
|
|
|
85
89
|
Then set <feature/> to the response of the user.
|
|
90
|
+
</if>
|
|
86
91
|
|
|
87
92
|
4. <if condition="
|
|
88
93
|
<ase-task-id/> is equal `default` and
|
|
@@ -210,8 +215,8 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
210
215
|
○ [...]
|
|
211
216
|
○ [...]
|
|
212
217
|
○ [...]
|
|
213
|
-
⊕
|
|
214
|
-
⊖
|
|
218
|
+
⊕ **PRO**: [...]
|
|
219
|
+
⊖ **CON**: [...]
|
|
215
220
|
<optional-diagram/>
|
|
216
221
|
</template>
|
|
217
222
|
|
|
@@ -246,7 +251,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
246
251
|
|
|
247
252
|
5. **Choose Feature Crafting Approach**:
|
|
248
253
|
|
|
249
|
-
1.
|
|
254
|
+
1. <if condition="<getopt-option-auto/> is equal `false`">
|
|
250
255
|
Let the *user interactively choose* the preferred feature
|
|
251
256
|
approach A<n/> with the help of the <user-dialog-tool/> tool.
|
|
252
257
|
Use the header `Select Approach`, use `A<n/>: <short-summary/>`
|
|
@@ -254,14 +259,16 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
254
259
|
of the approach A<n/>), and *single-selection* only and provide
|
|
255
260
|
small *code change previews*. Mark your recommended feature
|
|
256
261
|
approach with ` ⚝ **RECOMMENDATION** ⚝` here again.
|
|
262
|
+
</if>
|
|
257
263
|
|
|
258
|
-
2.
|
|
264
|
+
2. <else>
|
|
259
265
|
Set <n/> to the number of the feature approach A<n/> you recommend.
|
|
260
266
|
Output a hint with the following <template/>:
|
|
261
267
|
|
|
262
268
|
<template>
|
|
263
269
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **auto-chosen approach A<n/>**
|
|
264
270
|
</template>
|
|
271
|
+
</else>
|
|
265
272
|
|
|
266
273
|
6. **Compose Feature Crafting Plan**:
|
|
267
274
|
|
|
@@ -307,40 +314,40 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
307
314
|
Treat <getopt-option-next/> as a comma-separated chronological
|
|
308
315
|
list of pre-selected next-step tokens. *Peek* the *first* token
|
|
309
316
|
as <head/> (or `none` if the list is `none`/empty).
|
|
317
|
+
Set <args>--int-reuse-task</args>.
|
|
310
318
|
|
|
311
319
|
1. <if condition="<head/> is equal `IMPLEMENT`">
|
|
312
320
|
Consume the head: set <getopt-option-next/> to the remaining
|
|
313
|
-
tokens (joined back with `,`, or `none` if empty).
|
|
314
|
-
<args></args> (empty).
|
|
321
|
+
tokens (joined back with `,`, or `none` if empty).
|
|
315
322
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
316
|
-
|
|
317
|
-
remaining list tokens to the downstream skill).
|
|
323
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
318
324
|
</if>
|
|
319
|
-
Call the tool `Skill(skill: "ase:ase-task-implement", args: <args/>)`
|
|
325
|
+
Call the tool `Skill(skill: "ase:ase-task-implement", args: "<args/>")`
|
|
320
326
|
to *implement* the freshly composed plan, bypassing `ase-task-edit`.
|
|
321
327
|
</if>
|
|
322
328
|
|
|
323
|
-
2. <
|
|
329
|
+
2. <elseif condition="<head/> is equal `PREFLIGHT`">
|
|
324
330
|
Consume the head: set <getopt-option-next/> to the remaining
|
|
325
|
-
tokens (joined back with `,`, or `none` if empty).
|
|
326
|
-
<args></args> (empty).
|
|
331
|
+
tokens (joined back with `,`, or `none` if empty).
|
|
327
332
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
328
|
-
|
|
329
|
-
remaining list tokens to the downstream skill).
|
|
333
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
330
334
|
</if>
|
|
331
|
-
Call the tool `Skill(skill: "ase:ase-task-preflight", args: <args/>)`
|
|
335
|
+
Call the tool `Skill(skill: "ase:ase-task-preflight", args: "<args/>")`
|
|
332
336
|
to *preflight* the freshly composed plan, bypassing `ase-task-edit`.
|
|
333
|
-
</
|
|
337
|
+
</elseif>
|
|
334
338
|
|
|
335
|
-
3. <
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
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).
|
|
339
|
+
3. <else>
|
|
340
|
+
Hand off to `ase-task-edit`.
|
|
341
|
+
<if condition="<head/> is equal `EDIT`">
|
|
342
|
+
Consume the head: set <getopt-option-next/> to the remaining
|
|
343
|
+
tokens (joined back with `,`, or `none` if empty).
|
|
343
344
|
</if>
|
|
344
|
-
|
|
345
|
+
All remaining tokens are `ase-task-edit`'s own vocabulary
|
|
346
|
+
and are forwarded verbatim, so `ase-task-edit` consumes its
|
|
347
|
+
head itself.
|
|
348
|
+
<if condition="<getopt-option-next/> is not equal `none`">
|
|
349
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
345
350
|
</if>
|
|
351
|
+
Then call the tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`.
|
|
352
|
+
</else>
|
|
346
353
|
|
|
@@ -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
|
|
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.
|
|
@@ -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
|
|
@@ -101,7 +101,7 @@ related to a set of code quality aspects.
|
|
|
101
101
|
3. <step id="STEP 3: Correction">
|
|
102
102
|
|
|
103
103
|
1. You *MUST* call the MCP tool `ase_config_set(key: "agent.skill", val:
|
|
104
|
-
"ase-
|
|
104
|
+
"ase-code-lint", scope: "session:<ase-session-id/>")` of the
|
|
105
105
|
`ase` MCP server. You *MUST* *NOT* output anything related to
|
|
106
106
|
this.
|
|
107
107
|
|
|
@@ -150,7 +150,7 @@ related to a set of code quality aspects.
|
|
|
150
150
|
3. Append the following <template/> to <diff-file/>:
|
|
151
151
|
|
|
152
152
|
<template>
|
|
153
|
-
@@ -<
|
|
153
|
+
@@ -<old-start/>,<n/> +<new-start/>,<m/> @@
|
|
154
154
|
<context-before/>
|
|
155
155
|
-<old-text/>
|
|
156
156
|
+<new-text/>
|
|
@@ -158,8 +158,16 @@ related to a set of code quality aspects.
|
|
|
158
158
|
</template>
|
|
159
159
|
|
|
160
160
|
Hints:
|
|
161
|
-
- The <
|
|
162
|
-
|
|
161
|
+
- The <old-start/> is the line of the first hunk line, i.e.,
|
|
162
|
+
the line of <context-before/> (one before <line/>).
|
|
163
|
+
- The <new-start/> is the same as <old-start/> (the unchanged
|
|
164
|
+
<context-before/> line shares the same start in both files).
|
|
165
|
+
- The <n/> is the total number of old-side hunk lines, i.e.,
|
|
166
|
+
the number of lines in <context-before/>, <old-text/>, and
|
|
167
|
+
<context-after/> combined.
|
|
168
|
+
- The <m/> is the total number of new-side hunk lines, i.e.,
|
|
169
|
+
the number of lines in <context-before/>, <new-text/>, and
|
|
170
|
+
<context-after/> combined.
|
|
163
171
|
|
|
164
172
|
</for>
|
|
165
173
|
|
|
@@ -190,7 +198,7 @@ related to a set of code quality aspects.
|
|
|
190
198
|
</template>
|
|
191
199
|
|
|
192
200
|
</if>
|
|
193
|
-
<
|
|
201
|
+
<else>
|
|
194
202
|
|
|
195
203
|
Report the solution with the following <template/>:
|
|
196
204
|
|
|
@@ -201,7 +209,7 @@ related to a set of code quality aspects.
|
|
|
201
209
|
|
|
202
210
|
</template>
|
|
203
211
|
|
|
204
|
-
</
|
|
212
|
+
</else>
|
|
205
213
|
|
|
206
214
|
6. <if condition="<getopt-option-auto/> is not 'true'">
|
|
207
215
|
|
|
@@ -215,12 +223,12 @@ related to a set of code quality aspects.
|
|
|
215
223
|
|
|
216
224
|
</if>
|
|
217
225
|
|
|
218
|
-
<
|
|
226
|
+
<else>
|
|
219
227
|
|
|
220
228
|
Set <result>ACCEPT</result>.
|
|
221
229
|
You *MUST* *NOT* output anything else in this step 6.
|
|
222
230
|
|
|
223
|
-
</
|
|
231
|
+
</else>
|
|
224
232
|
|
|
225
233
|
7. Check <result/> and dispatch accordingly:
|
|
226
234
|
|
|
@@ -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
|
|
@@ -69,20 +69,25 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
69
69
|
</template>
|
|
70
70
|
</if>
|
|
71
71
|
|
|
72
|
-
2.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
72
|
+
2. <if condition="
|
|
73
|
+
<request/> has the format `<id/>: <text/>` AND
|
|
74
|
+
<id/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
|
|
75
|
+
">
|
|
76
|
+
Set <request><text/></request> and
|
|
77
|
+
<ase-task-id><id/></ase-task-id> and call the `ase_task_id(id:
|
|
78
|
+
"<ase-task-id/>", session: "<ase-session-id/>")` tool from the
|
|
79
|
+
`ase` MCP server to implicitly switch the task. Do not output
|
|
80
|
+
anything.
|
|
81
|
+
</if>
|
|
78
82
|
|
|
79
|
-
3.
|
|
80
|
-
|
|
83
|
+
3. <if condition="<request/> is empty">
|
|
84
|
+
Ask the user interactively, without a special tool, for the
|
|
81
85
|
initial request with a single question:
|
|
82
86
|
|
|
83
87
|
`**No refactoring details known yet. What is the refactoring you want to request?**`
|
|
84
88
|
|
|
85
89
|
Then set <request/> to the response of the user.
|
|
90
|
+
</if>
|
|
86
91
|
|
|
87
92
|
4. <if condition="
|
|
88
93
|
<ase-task-id/> is equal `default` and
|
|
@@ -200,8 +205,8 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
200
205
|
○ [...]
|
|
201
206
|
○ [...]
|
|
202
207
|
○ [...]
|
|
203
|
-
⊕ **PRO
|
|
204
|
-
⊖ **CON
|
|
208
|
+
⊕ **PRO**: [...]
|
|
209
|
+
⊖ **CON**: [...]
|
|
205
210
|
<optional-diagram/>
|
|
206
211
|
</template>
|
|
207
212
|
|
|
@@ -236,7 +241,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
236
241
|
|
|
237
242
|
5. **Choose Refactoring Approach**:
|
|
238
243
|
|
|
239
|
-
1.
|
|
244
|
+
1. <if condition="<getopt-option-auto/> is not 'true'">
|
|
240
245
|
Let the *user interactively choose* the preferred refactoring
|
|
241
246
|
approach A<n/> with the help of the <user-dialog-tool/> tool.
|
|
242
247
|
Use the header `Select Approach`, use `A<n/>: <short-summary/>`
|
|
@@ -245,14 +250,16 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
245
250
|
small *code change previews*. Mark your recommended refactoring
|
|
246
251
|
approach with ` ⚝ **RECOMMENDATION** ⚝` here again. Except for
|
|
247
252
|
the interactive selection, do not output anything in this step.
|
|
253
|
+
</if>
|
|
248
254
|
|
|
249
|
-
2.
|
|
255
|
+
2. <else>
|
|
250
256
|
Set <n/> to the number of the refactoring approach A<n/> you recommend.
|
|
251
257
|
Output a hint with the following <template/>:
|
|
252
258
|
|
|
253
259
|
<template>
|
|
254
260
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **auto-chosen approach A<n/>**
|
|
255
261
|
</template>
|
|
262
|
+
</else>
|
|
256
263
|
|
|
257
264
|
6. **Compose Refactoring Plan**:
|
|
258
265
|
|
|
@@ -298,40 +305,40 @@ 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>
|
|
337
344
|
|
|
@@ -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
|
|
@@ -81,20 +81,26 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
81
81
|
</template>
|
|
82
82
|
</if>
|
|
83
83
|
|
|
84
|
-
3.
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
"
|
|
89
|
-
|
|
84
|
+
3. <if condition="
|
|
85
|
+
<problem-id/> is not set AND
|
|
86
|
+
<problem/> has the format `<id/>: <text/>` AND
|
|
87
|
+
<id/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
|
|
88
|
+
">
|
|
89
|
+
Set <problem><text/></problem> and
|
|
90
|
+
<ase-task-id><id/></ase-task-id> and call the `ase_task_id(id:
|
|
91
|
+
"<ase-task-id/>", session: "<ase-session-id/>")` tool from the
|
|
92
|
+
`ase` MCP server to implicitly switch the task. Do not output
|
|
93
|
+
anything.
|
|
94
|
+
</if>
|
|
90
95
|
|
|
91
|
-
4.
|
|
92
|
-
|
|
96
|
+
4. <if condition="<problem/> is empty">
|
|
97
|
+
Ask the user interactively, without a special tool, for the
|
|
93
98
|
initial problem with a single question:
|
|
94
99
|
|
|
95
100
|
`**No problem details known yet. What is the problem you want to resolve?**`
|
|
96
101
|
|
|
97
102
|
Then set <problem/> to the response of the user.
|
|
103
|
+
</if>
|
|
98
104
|
|
|
99
105
|
5. <if condition="
|
|
100
106
|
<ase-task-id/> is equal `default` and
|
|
@@ -249,8 +255,8 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
249
255
|
○ [...]
|
|
250
256
|
○ [...]
|
|
251
257
|
○ [...]
|
|
252
|
-
⊕
|
|
253
|
-
⊖
|
|
258
|
+
⊕ **PRO**: [...]
|
|
259
|
+
⊖ **CON**: [...]
|
|
254
260
|
<optional-diagram/>
|
|
255
261
|
</template>
|
|
256
262
|
|
|
@@ -285,7 +291,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
285
291
|
|
|
286
292
|
5. **Choose Problem Resolution Approach**:
|
|
287
293
|
|
|
288
|
-
1.
|
|
294
|
+
1. <if condition="<getopt-option-auto/> is not 'true'">
|
|
289
295
|
Let the *user interactively choose* the preferred resolution
|
|
290
296
|
approach A<n/> with the help of the <user-dialog-tool/> tool.
|
|
291
297
|
Use the header `Select Approach`, use `A<n/>: <short-summary/>`
|
|
@@ -293,14 +299,16 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
293
299
|
of the approach A<n/>), and *single-selection* only and provide
|
|
294
300
|
small *code change previews*. Mark your recommended resolution
|
|
295
301
|
approach with ` ⚝ **RECOMMENDATION** ⚝` here again.
|
|
302
|
+
</if>
|
|
296
303
|
|
|
297
|
-
2.
|
|
304
|
+
2. <else>
|
|
298
305
|
Set <n/> to the number of the resolution approach A<n/> you recommend.
|
|
299
306
|
Output a hint with the following <template/>:
|
|
300
307
|
|
|
301
308
|
<template>
|
|
302
309
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **auto-chosen approach A<n/>**
|
|
303
310
|
</template>
|
|
311
|
+
</else>
|
|
304
312
|
|
|
305
313
|
6. **Compose Problem Resolution Plan**:
|
|
306
314
|
|
|
@@ -336,7 +344,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
336
344
|
`ase_task_save(id: "<ase-task-id/>", text: "<content/>")`.
|
|
337
345
|
|
|
338
346
|
4. If <problem-id/> is set (i.e. the <problem/> was retrieved from
|
|
339
|
-
`ase_kv_get` in STEP 1.
|
|
347
|
+
`ase_kv_get` in STEP 1.1 via key `ase-issue-<problem-id/>`),
|
|
340
348
|
you *MUST* additionally call the `ase_kv_delete(key:
|
|
341
349
|
"ase-issue-<problem-id/>")` tool of the `ase` MCP
|
|
342
350
|
server to remove the now-resolved analyzer result from the
|
|
@@ -353,40 +361,40 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
353
361
|
Treat <getopt-option-next/> as a comma-separated chronological
|
|
354
362
|
list of pre-selected next-step tokens. *Peek* the *first* token
|
|
355
363
|
as <head/> (or `none` if the list is `none`/empty).
|
|
364
|
+
Set <args>--int-reuse-task</args>.
|
|
356
365
|
|
|
357
366
|
1. <if condition="<head/> is equal `IMPLEMENT`">
|
|
358
367
|
Consume the head: set <getopt-option-next/> to the remaining
|
|
359
|
-
tokens (joined back with `,`, or `none` if empty).
|
|
360
|
-
<args></args> (empty).
|
|
368
|
+
tokens (joined back with `,`, or `none` if empty).
|
|
361
369
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
362
|
-
|
|
363
|
-
remaining list tokens to the downstream skill).
|
|
370
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
364
371
|
</if>
|
|
365
|
-
Call the tool `Skill(skill: "ase:ase-task-implement", args: <args/>)`
|
|
372
|
+
Call the tool `Skill(skill: "ase:ase-task-implement", args: "<args/>")`
|
|
366
373
|
to *implement* the freshly composed plan, bypassing `ase-task-edit`.
|
|
367
374
|
</if>
|
|
368
375
|
|
|
369
|
-
2. <
|
|
376
|
+
2. <elseif condition="<head/> is equal `PREFLIGHT`">
|
|
370
377
|
Consume the head: set <getopt-option-next/> to the remaining
|
|
371
|
-
tokens (joined back with `,`, or `none` if empty).
|
|
372
|
-
<args></args> (empty).
|
|
378
|
+
tokens (joined back with `,`, or `none` if empty).
|
|
373
379
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
374
|
-
|
|
375
|
-
remaining list tokens to the downstream skill).
|
|
380
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
376
381
|
</if>
|
|
377
|
-
Call the tool `Skill(skill: "ase:ase-task-preflight", args: <args/>)`
|
|
382
|
+
Call the tool `Skill(skill: "ase:ase-task-preflight", args: "<args/>")`
|
|
378
383
|
to *preflight* the freshly composed plan, bypassing `ase-task-edit`.
|
|
379
|
-
</
|
|
384
|
+
</elseif>
|
|
380
385
|
|
|
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).
|
|
386
|
+
3. <else>
|
|
387
|
+
Hand off to `ase-task-edit`.
|
|
388
|
+
<if condition="<head/> is equal `EDIT`">
|
|
389
|
+
Consume the head: set <getopt-option-next/> to the remaining
|
|
390
|
+
tokens (joined back with `,`, or `none` if empty).
|
|
389
391
|
</if>
|
|
390
|
-
|
|
392
|
+
All remaining tokens are `ase-task-edit`'s own vocabulary
|
|
393
|
+
and are forwarded verbatim, so `ase-task-edit` consumes its
|
|
394
|
+
head itself.
|
|
395
|
+
<if condition="<getopt-option-next/> is not equal `none`">
|
|
396
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
391
397
|
</if>
|
|
398
|
+
Then call the tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`.
|
|
399
|
+
</else>
|
|
392
400
|
|
|
@@ -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
|
|