@rse/ase 0.9.55 → 0.9.56
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-setup.js +4 -2
- package/dst/ase-statusline.js +6 -8
- package/dst/ase-task.js +36 -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 +164 -1
- package/plugin/meta/ase-common-task.md +14 -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 +7 -8
- package/plugin/meta/ase-format-spec.md +10 -11
- 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 +1 -1
- package/plugin/skills/ase-arch-analyze/help.md +1 -1
- package/plugin/skills/ase-arch-discover/SKILL.md +8 -6
- 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 +8 -159
- 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 +12 -8
- 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 +1 -1
- 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 +13 -7
- package/plugin/skills/ase-task-reboot/SKILL.md +18 -61
- 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
|
@@ -51,7 +51,8 @@ Give *insights* into the project through the source code of <getopt-arguments/>.
|
|
|
51
51
|
|
|
52
52
|
Determine an <abstract/> summary of this project.
|
|
53
53
|
For this, check a potentially existing `README.*` file
|
|
54
|
-
or scan the source files and figure it out
|
|
54
|
+
or scan the source files of <getopt-arguments/> and figure it out
|
|
55
|
+
indirectly.
|
|
55
56
|
|
|
56
57
|
Display the results with the following <template/>:
|
|
57
58
|
|
|
@@ -80,8 +81,8 @@ Give *insights* into the project through the source code of <getopt-arguments/>.
|
|
|
80
81
|
</step>
|
|
81
82
|
|
|
82
83
|
3. <step id="STEP 3: SOURCE CHURN">
|
|
83
|
-
Display the source files which caused the
|
|
84
|
-
figuring out which
|
|
84
|
+
Display the source files of <getopt-arguments/> which caused the
|
|
85
|
+
most churn by figuring out which of them have the most commits.
|
|
85
86
|
Display the following <template/>:
|
|
86
87
|
|
|
87
88
|
<template>
|
|
@@ -91,7 +92,7 @@ Give *insights* into the project through the source code of <getopt-arguments/>.
|
|
|
91
92
|
Then run the following command...
|
|
92
93
|
|
|
93
94
|
```
|
|
94
|
-
git log --format=format: --name-only --since="1 year ago" | grep -v '^$' | sort | uniq -c | sort -nr | head -10
|
|
95
|
+
git log --format=format: --name-only --since="1 year ago" -- <getopt-arguments/> | grep -v '^$' | sort | uniq -c | sort -nr | head -10
|
|
95
96
|
```
|
|
96
97
|
|
|
97
98
|
...and then display its result as a table with a table head and
|
|
@@ -106,9 +107,10 @@ Give *insights* into the project through the source code of <getopt-arguments/>.
|
|
|
106
107
|
<ase-tpl-bullet-normal/> **MODULE STRUCTURE**:
|
|
107
108
|
</template>
|
|
108
109
|
|
|
109
|
-
Find all modules (or OOP classes) and build a
|
|
110
|
-
<mermaid-spec/> for a `flowchart TB` diagram
|
|
111
|
-
boxes and the imports between modules as the
|
|
110
|
+
Find all modules (or OOP classes) of <getopt-arguments/> and build a
|
|
111
|
+
Mermaid specification <mermaid-spec/> for a `flowchart TB` diagram
|
|
112
|
+
with all modules as boxes and the imports between modules as the
|
|
113
|
+
directed edges. Then
|
|
112
114
|
dispatch the rendering to the `ase-meta-diagram` sub-agent by
|
|
113
115
|
calling the tool `Agent(description: "Diagram Rendering",
|
|
114
116
|
subagent_type: "ase:ase-meta-diagram", prompt: <mermaid-spec/>,
|
|
@@ -276,10 +276,12 @@ related to a set of code quality aspects.
|
|
|
276
276
|
|
|
277
277
|
Set <old-start/> to the 1-based line number of the
|
|
278
278
|
*first* old-side hunk line: if <context-before/> is
|
|
279
|
-
non-empty, that is
|
|
280
|
-
|
|
281
|
-
<
|
|
282
|
-
(
|
|
279
|
+
non-empty, that is the line of its *first* context
|
|
280
|
+
line, i.e. <line/> minus the number of lines in
|
|
281
|
+
<context-before/>; otherwise it is <line/> itself
|
|
282
|
+
(the first line of <old-text/>). For a hunk that
|
|
283
|
+
*only inserts* new lines (empty <old-text/> *and*
|
|
284
|
+
empty context), set it to the
|
|
283
285
|
line *before* which the insertion happens, clamped to a
|
|
284
286
|
minimum of `0`, so a top-of-file insertion yields
|
|
285
287
|
`@@ -0,0 ... @@`.
|
|
@@ -341,7 +343,7 @@ related to a set of code quality aspects.
|
|
|
341
343
|
|
|
342
344
|
</template>
|
|
343
345
|
|
|
344
|
-
5. <if condition="<getopt-option-auto/> is not equal `true`
|
|
346
|
+
5. <if condition="<getopt-option-auto/> is not equal `true`">
|
|
345
347
|
|
|
346
348
|
<if condition="<ase-project-boxing/> is equal `grey`">
|
|
347
349
|
|
|
@@ -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
|
|
|
@@ -151,10 +151,10 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
151
151
|
Try to keep the number of bullet points (●) in the range of 1-4.
|
|
152
152
|
|
|
153
153
|
- 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),
|
|
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.),
|
|
158
158
|
visualize it with an optional diagram <optional-diagram/> by
|
|
159
159
|
building a Mermaid specification <mermaid-spec/> (e.g. `flowchart
|
|
160
160
|
TB`, `stateDiagram-v2`, `sequenceDiagram`, `classDiagram`, or
|
|
@@ -192,91 +192,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
192
192
|
|
|
193
193
|
4. <step id="STEP 4: Choose Problem Resolution Approaches">
|
|
194
194
|
|
|
195
|
-
|
|
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`.
|
|
200
|
-
|
|
201
|
-
If <getopt-option-auto/> is equal `true` or <ase-project-boxing/> is
|
|
202
|
-
equal `black`, *skip* the reporting sub-steps 4-6 entirely (they
|
|
203
|
-
perform no output at all) to speed up processing.
|
|
204
|
-
|
|
205
|
-
1. *Propose* a corresponding *resolution approach*, optionally including
|
|
206
|
-
some *alternative* resolution approaches. Do *not* output anything
|
|
207
|
-
in this sub-step.
|
|
208
|
-
|
|
209
|
-
2. *Reflect* on and *critique* the proposed approaches by deriving,
|
|
210
|
-
per approach, a small set of concrete *pros* and *cons*. Do
|
|
211
|
-
*not* output anything in this sub-step.
|
|
212
|
-
|
|
213
|
-
3. Based on the reflection, *decide* which approach to recommend
|
|
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>
|
|
271
|
-
|
|
272
|
-
Set <n/> to the number of the resolution approach A<n/> you recommend.
|
|
273
|
-
Output a hint with the following <template/>:
|
|
274
|
-
|
|
275
|
-
<template>
|
|
276
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **auto-chosen approach A<n/>**
|
|
277
|
-
</template>
|
|
278
|
-
|
|
279
|
-
</else>
|
|
195
|
+
<expand name="code-approaches" arg1="resolution" arg2="resolution"></expand>
|
|
280
196
|
|
|
281
197
|
</step>
|
|
282
198
|
|
|
@@ -326,76 +242,9 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
326
242
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan created**
|
|
327
243
|
</template>
|
|
328
244
|
|
|
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>
|
|
245
|
+
6. Directly pass through control to the next skill:
|
|
246
|
+
|
|
247
|
+
<expand name="code-next-dispatch"></expand>
|
|
399
248
|
|
|
400
249
|
</step>
|
|
401
250
|
|
|
@@ -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:
|
|
@@ -78,6 +78,15 @@ Honor the following tenets throughout the brainstorming:
|
|
|
78
78
|
|
|
79
79
|
1. <step id="STEP 1: Restate Topic">
|
|
80
80
|
|
|
81
|
+
<if condition="<topic/> is empty">
|
|
82
|
+
Only output the following <template/> and then immediately *STOP*
|
|
83
|
+
processing the entire current skill:
|
|
84
|
+
|
|
85
|
+
<template>
|
|
86
|
+
⧉ **ASE**: ✪ skill: **ase-meta-brainstorm**, ▶ ERROR: expected a `<topic>` argument
|
|
87
|
+
</template>
|
|
88
|
+
</if>
|
|
89
|
+
|
|
81
90
|
Restate the topic to be brainstormed by outputting the following <template/>:
|
|
82
91
|
|
|
83
92
|
<template>
|
|
@@ -99,7 +108,7 @@ Honor the following tenets throughout the brainstorming:
|
|
|
99
108
|
1..<getopt-option-max-clarify/> unknowns, as too much upfront intent
|
|
100
109
|
clarification kills the brainstorming of ideas later. So, you *MUST*
|
|
101
110
|
reduce the clarifications of the unknowns to the absolute minimum in
|
|
102
|
-
general and cap
|
|
111
|
+
general and cap them at <getopt-option-max-clarify/>!
|
|
103
112
|
|
|
104
113
|
For each essential unknown to clarify, derive a short 1-3 word facet
|
|
105
114
|
<facet-M/> and a corresponding question <question-M/> whose answer
|
|
@@ -185,7 +194,7 @@ Honor the following tenets throughout the brainstorming:
|
|
|
185
194
|
the unconventional/wildcard angle - because variety in origin yields
|
|
186
195
|
variety in outcome.
|
|
187
196
|
|
|
188
|
-
|
|
197
|
+
Still do *not* judge, rank, or prune ideas in this step. Generate
|
|
189
198
|
ideas until you either reach at least <getopt-option-min-ideas/> distinct
|
|
190
199
|
candidate ideas or have clearly exhausted the meaningfully distinct
|
|
191
200
|
space.
|
|
@@ -106,14 +106,18 @@ Processing
|
|
|
106
106
|
correct baseline Git tag. Take the `N.M.K` from the *first* (most
|
|
107
107
|
recent) level-2 header in the *ChangeLog* file and check whether a
|
|
108
108
|
corresponding Git tag already exists with the command `git tag --list
|
|
109
|
-
N.M.K`. If this command
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
109
|
+
N.M.K`. If this command *does* produce output, the first section is
|
|
110
|
+
already released/tagged, so use the `N.M.K` from the *first* level-2
|
|
111
|
+
header as the baseline tag and *insert* a new, still-unreleased
|
|
112
|
+
level-2 section (next patch version, current date) *above* it, which
|
|
113
|
+
then becomes the *first* (most recent) section all subsequent steps
|
|
114
|
+
operate on - the already released section *MUST* *NOT* be modified.
|
|
115
|
+
If this command produces *no* output, the
|
|
116
|
+
first section is still in-progress/untagged, so use the `N.M.K` from
|
|
117
|
+
the *second* level-2 header as the baseline tag instead. If *no*
|
|
118
|
+
second level-2 header exists (very first, still untagged release),
|
|
119
|
+
skip the baseline tag and check *all* Git commits with the command
|
|
120
|
+
`git log HEAD --numstat --pretty=format:'%h: %s'` instead. Then
|
|
117
121
|
check all Git commits between `HEAD` and this baseline tag with the
|
|
118
122
|
command `git log N.M.K..HEAD --numstat --pretty=format:'%h: %s'`.
|
|
119
123
|
|