@rse/ase 0.9.55 → 0.9.57
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-config.js +72 -31
- package/dst/ase-getopt.js +3 -1
- package/dst/ase-hook.js +5 -3
- package/dst/ase-markdown.js +7 -4
- package/dst/ase-service.js +1 -1
- package/dst/ase-setup.js +4 -2
- package/dst/ase-statusline.js +6 -8
- package/dst/ase-task.js +37 -11
- package/package.json +5 -5
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/.github/plugin/plugin.json +1 -1
- package/plugin/agents/ase-code-analyze.md +1 -1
- package/plugin/agents/ase-code-lint.md +4 -4
- package/plugin/agents/ase-meta-chat.md +1 -1
- package/plugin/agents/ase-meta-proximity.md +1 -1
- package/plugin/meta/ase-common-code.md +168 -1
- package/plugin/meta/ase-common-task.md +31 -13
- package/plugin/meta/ase-constitution.md +3 -3
- package/plugin/meta/ase-control.md +7 -7
- package/plugin/meta/ase-dialog.md +5 -4
- package/plugin/meta/ase-format-arch.md +6 -21
- package/plugin/meta/ase-format-meta.md +15 -2
- package/plugin/meta/ase-format-spec.md +9 -24
- package/plugin/meta/ase-format-task.md +2 -2
- package/plugin/meta/ase-getopt.md +1 -1
- package/plugin/meta/ase-persona.md +3 -3
- package/plugin/meta/ase-skill.md +14 -24
- package/plugin/meta/ase-tenets.md +5 -5
- package/plugin/package.json +2 -2
- package/plugin/skills/ase-arch-analyze/SKILL.md +2 -2
- package/plugin/skills/ase-arch-analyze/help.md +1 -1
- package/plugin/skills/ase-arch-discover/SKILL.md +9 -7
- package/plugin/skills/ase-code-analyze/SKILL.md +1 -1
- package/plugin/skills/ase-code-analyze/help.md +1 -1
- package/plugin/skills/ase-code-craft/SKILL.md +2 -153
- package/plugin/skills/ase-code-craft/help.md +1 -1
- package/plugin/skills/ase-code-explain/SKILL.md +3 -3
- package/plugin/skills/ase-code-insight/SKILL.md +9 -7
- package/plugin/skills/ase-code-lint/SKILL.md +7 -5
- package/plugin/skills/ase-code-refactor/SKILL.md +4 -155
- package/plugin/skills/ase-code-resolve/SKILL.md +48 -173
- package/plugin/skills/ase-code-resolve/help.md +15 -4
- package/plugin/skills/ase-docs-distill/SKILL.md +2 -2
- package/plugin/skills/ase-docs-distill/help.md +1 -1
- package/plugin/skills/ase-docs-proofread/SKILL.md +7 -3
- package/plugin/skills/ase-help-intent/SKILL.md +33 -9
- package/plugin/skills/ase-help-skill/SKILL.md +1 -1
- package/plugin/skills/ase-meta-brainstorm/SKILL.md +11 -2
- package/plugin/skills/ase-meta-changelog/SKILL.md +13 -8
- package/plugin/skills/ase-meta-chat/SKILL.md +9 -0
- package/plugin/skills/ase-meta-commit/SKILL.md +11 -1
- package/plugin/skills/ase-meta-compat/SKILL.md +2 -2
- package/plugin/skills/ase-meta-config/help.md +3 -2
- package/plugin/skills/ase-meta-diaboli/SKILL.md +12 -3
- package/plugin/skills/ase-meta-diff/SKILL.md +11 -13
- package/plugin/skills/ase-meta-eli5/SKILL.md +3 -3
- package/plugin/skills/ase-meta-eli5/help.md +1 -1
- package/plugin/skills/ase-meta-evaluate/SKILL.md +3 -3
- package/plugin/skills/ase-meta-quorum/SKILL.md +17 -17
- package/plugin/skills/ase-meta-quotes/SKILL.md +1 -1
- package/plugin/skills/ase-meta-review/SKILL.md +7 -5
- package/plugin/skills/ase-meta-review/help.md +2 -2
- package/plugin/skills/ase-meta-search/SKILL.md +18 -0
- package/plugin/skills/ase-meta-steelman/SKILL.md +11 -2
- package/plugin/skills/ase-meta-why/SKILL.md +15 -6
- package/plugin/skills/ase-meta-why/help.md +3 -3
- package/plugin/skills/ase-sync-export/SKILL.md +2 -1
- package/plugin/skills/ase-sync-export/help.md +1 -1
- package/plugin/skills/ase-sync-reconcile/SKILL.md +16 -2
- package/plugin/skills/ase-task-condense/SKILL.md +13 -67
- package/plugin/skills/ase-task-delete/SKILL.md +1 -1
- package/plugin/skills/ase-task-dissect/SKILL.md +5 -18
- package/plugin/skills/ase-task-edit/SKILL.md +49 -22
- package/plugin/skills/ase-task-grill/SKILL.md +31 -129
- package/plugin/skills/ase-task-id/SKILL.md +12 -2
- package/plugin/skills/ase-task-implement/SKILL.md +11 -7
- package/plugin/skills/ase-task-implement/help.md +1 -1
- package/plugin/skills/ase-task-list/SKILL.md +9 -0
- package/plugin/skills/ase-task-preflight/SKILL.md +17 -33
- package/plugin/skills/ase-task-reboot/SKILL.md +24 -100
- package/plugin/skills/ase-task-reboot/help.md +1 -1
- package/plugin/skills/ase-task-view/SKILL.md +4 -2
- package/dst/ase-guidance.js +0 -89
- package/dst/ase-persona.js +0 -87
- package/dst/ase-stdout.js +0 -18
|
@@ -138,91 +138,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
138
138
|
|
|
139
139
|
4. <step id="STEP 4: Choose Refactoring Approaches">
|
|
140
140
|
|
|
141
|
-
|
|
142
|
-
any output* until and including the recommendation decision. Only
|
|
143
|
-
sub-steps 4-7 below are allowed to produce output; sub-steps 4-6 only if
|
|
144
|
-
<getopt-option-auto/> is equal `false` *and* <ase-project-boxing/>
|
|
145
|
-
is *not* equal `black`.
|
|
146
|
-
|
|
147
|
-
If <getopt-option-auto/> is equal `true` or <ase-project-boxing/> is
|
|
148
|
-
equal `black`, *skip* the reporting sub-steps 4-6 entirely (they
|
|
149
|
-
perform no output at all) to speed up processing.
|
|
150
|
-
|
|
151
|
-
1. *Propose* a corresponding *refactoring approach*, optionally
|
|
152
|
-
including some *alternative* refactoring approaches. Do *not*
|
|
153
|
-
output anything in this sub-step.
|
|
154
|
-
|
|
155
|
-
2. *Reflect* on and *critique* the proposed approaches by deriving,
|
|
156
|
-
per approach, a small set of concrete *pros* and *cons*. Do
|
|
157
|
-
*not* output anything in this sub-step.
|
|
158
|
-
|
|
159
|
-
3. Based on the reflection, *decide* which approach to recommend
|
|
160
|
-
and annotate it with an <annotation/> of
|
|
161
|
-
` ⚝ **RECOMMENDATION** ⚝`. All other approaches receive an
|
|
162
|
-
empty <annotation/>. Do *not* output anything in this sub-step.
|
|
163
|
-
|
|
164
|
-
4. Indicate start of reporting by showing the following <template/>:
|
|
165
|
-
|
|
166
|
-
<template>
|
|
167
|
-
<ase-tpl-head title="APPROACHES"/>
|
|
168
|
-
</template>
|
|
169
|
-
|
|
170
|
-
5. Now report each approach with the following <template/>,
|
|
171
|
-
inlining its pros/cons derived in sub-step 2, and do not output
|
|
172
|
-
anything else in this step:
|
|
173
|
-
|
|
174
|
-
<template>
|
|
175
|
-
● **APPROACH A<n/>**<annotation/>: **<summary/>**
|
|
176
|
-
○ [...]
|
|
177
|
-
⊕ *PRO*: [...]
|
|
178
|
-
⊖ *CON*: [...]
|
|
179
|
-
</template>
|
|
180
|
-
|
|
181
|
-
Hints:
|
|
182
|
-
|
|
183
|
-
- Give a short one-sentence <summary/> of the refactoring
|
|
184
|
-
approach plus *precise* and *ultra brief and concise*
|
|
185
|
-
refactoring information. Try to keep the number of bullet
|
|
186
|
-
points (`○ [...]`) in the range of 1-4.
|
|
187
|
-
|
|
188
|
-
6. Indicate end of reporting by showing the following <template/>:
|
|
189
|
-
|
|
190
|
-
<template>
|
|
191
|
-
<ase-tpl-foot title="APPROACHES"/>
|
|
192
|
-
</template>
|
|
193
|
-
|
|
194
|
-
7. <if condition="<getopt-option-auto/> is not equal `true` and <ase-project-boxing/> is not equal `black`">
|
|
195
|
-
|
|
196
|
-
In the following, you *MUST* *NOT* use your built-in
|
|
197
|
-
<user-dialog-tool/> tool! Instead, you *MUST* just show a
|
|
198
|
-
custom dialog according to the expanded `custom-dialog`
|
|
199
|
-
definition. You *MUST* closely follow this definition.
|
|
200
|
-
|
|
201
|
-
Let the user choose the preferred approach A<n/> by raising
|
|
202
|
-
a question with the following custom dialog, where per
|
|
203
|
-
approach A<n/>, you determine an ultra brief summary
|
|
204
|
-
<short-summary/> and then use the answer option `A<n/>:
|
|
205
|
-
⚝ **RECOMMENDATION** ⚝ - <short-summary/>` for your
|
|
206
|
-
recommended approach plus zero or more answer options `A<n/>:
|
|
207
|
-
<short-summary/>` for all other approaches:
|
|
208
|
-
|
|
209
|
-
<expand name="custom-dialog" arg1="--no-other">
|
|
210
|
-
Select Approach: Select your preferred refactoring approach to follow?
|
|
211
|
-
A<n/>: <short-summary/>
|
|
212
|
-
[...]
|
|
213
|
-
</expand>
|
|
214
|
-
|
|
215
|
-
</if>
|
|
216
|
-
<else>
|
|
217
|
-
|
|
218
|
-
Set <n/> to the number of the refactoring approach A<n/> you recommend.
|
|
219
|
-
Output a hint with the following <template/>:
|
|
220
|
-
|
|
221
|
-
<template>
|
|
222
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **auto-chosen approach A<n/>**
|
|
223
|
-
</template>
|
|
224
|
-
|
|
225
|
-
</else>
|
|
141
|
+
<expand name="code-approaches" arg1="refactoring" arg2="refactoring"></expand>
|
|
226
142
|
|
|
227
143
|
</step>
|
|
228
144
|
|
|
@@ -265,76 +181,9 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
265
181
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan created**
|
|
266
182
|
</template>
|
|
267
183
|
|
|
268
|
-
5. Directly pass
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
list of pre-selected next-step tokens. *Peek* the *first* token
|
|
272
|
-
as <head/> (or `none` if the list is `none`/empty).
|
|
273
|
-
Set <args>--int-reuse-task</args>.
|
|
274
|
-
|
|
275
|
-
1. <if condition="<head/> is equal `DONE`">
|
|
276
|
-
Consume the head: set <getopt-option-next/> to the remaining
|
|
277
|
-
tokens (joined back with `,`, or `none` if empty). `DONE`
|
|
278
|
-
means the freshly composed plan is finalized as-is, so do
|
|
279
|
-
*not* hand off to `ase-task-edit`. Only output the following
|
|
280
|
-
<template/> and then *STOP*. Do *not* implement the plan.
|
|
281
|
-
|
|
282
|
-
<template>
|
|
283
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan finalized -- done**
|
|
284
|
-
</template>
|
|
285
|
-
</if>
|
|
286
|
-
|
|
287
|
-
2. <elseif condition="<head/> is equal `IMPLEMENT`">
|
|
288
|
-
Consume the head: set <getopt-option-next/> to the remaining
|
|
289
|
-
tokens (joined back with `,`, or `none` if empty).
|
|
290
|
-
<if condition="<getopt-option-next/> is not equal `none`">
|
|
291
|
-
Set <args><args/> --next <getopt-option-next/></args>
|
|
292
|
-
</if>
|
|
293
|
-
Call the tool `Skill(skill: "ase:ase-task-implement", args: "<args/>")`
|
|
294
|
-
to *implement* the freshly composed plan, bypassing `ase-task-edit`.
|
|
295
|
-
</elseif>
|
|
296
|
-
|
|
297
|
-
3. <elseif condition="<head/> is equal `PREFLIGHT`">
|
|
298
|
-
Consume the head: set <getopt-option-next/> to the remaining
|
|
299
|
-
tokens (joined back with `,`, or `none` if empty).
|
|
300
|
-
<if condition="<getopt-option-next/> is not equal `none`">
|
|
301
|
-
Set <args><args/> --next <getopt-option-next/></args>
|
|
302
|
-
</if>
|
|
303
|
-
Call the tool `Skill(skill: "ase:ase-task-preflight", args: "<args/>")`
|
|
304
|
-
to *preflight* the freshly composed plan, bypassing `ase-task-edit`.
|
|
305
|
-
</elseif>
|
|
306
|
-
|
|
307
|
-
4. <elseif condition="<head/> is equal `GRILL`">
|
|
308
|
-
Consume the head: set <getopt-option-next/> to the remaining
|
|
309
|
-
tokens (joined back with `,`, or `none` if empty). `GRILL`
|
|
310
|
-
is this skill's own dispatch token, *not* part of
|
|
311
|
-
`ase-task-grill`'s `--next` vocabulary, so it must be
|
|
312
|
-
stripped here rather than forwarded. All remaining tokens are
|
|
313
|
-
`ase-task-grill`'s own vocabulary and are forwarded verbatim.
|
|
314
|
-
<if condition="<getopt-option-next/> is not equal `none`">
|
|
315
|
-
Set <args><args/> --next <getopt-option-next/></args>
|
|
316
|
-
</if>
|
|
317
|
-
Call the tool `Skill(skill: "ase:ase-task-grill", args: "<args/>")`
|
|
318
|
-
to *grill* the freshly composed plan, bypassing `ase-task-edit`.
|
|
319
|
-
</elseif>
|
|
320
|
-
|
|
321
|
-
5. <else>
|
|
322
|
-
Hand off to `ase-task-edit`.
|
|
323
|
-
<if condition="<head/> is equal `EDIT`">
|
|
324
|
-
Consume the head: set <getopt-option-next/> to the remaining
|
|
325
|
-
tokens (joined back with `,`, or `none` if empty). `EDIT`
|
|
326
|
-
is this skill's own dispatch token, *not* part of
|
|
327
|
-
`ase-task-edit`'s `--next` vocabulary, so it must be
|
|
328
|
-
stripped here rather than forwarded.
|
|
329
|
-
</if>
|
|
330
|
-
All remaining tokens are `ase-task-edit`'s own vocabulary
|
|
331
|
-
and are forwarded verbatim, so `ase-task-edit` consumes its
|
|
332
|
-
own head itself.
|
|
333
|
-
<if condition="<getopt-option-next/> is not equal `none`">
|
|
334
|
-
Set <args><args/> --next <getopt-option-next/></args>
|
|
335
|
-
</if>
|
|
336
|
-
Then call the tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`.
|
|
337
|
-
</else>
|
|
184
|
+
5. Directly pass through control to the next skill:
|
|
185
|
+
|
|
186
|
+
<expand name="code-next-dispatch"></expand>
|
|
338
187
|
|
|
339
188
|
</step>
|
|
340
189
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-code-resolve
|
|
3
|
-
argument-hint: "[--help|-h] [--auto|-a] [--dry|-d] [--quick|-Q] [--next|-n <option>[,...]] [<task-id>:] <problem>"
|
|
3
|
+
argument-hint: "[--help|-h] [--auto|-a] [--dry|-d] [--direct|-D] [--quick|-Q] [--next|-n <option>[,...]] [<task-id>:] <problem>"
|
|
4
4
|
description: >
|
|
5
5
|
Resolve Problem:
|
|
6
6
|
Use when user wants to "bugfix" or "fix" code or "resolve" a problem.
|
|
@@ -10,6 +10,7 @@ effort: xhigh
|
|
|
10
10
|
allowed-tools:
|
|
11
11
|
- "Skill"
|
|
12
12
|
- "Agent"
|
|
13
|
+
- "Read"
|
|
13
14
|
---
|
|
14
15
|
|
|
15
16
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
@@ -23,7 +24,7 @@ Resolve Problem
|
|
|
23
24
|
|
|
24
25
|
<expand name="getopt"
|
|
25
26
|
arg1="ase-code-resolve"
|
|
26
|
-
arg2="--auto|-a --dry|-d --quick|-Q --next|-n=(none|DONE|EDIT|GRILL|PREFLIGHT|IMPLEMENT)...">
|
|
27
|
+
arg2="--auto|-a --dry|-d --direct|-D --quick|-Q --next|-n=(none|DONE|EDIT|GRILL|PREFLIGHT|IMPLEMENT)...">
|
|
27
28
|
$ARGUMENTS
|
|
28
29
|
</expand>
|
|
29
30
|
|
|
@@ -45,9 +46,18 @@ to `true`, <getopt-option-dry/> to `true`, and <getopt-option-next/> to
|
|
|
45
46
|
Procedure
|
|
46
47
|
---------
|
|
47
48
|
|
|
49
|
+
<if condition="<getopt-option-direct/> is not equal to 'true'">
|
|
48
50
|
You *MUST* *NOT* call `Edit`, `Write`, `NotebookEdit`, or any
|
|
49
51
|
filesystem-modifying tool during this entire skill. The *only*
|
|
50
52
|
permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
53
|
+
</if>
|
|
54
|
+
<else>
|
|
55
|
+
The `--direct`/`-D` mode applies the resolution *in place*, so STEP 4
|
|
56
|
+
below *requires* `Edit` and `Write` to modify the affected artifacts.
|
|
57
|
+
Every modification *MUST* still stay restricted to the artifacts the
|
|
58
|
+
resolution actually demands, and you *MUST* *NOT* call
|
|
59
|
+
`ase_task_save(...)`, as no task plan is composed at all.
|
|
60
|
+
</else>
|
|
51
61
|
|
|
52
62
|
<flow>
|
|
53
63
|
|
|
@@ -120,14 +130,19 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
120
130
|
⧉ **ASE**: ⇌ problem: **<problem/>**
|
|
121
131
|
</template>
|
|
122
132
|
|
|
123
|
-
|
|
133
|
+
</step>
|
|
134
|
+
|
|
135
|
+
2. <step id="STEP 2: Investigate Code Base">
|
|
136
|
+
|
|
137
|
+
1. Check the existing source files for all code which is related to the
|
|
138
|
+
requested <problem/> resolution.
|
|
124
139
|
|
|
125
|
-
|
|
126
|
-
|
|
140
|
+
2. Check the architecture of the existing code base to understand the
|
|
141
|
+
overall structures and dynamics.
|
|
127
142
|
|
|
128
|
-
|
|
143
|
+
3. Investigate and *figure out details* related to this problem.
|
|
129
144
|
|
|
130
|
-
|
|
145
|
+
<if condition="<getopt-option-direct/> is not equal to 'true'">
|
|
131
146
|
Report those details with the following <template/>:
|
|
132
147
|
|
|
133
148
|
<template>
|
|
@@ -151,10 +166,10 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
151
166
|
Try to keep the number of bullet points (●) in the range of 1-4.
|
|
152
167
|
|
|
153
168
|
- In case of a *complex context situation* with complex *structure*
|
|
154
|
-
(layout, components, dependencies, etc), complex *control flow*
|
|
155
|
-
(branching, concurrency, etc), complex *state machine* (states,
|
|
156
|
-
transitions, etc), complex *data flow* (actors, messages, etc), or
|
|
157
|
-
complex *data structure* (classes, entities, relationships, etc),
|
|
169
|
+
(layout, components, dependencies, etc.), complex *control flow*
|
|
170
|
+
(branching, concurrency, etc.), complex *state machine* (states,
|
|
171
|
+
transitions, etc.), complex *data flow* (actors, messages, etc.), or
|
|
172
|
+
complex *data structure* (classes, entities, relationships, etc.),
|
|
158
173
|
visualize it with an optional diagram <optional-diagram/> by
|
|
159
174
|
building a Mermaid specification <mermaid-spec/> (e.g. `flowchart
|
|
160
175
|
TB`, `stateDiagram-v2`, `sequenceDiagram`, `classDiagram`, or
|
|
@@ -165,18 +180,9 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
165
180
|
run_in_background: false)`, reproducing its
|
|
166
181
|
returned fenced code block verbatim. Omit <optional-diagram/>
|
|
167
182
|
entirely for simple or purely local situations.
|
|
183
|
+
</if>
|
|
168
184
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
2. <step id="STEP 2: Investigate Code Base">
|
|
172
|
-
|
|
173
|
-
1. Check the existing source files for all code which is related to the
|
|
174
|
-
requested <problem/> resolution.
|
|
175
|
-
|
|
176
|
-
2. Check the architecture of the existing code base to understand the
|
|
177
|
-
overall structures and dynamics.
|
|
178
|
-
|
|
179
|
-
3. Do not output anything in this STEP 2.
|
|
185
|
+
4. Do not output anything else in this STEP 2.
|
|
180
186
|
|
|
181
187
|
</step>
|
|
182
188
|
|
|
@@ -190,97 +196,31 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
190
196
|
|
|
191
197
|
</step>
|
|
192
198
|
|
|
193
|
-
4. <
|
|
194
|
-
|
|
195
|
-
You *MUST* perform the following sub-steps *internally* and *without
|
|
196
|
-
any output* until and including the recommendation decision. Only
|
|
197
|
-
sub-steps 4-7 below are allowed to produce output; sub-steps 4-6 only if
|
|
198
|
-
<getopt-option-auto/> is equal `false` *and* <ase-project-boxing/>
|
|
199
|
-
is *not* equal `black`.
|
|
199
|
+
4. <if condition="<getopt-option-direct/> is equal to 'true'">
|
|
200
200
|
|
|
201
|
-
|
|
202
|
-
equal `black`, *skip* the reporting sub-steps 4-6 entirely (they
|
|
203
|
-
perform no output at all) to speed up processing.
|
|
201
|
+
<step id="STEP 4: Direct Problem Resolution">
|
|
204
202
|
|
|
205
|
-
1.
|
|
206
|
-
|
|
207
|
-
|
|
203
|
+
1. Directly resolve the <problem/> by modifying the affected
|
|
204
|
+
*artifacts* with a corresponding, complete *change set*,
|
|
205
|
+
based on your gathered knowledge about the code base and your
|
|
206
|
+
internalized problem resolution tenets. Also, if a CHANGELOG.md
|
|
207
|
+
file exists, make an appropriate entry there, too.
|
|
208
208
|
|
|
209
|
-
2.
|
|
210
|
-
|
|
211
|
-
*not* output anything in this sub-step.
|
|
209
|
+
2. Do not output anything else in this STEP 4. Especially, do not
|
|
210
|
+
output a change summary or a unified diff of the changes.
|
|
212
211
|
|
|
213
|
-
|
|
214
|
-
and annotate it with an <annotation/> of
|
|
215
|
-
` ⚝ **RECOMMENDATION** ⚝`. All other approaches receive an
|
|
216
|
-
empty <annotation/>. Do *not* output anything in this sub-step.
|
|
217
|
-
|
|
218
|
-
4. Indicate start of reporting by showing the following <template/>:
|
|
219
|
-
|
|
220
|
-
<template>
|
|
221
|
-
<ase-tpl-head title="APPROACHES"/>
|
|
222
|
-
</template>
|
|
223
|
-
|
|
224
|
-
5. Now report each approach with the following <template/>,
|
|
225
|
-
inlining its pros/cons derived in sub-step 2, and do not output
|
|
226
|
-
anything else in this step:
|
|
227
|
-
|
|
228
|
-
<template>
|
|
229
|
-
● **APPROACH A<n/>**<annotation/>: **<summary/>**
|
|
230
|
-
○ [...]
|
|
231
|
-
⊕ *PRO*: [...]
|
|
232
|
-
⊖ *CON*: [...]
|
|
233
|
-
</template>
|
|
234
|
-
|
|
235
|
-
Hints:
|
|
236
|
-
|
|
237
|
-
- Give a short one-sentence <summary/> of the resolution
|
|
238
|
-
approach plus *precise* and *ultra brief and concise*
|
|
239
|
-
resolution information. Try to keep the number of bullet points
|
|
240
|
-
(`○ [...]`) in the range of 1-4.
|
|
241
|
-
|
|
242
|
-
6. Indicate end of reporting by showing the following <template/>:
|
|
243
|
-
|
|
244
|
-
<template>
|
|
245
|
-
<ase-tpl-foot title="APPROACHES"/>
|
|
246
|
-
</template>
|
|
247
|
-
|
|
248
|
-
7. <if condition="<getopt-option-auto/> is not equal `true` and <ase-project-boxing/> is not equal `black`">
|
|
249
|
-
|
|
250
|
-
In the following, you *MUST* *NOT* use your built-in
|
|
251
|
-
<user-dialog-tool/> tool! Instead, you *MUST* just show a
|
|
252
|
-
custom dialog according to the expanded `custom-dialog`
|
|
253
|
-
definition. You *MUST* closely follow this definition.
|
|
254
|
-
|
|
255
|
-
Let the user choose the preferred approach A<n/> by raising
|
|
256
|
-
a question with the following custom dialog, where per
|
|
257
|
-
approach A<n/>, you determine an ultra brief summary
|
|
258
|
-
<short-summary/> and then use the answer option `A<n/>:
|
|
259
|
-
⚝ **RECOMMENDATION** ⚝ - <short-summary/>` for your
|
|
260
|
-
recommended approach plus zero or more answer options `A<n/>:
|
|
261
|
-
<short-summary/>` for all other approaches:
|
|
262
|
-
|
|
263
|
-
<expand name="custom-dialog" arg1="--no-other">
|
|
264
|
-
Select Approach: Select your preferred resolution approach to follow?
|
|
265
|
-
A<n/>: <short-summary/>
|
|
266
|
-
[...]
|
|
267
|
-
</expand>
|
|
268
|
-
|
|
269
|
-
</if>
|
|
270
|
-
<else>
|
|
212
|
+
</step>
|
|
271
213
|
|
|
272
|
-
|
|
273
|
-
|
|
214
|
+
</if>
|
|
215
|
+
<else>
|
|
274
216
|
|
|
275
|
-
|
|
276
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **auto-chosen approach A<n/>**
|
|
277
|
-
</template>
|
|
217
|
+
<step id="STEP 4: Choose Problem Resolution Approaches">
|
|
278
218
|
|
|
279
|
-
|
|
219
|
+
<expand name="code-approaches" arg1="resolution" arg2="resolution"></expand>
|
|
280
220
|
|
|
281
221
|
</step>
|
|
282
222
|
|
|
283
|
-
|
|
223
|
+
<step id="STEP 5: Compose Problem Resolution Plan">
|
|
284
224
|
|
|
285
225
|
1. *Compose a plan* with code references, a precise description of the
|
|
286
226
|
problem, the chosen resolution approach, a preview of the *unified
|
|
@@ -326,78 +266,13 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
326
266
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan created**
|
|
327
267
|
</template>
|
|
328
268
|
|
|
329
|
-
6. Directly pass
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
list of pre-selected next-step tokens. *Peek* the *first* token
|
|
333
|
-
as <head/> (or `none` if the list is `none`/empty).
|
|
334
|
-
Set <args>--int-reuse-task</args>.
|
|
335
|
-
|
|
336
|
-
1. <if condition="<head/> is equal `DONE`">
|
|
337
|
-
Consume the head: set <getopt-option-next/> to the remaining
|
|
338
|
-
tokens (joined back with `,`, or `none` if empty). `DONE`
|
|
339
|
-
means the freshly composed plan is finalized as-is, so do
|
|
340
|
-
*not* hand off to `ase-task-edit`. Only output the following
|
|
341
|
-
<template/> and then *STOP*. Do *not* implement the plan.
|
|
342
|
-
|
|
343
|
-
<template>
|
|
344
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan finalized -- done**
|
|
345
|
-
</template>
|
|
346
|
-
</if>
|
|
347
|
-
|
|
348
|
-
2. <elseif condition="<head/> is equal `IMPLEMENT`">
|
|
349
|
-
Consume the head: set <getopt-option-next/> to the remaining
|
|
350
|
-
tokens (joined back with `,`, or `none` if empty).
|
|
351
|
-
<if condition="<getopt-option-next/> is not equal `none`">
|
|
352
|
-
Set <args><args/> --next <getopt-option-next/></args>
|
|
353
|
-
</if>
|
|
354
|
-
Call the tool `Skill(skill: "ase:ase-task-implement", args: "<args/>")`
|
|
355
|
-
to *implement* the freshly composed plan, bypassing `ase-task-edit`.
|
|
356
|
-
</elseif>
|
|
357
|
-
|
|
358
|
-
3. <elseif condition="<head/> is equal `PREFLIGHT`">
|
|
359
|
-
Consume the head: set <getopt-option-next/> to the remaining
|
|
360
|
-
tokens (joined back with `,`, or `none` if empty).
|
|
361
|
-
<if condition="<getopt-option-next/> is not equal `none`">
|
|
362
|
-
Set <args><args/> --next <getopt-option-next/></args>
|
|
363
|
-
</if>
|
|
364
|
-
Call the tool `Skill(skill: "ase:ase-task-preflight", args: "<args/>")`
|
|
365
|
-
to *preflight* the freshly composed plan, bypassing `ase-task-edit`.
|
|
366
|
-
</elseif>
|
|
367
|
-
|
|
368
|
-
4. <elseif condition="<head/> is equal `GRILL`">
|
|
369
|
-
Consume the head: set <getopt-option-next/> to the remaining
|
|
370
|
-
tokens (joined back with `,`, or `none` if empty). `GRILL`
|
|
371
|
-
is this skill's own dispatch token, *not* part of
|
|
372
|
-
`ase-task-grill`'s `--next` vocabulary, so it must be
|
|
373
|
-
stripped here rather than forwarded. All remaining tokens are
|
|
374
|
-
`ase-task-grill`'s own vocabulary and are forwarded verbatim.
|
|
375
|
-
<if condition="<getopt-option-next/> is not equal `none`">
|
|
376
|
-
Set <args><args/> --next <getopt-option-next/></args>
|
|
377
|
-
</if>
|
|
378
|
-
Call the tool `Skill(skill: "ase:ase-task-grill", args: "<args/>")`
|
|
379
|
-
to *grill* the freshly composed plan, bypassing `ase-task-edit`.
|
|
380
|
-
</elseif>
|
|
381
|
-
|
|
382
|
-
5. <else>
|
|
383
|
-
Hand off to `ase-task-edit`.
|
|
384
|
-
<if condition="<head/> is equal `EDIT`">
|
|
385
|
-
Consume the head: set <getopt-option-next/> to the remaining
|
|
386
|
-
tokens (joined back with `,`, or `none` if empty). `EDIT`
|
|
387
|
-
is this skill's own dispatch token, *not* part of
|
|
388
|
-
`ase-task-edit`'s `--next` vocabulary, so it must be
|
|
389
|
-
stripped here rather than forwarded.
|
|
390
|
-
</if>
|
|
391
|
-
All remaining tokens are `ase-task-edit`'s own vocabulary
|
|
392
|
-
and are forwarded verbatim, so `ase-task-edit` consumes its
|
|
393
|
-
own head itself.
|
|
394
|
-
<if condition="<getopt-option-next/> is not equal `none`">
|
|
395
|
-
Set <args><args/> --next <getopt-option-next/></args>
|
|
396
|
-
</if>
|
|
397
|
-
Then call the tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`.
|
|
398
|
-
</else>
|
|
269
|
+
6. Directly pass through control to the next skill:
|
|
270
|
+
|
|
271
|
+
<expand name="code-next-dispatch"></expand>
|
|
399
272
|
|
|
400
273
|
</step>
|
|
401
274
|
|
|
275
|
+
</else>
|
|
276
|
+
|
|
402
277
|
</flow>
|
|
403
278
|
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
[`--help`|`-h`]
|
|
10
10
|
[`--auto`|`-a`]
|
|
11
11
|
[`--dry`|`-d`]
|
|
12
|
+
[`--direct`|`-D`]
|
|
12
13
|
[`--quick`|`-Q`]
|
|
13
14
|
[`--next`|`-n` *option*[,...]]
|
|
14
15
|
[*task-id*:] *problem*
|
|
@@ -27,10 +28,11 @@ or `T1`) previously produced by `ase-code-analyze` or
|
|
|
27
28
|
`ase-arch-analyze` and persisted in the `ase` MCP key/value store
|
|
28
29
|
under `ase-issue-<id>`.
|
|
29
30
|
|
|
30
|
-
|
|
31
|
-
plan via `ase_task_save` and then hands off to
|
|
32
|
-
`ase-task-preflight`, or `ase-task-implement`, as
|
|
33
|
-
`--next`.
|
|
31
|
+
By default the skill does *not* directly modify source files. It
|
|
32
|
+
persists the plan via `ase_task_save` and then hands off to
|
|
33
|
+
`ase-task-edit`, `ase-task-preflight`, or `ase-task-implement`, as
|
|
34
|
+
selected by `--next`. Only under `--direct` it skips the plan
|
|
35
|
+
entirely and applies the change set to the affected artifacts itself.
|
|
34
36
|
|
|
35
37
|
## OPTIONS
|
|
36
38
|
|
|
@@ -45,6 +47,15 @@ plan via `ase_task_save` and then hands off to `ase-task-edit`,
|
|
|
45
47
|
type-checker, or program execution) once the source files have
|
|
46
48
|
been modified.
|
|
47
49
|
|
|
50
|
+
`--direct`|`-D`:
|
|
51
|
+
Resolve the problem *immediately* and *in place*: skip the
|
|
52
|
+
resolution approaches, the interactive dialog, and the entire task
|
|
53
|
+
plan ceremony, and directly apply the complete change set to the
|
|
54
|
+
affected artifacts, including a corresponding entry in an existing
|
|
55
|
+
`CHANGELOG.md` file. In this mode `--auto`, `--dry`, `--quick`, and
|
|
56
|
+
`--next` have no effect, as neither approaches are proposed nor a
|
|
57
|
+
plan is composed.
|
|
58
|
+
|
|
48
59
|
`--quick`|`-Q`:
|
|
49
60
|
Shorthand alias for `-a -d -n IMPLEMENT,DELETE`: automatically pick
|
|
50
61
|
the recommended resolution approach, compose the plan *without* the
|
|
@@ -77,7 +77,7 @@ Procedure
|
|
|
77
77
|
|
|
78
78
|
</if>
|
|
79
79
|
|
|
80
|
-
You *MUST* *NOT* output anything in this STEP 1.
|
|
80
|
+
You *MUST* *NOT* output anything else in this STEP 1.
|
|
81
81
|
|
|
82
82
|
</step>
|
|
83
83
|
|
|
@@ -141,7 +141,7 @@ Procedure
|
|
|
141
141
|
|
|
142
142
|
</template>
|
|
143
143
|
|
|
144
|
-
In the <location/>,
|
|
144
|
+
In the <location/>, mark up the line-range reference as
|
|
145
145
|
code (with backticks) and prepend it with `▢ `.
|
|
146
146
|
|
|
147
147
|
Keep the overall report *concise* and *brief*. Do *not* output any
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
The `ase-docs-distill` skill reads a *provided document* and distills it
|
|
16
16
|
into a *flat*, *importance-ranked* list of its *key points*. The
|
|
17
17
|
*document-reference* is resolved *probe-as-file-first*: if the argument names
|
|
18
|
-
a *readable file* it is read from disk
|
|
18
|
+
a *readable file* it is read from disk; otherwise the argument is taken
|
|
19
19
|
*verbatim* as *pasted text*. The document is read *silently* - only the
|
|
20
20
|
final ranked list is shown - so even a large document does not flood the
|
|
21
21
|
transcript.
|
|
@@ -217,7 +217,8 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
217
217
|
|
|
218
218
|
Set <old-start/> to the 1-based line number of the *first*
|
|
219
219
|
old-side hunk line: if <context-before/> is non-empty, that is
|
|
220
|
-
|
|
220
|
+
the line of its *first* context line, i.e. <line/> minus the
|
|
221
|
+
number of lines in <context-before/>; otherwise it is <line/> itself
|
|
221
222
|
(the first line of <old-text/>). For a hunk that *only inserts*
|
|
222
223
|
new lines (empty <old-text/> *and* empty context), set it to the
|
|
223
224
|
line *before* which the insertion happens, clamped to a minimum
|
|
@@ -288,8 +289,11 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
288
289
|
proposal (<old-text/> stays anchored to the existing text
|
|
289
290
|
at <file/>:<line/>; <new-text/> and <description/> carry the
|
|
290
291
|
refinement) so the subsequent rendering and any `Edit` use
|
|
291
|
-
the new proposal rather than the original. Then *
|
|
292
|
-
|
|
292
|
+
the new proposal rather than the original. Then *re-apply*
|
|
293
|
+
the minimal-form normalization of substep 1 to the refined
|
|
294
|
+
<old-text/> and <new-text/> (so the re-rendered diff again
|
|
295
|
+
shows exactly the changed lines) and *go back* to substep 2
|
|
296
|
+
of this `for`-iteration. There is *no* cap on
|
|
293
297
|
refinement rounds - keep refining until the user picks
|
|
294
298
|
`ACCEPT` or `REJECT`.
|
|
295
299
|
|
|
@@ -81,14 +81,18 @@ catalog you match <intent/> against:
|
|
|
81
81
|
- Set <rationale/> to a *very brief*, single-sentence
|
|
82
82
|
justification of why the selected skill and its options match
|
|
83
83
|
<intent/>.
|
|
84
|
+
- Set <matched>yes</matched>.
|
|
84
85
|
|
|
85
86
|
2. *Guard No Match*:
|
|
86
87
|
|
|
87
88
|
<if condition="no skill in <corpus/> adequately matches <intent/>">
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
Set <matched>no</matched> and discard the inadequate selection of
|
|
90
|
+
sub-step 1 by setting <name></name>, <arguments></arguments>, and
|
|
91
|
+
<command></command> (all set to empty), so that no stale command
|
|
92
|
+
can survive into the dialog of sub-step 4. Then output the
|
|
93
|
+
following <template/> and *continue* the *loop* at sub-step 4 to
|
|
94
|
+
prompt the user for a refined or clearer intent via the dialog's
|
|
95
|
+
free-text channel (do *not* stop and do *not* render a command):
|
|
92
96
|
|
|
93
97
|
<template>
|
|
94
98
|
<ase-tpl-bullet-secondary/> **WARNING**: no confident match for the intent -- please refine or clarify it.
|
|
@@ -116,16 +120,27 @@ catalog you match <intent/> against:
|
|
|
116
120
|
dialog according to the expanded `custom-dialog` definition. You
|
|
117
121
|
*MUST* closely follow this definition.
|
|
118
122
|
|
|
119
|
-
Let the user decide
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
+
Let the user decide how to proceed by raising a question with the
|
|
124
|
+
following custom dialog (invoked with `--other`, so that any
|
|
125
|
+
free-text instruction is accepted as an intent refinement). Which
|
|
126
|
+
dialog is raised depends on <matched/>, so that `EXECUTE` is
|
|
127
|
+
offered *only* when a command was actually generated in sub-step 1
|
|
128
|
+
*and* rendered in sub-step 3:
|
|
123
129
|
|
|
130
|
+
<if condition="<matched/> is `no`">
|
|
131
|
+
<expand name="custom-dialog" arg1="--other">
|
|
132
|
+
Dispatch: What would you like to do with the unmatched intent?
|
|
133
|
+
REFINE: Refine or clarify the intent.
|
|
134
|
+
CANCEL: Cancel this dialog.
|
|
135
|
+
</expand>
|
|
136
|
+
</if>
|
|
137
|
+
<else>
|
|
124
138
|
<expand name="custom-dialog" arg1="--other">
|
|
125
139
|
Dispatch: What would you like to do with the generated command?
|
|
126
140
|
EXECUTE: Execute the generated command now.
|
|
127
141
|
CANCEL: Cancel this dialog.
|
|
128
142
|
</expand>
|
|
143
|
+
</else>
|
|
129
144
|
|
|
130
145
|
Check the tool <result/> and dispatch accordingly:
|
|
131
146
|
|
|
@@ -133,7 +148,16 @@ catalog you match <intent/> against:
|
|
|
133
148
|
*Break* out of the *loop* and stop processing without any
|
|
134
149
|
further output.
|
|
135
150
|
|
|
136
|
-
- If <result/> is `EXECUTE
|
|
151
|
+
- If <result/> is `REFINE`, or <result/> is `EXECUTE` while
|
|
152
|
+
<matched/> is `no`: do *not* execute anything -- output the
|
|
153
|
+
following <template/> and *continue* the *loop* at sub-step 4
|
|
154
|
+
to obtain a refined intent via the dialog's free-text channel:
|
|
155
|
+
|
|
156
|
+
<template>
|
|
157
|
+
<ase-tpl-bullet-secondary/> **HINT**: please enter a refined or clearer intent as free text.
|
|
158
|
+
</template>
|
|
159
|
+
|
|
160
|
+
- If <result/> is `EXECUTE` (which implies <matched/> is `yes`):
|
|
137
161
|
*Break* out of the *loop*, output the following <template/>,
|
|
138
162
|
and then call the tool `Skill(skill: "ase:<name/>", args:
|
|
139
163
|
"<arguments/>")` to *execute* the generated command:
|
|
@@ -35,7 +35,7 @@ skill name, abbreviation of it, or description of its purpose:
|
|
|
35
35
|
<skill-ref><getopt-arguments/></skill-ref>
|
|
36
36
|
</objective>
|
|
37
37
|
|
|
38
|
-
The following <catalog/> is index of all ASE skills -- one
|
|
38
|
+
The following <catalog/> is the index of all ASE skills -- one
|
|
39
39
|
`⎈ **<group/>**` entry per skill group and one
|
|
40
40
|
``○ `<name/>`: <purpose/>`` entry per skill -- and this is
|
|
41
41
|
the *sole* index <skill-ref/> is resolved against:
|