@rse/ase 0.9.44 → 0.9.46
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 +50 -0
- package/package.json +3 -3
- 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-lint.md +11 -0
- package/plugin/agents/ase-docs-proofread.md +8 -0
- package/plugin/agents/ase-meta-chat.md +13 -7
- package/plugin/agents/ase-meta-search.md +0 -1
- package/plugin/etc/stx.conf +6 -1
- package/plugin/meta/ase-common-task.md +145 -0
- package/plugin/meta/ase-constitution.md +4 -1
- package/plugin/meta/ase-dialog.md +7 -7
- package/plugin/meta/ase-format-arch.md +4 -4
- package/plugin/meta/ase-format-spec.md +23 -23
- package/plugin/meta/ase-format-task.md +1 -1
- package/plugin/meta/ase-persona.md +3 -3
- package/plugin/meta/ase-skill.md +2 -2
- package/plugin/meta/ase-tenets.md +4 -4
- package/plugin/package.json +1 -1
- package/plugin/skills/ase-arch-analyze/SKILL.md +2 -3
- package/plugin/skills/ase-code-craft/SKILL.md +23 -9
- package/plugin/skills/ase-code-craft/help.md +5 -4
- package/plugin/skills/ase-code-lint/SKILL.md +19 -3
- package/plugin/skills/ase-code-refactor/SKILL.md +23 -9
- package/plugin/skills/ase-code-refactor/help.md +5 -4
- package/plugin/skills/ase-code-resolve/SKILL.md +22 -8
- package/plugin/skills/ase-code-resolve/help.md +6 -5
- package/plugin/skills/ase-docs-distill/SKILL.md +6 -6
- package/plugin/skills/ase-docs-proofread/SKILL.md +18 -3
- package/plugin/skills/ase-meta-changelog/SKILL.md +5 -2
- package/plugin/skills/ase-meta-commit/SKILL.md +4 -4
- package/plugin/skills/ase-meta-compat/SKILL.md +3 -3
- package/plugin/skills/ase-meta-diaboli/SKILL.md +2 -2
- package/plugin/skills/ase-meta-eli5/SKILL.md +116 -0
- package/plugin/skills/ase-meta-eli5/help.md +61 -0
- package/plugin/skills/ase-meta-evaluate/SKILL.md +6 -9
- package/plugin/skills/ase-meta-intent/SKILL.md +157 -0
- package/plugin/skills/ase-meta-intent/help.md +56 -0
- package/plugin/skills/ase-meta-proximity/SKILL.md +224 -0
- package/plugin/skills/ase-meta-proximity/help.md +78 -0
- package/plugin/skills/ase-meta-quorum/SKILL.md +33 -4
- package/plugin/skills/ase-meta-search/SKILL.md +1 -1
- package/plugin/skills/ase-meta-steelman/SKILL.md +3 -3
- package/plugin/skills/ase-meta-why/SKILL.md +1 -1
- package/plugin/skills/ase-sync-export/SKILL.md +7 -7
- package/plugin/skills/ase-sync-import/SKILL.md +20 -16
- package/plugin/skills/ase-sync-reconcile/SKILL.md +9 -9
- package/plugin/skills/ase-task-condense/SKILL.md +34 -79
- package/plugin/skills/ase-task-edit/SKILL.md +41 -49
- package/plugin/skills/ase-task-grill/SKILL.md +10 -12
- package/plugin/skills/ase-task-id/SKILL.md +7 -3
- package/plugin/skills/ase-task-implement/SKILL.md +18 -111
- package/plugin/skills/ase-task-list/SKILL.md +3 -0
- package/plugin/skills/ase-task-preflight/SKILL.md +22 -115
- package/plugin/skills/ase-task-reboot/SKILL.md +27 -63
- package/plugin/skills/ase-task-view/SKILL.md +7 -7
|
@@ -5,7 +5,7 @@ ASE Tenets
|
|
|
5
5
|
The following are the **ASE Tenets** -- the guiding principles you
|
|
6
6
|
*MUST* internalize when requested. They are organized into *Generic
|
|
7
7
|
Tenets*, which always apply, and *Operation-Specific Tenets*, which
|
|
8
|
-
apply only to a particular kind of operation (Crafting,
|
|
8
|
+
apply only to a particular kind of operation (Crafting, Reconciling,
|
|
9
9
|
Refactoring, Resolving).
|
|
10
10
|
|
|
11
11
|
GENERIC TENETS
|
|
@@ -80,7 +80,7 @@ CRAFTING TENETS
|
|
|
80
80
|
---------------
|
|
81
81
|
|
|
82
82
|
When *crafting* from scratch a new artifact, a feature, or an aspect,
|
|
83
|
-
you *MUST* honor the following so-called
|
|
83
|
+
you *MUST* honor the following so-called **CRAFTING TENETS**:
|
|
84
84
|
|
|
85
85
|
- **Clear Minimal Scope**:
|
|
86
86
|
Establish explicit boundaries for the new feature.
|
|
@@ -167,7 +167,7 @@ REFACTORING TENETS
|
|
|
167
167
|
------------------
|
|
168
168
|
|
|
169
169
|
When *refactoring* existing artifacts or aspects,
|
|
170
|
-
you *MUST* honor the following so-called **REFACTORING TENETS
|
|
170
|
+
you *MUST* honor the following so-called **REFACTORING TENETS**:
|
|
171
171
|
|
|
172
172
|
- **Behavior Preservation**:
|
|
173
173
|
Refactoring changes only re-structure, never change any
|
|
@@ -200,7 +200,7 @@ RESOLVING TENETS
|
|
|
200
200
|
----------------
|
|
201
201
|
|
|
202
202
|
When *resolving* a problem or challenge (bug-fixing),
|
|
203
|
-
you *MUST* honor the following so-called **RESOLVING TENETS
|
|
203
|
+
you *MUST* honor the following so-called **RESOLVING TENETS**:
|
|
204
204
|
|
|
205
205
|
- **No Cleanups**:
|
|
206
206
|
Strictly focus on resolving the problem and do not mix the task with
|
package/plugin/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"homepage": "https://ase.tools",
|
|
7
7
|
"repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
|
|
8
8
|
"bugs": { "url": "https://github.com/rse/ase/issues" },
|
|
9
|
-
"version": "0.9.
|
|
9
|
+
"version": "0.9.46",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"author": {
|
|
12
12
|
"name": "Dr. Ralf S. Engelschall",
|
|
@@ -4,7 +4,6 @@ argument-hint: "[--help|-h] <source-reference>"
|
|
|
4
4
|
description: Review software architecture, including package cohesion and inter-package coupling
|
|
5
5
|
user-invocable: true
|
|
6
6
|
disable-model-invocation: false
|
|
7
|
-
model: opus
|
|
8
7
|
effort: high
|
|
9
8
|
allowed-tools:
|
|
10
9
|
- "Bash(wc *)"
|
|
@@ -252,7 +251,7 @@ interface quality, quality attributes, and architecture governance.
|
|
|
252
251
|
- *god-package*: *incoming ≥ 5* and *outgoing ≥ 3* -
|
|
253
252
|
coordinator dumping ground that should be split along its
|
|
254
253
|
internal topical clusters
|
|
255
|
-
- *fragment*: 1
|
|
254
|
+
- *fragment*: 1-2 files under a sibling parent that share a
|
|
256
255
|
*name prefix* or *imported interface* with that sibling -
|
|
257
256
|
consolidation candidate
|
|
258
257
|
|
|
@@ -278,7 +277,7 @@ interface quality, quality attributes, and architecture governance.
|
|
|
278
277
|
which operations sit *between* the specific acquire and
|
|
279
278
|
release in source order.
|
|
280
279
|
|
|
281
|
-
- *Package-graph construction (SA19
|
|
280
|
+
- *Package-graph construction (SA19-SA21)*: parse each file's
|
|
282
281
|
import (or equivalent language construct) statement, keep
|
|
283
282
|
only first-party packages within the analyzed scope, and
|
|
284
283
|
persist two intermediate structures: the per-package
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: ase-code-craft
|
|
3
3
|
argument-hint: "[--help|-h] [--auto|-a] [--dry|-d] [--quick|-Q] [--next|-n <option>[,...]] [<task-id>:] <feature>"
|
|
4
4
|
description: >
|
|
5
|
-
Craft Source:
|
|
5
|
+
Craft Source Code:
|
|
6
6
|
Use when user wants to "create", "add", or "craft" a new feature from scratch.
|
|
7
7
|
user-invocable: true
|
|
8
8
|
disable-model-invocation: false
|
|
@@ -23,7 +23,7 @@ Craft Source Code
|
|
|
23
23
|
|
|
24
24
|
<expand name="getopt"
|
|
25
25
|
arg1="ase-code-craft"
|
|
26
|
-
arg2="--auto|-a --dry|-d --quick|-Q --next|-n=(none|DONE|EDIT|PREFLIGHT|IMPLEMENT)...">
|
|
26
|
+
arg2="--auto|-a --dry|-d --quick|-Q --next|-n=(none|DONE|EDIT|GRILL|PREFLIGHT|IMPLEMENT)...">
|
|
27
27
|
$ARGUMENTS
|
|
28
28
|
</expand>
|
|
29
29
|
|
|
@@ -109,7 +109,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
109
109
|
7. Ask the user for clarification if the goal of this crafting is too
|
|
110
110
|
unclear.
|
|
111
111
|
|
|
112
|
-
8. Do not output anything in this step, unless you asked the user.
|
|
112
|
+
8. Do not output anything else in this step, unless you asked the user.
|
|
113
113
|
|
|
114
114
|
</step>
|
|
115
115
|
|
|
@@ -231,18 +231,18 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
231
231
|
closely aligning to the existing architecture and the existing
|
|
232
232
|
code base. Use the <format/> defined for a task plan and inject
|
|
233
233
|
the information from feature A<n/> and all derived realization
|
|
234
|
-
decisions into it. Store the resulting task plan in <content/>.
|
|
234
|
+
decisions into it. Store the resulting task plan in <task-content/>.
|
|
235
235
|
|
|
236
236
|
If a `CHANGELOG.md` file exists in the project (or in any
|
|
237
237
|
affected sub-package), the plan *MUST* include, as part of its
|
|
238
|
-
`##
|
|
238
|
+
`## CHANGES` section, an explicit bullet point describing
|
|
239
239
|
the addition of a corresponding new entry to that `CHANGELOG.md`
|
|
240
240
|
file, aligned with its existing style and conventions.
|
|
241
241
|
|
|
242
242
|
<if condition="<getopt-option-dry/> is equal `true`">
|
|
243
243
|
You *MUST* completely omit the `## VERIFICATION` section
|
|
244
244
|
(including its heading and all of its bullet points) from
|
|
245
|
-
<content/>.
|
|
245
|
+
<task-content/>.
|
|
246
246
|
</if>
|
|
247
247
|
|
|
248
248
|
You *MUST* *NOT* call `Edit`, `Write`, `NotebookEdit`, or any
|
|
@@ -253,10 +253,10 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
253
253
|
<timestamp-created/> and <timestamp-modified/> information. Then
|
|
254
254
|
insert the current <ase-task-id/>, <timestamp-created/>, and
|
|
255
255
|
<timestamp-modified/> information and calculate the number of
|
|
256
|
-
words <words/> of <content/>.
|
|
256
|
+
words <words/> of <task-content/>.
|
|
257
257
|
|
|
258
258
|
3. You then *MUST* *save* the resulting plan content with the
|
|
259
|
-
`ase_task_save(id: "<ase-task-id/>", text: "<content/>")`.
|
|
259
|
+
`ase_task_save(id: "<ase-task-id/>", text: "<task-content/>")`.
|
|
260
260
|
|
|
261
261
|
4. Output a hint with the following <template/>:
|
|
262
262
|
|
|
@@ -303,7 +303,21 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
303
303
|
to *preflight* the freshly composed plan, bypassing `ase-task-edit`.
|
|
304
304
|
</elseif>
|
|
305
305
|
|
|
306
|
-
4. <
|
|
306
|
+
4. <elseif condition="<head/> is equal `GRILL`">
|
|
307
|
+
Consume the head: set <getopt-option-next/> to the remaining
|
|
308
|
+
tokens (joined back with `,`, or `none` if empty). `GRILL`
|
|
309
|
+
is this skill's own dispatch token, *not* part of
|
|
310
|
+
`ase-task-grill`'s `--next` vocabulary, so it must be
|
|
311
|
+
stripped here rather than forwarded. All remaining tokens are
|
|
312
|
+
`ase-task-grill`'s own vocabulary and are forwarded verbatim.
|
|
313
|
+
<if condition="<getopt-option-next/> is not equal `none`">
|
|
314
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
315
|
+
</if>
|
|
316
|
+
Call the tool `Skill(skill: "ase:ase-task-grill", args: "<args/>")`
|
|
317
|
+
to *grill* the freshly composed plan, bypassing `ase-task-edit`.
|
|
318
|
+
</elseif>
|
|
319
|
+
|
|
320
|
+
5. <else>
|
|
307
321
|
Hand off to `ase-task-edit`.
|
|
308
322
|
<if condition="<head/> is equal `EDIT`">
|
|
309
323
|
Consume the head: set <getopt-option-next/> to the remaining
|
|
@@ -50,15 +50,16 @@ plan via `ase_task_save` and then hands off to `ase-task-edit`,
|
|
|
50
50
|
`--next`|`-n` *option*[,...]:
|
|
51
51
|
Automatically choose the next step after composing the plan.
|
|
52
52
|
*option* is a single token or a *comma-separated chronological
|
|
53
|
-
list* of tokens; an `IMPLEMENT` or `
|
|
54
|
-
consumed by this skill (bypassing `ase-task-edit`), and any
|
|
53
|
+
list* of tokens; an `IMPLEMENT`, `PREFLIGHT`, or `GRILL` head token
|
|
54
|
+
is consumed by this skill (bypassing `ase-task-edit`), and any
|
|
55
55
|
remaining tokens are *forwarded* (via `--next`) to the downstream
|
|
56
56
|
skill. For all other head tokens, the *entire* list is forwarded
|
|
57
57
|
to `ase-task-edit`, which consumes its head itself. This lets an
|
|
58
58
|
entire pipeline be pre-scripted in one shot. Recognized tokens at
|
|
59
59
|
this skill: `none` (default, hand-off to `ase-task-edit`
|
|
60
60
|
interactively), `DONE` (stop), `EDIT` (hand off to
|
|
61
|
-
`ase-task-edit`), `
|
|
61
|
+
`ase-task-edit`), `GRILL` (hand off to `ase-task-grill`),
|
|
62
|
+
`PREFLIGHT` (hand off to `ase-task-preflight`),
|
|
62
63
|
or `IMPLEMENT` (hand off to `ase-task-implement`). Example:
|
|
63
64
|
`--next PREFLIGHT,IMPLEMENT,DONE` crafts the plan, preflights it,
|
|
64
65
|
implements it, and exits without further dialog.
|
|
@@ -87,4 +88,4 @@ Craft a feature under a named task and directly hand off to implementation:
|
|
|
87
88
|
## SEE ALSO
|
|
88
89
|
|
|
89
90
|
[`ase-code-refactor`](../ase-code-refactor/help.md), [`ase-code-resolve`](../ase-code-resolve/help.md), [`ase-task-edit`](../ase-task-edit/help.md),
|
|
90
|
-
[`ase-task-preflight`](../ase-task-preflight/help.md), [`ase-task-implement`](../ase-task-implement/help.md).
|
|
91
|
+
[`ase-task-grill`](../ase-task-grill/help.md), [`ase-task-preflight`](../ase-task-preflight/help.md), [`ase-task-implement`](../ase-task-implement/help.md).
|
|
@@ -154,11 +154,14 @@ related to a set of code quality aspects.
|
|
|
154
154
|
still perform substep 3 first. Never leave this marker active
|
|
155
155
|
for a later, unrelated `Edit`.
|
|
156
156
|
|
|
157
|
-
2.
|
|
157
|
+
2. Set <total/> to the number of problems in <problems/> and
|
|
158
|
+
<index/> to `0`. Then iterate over all problems:
|
|
158
159
|
|
|
159
160
|
<for items="<problems/>">
|
|
160
161
|
|
|
161
|
-
1.
|
|
162
|
+
1. Increment <index/> by one (the 1-based position of the
|
|
163
|
+
current <item/> within <problems/>).
|
|
164
|
+
Set <aspect/> to the `aspect` field of <item/>.
|
|
162
165
|
Set <severity/> to the `severity` field of <item/>.
|
|
163
166
|
Set <description/> to the `description` field of <item/>.
|
|
164
167
|
Set <change-set/> to the `change-set` field of <item/>.
|
|
@@ -193,6 +196,19 @@ related to a set of code quality aspects.
|
|
|
193
196
|
Set <new-text/> to the `new_text` field of <item/>.
|
|
194
197
|
Set <context-after/> to the `context_after` field of <item/>.
|
|
195
198
|
|
|
199
|
+
Then *normalize* the hunk to its *minimal* form, so
|
|
200
|
+
that the proposed diff shows exactly the lines the
|
|
201
|
+
later `Edit` will actually change: while the *first*
|
|
202
|
+
line of <old-text/> is identical to the *first* line
|
|
203
|
+
of <new-text/>, *move* that line from both to the
|
|
204
|
+
end of <context-before/> and increment <line/> by
|
|
205
|
+
one; likewise, while the *last* line of <old-text/>
|
|
206
|
+
is identical to the *last* line of <new-text/>,
|
|
207
|
+
*move* that line from both to the front of
|
|
208
|
+
<context-after/>. Finally, *trim* <context-before/>
|
|
209
|
+
to its *last* two lines and <context-after/> to its
|
|
210
|
+
*first* two lines.
|
|
211
|
+
|
|
196
212
|
2. *Skip* this substep entirely when <ase-project-boxing/>
|
|
197
213
|
is equal `grey` - the full unified diff is suppressed
|
|
198
214
|
there, so none of the <hunk-body/>, <old-count/>,
|
|
@@ -288,7 +304,7 @@ related to a set of code quality aspects.
|
|
|
288
304
|
4. Report the problem with the following <template/>:
|
|
289
305
|
|
|
290
306
|
<template>
|
|
291
|
-
<ase-tpl-bullet-signal/> **<aspect/> PROBLEM** (`<severity/>`): <context/>
|
|
307
|
+
<ase-tpl-bullet-signal/> [<index/>/<total/>]: **<aspect/> PROBLEM** (`<severity/>`): <context/>
|
|
292
308
|
|
|
293
309
|
<description/>
|
|
294
310
|
|
|
@@ -18,12 +18,12 @@ allowed-tools:
|
|
|
18
18
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
19
19
|
|
|
20
20
|
<skill name="ase-code-refactor">
|
|
21
|
-
Refactor
|
|
21
|
+
Refactor Source Code
|
|
22
22
|
</skill>
|
|
23
23
|
|
|
24
24
|
<expand name="getopt"
|
|
25
25
|
arg1="ase-code-refactor"
|
|
26
|
-
arg2="--auto|-a --dry|-d --quick|-Q --next|-n=(none|DONE|EDIT|PREFLIGHT|IMPLEMENT)...">
|
|
26
|
+
arg2="--auto|-a --dry|-d --quick|-Q --next|-n=(none|DONE|EDIT|GRILL|PREFLIGHT|IMPLEMENT)...">
|
|
27
27
|
$ARGUMENTS
|
|
28
28
|
</expand>
|
|
29
29
|
|
|
@@ -109,7 +109,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
109
109
|
7. Ask the user for clarification if the goal of this refactoring is
|
|
110
110
|
too unclear.
|
|
111
111
|
|
|
112
|
-
8. Do not output anything in this step, unless you asked the user.
|
|
112
|
+
8. Do not output anything else in this step, unless you asked the user.
|
|
113
113
|
|
|
114
114
|
</step>
|
|
115
115
|
|
|
@@ -231,18 +231,18 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
231
231
|
closely aligning to the existing architecture and the existing
|
|
232
232
|
code base. Use the <format/> defined for a task plan and inject
|
|
233
233
|
the information from refactoring A<n/> and all derived realization
|
|
234
|
-
decisions into it. Store the resulting task plan in <content/>.
|
|
234
|
+
decisions into it. Store the resulting task plan in <task-content/>.
|
|
235
235
|
|
|
236
236
|
If a `CHANGELOG.md` file exists in the project (or in any
|
|
237
237
|
affected sub-package), the plan *MUST* include, as part of its
|
|
238
|
-
`##
|
|
238
|
+
`## CHANGES` section, an explicit bullet point describing
|
|
239
239
|
the addition of a corresponding new entry to that `CHANGELOG.md`
|
|
240
240
|
file, aligned with its existing style and conventions.
|
|
241
241
|
|
|
242
242
|
<if condition="<getopt-option-dry/> is equal `true`">
|
|
243
243
|
You *MUST* completely omit the `## VERIFICATION` section
|
|
244
244
|
(including its heading and all of its bullet points) from
|
|
245
|
-
<content/>.
|
|
245
|
+
<task-content/>.
|
|
246
246
|
</if>
|
|
247
247
|
|
|
248
248
|
You *MUST* *NOT* call `Edit`, `Write`, `NotebookEdit`, or any
|
|
@@ -253,10 +253,10 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
253
253
|
<timestamp-created/> and <timestamp-modified/> information. Then
|
|
254
254
|
insert the current <ase-task-id/>, <timestamp-created/>, and
|
|
255
255
|
<timestamp-modified/> information and calculate the number of
|
|
256
|
-
words <words/> of <content/>.
|
|
256
|
+
words <words/> of <task-content/>.
|
|
257
257
|
|
|
258
258
|
3. You then *MUST* *save* the resulting plan content with the
|
|
259
|
-
`ase_task_save(id: "<ase-task-id/>", text: "<content/>")`.
|
|
259
|
+
`ase_task_save(id: "<ase-task-id/>", text: "<task-content/>")`.
|
|
260
260
|
|
|
261
261
|
4. Output a hint with the following <template/>:
|
|
262
262
|
|
|
@@ -303,7 +303,21 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
303
303
|
to *preflight* the freshly composed plan, bypassing `ase-task-edit`.
|
|
304
304
|
</elseif>
|
|
305
305
|
|
|
306
|
-
4. <
|
|
306
|
+
4. <elseif condition="<head/> is equal `GRILL`">
|
|
307
|
+
Consume the head: set <getopt-option-next/> to the remaining
|
|
308
|
+
tokens (joined back with `,`, or `none` if empty). `GRILL`
|
|
309
|
+
is this skill's own dispatch token, *not* part of
|
|
310
|
+
`ase-task-grill`'s `--next` vocabulary, so it must be
|
|
311
|
+
stripped here rather than forwarded. All remaining tokens are
|
|
312
|
+
`ase-task-grill`'s own vocabulary and are forwarded verbatim.
|
|
313
|
+
<if condition="<getopt-option-next/> is not equal `none`">
|
|
314
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
315
|
+
</if>
|
|
316
|
+
Call the tool `Skill(skill: "ase:ase-task-grill", args: "<args/>")`
|
|
317
|
+
to *grill* the freshly composed plan, bypassing `ase-task-edit`.
|
|
318
|
+
</elseif>
|
|
319
|
+
|
|
320
|
+
5. <else>
|
|
307
321
|
Hand off to `ase-task-edit`.
|
|
308
322
|
<if condition="<head/> is equal `EDIT`">
|
|
309
323
|
Consume the head: set <getopt-option-next/> to the remaining
|
|
@@ -50,15 +50,16 @@ plan via `ase_task_save` and then hands off to `ase-task-edit`,
|
|
|
50
50
|
`--next`|`-n` *option*[,...]:
|
|
51
51
|
Automatically choose the next step after composing the plan.
|
|
52
52
|
*option* is a single token or a *comma-separated chronological
|
|
53
|
-
list* of tokens; an `IMPLEMENT` or `
|
|
54
|
-
consumed by this skill (bypassing `ase-task-edit`), and any
|
|
53
|
+
list* of tokens; an `IMPLEMENT`, `PREFLIGHT`, or `GRILL` head token
|
|
54
|
+
is consumed by this skill (bypassing `ase-task-edit`), and any
|
|
55
55
|
remaining tokens are *forwarded* (via `--next`) to the downstream
|
|
56
56
|
skill. For all other head tokens, the *entire* list is forwarded
|
|
57
57
|
to `ase-task-edit`, which consumes its head itself. This lets an
|
|
58
58
|
entire pipeline be pre-scripted in one shot. Recognized tokens at
|
|
59
59
|
this skill: `none` (default, hand off to `ase-task-edit`
|
|
60
60
|
interactively), `DONE` (stop), `EDIT` (hand off to
|
|
61
|
-
`ase-task-edit`), `
|
|
61
|
+
`ase-task-edit`), `GRILL` (hand off to `ase-task-grill`),
|
|
62
|
+
`PREFLIGHT` (hand off to `ase-task-preflight`),
|
|
62
63
|
or `IMPLEMENT` (hand off to `ase-task-implement`). Example:
|
|
63
64
|
`--next PREFLIGHT,IMPLEMENT,DONE` refactors, preflights, implements,
|
|
64
65
|
and exits without further dialog.
|
|
@@ -87,4 +88,4 @@ Refactor under a named task and directly hand off to implementation:
|
|
|
87
88
|
## SEE ALSO
|
|
88
89
|
|
|
89
90
|
[`ase-code-craft`](../ase-code-craft/help.md), [`ase-code-resolve`](../ase-code-resolve/help.md), [`ase-task-edit`](../ase-task-edit/help.md),
|
|
90
|
-
[`ase-task-preflight`](../ase-task-preflight/help.md), [`ase-task-implement`](../ase-task-implement/help.md).
|
|
91
|
+
[`ase-task-grill`](../ase-task-grill/help.md), [`ase-task-preflight`](../ase-task-preflight/help.md), [`ase-task-implement`](../ase-task-implement/help.md).
|
|
@@ -23,7 +23,7 @@ Resolve Problem
|
|
|
23
23
|
|
|
24
24
|
<expand name="getopt"
|
|
25
25
|
arg1="ase-code-resolve"
|
|
26
|
-
arg2="--auto|-a --dry|-d --quick|-Q --next|-n=(none|DONE|EDIT|PREFLIGHT|IMPLEMENT)...">
|
|
26
|
+
arg2="--auto|-a --dry|-d --quick|-Q --next|-n=(none|DONE|EDIT|GRILL|PREFLIGHT|IMPLEMENT)...">
|
|
27
27
|
$ARGUMENTS
|
|
28
28
|
</expand>
|
|
29
29
|
|
|
@@ -124,7 +124,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
124
124
|
8. Ask the user for clarification if the goal of this resolution is
|
|
125
125
|
too unclear.
|
|
126
126
|
|
|
127
|
-
9. Do not output anything in this step, unless you asked the user.
|
|
127
|
+
9. Do not output anything else in this step, unless you asked the user.
|
|
128
128
|
|
|
129
129
|
10. Investigate and *figure out details* related to this problem.
|
|
130
130
|
Report those details with the following <template/>:
|
|
@@ -285,18 +285,18 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
285
285
|
problem, the chosen resolution approach, a preview of the *unified
|
|
286
286
|
diff* of the necessary code changes, and a possible way to verify
|
|
287
287
|
the success of the resolution, by using the <format/> defined for a
|
|
288
|
-
task plan. Store the resulting task plan in <content/>.
|
|
288
|
+
task plan. Store the resulting task plan in <task-content/>.
|
|
289
289
|
|
|
290
290
|
If a `CHANGELOG.md` file exists in the project (or in any
|
|
291
291
|
affected sub-package), the plan *MUST* include, as part of its
|
|
292
|
-
`##
|
|
292
|
+
`## CHANGES` section, an explicit bullet point describing
|
|
293
293
|
the addition of a corresponding new entry to that `CHANGELOG.md`
|
|
294
294
|
file, aligned with its existing style and conventions.
|
|
295
295
|
|
|
296
296
|
<if condition="<getopt-option-dry/> is equal `true`">
|
|
297
297
|
You *MUST* completely omit the `## VERIFICATION` section
|
|
298
298
|
(including its heading and all of its bullet points) from
|
|
299
|
-
<content/>.
|
|
299
|
+
<task-content/>.
|
|
300
300
|
</if>
|
|
301
301
|
|
|
302
302
|
You *MUST* *NOT* call `Edit`, `Write`, `NotebookEdit`, or any
|
|
@@ -307,10 +307,10 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
307
307
|
<timestamp-created/> and <timestamp-modified/> information. Then
|
|
308
308
|
insert the current <ase-task-id/>, <timestamp-created/>, and
|
|
309
309
|
<timestamp-modified/> information and calculate the number of
|
|
310
|
-
words <words/> of <content/>.
|
|
310
|
+
words <words/> of <task-content/>.
|
|
311
311
|
|
|
312
312
|
3. You then *MUST* *save* the resulting plan content with the
|
|
313
|
-
`ase_task_save(id: "<ase-task-id/>", text: "<content/>")`.
|
|
313
|
+
`ase_task_save(id: "<ase-task-id/>", text: "<task-content/>")`.
|
|
314
314
|
|
|
315
315
|
4. If <problem-id/> is set (i.e. the <problem/> was retrieved from
|
|
316
316
|
`ase_kv_get` in STEP 1.1 via key `ase-issue-<problem-id/>`),
|
|
@@ -364,7 +364,21 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
364
364
|
to *preflight* the freshly composed plan, bypassing `ase-task-edit`.
|
|
365
365
|
</elseif>
|
|
366
366
|
|
|
367
|
-
4. <
|
|
367
|
+
4. <elseif condition="<head/> is equal `GRILL`">
|
|
368
|
+
Consume the head: set <getopt-option-next/> to the remaining
|
|
369
|
+
tokens (joined back with `,`, or `none` if empty). `GRILL`
|
|
370
|
+
is this skill's own dispatch token, *not* part of
|
|
371
|
+
`ase-task-grill`'s `--next` vocabulary, so it must be
|
|
372
|
+
stripped here rather than forwarded. All remaining tokens are
|
|
373
|
+
`ase-task-grill`'s own vocabulary and are forwarded verbatim.
|
|
374
|
+
<if condition="<getopt-option-next/> is not equal `none`">
|
|
375
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
376
|
+
</if>
|
|
377
|
+
Call the tool `Skill(skill: "ase:ase-task-grill", args: "<args/>")`
|
|
378
|
+
to *grill* the freshly composed plan, bypassing `ase-task-edit`.
|
|
379
|
+
</elseif>
|
|
380
|
+
|
|
381
|
+
5. <else>
|
|
368
382
|
Hand off to `ase-task-edit`.
|
|
369
383
|
<if condition="<head/> is equal `EDIT`">
|
|
370
384
|
Consume the head: set <getopt-option-next/> to the remaining
|
|
@@ -55,15 +55,16 @@ plan via `ase_task_save` and then hands off to `ase-task-edit`,
|
|
|
55
55
|
`--next`|`-n` *option*[,...]:
|
|
56
56
|
Automatically choose the next step after composing the plan.
|
|
57
57
|
*option* is a single token or a *comma-separated chronological
|
|
58
|
-
list* of tokens; an `IMPLEMENT` or `
|
|
59
|
-
consumed by this skill (bypassing `ase-task-edit`), and any
|
|
58
|
+
list* of tokens; an `IMPLEMENT`, `PREFLIGHT`, or `GRILL` head token
|
|
59
|
+
is consumed by this skill (bypassing `ase-task-edit`), and any
|
|
60
60
|
remaining tokens are *forwarded* (via `--next`) to the downstream
|
|
61
61
|
skill. For all other head tokens, the *entire* list is forwarded
|
|
62
62
|
to `ase-task-edit`, which consumes its head itself. This lets an
|
|
63
63
|
entire pipeline be pre-scripted in one shot. Recognized tokens at
|
|
64
64
|
this skill: `none` (default, hand off to `ase-task-edit`
|
|
65
65
|
interactively), `DONE` (stop), `EDIT` (hand off to
|
|
66
|
-
`ase-task-edit`), `
|
|
66
|
+
`ase-task-edit`), `GRILL` (hand off to `ase-task-grill`),
|
|
67
|
+
`PREFLIGHT` (hand off to `ase-task-preflight`),
|
|
67
68
|
or `IMPLEMENT` (hand off to `ase-task-implement`). Example:
|
|
68
69
|
`--next IMPLEMENT,DONE` resolves the problem, implements it, and
|
|
69
70
|
exits without further dialog.
|
|
@@ -93,5 +94,5 @@ Resolve a previously analyzed issue and hand off to implementation:
|
|
|
93
94
|
## SEE ALSO
|
|
94
95
|
|
|
95
96
|
[`ase-code-craft`](../ase-code-craft/help.md), [`ase-code-refactor`](../ase-code-refactor/help.md), [`ase-code-analyze`](../ase-code-analyze/help.md),
|
|
96
|
-
[`ase-arch-analyze`](../ase-arch-analyze/help.md), [`ase-task-edit`](../ase-task-edit/help.md), [`ase-task-
|
|
97
|
-
[`ase-task-implement`](../ase-task-implement/help.md).
|
|
97
|
+
[`ase-arch-analyze`](../ase-arch-analyze/help.md), [`ase-task-edit`](../ase-task-edit/help.md), [`ase-task-grill`](../ase-task-grill/help.md),
|
|
98
|
+
[`ase-task-preflight`](../ase-task-preflight/help.md), [`ase-task-implement`](../ase-task-implement/help.md).
|
|
@@ -17,7 +17,7 @@ effort: high
|
|
|
17
17
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
18
18
|
|
|
19
19
|
<skill name="ase-docs-distill">
|
|
20
|
-
|
|
20
|
+
Distill Key Points
|
|
21
21
|
</skill>
|
|
22
22
|
|
|
23
23
|
<expand name="getopt"
|
|
@@ -27,11 +27,11 @@ effort: high
|
|
|
27
27
|
</expand>
|
|
28
28
|
|
|
29
29
|
<objective>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
*Distill* the content `<getopt-arguments/>` into a *flat*,
|
|
31
|
+
*importance-ranked* list of its *key points* - each point an
|
|
32
|
+
*atomic* claim carrying a *0-10 salience rank*, a *one-line
|
|
33
|
+
rationale*, and a *verbatim, line-cited evidence* snippet - keeping
|
|
34
|
+
at most `<getopt-option-top/>` points.
|
|
35
35
|
</objective>
|
|
36
36
|
|
|
37
37
|
Procedure
|
|
@@ -135,11 +135,14 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
135
135
|
still perform substep 3 first. Never leave this marker active
|
|
136
136
|
for a later, unrelated `Edit`.
|
|
137
137
|
|
|
138
|
-
2.
|
|
138
|
+
2. Set <total/> to the number of problems in <problems/> and
|
|
139
|
+
<index/> to `0`. Then iterate over all problems:
|
|
139
140
|
|
|
140
141
|
<for items="<problems/>">
|
|
141
142
|
|
|
142
|
-
1.
|
|
143
|
+
1. Increment <index/> by one (the 1-based position of the
|
|
144
|
+
current <item/> within <problems/>).
|
|
145
|
+
Set <type/> to the `type` field of <item/>.
|
|
143
146
|
Set <file/> to the `file` field of <item/>.
|
|
144
147
|
Set <line/> to the `line` field of <item/>.
|
|
145
148
|
Set <description/> to the `description` field of <item/>.
|
|
@@ -148,10 +151,22 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
148
151
|
Set <new-text/> to the `new_text` field of <item/>.
|
|
149
152
|
Set <context-after/> to the `context_after` field of <item/>.
|
|
150
153
|
|
|
154
|
+
Then *normalize* the change to its *minimal* form, so
|
|
155
|
+
that the proposed diff shows exactly the lines the later
|
|
156
|
+
`Edit` will actually change: while the *first* line of
|
|
157
|
+
<old-text/> is identical to the *first* line of
|
|
158
|
+
<new-text/>, *move* that line from both to the end of
|
|
159
|
+
<context-before/> and increment <line/> by one; likewise,
|
|
160
|
+
while the *last* line of <old-text/> is identical to the
|
|
161
|
+
*last* line of <new-text/>, *move* that line from both to
|
|
162
|
+
the front of <context-after/>. Finally, *trim*
|
|
163
|
+
<context-before/> to its *last* two lines and
|
|
164
|
+
<context-after/> to its *first* two lines.
|
|
165
|
+
|
|
151
166
|
2. Report the problem with the following <template/>:
|
|
152
167
|
|
|
153
168
|
<template>
|
|
154
|
-
<ase-tpl-bullet-signal/> **<type/> PROBLEM**: `<file/>`:<line/>:
|
|
169
|
+
<ase-tpl-bullet-signal/> [<index/>/<total/>]: **<type/> PROBLEM**: `<file/>`:<line/>:
|
|
155
170
|
|
|
156
171
|
<description/>
|
|
157
172
|
</template>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: ase-meta-changelog
|
|
3
3
|
argument-hint: "[--help|-h]"
|
|
4
4
|
description: >
|
|
5
|
-
Update
|
|
5
|
+
Update ChangeLog entries in CHANGELOG.md files
|
|
6
6
|
user-invocable: true
|
|
7
7
|
disable-model-invocation: false
|
|
8
8
|
effort: high
|
|
@@ -108,7 +108,10 @@ Processing
|
|
|
108
108
|
corresponding Git tag already exists with the command `git tag --list
|
|
109
109
|
N.M.K`. If this command produces *no* output, the first section is
|
|
110
110
|
still in-progress/untagged, so use the `N.M.K` from the *second*
|
|
111
|
-
level-2 header as the baseline tag instead. If
|
|
111
|
+
level-2 header as the baseline tag instead. If *no* second level-2
|
|
112
|
+
header exists (very first, still untagged release), skip the baseline
|
|
113
|
+
tag and check *all* Git commits with the command `git log HEAD
|
|
114
|
+
--numstat --pretty=format:'%h: %s'` instead. If this command *does*
|
|
112
115
|
produce output, the first section is already released/tagged, so use
|
|
113
116
|
the `N.M.K` from the *first* level-2 header as the baseline tag. Then
|
|
114
117
|
check all Git commits between `HEAD` and this baseline tag with the
|
|
@@ -48,10 +48,10 @@ currently staged Git changes.
|
|
|
48
48
|
of the `ase-meta-diff` and `ase-meta-changelog` skills) and their
|
|
49
49
|
usual corresponding kind of change are:
|
|
50
50
|
|
|
51
|
-
- `FEATURE`: new
|
|
52
|
-
- `IMPROVEMENT`: improved
|
|
53
|
-
- `BUGFIX`: corrected
|
|
54
|
-
- `UPDATE`: updated
|
|
51
|
+
- `FEATURE`: new functionality or configuration
|
|
52
|
+
- `IMPROVEMENT`: improved functionality or configuration
|
|
53
|
+
- `BUGFIX`: corrected functionality or configuration
|
|
54
|
+
- `UPDATE`: updated functionality or configuration
|
|
55
55
|
- `CLEANUP`: cleaned up functionality or configuration
|
|
56
56
|
- `REFACTOR`: refactored functionality or configuration
|
|
57
57
|
|
|
@@ -40,8 +40,8 @@ value until STEP 6. Do not fabricate passes: a probe whose actual result
|
|
|
40
40
|
differs from its expected result *MUST* be recorded as a *fail*.
|
|
41
41
|
|
|
42
42
|
Notice that this skill intentionally does not strictly follow the ASE
|
|
43
|
-
skill format,
|
|
44
|
-
|
|
43
|
+
skill format; in particular, it does not include the usual meta skill
|
|
44
|
+
information.
|
|
45
45
|
|
|
46
46
|
Procedure
|
|
47
47
|
---------
|
|
@@ -107,7 +107,7 @@ Procedure
|
|
|
107
107
|
Record <s/> as actual result for `control-flow/while-sum`.
|
|
108
108
|
|
|
109
109
|
3. *for-order*: Set <s></s>, then evaluate
|
|
110
|
-
`<for items="x y z"><s><s/>-<item/></for>`.
|
|
110
|
+
`<for items="x y z"><s><s/>-<item/></s></for>`.
|
|
111
111
|
Record <s/> as actual result for `control-flow/for-order`.
|
|
112
112
|
|
|
113
113
|
4. *while-break*: Set <i>1</i> and <hit></hit>, then evaluate
|
|
@@ -103,8 +103,8 @@ to <getopt-option-count/>; if <getopt-option-count/> is *non-numeric* or
|
|
|
103
103
|
|
|
104
104
|
- **Argue in Good Faith**:
|
|
105
105
|
Make clear you're just stress-testing the thesis, not
|
|
106
|
-
obstructing, because the goal
|
|
107
|
-
|
|
106
|
+
obstructing, because the goal is a better final decision, not
|
|
107
|
+
winning.
|
|
108
108
|
|
|
109
109
|
- **Know When to Yield**:
|
|
110
110
|
Conceding when the argument holds is what makes the challenge
|