@rse/ase 0.9.6 → 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-markdown.js +235 -0
- package/dst/ase-service.js +2 -0
- package/dst/ase-task.js +22 -20
- package/package.json +6 -6
- 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 +14 -14
- package/plugin/meta/ase-getopt.md +2 -1
- package/plugin/meta/ase-skill.md +28 -9
- package/plugin/package.json +3 -3
- 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 +47 -40
- 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-insight/SKILL.md +1 -1
- package/plugin/skills/ase-code-lint/SKILL.md +16 -8
- package/plugin/skills/ase-code-refactor/SKILL.md +47 -40
- package/plugin/skills/ase-code-refactor/help.md +2 -2
- package/plugin/skills/ase-code-resolve/SKILL.md +48 -40
- package/plugin/skills/ase-code-resolve/help.md +2 -2
- 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 +58 -36
- package/plugin/skills/ase-task-edit/help.md +3 -3
- package/plugin/skills/ase-task-grill/SKILL.md +59 -24
- package/plugin/skills/ase-task-id/SKILL.md +11 -2
- package/plugin/skills/ase-task-implement/SKILL.md +38 -17
- package/plugin/skills/ase-task-implement/help.md +1 -1
- package/plugin/skills/ase-task-list/SKILL.md +1 -1
- package/plugin/skills/ase-task-preflight/SKILL.md +42 -22
- package/plugin/skills/ase-task-preflight/help.md +1 -1
- package/plugin/skills/ase-task-reboot/SKILL.md +31 -22
- package/plugin/skills/ase-task-rename/SKILL.md +5 -3
- package/plugin/skills/ase-task-view/SKILL.md +19 -8
- package/plugin/skills/ase-task-view/help.md +24 -5
- package/dst/ase-bash.js +0 -618
- package/dst/ase-hello.js +0 -24
|
@@ -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
|
|
@@ -196,12 +201,12 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
196
201
|
anything else in this step:
|
|
197
202
|
|
|
198
203
|
<template>
|
|
199
|
-
●
|
|
200
|
-
○
|
|
201
|
-
○
|
|
202
|
-
○
|
|
203
|
-
⊕
|
|
204
|
-
⊖
|
|
204
|
+
● **APPROACH A<n/>**<annotation/>: *<summary/>*
|
|
205
|
+
○ [...]
|
|
206
|
+
○ [...]
|
|
207
|
+
○ [...]
|
|
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
|
|
|
@@ -269,7 +276,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
269
276
|
file, aligned with its existing style and conventions.
|
|
270
277
|
|
|
271
278
|
<if condition="<getopt-option-dry/> is equal `true`">
|
|
272
|
-
You *MUST* completely omit the `##
|
|
279
|
+
You *MUST* completely omit the `## VERIFICATION` section
|
|
273
280
|
(including its heading and all of its bullet points) from
|
|
274
281
|
<content/>.
|
|
275
282
|
</if>
|
|
@@ -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
|
|
|
@@ -34,7 +34,7 @@ plan via `ase_task_save` and then hands off to `ase-task-edit`,
|
|
|
34
34
|
asking the user via the interactive dialog.
|
|
35
35
|
|
|
36
36
|
`--dry`|`-d`:
|
|
37
|
-
Compose the plan *without* the
|
|
37
|
+
Compose the plan *without* the `## VERIFICATION` section. When
|
|
38
38
|
`ase-task-implement` later applies such a plan, it strictly skips
|
|
39
39
|
the entire verification phase (no build, tests, linter,
|
|
40
40
|
type-checker, or program execution) once the source files have
|
|
@@ -43,7 +43,7 @@ plan via `ase_task_save` and then hands off to `ase-task-edit`,
|
|
|
43
43
|
`--quick`|`-Q`:
|
|
44
44
|
Shorthand alias for `-a -d -n IMPLEMENT,DELETE`: automatically pick
|
|
45
45
|
the recommended refactoring approach, compose the plan *without* the
|
|
46
|
-
|
|
46
|
+
`## VERIFICATION` section, immediately hand off to `ase-task-implement`,
|
|
47
47
|
and finally `ase-task-delete` the now-consumed plan. This gives a
|
|
48
48
|
single, fast *one-shot* refactoring mode.
|
|
49
49
|
|
|
@@ -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
|
|
@@ -245,12 +251,12 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
245
251
|
anything else in this step:
|
|
246
252
|
|
|
247
253
|
<template>
|
|
248
|
-
●
|
|
249
|
-
○
|
|
250
|
-
○
|
|
251
|
-
○
|
|
252
|
-
⊕
|
|
253
|
-
⊖
|
|
254
|
+
● **APPROACH A<n/>**<annotation/>: *<summary/>*
|
|
255
|
+
○ [...]
|
|
256
|
+
○ [...]
|
|
257
|
+
○ [...]
|
|
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
|
|
|
@@ -317,7 +325,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
317
325
|
file, aligned with its existing style and conventions.
|
|
318
326
|
|
|
319
327
|
<if condition="<getopt-option-dry/> is equal `true`">
|
|
320
|
-
You *MUST* completely omit the `##
|
|
328
|
+
You *MUST* completely omit the `## VERIFICATION` section
|
|
321
329
|
(including its heading and all of its bullet points) from
|
|
322
330
|
<content/>.
|
|
323
331
|
</if>
|
|
@@ -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
|
|
|
@@ -39,7 +39,7 @@ plan via `ase_task_save` and then hands off to `ase-task-edit`,
|
|
|
39
39
|
asking the user via the interactive dialog.
|
|
40
40
|
|
|
41
41
|
`--dry`|`-d`:
|
|
42
|
-
Compose the plan *without* the
|
|
42
|
+
Compose the plan *without* the `## VERIFICATION` section. When
|
|
43
43
|
`ase-task-implement` later applies such a plan, it strictly skips
|
|
44
44
|
the entire verification phase (no build, tests, linter,
|
|
45
45
|
type-checker, or program execution) once the source files have
|
|
@@ -48,7 +48,7 @@ plan via `ase_task_save` and then hands off to `ase-task-edit`,
|
|
|
48
48
|
`--quick`|`-Q`:
|
|
49
49
|
Shorthand alias for `-a -d -n IMPLEMENT,DELETE`: automatically pick
|
|
50
50
|
the recommended resolution approach, compose the plan *without* the
|
|
51
|
-
|
|
51
|
+
`## VERIFICATION` section, immediately hand off to `ase-task-implement`,
|
|
52
52
|
and finally `ase-task-delete` the now-consumed plan. This gives a
|
|
53
53
|
single, fast *one-shot* resolution mode.
|
|
54
54
|
|
|
@@ -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.
|
|
@@ -116,8 +116,8 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
116
116
|
|
|
117
117
|
3. <if condition="<getopt-option-auto/> is not 'true'">
|
|
118
118
|
|
|
119
|
-
Render the proposed correction as a *unified diff* with *
|
|
120
|
-
|
|
119
|
+
Render the proposed correction as a *unified diff* with *up to
|
|
120
|
+
two* lines of context in a fenced block based on the following <template/>:
|
|
121
121
|
|
|
122
122
|
<template>
|
|
123
123
|
|
|
@@ -126,7 +126,7 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
126
126
|
```diff
|
|
127
127
|
--- <file/> (original)
|
|
128
128
|
+++ <file/> (corrected)
|
|
129
|
-
@@ -<
|
|
129
|
+
@@ -<old-start/>,<n/> +<new-start/>,<m/> @@
|
|
130
130
|
<context-before/>
|
|
131
131
|
-<old-text/>
|
|
132
132
|
+<new-text/>
|
|
@@ -136,8 +136,16 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
136
136
|
</template>
|
|
137
137
|
|
|
138
138
|
Hints:
|
|
139
|
-
- The <
|
|
140
|
-
|
|
139
|
+
- The <old-start/> is the line of the first hunk line, i.e.,
|
|
140
|
+
the line of <context-before/> (one before <line/>).
|
|
141
|
+
- The <new-start/> is the same as <old-start/> (the unchanged
|
|
142
|
+
<context-before/> line shares the same start in both files).
|
|
143
|
+
- The <n/> is the total number of old-side hunk lines, i.e.,
|
|
144
|
+
the number of lines in <context-before/>, <old-text/>, and
|
|
145
|
+
<context-after/> combined.
|
|
146
|
+
- The <m/> is the total number of new-side hunk lines, i.e.,
|
|
147
|
+
the number of lines in <context-before/>, <new-text/>, and
|
|
148
|
+
<context-after/> combined.
|
|
141
149
|
|
|
142
150
|
</if>
|
|
143
151
|
|
|
@@ -153,20 +161,21 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
153
161
|
|
|
154
162
|
</if>
|
|
155
163
|
|
|
156
|
-
<
|
|
164
|
+
<else>
|
|
157
165
|
|
|
158
166
|
Set <result>ACCEPT</result>.
|
|
159
167
|
|
|
160
|
-
</
|
|
168
|
+
</else>
|
|
161
169
|
|
|
162
170
|
5. Check <result/> and dispatch accordingly:
|
|
163
171
|
|
|
164
172
|
- <if condition="<result/> is 'ACCEPT'">
|
|
165
173
|
|
|
166
|
-
Invoke the `Edit` tool to apply the change
|
|
167
|
-
|
|
168
|
-
the active proofread marker,
|
|
169
|
-
prompt will appear. Then
|
|
174
|
+
Invoke the `Edit` tool to apply the change by replacing
|
|
175
|
+
<old-text/> with <new-text/> at <file/>:<line/>. The operation
|
|
176
|
+
will be auto-approved because of the active proofread marker,
|
|
177
|
+
so *no* interactive permission prompt will appear. Then
|
|
178
|
+
continue with the next <item/>.
|
|
170
179
|
|
|
171
180
|
</if>
|
|
172
181
|
|
|
@@ -174,8 +183,8 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
174
183
|
|
|
175
184
|
Generate a *new* proposal for the *same* <item/>,
|
|
176
185
|
incorporating the user's free-text hint from <result/>
|
|
177
|
-
after the "OTHER:" prefix, and
|
|
178
|
-
this iteration. There is *no* cap on refinement rounds -
|
|
186
|
+
after the "OTHER:" prefix, and *go back* to substep 2 of
|
|
187
|
+
this `for`-iteration. There is *no* cap on refinement rounds -
|
|
179
188
|
keep refining until the user picks `ACCEPT` or `REJECT`.
|
|
180
189
|
|
|
181
190
|
</if>
|
|
@@ -113,15 +113,15 @@ Honor the following tenets throughout the brainstorming:
|
|
|
113
113
|
<ase-tpl-bullet-signal/> FACET <M/>/<m/>: **<facet-M/>**, QUESTION: **<question-M/>**
|
|
114
114
|
</template>
|
|
115
115
|
|
|
116
|
-
2. Determine *
|
|
116
|
+
2. Determine *2 to 4* grounded candidate answers
|
|
117
117
|
<answer-M-K/> (K={1,2,3,4}) from the code base, the documented
|
|
118
118
|
context, and your world knowledge.
|
|
119
119
|
|
|
120
120
|
3. Use an interactive user dialog with header <facet-M/> and
|
|
121
121
|
question <question-M/>, and let the user select the
|
|
122
|
-
<answer-M/> out of the candidate answers <answer-M-K/> (
|
|
123
|
-
|
|
124
|
-
|
|
122
|
+
<answer-M/> out of the candidate answers <answer-M-K/> (leave
|
|
123
|
+
out the answer lines of those candidate answers you have
|
|
124
|
+
not determined)
|
|
125
125
|
|
|
126
126
|
<expand name="user-dialog">
|
|
127
127
|
<facet-M/>: <question-M/>
|
|
@@ -131,7 +131,26 @@ Honor the following tenets throughout the brainstorming:
|
|
|
131
131
|
<answer-M-4/>: (fourth grounded candidate answer)
|
|
132
132
|
</expand>
|
|
133
133
|
|
|
134
|
-
4.
|
|
134
|
+
4. Dispatch on the dialog <result/>:
|
|
135
|
+
|
|
136
|
+
- If <result/> is `CANCEL`:
|
|
137
|
+
Skip the remaining sub-steps of this iteration cycle and
|
|
138
|
+
continue directly with sub-step 2 below (cancellation handling).
|
|
139
|
+
|
|
140
|
+
- If <result/> starts with `ERROR:`:
|
|
141
|
+
Ask the user interactively, without a special tool, the
|
|
142
|
+
question <question-M/> directly and set <answer-M/> to the
|
|
143
|
+
response of the user.
|
|
144
|
+
|
|
145
|
+
- If <result/> matches `OTHER: <text/>`:
|
|
146
|
+
Set <answer-M><text/></answer-M> (take the user's free-text answer).
|
|
147
|
+
|
|
148
|
+
- Otherwise:
|
|
149
|
+
Set <answer-M><result/></answer-M> (take the selected candidate answer).
|
|
150
|
+
|
|
151
|
+
Do not output anything in this sub-step.
|
|
152
|
+
|
|
153
|
+
5. Output the following <template/>:
|
|
135
154
|
|
|
136
155
|
<template>
|
|
137
156
|
<ase-tpl-bullet-normal/> FACET <M/>/<m/>: **<facet-M/>**, ANSWER: **<answer-M/>**
|
|
@@ -182,7 +201,7 @@ Honor the following tenets throughout the brainstorming:
|
|
|
182
201
|
set and finally into a recommendation.
|
|
183
202
|
|
|
184
203
|
1. *Cluster*: group the candidate ideas into <c/> coherent clusters
|
|
185
|
-
<cluster-C/> (a short 1-4 word label, C=1
|
|
204
|
+
<cluster-C/> (a short 1-4 word label, C=1...<c/>), collapsing
|
|
186
205
|
near-duplicates and discarding ideas pruned by *You Aren't Gonna
|
|
187
206
|
Need It (YAGNI)* (speculative, out-of-scope, or contradicting
|
|
188
207
|
documented context).
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
|
|
8
8
|
`ase-meta-brainstorm`
|
|
9
9
|
[`--help`|`-h`]
|
|
10
|
-
[`--max-clarify=3`]
|
|
10
|
+
[`--max-clarify`|`-c=3`]
|
|
11
11
|
[`--min-ideas`|`-i=12`]
|
|
12
|
-
[`--min-rank=7`]
|
|
13
|
-
[`--max-shortlist=4`]
|
|
12
|
+
[`--min-rank`|`-r=7`]
|
|
13
|
+
[`--max-shortlist`|`-s=4`]
|
|
14
14
|
*topic*
|
|
15
15
|
|
|
16
16
|
## DESCRIPTION
|
|
@@ -33,13 +33,9 @@ default 7, or higher). Finally it distills a *shortlist* of the top
|
|
|
33
33
|
wherever possible - and derives a single *RECOMMENDATION*, being either
|
|
34
34
|
the highest-ranked option or a principled synthesis of the shortlist.
|
|
35
35
|
|
|
36
|
-
On completion the skill offers a *next step*: stop, or hand the
|
|
37
|
-
recommended direction off to the `ase-task-edit`, `ase-code-craft`, or
|
|
38
|
-
`ase-task-preflight` skills.
|
|
39
|
-
|
|
40
36
|
## OPTIONS
|
|
41
37
|
|
|
42
|
-
`--max-clarify=3`:
|
|
38
|
+
`--max-clarify`|`-c=3`:
|
|
43
39
|
The *maximum* number of essential-unknown clarification questions
|
|
44
40
|
asked in the *clarify intent* phase (default: 3). Lower it for a
|
|
45
41
|
faster, leaner intake, raise it for more upfront grounding.
|
|
@@ -49,12 +45,12 @@ recommended direction off to the `ase-task-edit`, `ase-code-craft`, or
|
|
|
49
45
|
phase before converging (default: 12). Raise it for a broader idea
|
|
50
46
|
space, lower it for a quicker, narrower session.
|
|
51
47
|
|
|
52
|
-
`--min-rank=7`:
|
|
48
|
+
`--min-rank`|`-r=7`:
|
|
53
49
|
The *minimum* 0-10 fit rank an idea must score to survive the
|
|
54
50
|
*converge* phase (default: 7). Raise it for a stricter filter, lower
|
|
55
51
|
it to retain more ideas.
|
|
56
52
|
|
|
57
|
-
`--max-shortlist=4`:
|
|
53
|
+
`--max-shortlist`|`-s=4`:
|
|
58
54
|
The *maximum* number of distilled options on the final *shortlist*
|
|
59
55
|
(default: 4). Lower it for a sharper focus, raise it for more
|
|
60
56
|
finalists.
|
|
@@ -11,9 +11,9 @@ disable-model-invocation: false
|
|
|
11
11
|
effort: high
|
|
12
12
|
allowed-tools:
|
|
13
13
|
- "Bash(git diff *)"
|
|
14
|
-
- "Bash(git grep
|
|
15
|
-
- "Bash(git ls-files
|
|
16
|
-
- "Bash(grep
|
|
14
|
+
- "Bash(git grep *)"
|
|
15
|
+
- "Bash(git ls-files *)"
|
|
16
|
+
- "Bash(grep *)"
|
|
17
17
|
- "Agent"
|
|
18
18
|
---
|
|
19
19
|
|
|
@@ -98,7 +98,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
98
98
|
|
|
99
99
|
</template>
|
|
100
100
|
|
|
101
|
-
2. Render a *
|
|
101
|
+
2. Render a *three-column table* with one row per discovered
|
|
102
102
|
*intent group* present in the <diff/>. Output the following
|
|
103
103
|
table header <template/>:
|
|
104
104
|
|
|
@@ -205,6 +205,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
205
205
|
| **<deviation/>** | <location/> | <reason/> |
|
|
206
206
|
|
|
207
207
|
</template>
|
|
208
|
+
</if>
|
|
208
209
|
</step>
|
|
209
210
|
|
|
210
211
|
4. <step id="STEP 4: Score Against Risk Rubric"
|