@rse/ase 0.9.9 → 0.9.11
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/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.github/plugin/plugin.json +1 -1
- package/plugin/meta/ase-dialog.md +52 -24
- package/plugin/meta/ase-format-arch.md +3 -3
- package/plugin/meta/ase-format-spec.md +13 -4
- package/plugin/meta/ase-getopt.md +11 -7
- package/plugin/meta/ase-skill.md +17 -10
- package/plugin/package.json +1 -1
- package/plugin/skills/ase-arch-analyze/SKILL.md +6 -1
- package/plugin/skills/ase-arch-discover/SKILL.md +9 -6
- package/plugin/skills/ase-code-analyze/SKILL.md +12 -5
- package/plugin/skills/ase-code-craft/SKILL.md +20 -16
- package/plugin/skills/ase-code-explain/SKILL.md +6 -1
- package/plugin/skills/ase-code-insight/SKILL.md +11 -5
- package/plugin/skills/ase-code-lint/SKILL.md +16 -10
- package/plugin/skills/ase-code-refactor/SKILL.md +20 -16
- package/plugin/skills/ase-code-resolve/SKILL.md +27 -22
- package/plugin/skills/ase-docs-proofread/SKILL.md +16 -10
- package/plugin/skills/ase-meta-brainstorm/SKILL.md +26 -10
- package/plugin/skills/ase-meta-changelog/SKILL.md +16 -5
- package/plugin/skills/ase-meta-chat/SKILL.md +6 -1
- package/plugin/skills/ase-meta-commit/SKILL.md +5 -0
- package/plugin/skills/ase-meta-diaboli/SKILL.md +9 -5
- package/plugin/skills/ase-meta-diff/SKILL.md +1 -1
- package/plugin/skills/ase-meta-evaluate/SKILL.md +20 -12
- package/plugin/skills/ase-meta-persona/SKILL.md +6 -1
- package/plugin/skills/ase-meta-quorum/SKILL.md +15 -3
- package/plugin/skills/ase-meta-search/SKILL.md +9 -1
- package/plugin/skills/ase-meta-steelman/SKILL.md +5 -1
- package/plugin/skills/ase-meta-why/SKILL.md +6 -4
- package/plugin/skills/ase-task-condense/SKILL.md +5 -4
- package/plugin/skills/ase-task-delete/SKILL.md +6 -1
- package/plugin/skills/ase-task-edit/SKILL.md +10 -8
- package/plugin/skills/ase-task-grill/SKILL.md +35 -13
- package/plugin/skills/ase-task-id/SKILL.md +10 -3
- package/plugin/skills/ase-task-implement/SKILL.md +5 -4
- package/plugin/skills/ase-task-preflight/SKILL.md +5 -4
- package/plugin/skills/ase-task-reboot/SKILL.md +7 -6
- package/plugin/skills/ase-task-rename/SKILL.md +15 -1
|
@@ -209,10 +209,10 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
209
209
|
anything else in this step:
|
|
210
210
|
|
|
211
211
|
<template>
|
|
212
|
-
● **APPROACH A<n/>**<annotation/>:
|
|
212
|
+
● **APPROACH A<n/>**<annotation/>: **<summary/>**
|
|
213
213
|
○ [...]
|
|
214
|
-
⊕
|
|
215
|
-
⊖
|
|
214
|
+
⊕ *PRO*: [...]
|
|
215
|
+
⊖ *CON*: [...]
|
|
216
216
|
</template>
|
|
217
217
|
|
|
218
218
|
Hints:
|
|
@@ -230,18 +230,19 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
230
230
|
|
|
231
231
|
7. <if condition="<getopt-option-auto/> is not `true`">
|
|
232
232
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
233
|
+
In the following, you *MUST* *NOT* use the <user-dialog-tool/>
|
|
234
|
+
tool! Instead, you *MUST* just show a custom output, let the
|
|
235
|
+
user enter input, and then you set the result accordingly.
|
|
236
236
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
A<n
|
|
240
|
-
|
|
237
|
+
Let the user choose the preferred approach A<n/> by raising
|
|
238
|
+
a question with the following custom dialog, where per
|
|
239
|
+
approach A<n/>, you determine an ultra brief summary
|
|
240
|
+
<short-summary/> and then use the answer option `A<n/>:
|
|
241
|
+
⚝ **RECOMMENDATION** ⚝: <short-summary/>` for your
|
|
242
|
+
recommended approach plus zero or more answer options `A<n/>:
|
|
243
|
+
<short-summary/>` for all other approaches:
|
|
241
244
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
<expand name="custom-dialog">
|
|
245
|
+
<expand name="custom-dialog" arg1="--no-other">
|
|
245
246
|
Select Approach: Select your preferred refactoring approach to follow?
|
|
246
247
|
A<n/>: <short-summary/>
|
|
247
248
|
[...]
|
|
@@ -331,18 +332,21 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
331
332
|
Hand off to `ase-task-edit`.
|
|
332
333
|
<if condition="<head/> is equal `EDIT`">
|
|
333
334
|
Consume the head: set <getopt-option-next/> to the remaining
|
|
334
|
-
tokens (joined back with `,`, or `none` if empty).
|
|
335
|
+
tokens (joined back with `,`, or `none` if empty). `EDIT`
|
|
336
|
+
is this skill's own dispatch token, *not* part of
|
|
337
|
+
`ase-task-edit`'s `--next` vocabulary, so it must be
|
|
338
|
+
stripped here rather than forwarded.
|
|
335
339
|
</if>
|
|
336
340
|
All remaining tokens are `ase-task-edit`'s own vocabulary
|
|
337
341
|
and are forwarded verbatim, so `ase-task-edit` consumes its
|
|
338
|
-
head itself.
|
|
342
|
+
own head itself.
|
|
339
343
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
340
344
|
Set <args><args/> --next <getopt-option-next/></args>
|
|
341
345
|
</if>
|
|
342
346
|
Then call the tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`.
|
|
343
347
|
</else>
|
|
344
348
|
|
|
345
|
-
|
|
349
|
+
</step>
|
|
346
350
|
|
|
347
351
|
</flow>
|
|
348
352
|
|
|
@@ -60,14 +60,15 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
60
60
|
1. If <problem/> matches the regexp `^[PT]\d+$` (i.e. a bare issue
|
|
61
61
|
identifier like `P1`, `P2`, `T1`, `T2`, ...),
|
|
62
62
|
set <problem-id><problem/></problem-id> and
|
|
63
|
-
<ase-task-id><problem/></ase-task-id>, call the
|
|
64
|
-
|
|
65
|
-
`ase` MCP server to implicitly switch the task, and then
|
|
66
|
-
call the `ase_kv_get(key: "ase-issue-<problem-id/>")` tool of
|
|
63
|
+
<ase-task-id><problem/></ase-task-id>, then call the
|
|
64
|
+
`ase_kv_get(key: "ase-issue-<problem-id/>")` tool of
|
|
67
65
|
the `ase` MCP server to retrieve the previously persisted
|
|
68
66
|
problem description. If the returned `text` is non-empty, set
|
|
69
|
-
<problem><text/></problem
|
|
70
|
-
|
|
67
|
+
<problem><text/></problem> and call the `ase_task_id(id:
|
|
68
|
+
"<ase-task-id/>", session: "<ase-session-id/>")` tool from the
|
|
69
|
+
`ase` MCP server to implicitly switch the task, otherwise
|
|
70
|
+
complain to the user that no analyzer result exists for
|
|
71
|
+
<problem-id/> and stop processing.
|
|
71
72
|
|
|
72
73
|
2. <if condition="
|
|
73
74
|
<problem/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
|
|
@@ -259,10 +260,10 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
259
260
|
anything else in this step:
|
|
260
261
|
|
|
261
262
|
<template>
|
|
262
|
-
● **APPROACH A<n/>**<annotation/>:
|
|
263
|
+
● **APPROACH A<n/>**<annotation/>: **<summary/>**
|
|
263
264
|
○ [...]
|
|
264
|
-
⊕
|
|
265
|
-
⊖
|
|
265
|
+
⊕ *PRO*: [...]
|
|
266
|
+
⊖ *CON*: [...]
|
|
266
267
|
</template>
|
|
267
268
|
|
|
268
269
|
Hints:
|
|
@@ -280,18 +281,19 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
280
281
|
|
|
281
282
|
7. <if condition="<getopt-option-auto/> is not `true`">
|
|
282
283
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
284
|
+
In the following, you *MUST* *NOT* use the <user-dialog-tool/>
|
|
285
|
+
tool! Instead, you *MUST* just show a custom output, let the
|
|
286
|
+
user enter input, and then you set the result accordingly.
|
|
286
287
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
A<n
|
|
290
|
-
|
|
288
|
+
Let the user choose the preferred approach A<n/> by raising
|
|
289
|
+
a question with the following custom dialog, where per
|
|
290
|
+
approach A<n/>, you determine an ultra brief summary
|
|
291
|
+
<short-summary/> and then use the answer option `A<n/>:
|
|
292
|
+
⚝ **RECOMMENDATION** ⚝: <short-summary/>` for your
|
|
293
|
+
recommended approach plus zero or more answer options `A<n/>:
|
|
294
|
+
<short-summary/>` for all other approaches:
|
|
291
295
|
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
<expand name="custom-dialog">
|
|
296
|
+
<expand name="custom-dialog" arg1="--no-other">
|
|
295
297
|
Select Approach: Select your preferred resolution approach to follow?
|
|
296
298
|
A<n/>: <short-summary/>
|
|
297
299
|
[...]
|
|
@@ -388,18 +390,21 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
388
390
|
Hand off to `ase-task-edit`.
|
|
389
391
|
<if condition="<head/> is equal `EDIT`">
|
|
390
392
|
Consume the head: set <getopt-option-next/> to the remaining
|
|
391
|
-
tokens (joined back with `,`, or `none` if empty).
|
|
393
|
+
tokens (joined back with `,`, or `none` if empty). `EDIT`
|
|
394
|
+
is this skill's own dispatch token, *not* part of
|
|
395
|
+
`ase-task-edit`'s `--next` vocabulary, so it must be
|
|
396
|
+
stripped here rather than forwarded.
|
|
392
397
|
</if>
|
|
393
398
|
All remaining tokens are `ase-task-edit`'s own vocabulary
|
|
394
399
|
and are forwarded verbatim, so `ase-task-edit` consumes its
|
|
395
|
-
head itself.
|
|
400
|
+
own head itself.
|
|
396
401
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
397
402
|
Set <args><args/> --next <getopt-option-next/></args>
|
|
398
403
|
</if>
|
|
399
404
|
Then call the tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`.
|
|
400
405
|
</else>
|
|
401
406
|
|
|
402
|
-
|
|
407
|
+
</step>
|
|
403
408
|
|
|
404
409
|
</flow>
|
|
405
410
|
|
|
@@ -129,7 +129,7 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
129
129
|
```diff
|
|
130
130
|
--- <file/> (original)
|
|
131
131
|
+++ <file/> (corrected)
|
|
132
|
-
@@ -<old-start/>,<
|
|
132
|
+
@@ -<old-start/>,<old-count/> +<new-start/>,<new-count/> @@
|
|
133
133
|
<context-before/>
|
|
134
134
|
-<old-text/>
|
|
135
135
|
+<new-text/>
|
|
@@ -143,10 +143,10 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
143
143
|
the line of <context-before/> (one before <line/>).
|
|
144
144
|
- The <new-start/> is the same as <old-start/> (the unchanged
|
|
145
145
|
<context-before/> line shares the same start in both files).
|
|
146
|
-
- The <
|
|
146
|
+
- The <old-count/> is the total number of old-side hunk lines, i.e.,
|
|
147
147
|
the number of lines in <context-before/>, <old-text/>, and
|
|
148
148
|
<context-after/> combined.
|
|
149
|
-
- The <
|
|
149
|
+
- The <new-count/> is the total number of new-side hunk lines, i.e.,
|
|
150
150
|
the number of lines in <context-before/>, <new-text/>, and
|
|
151
151
|
<context-after/> combined.
|
|
152
152
|
|
|
@@ -154,11 +154,11 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
154
154
|
|
|
155
155
|
4. <if condition="<getopt-option-auto/> is not 'true'">
|
|
156
156
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
157
|
+
In the following, you *MUST* *NOT* use the <user-dialog-tool/>
|
|
158
|
+
tool! Instead, you *MUST* just show a custom output, let the
|
|
159
|
+
user enter input, and then you set the result accordingly.
|
|
160
160
|
|
|
161
|
-
<expand name="custom-dialog">
|
|
161
|
+
<expand name="custom-dialog" arg1="--other">
|
|
162
162
|
CORRECTION: How would you like to proceed with this proposed correction?
|
|
163
163
|
ACCEPT: Apply the proposed correction.
|
|
164
164
|
REJECT: Skip this proposed correction.
|
|
@@ -188,9 +188,15 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
188
188
|
|
|
189
189
|
Generate a *new* proposal for the *same* <item/>,
|
|
190
190
|
incorporating the user's free-text hint from <result/>
|
|
191
|
-
after the "OTHER:" prefix
|
|
192
|
-
|
|
193
|
-
|
|
191
|
+
after the "OTHER:" prefix. *Reassign* <description/>,
|
|
192
|
+
<old-text/>, and <new-text/> to reflect this refined
|
|
193
|
+
proposal (<old-text/> stays anchored to the existing text
|
|
194
|
+
at <file/>:<line/>; <new-text/> and <description/> carry the
|
|
195
|
+
refinement) so the subsequent rendering and any `Edit` use
|
|
196
|
+
the new proposal rather than the original. Then *go back* to
|
|
197
|
+
substep 2 of this `for`-iteration. There is *no* cap on
|
|
198
|
+
refinement rounds - keep refining until the user picks
|
|
199
|
+
`ACCEPT` or `REJECT`.
|
|
194
200
|
|
|
195
201
|
</if>
|
|
196
202
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-meta-brainstorm
|
|
3
|
-
argument-hint: "[--help|-h] [--max-clarify|-c
|
|
3
|
+
argument-hint: "[--help|-h] [--max-clarify|-c <num>] [--min-ideas|-i <num>] [--min-rank|-r <num>] [--max-shortlist|-s <num>] <topic>"
|
|
4
4
|
description: >
|
|
5
5
|
Collaboratively brainstorm a topic by diverging on ideas, converging
|
|
6
6
|
through clustering and scoring, and distilling a shortlist with
|
|
@@ -121,16 +121,17 @@ Honor the following tenets throughout the brainstorming:
|
|
|
121
121
|
question <question-M/>, and let the user select the
|
|
122
122
|
<answer-M/> out of the candidate answers <answer-M-K/> (leave
|
|
123
123
|
out the answer lines of those candidate answers you have
|
|
124
|
-
not determined).
|
|
125
|
-
`custom-dialog` and *NOT* the `AskUserQuestion` based
|
|
126
|
-
"user-dialog":
|
|
124
|
+
not determined).
|
|
127
125
|
|
|
128
|
-
<
|
|
126
|
+
In the following, you *MUST* *NOT* use the <user-dialog-tool/>
|
|
127
|
+
tool! Instead, you *MUST* just show a custom output, let the
|
|
128
|
+
user enter input, and then you set the result accordingly.
|
|
129
|
+
|
|
130
|
+
<expand name="custom-dialog" arg1="--other">
|
|
129
131
|
<facet-M/>: <question-M/>
|
|
130
|
-
<answer-M-1/>: (
|
|
131
|
-
<answer-M-2/>: (
|
|
132
|
-
|
|
133
|
-
<answer-M-4/>: (fourth grounded candidate answer)
|
|
132
|
+
<answer-M-1/>: (grounded candidate answer 1)
|
|
133
|
+
<answer-M-2/>: (grounded candidate answer 2)
|
|
134
|
+
[...]
|
|
134
135
|
</expand>
|
|
135
136
|
|
|
136
137
|
4. Dispatch on the dialog <result/>:
|
|
@@ -214,15 +215,30 @@ Honor the following tenets throughout the brainstorming:
|
|
|
214
215
|
|
|
215
216
|
<template>
|
|
216
217
|
<ase-tpl-bullet-secondary/> **IDEA CLUSTER <C/>/<c/>**: <cluster-C/> - <cluster-summary-C/>,
|
|
217
|
-
**IDEAS**: <
|
|
218
|
+
**IDEAS**: <idea-index-C/>
|
|
218
219
|
</template>
|
|
219
220
|
|
|
221
|
+
Here, <idea-index-C/> is the comma-separated list of the indices
|
|
222
|
+
<N/> of those retained ideas <idea-N/> that belong to cluster
|
|
223
|
+
<cluster-C/> (e.g. `2, 5, 9`).
|
|
224
|
+
|
|
220
225
|
2. *Score*: for each retained idea <idea-N/> in the clusters, rank its *fit* against the
|
|
221
226
|
purpose and constraints on a Likert scale of 0 (poor) to 10
|
|
222
227
|
(excellent), considering *value*, *uniqueness*, *risk*, and
|
|
223
228
|
*alignment with the existing code base*. Keep only ideas in the
|
|
224
229
|
clusters with a rank of at least <getopt-option-min-rank/>.
|
|
225
230
|
|
|
231
|
+
If *no* idea meets the <getopt-option-min-rank/> floor, the floor
|
|
232
|
+
filter would empty the set and leave the downstream steps without
|
|
233
|
+
any options. In this case, *disregard* the floor and instead keep
|
|
234
|
+
the up-to-<getopt-option-max-shortlist/> highest-ranked ideas, and
|
|
235
|
+
output the following <template/> to flag that even the strongest
|
|
236
|
+
ideas fall below the bar:
|
|
237
|
+
|
|
238
|
+
<template>
|
|
239
|
+
<ase-tpl-bullet-signal/> **NOTICE**: no idea reached the minimum rank of <getopt-option-min-rank/>/10 - shortlisting the highest-ranked ideas regardless.
|
|
240
|
+
</template>
|
|
241
|
+
|
|
226
242
|
3. From the scored ideas <idea-N/>, distill a *shortlist* of the top
|
|
227
243
|
<getopt-option-max-shortlist/> options, sorted by rank from highest to lowest.
|
|
228
244
|
|
|
@@ -16,11 +16,16 @@ allowed-tools:
|
|
|
16
16
|
|
|
17
17
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
18
18
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
19
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
19
20
|
|
|
20
21
|
<skill name="ase-meta-changelog">
|
|
21
22
|
Update ChangeLog Entries
|
|
22
23
|
</skill>
|
|
23
24
|
|
|
25
|
+
<expand name="getopt" arg1="ase-meta-changelog">
|
|
26
|
+
$ARGUMENTS
|
|
27
|
+
</expand>
|
|
28
|
+
|
|
24
29
|
<objective>
|
|
25
30
|
Help to complete, consolidate and sort *ChangeLog* entries of the most
|
|
26
31
|
recent *ChangeLog* section, based on underlying *Git* commits and staged
|
|
@@ -81,11 +86,17 @@ Processing
|
|
|
81
86
|
the Git *commits* plus the currently already staged changes in the Git
|
|
82
87
|
*index*, but *ignore* the Git *stash* and still unstaged changes.
|
|
83
88
|
|
|
84
|
-
For finding the corresponding Git *commits*,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
with the command `git
|
|
88
|
-
|
|
89
|
+
For finding the corresponding Git *commits*, first determine the
|
|
90
|
+
correct baseline Git tag. Take the `N.M.K` from the *first* (most
|
|
91
|
+
recent) level-2 header in the *ChangeLog* file and check whether a
|
|
92
|
+
corresponding Git tag already exists with the command `git tag --list
|
|
93
|
+
N.M.K`. If this command produces *no* output, the first section is
|
|
94
|
+
still in-progress/untagged, so use the `N.M.K` from the *second*
|
|
95
|
+
level-2 header as the baseline tag instead. If this command *does*
|
|
96
|
+
produce output, the first section is already released/tagged, so use
|
|
97
|
+
the `N.M.K` from the *first* level-2 header as the baseline tag. Then
|
|
98
|
+
check all Git commits between `HEAD` and this baseline tag with the
|
|
99
|
+
command `git log N.M.K..HEAD --numstat --pretty=format:'%h: %s'`.
|
|
89
100
|
|
|
90
101
|
For finding the corresponding staged Git *changes* in the Git
|
|
91
102
|
*index*, use the command `git diff --cached --numstat`, but silently
|
|
@@ -14,13 +14,18 @@ allowed-tools:
|
|
|
14
14
|
|
|
15
15
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
16
16
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
17
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
17
18
|
|
|
18
19
|
<skill name="ase-meta-chat">
|
|
19
20
|
Query Foreign LLM for Chat
|
|
20
21
|
</skill>
|
|
21
22
|
|
|
23
|
+
<expand name="getopt" arg1="ase-meta-chat">
|
|
24
|
+
$ARGUMENTS
|
|
25
|
+
</expand>
|
|
26
|
+
|
|
22
27
|
<objective>
|
|
23
|
-
Query foreign LLM for: <query
|
|
28
|
+
Query foreign LLM for: <query><getopt-arguments/></query>
|
|
24
29
|
</objective>
|
|
25
30
|
|
|
26
31
|
1. You *MUST* *NOT* output anything in this step.
|
|
@@ -12,11 +12,16 @@ allowed-tools:
|
|
|
12
12
|
|
|
13
13
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
14
14
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
15
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
15
16
|
|
|
16
17
|
<skill name="ase-meta-commit">
|
|
17
18
|
Git Commit
|
|
18
19
|
</skill>
|
|
19
20
|
|
|
21
|
+
<expand name="getopt" arg1="ase-meta-commit">
|
|
22
|
+
$ARGUMENTS
|
|
23
|
+
</expand>
|
|
24
|
+
|
|
20
25
|
<objective>
|
|
21
26
|
Help to *craft* a *concise commit message* for the
|
|
22
27
|
currently staged Git changes.
|
|
@@ -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’s Advocate" (
|
|
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
|
|
@@ -25,7 +25,7 @@ effort: xhigh
|
|
|
25
25
|
</expand>
|
|
26
26
|
|
|
27
27
|
<objective>
|
|
28
|
-
Play "Devil’s Advocate" (
|
|
28
|
+
Play "Devil’s Advocate" (Latin: "Advocatus Diaboli") by relentlessly
|
|
29
29
|
challenging or criticising the thesis: <thesis><getopt-arguments/></thesis>
|
|
30
30
|
</objective>
|
|
31
31
|
|
|
@@ -48,7 +48,7 @@ to <getopt-option-count/>; if <getopt-option-count/> is *non-numeric* or
|
|
|
48
48
|
2. <step id="STEP 2: Determine Anti-Theses">
|
|
49
49
|
|
|
50
50
|
Reason on the thesis in <thesis/> by playing *Devil's Advocate*
|
|
51
|
-
(
|
|
51
|
+
(Latin: *Advocatus Diaboli*) by relentlessly challenging or
|
|
52
52
|
criticising it with the help of the following tenets:
|
|
53
53
|
|
|
54
54
|
- **Steelmanning**:
|
|
@@ -88,7 +88,7 @@ to <getopt-option-count/>; if <getopt-option-count/> is *non-numeric* or
|
|
|
88
88
|
|
|
89
89
|
- **Push the Logic to its Conclusion**:
|
|
90
90
|
Ask "If we accept this, then what?" and apply "Reduction to
|
|
91
|
-
Absurdity" (
|
|
91
|
+
Absurdity" (Latin: "Reductio Ad Absurdum"), because this disproves
|
|
92
92
|
the thesis by showing that accepting it leads to a logically
|
|
93
93
|
absurd, contradictory, or impossible conclusion.
|
|
94
94
|
|
|
@@ -120,7 +120,11 @@ to <getopt-option-count/>; if <getopt-option-count/> is *non-numeric* or
|
|
|
120
120
|
Anti-Theses or Counter-Arguments until you EITHER have found at
|
|
121
121
|
least <count/> Anti-Theses or Counter-Arguments with at least a rank
|
|
122
122
|
of 7 OR you have already checked a total of <count/> x 5 Anti-Theses
|
|
123
|
-
or Counter-Arguments.
|
|
123
|
+
or Counter-Arguments. If the second condition is reached first and
|
|
124
|
+
fewer than <count/> Anti-Theses or Counter-Arguments reached a rank
|
|
125
|
+
of at least 7, nevertheless surface the <count/> highest-ranked ones
|
|
126
|
+
found so far, because <count/> is the *minimum* number of
|
|
127
|
+
Anti-Theses to surface.
|
|
124
128
|
|
|
125
129
|
Then, for the top-<count/> highest-ranked Anti-Theses or
|
|
126
130
|
Counter-Arguments, sort them by their rank from highest to lowest,
|
|
@@ -109,7 +109,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
109
109
|
|
|
110
110
|
3. For each discovered *intent group*, emit the following row
|
|
111
111
|
<template/>, where <intent/> is the intent label, <changes/>
|
|
112
|
-
is the total number of lines
|
|
112
|
+
is the total number of lines changed per intent group in format
|
|
113
113
|
`+N/-M`, <files/> is the list of affected file references,
|
|
114
114
|
and <description/> is a *brief* one-to-two-sentence
|
|
115
115
|
narrative of what changed and why:
|
|
@@ -13,11 +13,16 @@ effort: high
|
|
|
13
13
|
|
|
14
14
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
15
15
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
16
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
16
17
|
|
|
17
18
|
<skill name="ase-meta-evaluate">
|
|
18
19
|
Evaluate Alternatives
|
|
19
20
|
</skill>
|
|
20
21
|
|
|
22
|
+
<expand name="getopt" arg1="ase-meta-evaluate">
|
|
23
|
+
$ARGUMENTS
|
|
24
|
+
</expand>
|
|
25
|
+
|
|
21
26
|
<objective>
|
|
22
27
|
*Evaluate* *alternatives* through a weighted
|
|
23
28
|
multi-*criteria* decision matrix.
|
|
@@ -25,7 +30,7 @@ multi-*criteria* decision matrix.
|
|
|
25
30
|
|
|
26
31
|
<flow>
|
|
27
32
|
1. <step id="STEP 1: Determine Reason">
|
|
28
|
-
- From the <request
|
|
33
|
+
- From the <request><getopt-arguments/></request>, try to derive the overall
|
|
29
34
|
reason <reason/> for the evaluation. If no such reason can be
|
|
30
35
|
derived, assume <reason>generic comparison</reason>.
|
|
31
36
|
|
|
@@ -38,7 +43,7 @@ multi-*criteria* decision matrix.
|
|
|
38
43
|
</step>
|
|
39
44
|
|
|
40
45
|
2. <step id="STEP 2: Determine Alternatives">
|
|
41
|
-
- From the <request
|
|
46
|
+
- From the <request><getopt-arguments/></request> derive the two or more
|
|
42
47
|
alternatives <alternative-K/> (K=1-N) the user wants to be
|
|
43
48
|
evaluated. Do not output anything.
|
|
44
49
|
|
|
@@ -105,7 +110,7 @@ multi-*criteria* decision matrix.
|
|
|
105
110
|
</step>
|
|
106
111
|
|
|
107
112
|
3. <step id="STEP 3: Derive Criteria">
|
|
108
|
-
- From the <request
|
|
113
|
+
- From the <request><getopt-arguments/></request>, try to derive the criteria
|
|
109
114
|
<criteria-L/> (L=1-M) for the evaluation. Do not output anything.
|
|
110
115
|
|
|
111
116
|
- For each criterion <criteria-L/> (L=1-M), decide on its <weight-L/>
|
|
@@ -222,23 +227,26 @@ multi-*criteria* decision matrix.
|
|
|
222
227
|
⚠ *Please give some hints on the criteria to ensure a single best alternative!*
|
|
223
228
|
</template>
|
|
224
229
|
|
|
225
|
-
- Otherwise, if <
|
|
226
|
-
|
|
227
|
-
|
|
230
|
+
- Otherwise, if <rating-K/> is less than zero (i.e. all alternatives
|
|
231
|
+
rate negatively and the "best" is merely the least-bad), stop the
|
|
232
|
+
flow after you output just the following <template/> and do not
|
|
233
|
+
output anything else. This all-negative check is evaluated *before*
|
|
234
|
+
the small-distance check below, so that an all-negative alternative
|
|
235
|
+
set with a small winning gap surfaces the all-negative warning rather
|
|
236
|
+
than being masked by the small-distance branch:
|
|
228
237
|
|
|
229
238
|
<template>
|
|
230
239
|
<ase-tpl-bullet-signal/> **BEST ALTERNATIVE**: ⚑ **<alternative-K/>**
|
|
231
|
-
⚠ *ATTENTION:
|
|
240
|
+
⚠ *ATTENTION: all alternatives rate negatively; this is the least-bad choice, not a strong winner!*
|
|
232
241
|
</template>
|
|
233
242
|
|
|
234
|
-
- Otherwise, if <
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
output anything else:
|
|
243
|
+
- Otherwise, if <percentage/> is less than 0.10, stop the flow after
|
|
244
|
+
you output just the following <template/> and do not output anything
|
|
245
|
+
else:
|
|
238
246
|
|
|
239
247
|
<template>
|
|
240
248
|
<ase-tpl-bullet-signal/> **BEST ALTERNATIVE**: ⚑ **<alternative-K/>**
|
|
241
|
-
⚠ *ATTENTION:
|
|
249
|
+
⚠ *ATTENTION: small distance to second best alternative!*
|
|
242
250
|
</template>
|
|
243
251
|
|
|
244
252
|
- Otherwise (<percentage/> is greater than or equal to 0.10), output
|
|
@@ -15,18 +15,23 @@ effort: high
|
|
|
15
15
|
|
|
16
16
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
17
17
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
18
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
18
19
|
|
|
19
20
|
<skill name="ase-meta-persona">
|
|
20
21
|
Persona Configuration
|
|
21
22
|
</skill>
|
|
22
23
|
|
|
24
|
+
<expand name="getopt" arg1="ase-meta-persona">
|
|
25
|
+
$ARGUMENTS
|
|
26
|
+
</expand>
|
|
27
|
+
|
|
23
28
|
<objective>
|
|
24
29
|
*Configure* the *persona style* of the agent to adjust the communication
|
|
25
30
|
style and token usage intensity.
|
|
26
31
|
</objective>
|
|
27
32
|
|
|
28
33
|
1. Determine request:
|
|
29
|
-
<request
|
|
34
|
+
<request><getopt-arguments/></request>
|
|
30
35
|
Do not output anything.
|
|
31
36
|
|
|
32
37
|
2. <if condition="<request/> is empty">
|
|
@@ -134,9 +134,17 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
134
134
|
|
|
135
135
|
4. <step id="STEP 4: Determine Consensus Rating">
|
|
136
136
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
137
|
+
First, count the number of *available foreign AIs* (those queried in
|
|
138
|
+
STEP 2 which did *not* return an `ERROR:` response). If this count is
|
|
139
|
+
*zero* -- i.e., every foreign AI errored out or none were reachable
|
|
140
|
+
and only yourself (Anthropic Claude) remains -- a quorum is *not*
|
|
141
|
+
possible. In this case, set <c></c> and <n></n> to empty and instead
|
|
142
|
+
set <disagreement/> to `(no quorum: no foreign AIs were available)`,
|
|
143
|
+
then skip the rest of this step.
|
|
144
|
+
|
|
145
|
+
Otherwise, determine, on a Likert scale of 0..<n/>, the amount of the
|
|
146
|
+
overall consensus <c/> of all the responses. The <n/> is the *total
|
|
147
|
+
number of responders* (yourself plus all available foreign AIs above).
|
|
140
148
|
If all responses disagree, the consensus <c/> is zero.
|
|
141
149
|
If all responses agree, <c/> is <n/>.
|
|
142
150
|
|
|
@@ -165,6 +173,10 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
165
173
|
|
|
166
174
|
**CONSENSUS RATE**: **<c/>/<n/>** <disagreement/>
|
|
167
175
|
|
|
176
|
+
When a quorum was *not* possible (see STEP 4), render this line
|
|
177
|
+
instead as just `**CONSENSUS RATE**: *n/a* <disagreement/>` (omitting
|
|
178
|
+
the `<c/>/<n/>` fraction), as a single AI cannot form a consensus.
|
|
179
|
+
|
|
168
180
|
○ **Anthropic Claude**:
|
|
169
181
|
- [...]
|
|
170
182
|
- [...]
|
|
@@ -88,12 +88,20 @@ Your objective is to *search* the *Internet*/*Web* for the following query:
|
|
|
88
88
|
from the MCP server `search-exa`.
|
|
89
89
|
</expand>
|
|
90
90
|
|
|
91
|
-
If the `websearch` backend is *selected
|
|
91
|
+
If the `websearch` backend is *selected* and the tool
|
|
92
|
+
`WebSearch` is available:
|
|
92
93
|
|
|
93
94
|
<expand name="agent" arg1="websearch">
|
|
94
95
|
Call the tool `WebSearch(query: "<query/>")`.
|
|
95
96
|
</expand>
|
|
96
97
|
|
|
98
|
+
If the `websearch` backend is *selected* and the tool `web_search` is
|
|
99
|
+
available and the tool `WebSearch` is not available:
|
|
100
|
+
|
|
101
|
+
<expand name="agent" arg1="websearch">
|
|
102
|
+
Call the tool `web_search(query: "<query/>")`.
|
|
103
|
+
</expand>
|
|
104
|
+
|
|
97
105
|
</step>
|
|
98
106
|
|
|
99
107
|
2. <step id="STEP 2: Consolidate Search Answers">
|
|
@@ -142,7 +142,11 @@ to <getopt-option-count/>; if <getopt-option-count/> is *non-numeric* or
|
|
|
142
142
|
more Pro-Theses or Supporting-Arguments until you EITHER have found
|
|
143
143
|
at least <count/> Pro-Theses or Supporting-Arguments with at least a
|
|
144
144
|
rank of 7 OR you have already checked a total of <count/> x 5
|
|
145
|
-
Pro-Theses or Supporting-Arguments.
|
|
145
|
+
Pro-Theses or Supporting-Arguments. If the second condition is
|
|
146
|
+
reached first and fewer than <count/> Pro-Theses or
|
|
147
|
+
Supporting-Arguments reached a rank of at least 7, nevertheless
|
|
148
|
+
surface the <count/> highest-ranked ones found so far, because
|
|
149
|
+
<count/> is the *minimum* number of Pro-Theses to surface.
|
|
146
150
|
|
|
147
151
|
Then, for the top-<count/> highest-ranked Pro-Theses or
|
|
148
152
|
Supporting-Arguments, sort them by their rank from highest to lowest,
|
|
@@ -123,10 +123,12 @@ addressing surface-level symptoms.
|
|
|
123
123
|
|
|
124
124
|
Then choose, among the <answer-k/>, the *most causally-significant*
|
|
125
125
|
candidate -- the one most likely to lead to the true root-cause --
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
126
|
+
set <chosen-k/> to its candidate index (the <k/> of the chosen
|
|
127
|
+
<answer-k/>), and *justify* the choice in one line (state explicitly
|
|
128
|
+
*why* it beats the other candidates, e.g. it alone also explains the
|
|
129
|
+
timing, scope, or magnitude of the level's fact). A bare "most
|
|
130
|
+
significant" is *not* sufficient; if no candidate clearly dominates,
|
|
131
|
+
say so.
|
|
130
132
|
|
|
131
133
|
<template>
|
|
132
134
|
<ase-tpl-bullet-secondary/> **WHY <n/> → chosen <n/>.<chosen-k/>**: <justification/>
|
|
@@ -203,11 +203,12 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
203
203
|
</template>
|
|
204
204
|
|
|
205
205
|
- If <getopt-option-next/> is equal to `none`:
|
|
206
|
-
Let the *user interactively choose* what to do as the next
|
|
207
|
-
step. For this you *MUST* use the custom `custom-dialog` and
|
|
208
|
-
*NOT* the `AskUserQuestion` based "user-dialog":
|
|
209
206
|
|
|
210
|
-
<
|
|
207
|
+
In the following, you *MUST* *NOT* use the <user-dialog-tool/>
|
|
208
|
+
tool! Instead, you *MUST* just show a custom output, let the
|
|
209
|
+
user enter input, and then you set the result accordingly.
|
|
210
|
+
|
|
211
|
+
<expand name="custom-dialog" arg1="--no-other">
|
|
211
212
|
Next Step: How would you like to proceed with the plan?
|
|
212
213
|
DONE: Stop processing.
|
|
213
214
|
EDIT: Hand off plan to editing.
|