@rse/ase 0.9.43 → 0.9.45
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-artifact.js +28 -24
- package/dst/ase-config.js +27 -36
- package/dst/ase-diagram.js +15 -35
- package/dst/ase-getopt.js +10 -15
- package/dst/ase-hook.js +29 -27
- package/dst/ase-kv.js +24 -29
- package/dst/ase-log.js +10 -3
- package/dst/ase-markdown.js +135 -102
- package/dst/ase-mcp.js +3 -10
- package/dst/ase-meta.js +6 -4
- package/dst/ase-persona.js +7 -11
- package/dst/ase-service.js +28 -28
- package/dst/ase-setup.js +65 -28
- package/dst/ase-skills.js +2 -2
- package/dst/ase-statusline.js +26 -34
- package/dst/ase-task.js +60 -63
- package/dst/ase-version.js +2 -1
- package/dst/ase.js +7 -11
- package/package.json +12 -10
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/.github/plugin/plugin.json +2 -2
- package/plugin/agents/ase-code-lint.md +15 -4
- package/plugin/agents/ase-docs-proofread.md +9 -1
- package/plugin/agents/ase-meta-chat.md +19 -13
- package/plugin/agents/ase-meta-diagram.md +1 -1
- package/plugin/agents/ase-meta-search.md +1 -2
- package/plugin/etc/eslint.mjs +0 -2
- package/plugin/meta/ase-common-task.md +145 -0
- package/plugin/meta/ase-constitution.md +5 -2
- package/plugin/meta/ase-control.md +1 -1
- package/plugin/meta/ase-dialog.md +7 -7
- package/plugin/meta/ase-format-arch.md +12 -12
- package/plugin/meta/ase-format-spec.md +23 -23
- package/plugin/meta/ase-format-task.md +9 -11
- package/plugin/meta/ase-getopt.md +1 -1
- package/plugin/meta/ase-persona.md +3 -3
- package/plugin/meta/ase-skill.md +3 -3
- package/plugin/meta/ase-tenets.md +4 -4
- package/plugin/package.json +8 -8
- package/plugin/skills/ase-arch-analyze/SKILL.md +2 -3
- package/plugin/skills/ase-arch-analyze/help.md +2 -2
- package/plugin/skills/ase-arch-discover/SKILL.md +2 -2
- package/plugin/skills/ase-arch-discover/help.md +3 -2
- package/plugin/skills/ase-code-analyze/SKILL.md +0 -1
- package/plugin/skills/ase-code-craft/SKILL.md +11 -11
- package/plugin/skills/ase-code-lint/SKILL.md +31 -13
- package/plugin/skills/ase-code-refactor/SKILL.md +13 -13
- package/plugin/skills/ase-code-refactor/help.md +1 -1
- package/plugin/skills/ase-code-resolve/SKILL.md +10 -10
- package/plugin/skills/ase-code-resolve/help.md +1 -1
- package/plugin/skills/ase-docs-distill/SKILL.md +6 -6
- package/plugin/skills/ase-docs-distill/help.md +6 -4
- package/plugin/skills/ase-docs-proofread/SKILL.md +23 -8
- package/plugin/skills/ase-meta-brainstorm/help.md +1 -1
- package/plugin/skills/ase-meta-changelog/SKILL.md +9 -5
- package/plugin/skills/ase-meta-commit/SKILL.md +8 -6
- package/plugin/skills/ase-meta-compat/SKILL.md +14 -5
- package/plugin/skills/ase-meta-diaboli/SKILL.md +6 -6
- package/plugin/skills/ase-meta-diff/SKILL.md +10 -10
- package/plugin/skills/ase-meta-evaluate/SKILL.md +6 -9
- package/plugin/skills/ase-meta-persona/SKILL.md +1 -1
- package/plugin/skills/ase-meta-quorum/SKILL.md +43 -12
- package/plugin/skills/ase-meta-search/SKILL.md +1 -1
- package/plugin/skills/ase-meta-search/help.md +4 -2
- package/plugin/skills/ase-meta-steelman/SKILL.md +5 -5
- package/plugin/skills/ase-meta-steelman/help.md +5 -3
- package/plugin/skills/ase-meta-why/SKILL.md +2 -2
- package/plugin/skills/ase-meta-why/help.md +3 -1
- package/plugin/skills/ase-sync-export/SKILL.md +20 -17
- package/plugin/skills/ase-sync-import/SKILL.md +20 -16
- package/plugin/skills/ase-sync-import/help.md +2 -2
- package/plugin/skills/ase-sync-reconcile/SKILL.md +10 -10
- package/plugin/skills/ase-sync-reconcile/help.md +1 -1
- package/plugin/skills/ase-task-condense/SKILL.md +39 -85
- package/plugin/skills/ase-task-delete/SKILL.md +1 -1
- package/plugin/skills/ase-task-edit/SKILL.md +43 -51
- package/plugin/skills/ase-task-grill/SKILL.md +11 -13
- 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-implement/help.md +2 -2
- 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 +39 -71
- package/plugin/skills/ase-task-reboot/help.md +2 -1
- package/plugin/skills/ase-task-view/SKILL.md +7 -7
|
@@ -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/>:
|
|
@@ -193,15 +193,15 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
193
193
|
|
|
194
194
|
You *MUST* perform the following sub-steps *internally* and *without
|
|
195
195
|
any output* until and including the recommendation decision. Only
|
|
196
|
-
sub-steps 4-
|
|
196
|
+
sub-steps 4-7 below are allowed to produce output; sub-steps 4-6 only if
|
|
197
197
|
<getopt-option-auto/> is equal `false` *and* <ase-project-boxing/>
|
|
198
198
|
is *not* equal `black`.
|
|
199
199
|
|
|
200
200
|
If <getopt-option-auto/> is equal `true` or <ase-project-boxing/> is
|
|
201
|
-
equal `black`, *skip* the reporting sub-steps 4-6 entirely (
|
|
202
|
-
no output at all) to speed up processing.
|
|
201
|
+
equal `black`, *skip* the reporting sub-steps 4-6 entirely (they
|
|
202
|
+
perform no output at all) to speed up processing.
|
|
203
203
|
|
|
204
|
-
1. *Propose* corresponding *resolution approach*, including
|
|
204
|
+
1. *Propose* a corresponding *resolution approach*, optionally including
|
|
205
205
|
some *alternative* resolution approaches. Do *not* output anything
|
|
206
206
|
in this sub-step.
|
|
207
207
|
|
|
@@ -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/>`),
|
|
@@ -61,7 +61,7 @@ plan via `ase_task_save` and then hands off to `ase-task-edit`,
|
|
|
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
|
-
this skill: `none` (default, hand
|
|
64
|
+
this skill: `none` (default, hand off to `ase-task-edit`
|
|
65
65
|
interactively), `DONE` (stop), `EDIT` (hand off to
|
|
66
66
|
`ase-task-edit`), `PREFLIGHT` (hand off to `ase-task-preflight`),
|
|
67
67
|
or `IMPLEMENT` (hand off to `ase-task-implement`). Example:
|
|
@@ -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
|
|
@@ -37,14 +37,16 @@ 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
38
|
non-numeric value falls back to the default *5*.
|
|
39
39
|
|
|
40
|
-
##
|
|
40
|
+
## OPTIONS
|
|
41
41
|
|
|
42
|
-
`--top
|
|
42
|
+
`--top`|`-t` *N*:
|
|
43
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.
|
|
47
47
|
|
|
48
|
+
## ARGUMENTS
|
|
49
|
+
|
|
48
50
|
*document-reference*:
|
|
49
51
|
The document to distill - either a *path* to a readable file or the
|
|
50
52
|
*text* itself pasted inline. If it resolves to a readable file the
|
|
@@ -58,10 +60,10 @@ Distill the key points of a document file:
|
|
|
58
60
|
❯ /ase-docs-distill doc/architecture.md
|
|
59
61
|
```
|
|
60
62
|
|
|
61
|
-
Distill only the top
|
|
63
|
+
Distill only the top 3 key points:
|
|
62
64
|
|
|
63
65
|
```text
|
|
64
|
-
❯ /ase-docs-distill --top
|
|
66
|
+
❯ /ase-docs-distill --top 3 doc/architecture.md
|
|
65
67
|
```
|
|
66
68
|
|
|
67
69
|
Distill a pasted block of text:
|
|
@@ -88,8 +88,8 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
88
88
|
`file` and then numerically by `line`, and set <problems/> to that
|
|
89
89
|
list.
|
|
90
90
|
|
|
91
|
-
You *MUST* *NOT* output anything at all in this
|
|
92
|
-
`Glob` and `Agent` tool invocations.
|
|
91
|
+
You *MUST* *NOT* output anything at all in this STEP 1 beyond the
|
|
92
|
+
above hint template and the `Glob` and `Agent` tool invocations.
|
|
93
93
|
</step>
|
|
94
94
|
|
|
95
95
|
2. <step id="STEP 2: Summary">
|
|
@@ -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,15 +151,27 @@ 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>
|
|
158
173
|
|
|
159
|
-
3. <if condition="<getopt-option-auto/> is not
|
|
174
|
+
3. <if condition="<getopt-option-auto/> is not equal `true` and <ase-project-boxing/> is equal `grey`">
|
|
160
175
|
|
|
161
176
|
The project source artifacts are classified as a *grey box*, so
|
|
162
177
|
the user does *not* want the full artifact internals surfaced:
|
|
@@ -175,7 +190,7 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
175
190
|
</template>
|
|
176
191
|
|
|
177
192
|
</if>
|
|
178
|
-
<elseif condition="<getopt-option-auto/> is not
|
|
193
|
+
<elseif condition="<getopt-option-auto/> is not equal `true`">
|
|
179
194
|
|
|
180
195
|
Determine the hunk *body* as an ordered list of lines, each
|
|
181
196
|
carrying a one-character prefix (` ` for context, `-` for
|
|
@@ -231,7 +246,7 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
231
246
|
|
|
232
247
|
</elseif>
|
|
233
248
|
|
|
234
|
-
4. <if condition="<getopt-option-auto/> is not
|
|
249
|
+
4. <if condition="<getopt-option-auto/> is not equal `true`">
|
|
235
250
|
|
|
236
251
|
In the following, you *MUST* *NOT* use your built-in
|
|
237
252
|
<user-dialog-tool/> tool! Instead, you *MUST* just show a
|
|
@@ -84,4 +84,4 @@ and a tighter shortlist:
|
|
|
84
84
|
|
|
85
85
|
## SEE ALSO
|
|
86
86
|
|
|
87
|
-
[`ase-meta-evaluate`](../ase-meta-evaluate/help.md), [`ase-meta-quorum`](../ase-meta-quorum/help.md), [`ase-meta-diaboli`](../ase-meta-diaboli/help.md)
|
|
87
|
+
[`ase-meta-evaluate`](../ase-meta-evaluate/help.md), [`ase-meta-quorum`](../ase-meta-quorum/help.md), [`ase-meta-diaboli`](../ase-meta-diaboli/help.md).
|
|
@@ -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
|
|
@@ -10,6 +10,7 @@ allowed-tools:
|
|
|
10
10
|
- "Bash(git log *)"
|
|
11
11
|
- "Bash(git diff *)"
|
|
12
12
|
- "Bash(git show *)"
|
|
13
|
+
- "Bash(git tag --list *)"
|
|
13
14
|
- "Write"
|
|
14
15
|
- "Edit"
|
|
15
16
|
---
|
|
@@ -97,7 +98,7 @@ Processing
|
|
|
97
98
|
<ase-tpl-bullet-normal/> **DETERMINE ARTIFACT CHANGES:**
|
|
98
99
|
</template>
|
|
99
100
|
|
|
100
|
-
To update
|
|
101
|
+
To update the entries of the most recent *ChangeLog* section, consult
|
|
101
102
|
the Git *commits* plus the currently already staged changes in the Git
|
|
102
103
|
*index*, but *ignore* the Git *stash* and still unstaged changes.
|
|
103
104
|
|
|
@@ -107,7 +108,10 @@ Processing
|
|
|
107
108
|
corresponding Git tag already exists with the command `git tag --list
|
|
108
109
|
N.M.K`. If this command produces *no* output, the first section is
|
|
109
110
|
still in-progress/untagged, so use the `N.M.K` from the *second*
|
|
110
|
-
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*
|
|
111
115
|
produce output, the first section is already released/tagged, so use
|
|
112
116
|
the `N.M.K` from the *first* level-2 header as the baseline tag. Then
|
|
113
117
|
check all Git commits between `HEAD` and this baseline tag with the
|
|
@@ -144,8 +148,8 @@ Processing
|
|
|
144
148
|
... ])` tool of the `ase` MCP server *once*, passing the `kind`
|
|
145
149
|
tokens (`spec`, `arch`, `code`, `docs`, `infr`, `othr`), and read
|
|
146
150
|
the returned `artifacts` array of `{ kind, files }` objects to match
|
|
147
|
-
each changed file to its kind.
|
|
148
|
-
|
|
151
|
+
each changed file to its kind. Use the matched lower-cased kind
|
|
152
|
+
directly as its <artifact-kind/> tag, and comma-separate multiple
|
|
149
153
|
tags when more than one artifact class applies.
|
|
150
154
|
|
|
151
155
|
If a <summary/> is too short or especially is not comprehensible
|
|
@@ -44,12 +44,14 @@ currently staged Git changes.
|
|
|
44
44
|
|
|
45
45
|
`<type/>: <summary/>`
|
|
46
46
|
|
|
47
|
-
The known <type/>s
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
- `
|
|
52
|
-
- `
|
|
47
|
+
The known <type/>s (kept deliberately in sync with the intent groups
|
|
48
|
+
of the `ase-meta-diff` and `ase-meta-changelog` skills) and their
|
|
49
|
+
usual corresponding kind of change are:
|
|
50
|
+
|
|
51
|
+
- `FEATURE`: new functionality or configuration
|
|
52
|
+
- `IMPROVEMENT`: improved functionality or configuration
|
|
53
|
+
- `BUGFIX`: corrected functionality or configuration
|
|
54
|
+
- `UPDATE`: updated functionality or configuration
|
|
53
55
|
- `CLEANUP`: cleaned up functionality or configuration
|
|
54
56
|
- `REFACTOR`: refactored functionality or configuration
|
|
55
57
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-meta-compat
|
|
3
|
+
argument-hint: "[--help|-h]"
|
|
3
4
|
description: >
|
|
4
5
|
Self-test the LLM's ability to execute ASE's core interpreter
|
|
5
6
|
machinery (control flow, XML placeholders, regex matching,
|
|
@@ -13,6 +14,14 @@ disable-model-invocation: true
|
|
|
13
14
|
|
|
14
15
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
15
16
|
|
|
17
|
+
If `$1` (the first token of the skill arguments) is equal to `-h` or
|
|
18
|
+
`--help`, you *MUST* once output the following output <template/> and
|
|
19
|
+
then *IMMEDIATELY* *STOP* the further skill processing:
|
|
20
|
+
|
|
21
|
+
<template>
|
|
22
|
+
@${CLAUDE_SKILL_DIR}/help.md
|
|
23
|
+
</template>
|
|
24
|
+
|
|
16
25
|
Self-Test ASE Compatibility
|
|
17
26
|
===========================
|
|
18
27
|
|
|
@@ -31,8 +40,8 @@ value until STEP 6. Do not fabricate passes: a probe whose actual result
|
|
|
31
40
|
differs from its expected result *MUST* be recorded as a *fail*.
|
|
32
41
|
|
|
33
42
|
Notice that this skill intentionally does not strictly follow the ASE
|
|
34
|
-
skill format,
|
|
35
|
-
|
|
43
|
+
skill format; in particular, it does not include the usual meta skill
|
|
44
|
+
information.
|
|
36
45
|
|
|
37
46
|
Procedure
|
|
38
47
|
---------
|
|
@@ -98,7 +107,7 @@ Procedure
|
|
|
98
107
|
Record <s/> as actual result for `control-flow/while-sum`.
|
|
99
108
|
|
|
100
109
|
3. *for-order*: Set <s></s>, then evaluate
|
|
101
|
-
`<for items="x y z"><s><s/>-<item/></for>`.
|
|
110
|
+
`<for items="x y z"><s><s/>-<item/></s></for>`.
|
|
102
111
|
Record <s/> as actual result for `control-flow/for-order`.
|
|
103
112
|
|
|
104
113
|
4. *while-break*: Set <i>1</i> and <hit></hit>, then evaluate
|
|
@@ -110,7 +119,7 @@ Procedure
|
|
|
110
119
|
|
|
111
120
|
5. *step-skip*: A `<step condition="[...]">[...]</step>` either expands
|
|
112
121
|
to its body (if condition evaluates to true) or to the empty string,
|
|
113
|
-
so what does `<step condition="42 is greater than 7">X</step>`
|
|
122
|
+
so what does `<step condition="42 is greater than 7">X</step>` expand into?
|
|
114
123
|
Record the result of this construct for `control-flow/step-skip`.
|
|
115
124
|
|
|
116
125
|
6. *expand-subst*: With `<define name="foo">[<arg1/>:<content/>]</define>`,
|
|
@@ -146,7 +155,7 @@ Procedure
|
|
|
146
155
|
(the `\s` alternative)?
|
|
147
156
|
Record `yes` or `no` as actual result for `regex/whitespace`.
|
|
148
157
|
|
|
149
|
-
7. *complex*: Does
|
|
158
|
+
7. *complex*: Does `--level=(low|high)...` match
|
|
150
159
|
`^--([A-Za-z][A-Za-z0-9-]*)(?:\|-([A-Za-z]))?(?:=(\((.*)\)(\.\.\.)?|.*))?$`?
|
|
151
160
|
Record `yes` or `no` as actual result for `regex/complex`.
|
|
152
161
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: ase-meta-diaboli
|
|
3
3
|
argument-hint: "[--help|-h] [--count|-c <count>] <thesis>"
|
|
4
4
|
description: >
|
|
5
|
-
Challenge a thesis by playing "Devil
|
|
5
|
+
Challenge a thesis by playing "Devil's Advocate" (Latin: "Advocatus
|
|
6
6
|
Diaboli"). Use when the user wants a thesis or statement
|
|
7
7
|
relentlessly challenged or criticised.
|
|
8
8
|
user-invocable: true
|
|
@@ -15,7 +15,7 @@ effort: xhigh
|
|
|
15
15
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
16
16
|
|
|
17
17
|
<skill name="ase-meta-diaboli">
|
|
18
|
-
|
|
18
|
+
Play "Devil's Advocate"
|
|
19
19
|
</skill>
|
|
20
20
|
|
|
21
21
|
<expand name="getopt"
|
|
@@ -25,8 +25,8 @@ effort: xhigh
|
|
|
25
25
|
</expand>
|
|
26
26
|
|
|
27
27
|
<objective>
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
Play "Devil's Advocate" (Latin: "Advocatus Diaboli") by relentlessly
|
|
29
|
+
challenging or criticising the thesis: <thesis><getopt-arguments/></thesis>
|
|
30
30
|
</objective>
|
|
31
31
|
|
|
32
32
|
Determine the minimum number of *anti-theses* to surface: set <count/>
|
|
@@ -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
|
|
@@ -72,16 +72,16 @@ Procedure
|
|
|
72
72
|
</template>
|
|
73
73
|
</if>
|
|
74
74
|
|
|
75
|
-
2.
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
75
|
+
2. Analyze the <diff/> and <stat/> and synthesize a *concise* narrative of
|
|
76
|
+
WHAT changed and WHY, *grouped by intent* rather than by file.
|
|
77
|
+
Honor the following intents:
|
|
78
|
+
|
|
79
|
+
- `FEATURE`: new functionality or configuration
|
|
80
|
+
- `IMPROVEMENT`: improved functionality or configuration
|
|
81
|
+
- `BUGFIX`: corrected functionality or configuration
|
|
82
|
+
- `UPDATE`: updated functionality or configuration
|
|
83
|
+
- `CLEANUP`: cleaned up functionality or configuration
|
|
84
|
+
- `REFACTOR`: refactored functionality or configuration
|
|
85
85
|
|
|
86
86
|
3. <if condition="<diff/> is NOT empty">
|
|
87
87
|
1. First, output the following header <template/>:
|
|
@@ -81,19 +81,16 @@ multi-*criteria* decision matrix.
|
|
|
81
81
|
- For each alternative <alternative-K/> (K=1-N), decide whether
|
|
82
82
|
it is a genuine member of <class-of-alternatives/>. If any
|
|
83
83
|
<alternative-K/> is *not* a member (i.e. the alternatives are not
|
|
84
|
-
mutually comparable within a single class),
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
decision was negative)
|
|
88
|
-
|
|
89
|
-
steps:
|
|
84
|
+
mutually comparable within a single class), output the following
|
|
85
|
+
<template/> (repeating the `⚑` line once per non-member
|
|
86
|
+
alternative, i.e. once for each <alternative-K/> for which the
|
|
87
|
+
membership decision was negative) and *stop the entire flow*
|
|
88
|
+
immediately without executing any further steps:
|
|
90
89
|
|
|
91
90
|
<template>
|
|
92
91
|
<ase-tpl-bullet-signal/> **ERROR: INCOMPARABLE ALTERNATIVES**: *<class-of-alternatives/>*
|
|
93
92
|
|
|
94
|
-
|
|
95
|
-
⚑ **<item/>** (*member of a different class*)
|
|
96
|
-
</for>
|
|
93
|
+
⚑ **<alternative-K/>** (*member of a different class*)
|
|
97
94
|
</template>
|
|
98
95
|
|
|
99
96
|
- Output the determined, individual alternatives as a Markdown
|
|
@@ -7,7 +7,7 @@ description: >
|
|
|
7
7
|
the concise, factual, and accurate "engineer" (default),
|
|
8
8
|
the layered, pyramid-structured "journalist",
|
|
9
9
|
the brief, factual, and abbreviating "telegrapher",
|
|
10
|
-
the terse, rough, and stuttering "caveman".
|
|
10
|
+
or the terse, rough, and stuttering "caveman".
|
|
11
11
|
Use when user says "persona <persona>" or "be <persona>".
|
|
12
12
|
user-invocable: true
|
|
13
13
|
disable-model-invocation: false
|
|
@@ -2,13 +2,17 @@
|
|
|
2
2
|
name: ase-meta-quorum
|
|
3
3
|
argument-hint: "[--help|-h] [--models|-m <model>[,...]] <question>"
|
|
4
4
|
description: >
|
|
5
|
-
Query
|
|
5
|
+
Query multiple foreign AIs in parallel and synthesize a consensus
|
|
6
|
+
("quorum") answer with a consensus rating. Use when the user wants
|
|
7
|
+
a quorum, a consensus answer, or the opinions of multiple AIs on a
|
|
8
|
+
question.
|
|
6
9
|
user-invocable: true
|
|
7
10
|
disable-model-invocation: false
|
|
8
11
|
effort: high
|
|
9
12
|
allowed-tools:
|
|
10
13
|
- "Agent"
|
|
11
14
|
- "TaskCreate"
|
|
15
|
+
- "TaskUpdate"
|
|
12
16
|
---
|
|
13
17
|
|
|
14
18
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
@@ -21,7 +25,7 @@ Query Multiple AIs for Quorum Answer
|
|
|
21
25
|
|
|
22
26
|
<expand name="getopt"
|
|
23
27
|
arg1="ase-meta-quorum"
|
|
24
|
-
arg2="--models|-m=(all|chatgpt|gemini|deepseek|grok|glm|qwen)...">
|
|
28
|
+
arg2="--models|-m=(all|chatgpt|gemini|deepseek|grok|glm|qwen|claude|codex|copilot)...">
|
|
25
29
|
$ARGUMENTS
|
|
26
30
|
</expand>
|
|
27
31
|
|
|
@@ -38,10 +42,10 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
38
42
|
|
|
39
43
|
<template>
|
|
40
44
|
<getopt-arguments/>.
|
|
41
|
-
Please respond
|
|
45
|
+
Please respond very concisely and briefly, with facts only,
|
|
42
46
|
usually with just 1 to 7 corresponding bullet points and with short sentences.
|
|
43
47
|
Optionally, mention potential cruxes which should be noticed.
|
|
44
|
-
|
|
48
|
+
Besides bullet points, do not provide any additional explanations.
|
|
45
49
|
Emphasize keywords or cruxes in your response with Markdown formatting.
|
|
46
50
|
Format code parts with Markdown formatting.
|
|
47
51
|
</template>
|
|
@@ -65,9 +69,11 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
65
69
|
as a comma-separated list of model tokens. The getopt parser
|
|
66
70
|
validates only the *first* token, so you *MUST* validate each
|
|
67
71
|
remaining token yourself against the allowed set `all`, `chatgpt`,
|
|
68
|
-
`gemini`, `deepseek`, `grok`, `glm`, `qwen
|
|
69
|
-
|
|
70
|
-
|
|
72
|
+
`gemini`, `deepseek`, `grok`, `glm`, `qwen`, `claude`, `codex`,
|
|
73
|
+
`copilot`. If any token is *not*
|
|
74
|
+
in this set, bind <token/> to that offending token, then only output
|
|
75
|
+
the following <template/> and then immediately *STOP* processing the
|
|
76
|
+
entire current skill:
|
|
71
77
|
|
|
72
78
|
<template>
|
|
73
79
|
⧉ **ASE**: ✪ skill: **ase-meta-quorum**, ▶ ERROR: invalid `--models` token: **<token/>**
|
|
@@ -75,7 +81,10 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
75
81
|
|
|
76
82
|
The default is the single token `all`. If <getopt-option-models/>
|
|
77
83
|
contains the token `all`, you *MUST* treat it as the full list
|
|
78
|
-
`chatgpt,gemini,deepseek,grok,glm,qwen` (all models).
|
|
84
|
+
`chatgpt,gemini,deepseek,grok,glm,qwen` (all API-based models). The
|
|
85
|
+
harness-based models `claude`, `codex`, and `copilot` are *never*
|
|
86
|
+
part of `all` and are queried only when their token is given
|
|
87
|
+
*explicitly* (in addition to `all`, if wished). Anthropic
|
|
79
88
|
Claude (yourself) is *always* included, independent of this option.
|
|
80
89
|
|
|
81
90
|
<define name="agent">
|
|
@@ -115,6 +124,15 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
115
124
|
<if condition="<getopt-option-models/> contains `all` OR <getopt-option-models/> contains `qwen`">
|
|
116
125
|
<expand name="agent" arg1="Alibaba Qwen" arg2="qwen"></expand>
|
|
117
126
|
</if>
|
|
127
|
+
<if condition="<getopt-option-models/> contains `claude`">
|
|
128
|
+
<expand name="agent" arg1="Anthropic Claude (harness)" arg2="claude"></expand>
|
|
129
|
+
</if>
|
|
130
|
+
<if condition="<getopt-option-models/> contains `codex`">
|
|
131
|
+
<expand name="agent" arg1="OpenAI Codex" arg2="codex"></expand>
|
|
132
|
+
</if>
|
|
133
|
+
<if condition="<getopt-option-models/> contains `copilot`">
|
|
134
|
+
<expand name="agent" arg1="GitHub Copilot" arg2="copilot"></expand>
|
|
135
|
+
</if>
|
|
118
136
|
|
|
119
137
|
You *MUST* *NOT* output anything in this step.
|
|
120
138
|
|
|
@@ -174,10 +192,6 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
174
192
|
|
|
175
193
|
**CONSENSUS RATE**: **<c/>/<n/>** <disagreement/>
|
|
176
194
|
|
|
177
|
-
When a quorum was *not* possible (see STEP 4), render this line
|
|
178
|
-
instead as just `**CONSENSUS RATE**: *n/a* <disagreement/>` (omitting
|
|
179
|
-
the `<c/>/<n/>` fraction), as a single AI cannot form a consensus.
|
|
180
|
-
|
|
181
195
|
○ **Anthropic Claude**:
|
|
182
196
|
- [...]
|
|
183
197
|
- [...]
|
|
@@ -205,8 +219,25 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
205
219
|
○ **Alibaba Qwen**:
|
|
206
220
|
- [...]
|
|
207
221
|
- [...]
|
|
222
|
+
|
|
223
|
+
○ **Anthropic Claude (harness)**:
|
|
224
|
+
- [...]
|
|
225
|
+
- [...]
|
|
226
|
+
|
|
227
|
+
○ **OpenAI Codex**:
|
|
228
|
+
- [...]
|
|
229
|
+
- [...]
|
|
230
|
+
|
|
231
|
+
○ **GitHub Copilot**:
|
|
232
|
+
- [...]
|
|
233
|
+
- [...]
|
|
208
234
|
</template>
|
|
209
235
|
|
|
236
|
+
In this output, when a quorum was *not* possible (see STEP 4),
|
|
237
|
+
render the consensus rate line instead as just `**CONSENSUS RATE**:
|
|
238
|
+
*n/a* <disagreement/>` (omitting the `<c/>/<n/>` fraction), as a
|
|
239
|
+
single AI cannot form a consensus.
|
|
240
|
+
|
|
210
241
|
In this output, remove the sections of those AIs which were not
|
|
211
242
|
queried (excluded via `--models`/`-m`) or were not available.
|
|
212
243
|
You *MUST* *NOT* output any further explanations yourself.
|
|
@@ -109,7 +109,7 @@ Your objective is to *search* the *Internet*/*Web* for the following query:
|
|
|
109
109
|
|
|
110
110
|
2. <step id="STEP 2: Consolidate Search Answers">
|
|
111
111
|
|
|
112
|
-
Consolidate all responses from the `ase:ase-meta-search`
|
|
112
|
+
Consolidate all responses from the `ase:ase-meta-search` agent
|
|
113
113
|
calls above into a single response and output it without giving any
|
|
114
114
|
further explanations.
|
|
115
115
|
|
|
@@ -22,13 +22,15 @@ information.
|
|
|
22
22
|
This skill should be preferred over directly invoking Perplexity,
|
|
23
23
|
Brave, or `WebSearch` individually.
|
|
24
24
|
|
|
25
|
-
##
|
|
25
|
+
## OPTIONS
|
|
26
26
|
|
|
27
27
|
`--services`|`-s`=(`all`|`perplexity`|`brave`|`exa`|`websearch`)...:
|
|
28
28
|
The comma-separated list of search backends to query. The default
|
|
29
|
-
`all` queries every available backend
|
|
29
|
+
`all` queries every available backend;
|
|
30
30
|
otherwise only the listed backends are queried.
|
|
31
31
|
|
|
32
|
+
## ARGUMENTS
|
|
33
|
+
|
|
32
34
|
*query*:
|
|
33
35
|
The search query to dispatch to the search services.
|
|
34
36
|
|
|
@@ -15,7 +15,7 @@ effort: xhigh
|
|
|
15
15
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
16
16
|
|
|
17
17
|
<skill name="ase-meta-steelman">
|
|
18
|
-
|
|
18
|
+
Build the "Steelman" Argument
|
|
19
19
|
</skill>
|
|
20
20
|
|
|
21
21
|
<expand name="getopt"
|
|
@@ -25,8 +25,8 @@ effort: xhigh
|
|
|
25
25
|
</expand>
|
|
26
26
|
|
|
27
27
|
<objective>
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
Build the "Steelman" argument by constructing the strongest
|
|
29
|
+
possible case for the thesis: <thesis><getopt-arguments/></thesis>
|
|
30
30
|
</objective>
|
|
31
31
|
|
|
32
32
|
Determine the number of *rounds* to perform: set <rounds/> to
|
|
@@ -98,7 +98,7 @@ to <getopt-option-count/>; if <getopt-option-count/> is *non-numeric* or
|
|
|
98
98
|
strongest available evidence is the one hardest to dismiss.
|
|
99
99
|
|
|
100
100
|
- **Seek the Confirming Case**:
|
|
101
|
-
Actively hunt for the supporting example, the
|
|
101
|
+
Actively hunt for the supporting example, the favorable
|
|
102
102
|
scenario, the precedent where the position succeeds, because
|
|
103
103
|
one solid confirming case anchors the argument in reality.
|
|
104
104
|
|
|
@@ -130,7 +130,7 @@ to <getopt-option-count/>; if <getopt-option-count/> is *non-numeric* or
|
|
|
130
130
|
|
|
131
131
|
- **Concede the Real Weaknesses**:
|
|
132
132
|
Acknowledging where the thesis genuinely falls short is what
|
|
133
|
-
makes the
|
|
133
|
+
makes the defense credible, because a Steelman who can never
|
|
134
134
|
admit a flaw is just an apologist.
|
|
135
135
|
|
|
136
136
|
- **Pre-Parade Thinking**:
|