@rse/ase 0.9.3 → 0.9.5
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/package.json +1 -1
- package/plugin/skills/ase-arch-analyze/SKILL.md +1 -1
- package/plugin/skills/ase-arch-discover/SKILL.md +17 -9
- package/plugin/skills/ase-arch-discover/help.md +14 -0
- package/plugin/skills/ase-code-analyze/SKILL.md +162 -18
- package/plugin/skills/ase-code-analyze/help.md +47 -7
- package/plugin/skills/ase-code-craft/SKILL.md +1 -1
- package/plugin/skills/ase-code-insight/SKILL.md +1 -1
- package/plugin/skills/ase-code-lint/SKILL.md +11 -3
- package/plugin/skills/ase-code-lint/help.md +13 -0
- package/plugin/skills/ase-code-refactor/SKILL.md +1 -1
- package/plugin/skills/ase-code-resolve/SKILL.md +2 -2
- package/plugin/skills/ase-docs-distill/SKILL.md +1 -1
- package/plugin/skills/ase-docs-proofread/SKILL.md +1 -1
- package/plugin/skills/ase-meta-brainstorm/SKILL.md +30 -21
- package/plugin/skills/ase-meta-brainstorm/help.md +49 -9
- package/plugin/skills/ase-meta-chat/SKILL.md +1 -1
- package/plugin/skills/ase-meta-diaboli/SKILL.md +33 -10
- package/plugin/skills/ase-meta-diaboli/help.md +20 -2
- package/plugin/skills/ase-meta-diff/SKILL.md +1 -1
- package/plugin/skills/ase-meta-quorum/SKILL.md +37 -5
- package/plugin/skills/ase-meta-quorum/help.md +18 -0
- package/plugin/skills/ase-meta-review/SKILL.md +21 -3
- package/plugin/skills/ase-meta-review/help.md +20 -2
- package/plugin/skills/ase-meta-search/SKILL.md +35 -6
- package/plugin/skills/ase-meta-search/help.md +14 -2
- package/plugin/skills/ase-meta-steelman/SKILL.md +62 -11
- package/plugin/skills/ase-meta-steelman/help.md +34 -2
- package/plugin/skills/ase-meta-why/SKILL.md +122 -17
- package/plugin/skills/ase-meta-why/help.md +46 -5
- package/plugin/skills/ase-task-grill/SKILL.md +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-meta-brainstorm
|
|
3
|
-
argument-hint: "[--help|-h] <topic>"
|
|
3
|
+
argument-hint: "[--help|-h] [--max-clarify|-c=3] [--min-ideas|-i=12] [--min-rank|-r=7] [--max-shortlist|-s=4] <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
|
|
@@ -15,16 +15,23 @@ effort: high
|
|
|
15
15
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
16
16
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
17
17
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md
|
|
18
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
18
19
|
|
|
19
20
|
<skill name="ase-meta-brainstorm">
|
|
20
21
|
Collaboratively Brainstorm a Topic
|
|
21
22
|
</skill>
|
|
22
23
|
|
|
24
|
+
<expand name="getopt"
|
|
25
|
+
arg1="ase-meta-brainstorm"
|
|
26
|
+
arg2="--max-clarify|-c=3 --min-ideas|-i=12 --min-rank|-r=7 --max-shortlist|-s=4">
|
|
27
|
+
$ARGUMENTS
|
|
28
|
+
</expand>
|
|
29
|
+
|
|
23
30
|
<objective>
|
|
24
|
-
Collaboratively brainstorm the topic <topic
|
|
25
|
-
*diverging* into a broad space of candidate ideas, then
|
|
26
|
-
through clustering and scoring, and finally distilling a
|
|
27
|
-
with a single recommended direction.
|
|
31
|
+
Collaboratively brainstorm the topic <topic><getopt-arguments/></topic>
|
|
32
|
+
by first *diverging* into a broad space of candidate ideas, then
|
|
33
|
+
*converging* through clustering and scoring, and finally distilling a
|
|
34
|
+
*shortlist* with a single recommended direction.
|
|
28
35
|
</objective>
|
|
29
36
|
|
|
30
37
|
Guiding Tenets
|
|
@@ -83,19 +90,20 @@ Honor the following tenets throughout the brainstorming:
|
|
|
83
90
|
|
|
84
91
|
Before generating any ideas, *explore the project context* (review
|
|
85
92
|
relevant existing files, documentation, and recent changes) and
|
|
86
|
-
determine the <m/> (<m
|
|
87
|
-
- the purpose, constraints,
|
|
88
|
-
that must be pinned down for
|
|
89
|
-
grounded.
|
|
93
|
+
determine the <m/> (<m/> = 1..<getopt-option-max-clarify/>)
|
|
94
|
+
*essential unknowns* about the topic - the purpose, constraints,
|
|
95
|
+
scope boundaries, and success criteria that must be pinned down for
|
|
96
|
+
the brainstorming to be reasonably grounded.
|
|
90
97
|
|
|
91
|
-
Notice: you are intentionally
|
|
92
|
-
as too much upfront intent
|
|
93
|
-
of ideas later. So, you *MUST*
|
|
94
|
-
unknowns to the absolute minimum
|
|
98
|
+
Notice: you are intentionally constrained to just
|
|
99
|
+
1..<getopt-option-max-clarify/> unknowns, as too much upfront intent
|
|
100
|
+
clarification kills the brainstorming of ideas later. So, you *MUST*
|
|
101
|
+
reduce the clarifications of the unknowns to the absolute minimum in
|
|
102
|
+
general and cap it at <getopt-option-max-clarify/>!
|
|
95
103
|
|
|
96
|
-
For each essential unknown, derive a short 1-3 word facet
|
|
97
|
-
and a corresponding question <question-M/> whose answer
|
|
98
|
-
changes which ideas make sense at all.
|
|
104
|
+
For each essential unknown to clarify, derive a short 1-3 word facet
|
|
105
|
+
<facet-M/> and a corresponding question <question-M/> whose answer
|
|
106
|
+
materially changes which ideas make sense at all.
|
|
99
107
|
|
|
100
108
|
1. For each <question-M/> in the iteration cycle <M/> (<M/>=1...<m/>):
|
|
101
109
|
|
|
@@ -152,8 +160,9 @@ Honor the following tenets throughout the brainstorming:
|
|
|
152
160
|
variety in outcome.
|
|
153
161
|
|
|
154
162
|
Do still *not* judge, rank, or prune ideas in this step. Generate
|
|
155
|
-
ideas until you either reach at least
|
|
156
|
-
have clearly exhausted the meaningfully distinct
|
|
163
|
+
ideas until you either reach at least <getopt-option-min-ideas/> distinct
|
|
164
|
+
candidate ideas or have clearly exhausted the meaningfully distinct
|
|
165
|
+
space.
|
|
157
166
|
|
|
158
167
|
Store each candidate idea in <idea-N/> with the format
|
|
159
168
|
`**<idea-name-N/>**: <idea-statement-N/>` (where <idea-name-N/> is a
|
|
@@ -191,10 +200,10 @@ Honor the following tenets throughout the brainstorming:
|
|
|
191
200
|
purpose and constraints on a Likert scale of 0 (poor) to 10
|
|
192
201
|
(excellent), considering *value*, *uniqueness*, *risk*, and
|
|
193
202
|
*alignment with the existing code base*. Keep only ideas in the
|
|
194
|
-
clusters with a rank of at least
|
|
203
|
+
clusters with a rank of at least <getopt-option-min-rank/>.
|
|
195
204
|
|
|
196
205
|
3. From the scored ideas <idea-N/>, distill a *shortlist* of the top
|
|
197
|
-
|
|
206
|
+
<getopt-option-max-shortlist/> options, sorted by rank from highest to lowest.
|
|
198
207
|
|
|
199
208
|
For this, draw the shortlist from *distinct* clusters <cluster-C/>
|
|
200
209
|
wherever possible - prefer a diverse shortlist spanning different
|
|
@@ -208,7 +217,7 @@ Honor the following tenets throughout the brainstorming:
|
|
|
208
217
|
and its primary trade-off), and output the following <template/>:
|
|
209
218
|
|
|
210
219
|
<template>
|
|
211
|
-
<ase-tpl-bullet-normal/> **DISTILLED IDEA <
|
|
220
|
+
<ase-tpl-bullet-normal/> **DISTILLED IDEA**: <option-N/>
|
|
212
221
|
</template>
|
|
213
222
|
|
|
214
223
|
4. Finally, derive a single *recommended idea* - the highest-ranked
|
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
|
|
8
8
|
`ase-meta-brainstorm`
|
|
9
9
|
[`--help`|`-h`]
|
|
10
|
+
[`--max-clarify=3`]
|
|
11
|
+
[`--min-ideas`|`-i=12`]
|
|
12
|
+
[`--min-rank=7`]
|
|
13
|
+
[`--max-shortlist=4`]
|
|
10
14
|
*topic*
|
|
11
15
|
|
|
12
16
|
## DESCRIPTION
|
|
@@ -15,23 +19,46 @@ The `ase-meta-brainstorm` skill guides a collaborative ideation
|
|
|
15
19
|
session on a *topic* *before* any implementation begins. It first
|
|
16
20
|
*clarifies intent* by exploring the project context and interviewing
|
|
17
21
|
the user - one grounded, multiple-choice question at a time - about
|
|
18
|
-
purpose, constraints, scope, and success criteria
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
purpose, constraints, scope, and success criteria (asking at most
|
|
23
|
+
`--max-clarify`, default 3, questions). It then *diverges* into a broad
|
|
24
|
+
space of candidate ideas (at least `--min-ideas`, default 12) pursued from
|
|
25
|
+
deliberately diverse angles (MVP-first, risk-first, UX-first,
|
|
26
|
+
reuse-first, and wildcard), without judging them.
|
|
22
27
|
|
|
23
28
|
Next it *converges* by clustering the ideas into coherent themes,
|
|
24
29
|
pruning speculative or out-of-scope ones via *YAGNI*, and scoring the
|
|
25
|
-
survivors on a 0-10 fit scale (keeping only those ranked
|
|
26
|
-
Finally it distills a *shortlist* of the top
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
synthesis of the shortlist.
|
|
30
|
+
survivors on a 0-10 fit scale (keeping only those ranked `--min-rank`,
|
|
31
|
+
default 7, or higher). Finally it distills a *shortlist* of the top
|
|
32
|
+
`--max-shortlist`, default 4, directions - drawn from distinct clusters
|
|
33
|
+
wherever possible - and derives a single *RECOMMENDATION*, being either
|
|
34
|
+
the highest-ranked option or a principled synthesis of the shortlist.
|
|
30
35
|
|
|
31
36
|
On completion the skill offers a *next step*: stop, or hand the
|
|
32
37
|
recommended direction off to the `ase-task-edit`, `ase-code-craft`, or
|
|
33
38
|
`ase-task-preflight` skills.
|
|
34
39
|
|
|
40
|
+
## OPTIONS
|
|
41
|
+
|
|
42
|
+
`--max-clarify=3`:
|
|
43
|
+
The *maximum* number of essential-unknown clarification questions
|
|
44
|
+
asked in the *clarify intent* phase (default: 3). Lower it for a
|
|
45
|
+
faster, leaner intake, raise it for more upfront grounding.
|
|
46
|
+
|
|
47
|
+
`--min-ideas`|`-i=12`:
|
|
48
|
+
The *minimum* number of candidate ideas to generate in the *diverge*
|
|
49
|
+
phase before converging (default: 12). Raise it for a broader idea
|
|
50
|
+
space, lower it for a quicker, narrower session.
|
|
51
|
+
|
|
52
|
+
`--min-rank=7`:
|
|
53
|
+
The *minimum* 0-10 fit rank an idea must score to survive the
|
|
54
|
+
*converge* phase (default: 7). Raise it for a stricter filter, lower
|
|
55
|
+
it to retain more ideas.
|
|
56
|
+
|
|
57
|
+
`--max-shortlist=4`:
|
|
58
|
+
The *maximum* number of distilled options on the final *shortlist*
|
|
59
|
+
(default: 4). Lower it for a sharper focus, raise it for more
|
|
60
|
+
finalists.
|
|
61
|
+
|
|
35
62
|
## ARGUMENTS
|
|
36
63
|
|
|
37
64
|
*topic*:
|
|
@@ -46,6 +73,19 @@ Brainstorm an approach for a new feature:
|
|
|
46
73
|
❯ /ase-meta-brainstorm an offline-first sync layer for the mobile app
|
|
47
74
|
```
|
|
48
75
|
|
|
76
|
+
Brainstorm with a broader idea space of at least 20 candidates:
|
|
77
|
+
|
|
78
|
+
```text
|
|
79
|
+
❯ /ase-meta-brainstorm --min-ideas 20 an offline-first sync layer
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Brainstorm quickly with a single clarification, a stricter score floor,
|
|
83
|
+
and a tighter shortlist:
|
|
84
|
+
|
|
85
|
+
```text
|
|
86
|
+
❯ /ase-meta-brainstorm --max-clarify 1 --min-rank 8 --max-shortlist 3 an offline-first sync layer
|
|
87
|
+
```
|
|
88
|
+
|
|
49
89
|
## SEE ALSO
|
|
50
90
|
|
|
51
91
|
`ase-meta-evaluate`, `ase-meta-quorum`, `ase-meta-diaboli`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-meta-diaboli
|
|
3
|
-
argument-hint: "[--help|-h] <thesis>"
|
|
3
|
+
argument-hint: "[--help|-h] [--count|-c <count>] <thesis>"
|
|
4
4
|
description: >
|
|
5
5
|
Challenge a thesis by playing "Devil’s Advocate" (latin: "Advocatus
|
|
6
6
|
Diaboli"). Use when the user wants a thesis or statement
|
|
@@ -12,25 +12,40 @@ effort: xhigh
|
|
|
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-diaboli">
|
|
17
18
|
Play "Devil's Advocate"
|
|
18
19
|
</skill>
|
|
19
20
|
|
|
21
|
+
<expand name="getopt"
|
|
22
|
+
arg1="ase-meta-diaboli"
|
|
23
|
+
arg2="--count|-c=10">
|
|
24
|
+
$ARGUMENTS
|
|
25
|
+
</expand>
|
|
26
|
+
|
|
20
27
|
<objective>
|
|
21
28
|
Play "Devil’s Advocate" (latin: "Advocatus Diaboli") by relentlessly
|
|
22
|
-
challenging or criticising the thesis: <thesis
|
|
29
|
+
challenging or criticising the thesis: <thesis><getopt-arguments/></thesis>
|
|
23
30
|
</objective>
|
|
24
31
|
|
|
25
|
-
|
|
32
|
+
Determine the minimum number of *anti-theses* to surface: set <count/>
|
|
33
|
+
to <getopt-option-count/>; if <getopt-option-count/> is *non-numeric* or
|
|
34
|
+
*less than or equal to 0*, use the default *10* instead.
|
|
35
|
+
|
|
36
|
+
<flow>
|
|
37
|
+
|
|
38
|
+
1. <step id="STEP 1: Restate Thesis">
|
|
26
39
|
|
|
27
40
|
Output the thesis with the following <template/>:
|
|
28
41
|
|
|
29
42
|
<template>
|
|
30
|
-
<ase-tpl-bullet-
|
|
43
|
+
<ase-tpl-bullet-normal/> **THESIS**: <thesis/>
|
|
31
44
|
</template>
|
|
32
45
|
|
|
33
|
-
|
|
46
|
+
</step>
|
|
47
|
+
|
|
48
|
+
2. <step id="STEP 2: Determine Anti-Theses">
|
|
34
49
|
|
|
35
50
|
Reason on the thesis in <thesis/> by playing *Devil's Advocate*
|
|
36
51
|
(latin: *Advocatus Diaboli*) by relentlessly challenging or
|
|
@@ -103,11 +118,11 @@ effort: xhigh
|
|
|
103
118
|
For each Anti-Thesis or Counter-Argument rank it on a Likert scale
|
|
104
119
|
of 0 (weak) to 10 (strong). Repeat the process of finding more
|
|
105
120
|
Anti-Theses or Counter-Arguments until you EITHER have found at
|
|
106
|
-
least
|
|
107
|
-
of 7 OR you have already checked a total of
|
|
108
|
-
Counter-Arguments.
|
|
121
|
+
least <count/> Anti-Theses or Counter-Arguments with at least a rank
|
|
122
|
+
of 7 OR you have already checked a total of <count/> x 5 Anti-Theses
|
|
123
|
+
or Counter-Arguments.
|
|
109
124
|
|
|
110
|
-
Then, for the top
|
|
125
|
+
Then, for the top-<count/> highest-ranked Anti-Theses or
|
|
111
126
|
Counter-Arguments, sort them by their rank from highest to lowest,
|
|
112
127
|
store each in <antithesis-N/> with the format `**<aspect-N/>**
|
|
113
128
|
(rank: <rank-N/>/10): <statement-N/>` (where <aspect-N/> is a short
|
|
@@ -120,7 +135,9 @@ effort: xhigh
|
|
|
120
135
|
<ase-tpl-bullet-signal/> **ANTITHESIS**: <antithesis-N/>
|
|
121
136
|
</template>
|
|
122
137
|
|
|
123
|
-
|
|
138
|
+
</step>
|
|
139
|
+
|
|
140
|
+
3. <step id="STEP 3: Dialectical Reasoning">
|
|
124
141
|
|
|
125
142
|
Following the Hegelian dialectics of...
|
|
126
143
|
|
|
@@ -150,3 +167,9 @@ effort: xhigh
|
|
|
150
167
|
<ase-tpl-bullet-normal/> **SYNTHESIS**: <synthesis/>
|
|
151
168
|
</template>
|
|
152
169
|
|
|
170
|
+
Do not output any further explanations.
|
|
171
|
+
|
|
172
|
+
</step>
|
|
173
|
+
|
|
174
|
+
</flow>
|
|
175
|
+
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
`ase-meta-diaboli`
|
|
9
9
|
[`--help`|`-h`]
|
|
10
|
+
[`--count`|`-c` *count*]
|
|
10
11
|
*thesis*
|
|
11
12
|
|
|
12
13
|
## DESCRIPTION
|
|
@@ -20,20 +21,31 @@ cases, *Reductio Ad Absurdum*, exposing hidden costs, and pre-mortem
|
|
|
20
21
|
thinking - while targeting the claim rather than its proponent and
|
|
21
22
|
yielding where the argument genuinely holds.
|
|
22
23
|
|
|
23
|
-
The skill iterates until it has found at least
|
|
24
|
+
The skill iterates until it has found at least *count* anti-theses
|
|
24
25
|
(counter-arguments) each ranked at least 7 on a 0 (weak) to 10
|
|
25
|
-
(strong) Likert scale, reports the top
|
|
26
|
+
(strong) Likert scale, reports the top *count* sorted from strongest to
|
|
26
27
|
weakest, and finally applies *Hegelian dialectics* (*Thesis* +
|
|
27
28
|
*Antithesis* → *Synthesis*) to derive a single-sentence *SYNTHESIS*
|
|
28
29
|
that preserves what is true in both the thesis and its antitheses
|
|
29
30
|
while discarding what is false.
|
|
30
31
|
|
|
32
|
+
The `--count`/`-c` *count* option sets the minimum number of strong
|
|
33
|
+
anti-theses to surface (default *10*), raising or lowering the floor of
|
|
34
|
+
counter-arguments hunted for, sorted, and reported in the single
|
|
35
|
+
challenge pass. A `0`, negative, or non-numeric value falls back to the
|
|
36
|
+
default *10*.
|
|
37
|
+
|
|
31
38
|
The intent is constructive: stress-testing the thesis in good faith to
|
|
32
39
|
arrive at a better final decision, not obstructing or merely being
|
|
33
40
|
contrarian.
|
|
34
41
|
|
|
35
42
|
## ARGUMENTS
|
|
36
43
|
|
|
44
|
+
`--count`, `-c` *count*:
|
|
45
|
+
Surface at least *count* strong anti-theses (default *10*) before
|
|
46
|
+
sorting and reporting the top *count* and deriving the *SYNTHESIS*. An
|
|
47
|
+
invalid or non-positive *count* reverts to the default *10*.
|
|
48
|
+
|
|
37
49
|
*thesis*:
|
|
38
50
|
The statement, claim, or position to be relentlessly challenged.
|
|
39
51
|
It may be technical, factual, or opinion-based; the skill attacks
|
|
@@ -53,6 +65,12 @@ Stress-test a design decision:
|
|
|
53
65
|
❯ /ase-meta-diaboli We should rewrite the service in Rust.
|
|
54
66
|
```
|
|
55
67
|
|
|
68
|
+
Surface at least fifteen anti-theses:
|
|
69
|
+
|
|
70
|
+
```text
|
|
71
|
+
❯ /ase-meta-diaboli --count 15 We should rewrite the service in Rust.
|
|
72
|
+
```
|
|
73
|
+
|
|
56
74
|
## SEE ALSO
|
|
57
75
|
|
|
58
76
|
`ase-meta-why`, `ase-meta-evaluate`, `ase-meta-quorum`,
|
|
@@ -306,7 +306,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
306
306
|
labels ultra short (basenames or module names only).
|
|
307
307
|
|
|
308
308
|
2. Dispatch the rendering to the `ase-meta-diagram` sub-agent by
|
|
309
|
-
calling the tool `Agent(name: "ase
|
|
309
|
+
calling the tool `Agent(name: "ase-meta-diagram",
|
|
310
310
|
description: "Diagram Rendering", subagent_type:
|
|
311
311
|
"ase:ase-meta-diagram", prompt: "<mermaid-spec/>")` and capture
|
|
312
312
|
its returned `text` field as <diagram/>.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-meta-quorum
|
|
3
|
-
argument-hint: "[--help|-h] <question>"
|
|
3
|
+
argument-hint: "[--help|-h] [--models|-m <model>[,...]] <question>"
|
|
4
4
|
description: >
|
|
5
5
|
Query Multiple AIs for Quorum Answer.
|
|
6
6
|
user-invocable: true
|
|
@@ -13,11 +13,18 @@ allowed-tools:
|
|
|
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-quorum">
|
|
18
19
|
Query Multiple AIs for Quorum Answer
|
|
19
20
|
</skill>
|
|
20
21
|
|
|
22
|
+
<expand name="getopt"
|
|
23
|
+
arg1="ase-meta-quorum"
|
|
24
|
+
arg2="--models|-m=(all|chatgpt|gemini|deepseek|grok|glm|qwen)...">
|
|
25
|
+
$ARGUMENTS
|
|
26
|
+
</expand>
|
|
27
|
+
|
|
21
28
|
<objective>
|
|
22
29
|
Find a *quorum answer* on an arbitrary question,
|
|
23
30
|
by querying *multiple* AIs for an *optimal consensus*.
|
|
@@ -30,7 +37,7 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
30
37
|
Prepare the LLM query by setting <query/> to the following <template/>:
|
|
31
38
|
|
|
32
39
|
<template>
|
|
33
|
-
|
|
40
|
+
<getopt-arguments/>.
|
|
34
41
|
Please respond with facts and very concise and brief only,
|
|
35
42
|
usually with just 1 to 7 corresponding bullet points and with short sentences.
|
|
36
43
|
Optionally, mention potential cruxes which should be noticed.
|
|
@@ -53,12 +60,20 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
53
60
|
|
|
54
61
|
2. <step id="STEP 2: Query Foreign AIs">
|
|
55
62
|
|
|
63
|
+
The user-selectable foreign models are restricted by the
|
|
64
|
+
`--models`/`-m` option, parsed into <getopt-option-models/>
|
|
65
|
+
as a comma-separated list of model tokens. The default is
|
|
66
|
+
the single token `all`. If <getopt-option-models/> contains
|
|
67
|
+
the token `all`, you *MUST* treat it as the full list
|
|
68
|
+
`chatgpt,gemini,deepseek,grok,glm,qwen` (all models). Anthropic
|
|
69
|
+
Claude (yourself) is *always* included, independent of this option.
|
|
70
|
+
|
|
56
71
|
<define name="agent">
|
|
57
72
|
Call the `Agent` tool:
|
|
58
73
|
|
|
59
74
|
```text
|
|
60
75
|
Agent(
|
|
61
|
-
name: "ase
|
|
76
|
+
name: "ase-meta-chat-<arg2/>",
|
|
62
77
|
description: "Query Foreign LLM: <arg1/>",
|
|
63
78
|
subagent_type: "ase:ase-meta-chat",
|
|
64
79
|
prompt: "<arg2/> <query/>"
|
|
@@ -67,12 +82,28 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
67
82
|
|
|
68
83
|
</define>
|
|
69
84
|
|
|
85
|
+
Query only those foreign models whose token is contained in
|
|
86
|
+
<getopt-option-models/> (where `all` selects every model); silently
|
|
87
|
+
skip all others:
|
|
88
|
+
|
|
89
|
+
<if condition="<getopt-option-models/> contains `all` OR <getopt-option-models/> contains `chatgpt`">
|
|
70
90
|
<expand name="agent" arg1="OpenAI ChatGPT" arg2="chatgpt"></expand>
|
|
91
|
+
</if>
|
|
92
|
+
<if condition="<getopt-option-models/> contains `all` OR <getopt-option-models/> contains `gemini`">
|
|
71
93
|
<expand name="agent" arg1="Google Gemini" arg2="gemini"></expand>
|
|
94
|
+
</if>
|
|
95
|
+
<if condition="<getopt-option-models/> contains `all` OR <getopt-option-models/> contains `deepseek`">
|
|
72
96
|
<expand name="agent" arg1="DeepSeek" arg2="deepseek"></expand>
|
|
97
|
+
</if>
|
|
98
|
+
<if condition="<getopt-option-models/> contains `all` OR <getopt-option-models/> contains `grok`">
|
|
73
99
|
<expand name="agent" arg1="xAI Grok" arg2="grok"></expand>
|
|
100
|
+
</if>
|
|
101
|
+
<if condition="<getopt-option-models/> contains `all` OR <getopt-option-models/> contains `glm`">
|
|
74
102
|
<expand name="agent" arg1="Z.AI GLM" arg2="glm"></expand>
|
|
103
|
+
</if>
|
|
104
|
+
<if condition="<getopt-option-models/> contains `all` OR <getopt-option-models/> contains `qwen`">
|
|
75
105
|
<expand name="agent" arg1="Alibaba Qwen" arg2="qwen"></expand>
|
|
106
|
+
</if>
|
|
76
107
|
|
|
77
108
|
You *MUST* *NOT* output anything in this step.
|
|
78
109
|
|
|
@@ -116,7 +147,7 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
116
147
|
|
|
117
148
|
<template>
|
|
118
149
|
**QUESTION**:
|
|
119
|
-
|
|
150
|
+
<getopt-arguments/>
|
|
120
151
|
|
|
121
152
|
● **CONSENSUS ANSWER**:
|
|
122
153
|
- [...]
|
|
@@ -153,7 +184,8 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
153
184
|
- [...]
|
|
154
185
|
</template>
|
|
155
186
|
|
|
156
|
-
In this output, remove the sections of those AIs which were not
|
|
187
|
+
In this output, remove the sections of those AIs which were not
|
|
188
|
+
queried (excluded via `--models`/`-m`) or were not available.
|
|
157
189
|
You *MUST* *NOT* output any further explanations yourself.
|
|
158
190
|
|
|
159
191
|
</step>
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
`ase-meta-quorum`
|
|
9
9
|
[`--help`|`-h`]
|
|
10
|
+
[`--models`|`-m` *model*[,...]]
|
|
10
11
|
*question*
|
|
11
12
|
|
|
12
13
|
## DESCRIPTION
|
|
@@ -23,6 +24,17 @@ a Likert scale of `0..N` (where `N` is the number of available
|
|
|
23
24
|
responders), and reports the consensus answer alongside the
|
|
24
25
|
complete, unmodified individual responses.
|
|
25
26
|
|
|
27
|
+
## OPTIONS
|
|
28
|
+
|
|
29
|
+
`--models`|`-m` *model*[,...]:
|
|
30
|
+
Restrict the *foreign* LLMs that are queried to the given
|
|
31
|
+
comma-separated list of *model* tokens. Recognized tokens are
|
|
32
|
+
`all`, `chatgpt`, `gemini`, `deepseek`, `grok`, `glm`, and `qwen`,
|
|
33
|
+
where `all` selects every model. The default is `all`. Models that
|
|
34
|
+
are not selected (or not available) are *silently skipped*.
|
|
35
|
+
Anthropic Claude (the skill itself) is *always* included,
|
|
36
|
+
independent of this option.
|
|
37
|
+
|
|
26
38
|
## ARGUMENTS
|
|
27
39
|
|
|
28
40
|
*question*:
|
|
@@ -36,6 +48,12 @@ Ask the quorum a factual question:
|
|
|
36
48
|
❯ /ase-meta-quorum What are the most common causes of memory leaks in Node.js?
|
|
37
49
|
```
|
|
38
50
|
|
|
51
|
+
Ask only a subset of the foreign models:
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
❯ /ase-meta-quorum --models chatgpt,gemini,grok Which sorting algorithm is fastest in practice?
|
|
55
|
+
```
|
|
56
|
+
|
|
39
57
|
## SEE ALSO
|
|
40
58
|
|
|
41
59
|
`ase-meta-chat`, `ase-meta-search`, `ase-meta-evaluate`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-meta-review
|
|
3
|
-
argument-hint: "[--help|-h]"
|
|
3
|
+
argument-hint: "[--help|-h] [--severity|-S=(LOW|MEDIUM|HIGH)]"
|
|
4
4
|
description: >
|
|
5
5
|
Perform a holistic, human-reviewer-style critique of the currently
|
|
6
6
|
staged Git changes and emit an approve/reject verdict with
|
|
@@ -17,11 +17,19 @@ allowed-tools:
|
|
|
17
17
|
|
|
18
18
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
19
19
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
20
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md
|
|
21
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
20
22
|
|
|
21
23
|
<skill name="ase-meta-review">
|
|
22
24
|
Review Staged Changes
|
|
23
25
|
</skill>
|
|
24
26
|
|
|
27
|
+
<expand name="getopt"
|
|
28
|
+
arg1="ase-meta-review"
|
|
29
|
+
arg2="--severity|-S=(LOW|MEDIUM|HIGH)">
|
|
30
|
+
$ARGUMENTS
|
|
31
|
+
</expand>
|
|
32
|
+
|
|
25
33
|
<objective>
|
|
26
34
|
Review the currently staged Git changes the way an *experienced human
|
|
27
35
|
reviewer* would - judging them *holistically* against the change's *own
|
|
@@ -82,7 +90,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
82
90
|
|
|
83
91
|
```text
|
|
84
92
|
Agent(
|
|
85
|
-
name: "ase
|
|
93
|
+
name: "ase-meta-review",
|
|
86
94
|
description: "Review Investigation",
|
|
87
95
|
subagent_type: "ase:ase-meta-review",
|
|
88
96
|
mode: "plan",
|
|
@@ -98,7 +106,17 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
98
106
|
Then *derive* the overall <verdict/> from <findings/>: set
|
|
99
107
|
<verdict/> to `REJECT - DEMANDS CHANGES` if *any* finding in
|
|
100
108
|
<findings/> has a `severity` field of `HIGH`; otherwise set
|
|
101
|
-
<verdict/> to `APPROVE`.
|
|
109
|
+
<verdict/> to `APPROVE`. The verdict is derived *before* the
|
|
110
|
+
severity floor below, so a suppressed `HIGH` finding still drives the
|
|
111
|
+
verdict.
|
|
112
|
+
|
|
113
|
+
Then *apply the severity floor* selected via <getopt-option-severity/>
|
|
114
|
+
(default `LOW`): define the ordinal rank `LOW`=1, `MEDIUM`=2,
|
|
115
|
+
`HIGH`=3. *Keep* a finding in <findings/> if and only if its
|
|
116
|
+
`severity` field is `ACCEPTED` *or* `rank(severity)` is greater than
|
|
117
|
+
or equal to `rank(<getopt-option-severity/>)`; *silently drop* all
|
|
118
|
+
other findings. With the default floor `LOW`, all findings are kept.
|
|
119
|
+
`ACCEPTED` findings are *never* dropped.
|
|
102
120
|
|
|
103
121
|
You *MUST* *NOT* output anything else in this STEP 2.
|
|
104
122
|
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
## SYNOPSIS
|
|
7
7
|
|
|
8
8
|
`ase-meta-review`
|
|
9
|
+
[`--help`|`-h`]
|
|
10
|
+
[`--severity`|`-S`=(`LOW`|`MEDIUM`|`HIGH`)]
|
|
9
11
|
|
|
10
12
|
## DESCRIPTION
|
|
11
13
|
|
|
@@ -51,10 +53,20 @@ inspects *logic and semantics*, `ase-meta-diff` narrates *what changed*
|
|
|
51
53
|
`ase-meta-review` renders a *reviewer's judgement* on a concrete diff
|
|
52
54
|
before it is committed.
|
|
53
55
|
|
|
56
|
+
## OPTIONS
|
|
57
|
+
|
|
58
|
+
`--severity`|`-S`=(`LOW`|`MEDIUM`|`HIGH`):
|
|
59
|
+
Set the *severity floor* (default `LOW`): findings below the chosen
|
|
60
|
+
threshold are silently suppressed, ordered `LOW` < `MEDIUM` <
|
|
61
|
+
`HIGH`. The default `LOW` keeps all findings; `ACCEPTED` findings are
|
|
62
|
+
never suppressed. The floor only affects the rendered findings table;
|
|
63
|
+
the overall *verdict* is still derived from all findings, so a
|
|
64
|
+
suppressed `HIGH` finding still yields a *REJECT* verdict.
|
|
65
|
+
|
|
54
66
|
## ARGUMENTS
|
|
55
67
|
|
|
56
|
-
The `ase-meta-review` skill takes no arguments; it always
|
|
57
|
-
currently *staged* Git changes.
|
|
68
|
+
The `ase-meta-review` skill takes no positional arguments; it always
|
|
69
|
+
reviews the currently *staged* Git changes.
|
|
58
70
|
|
|
59
71
|
## EXAMPLES
|
|
60
72
|
|
|
@@ -64,6 +76,12 @@ Review the currently staged changes before committing:
|
|
|
64
76
|
❯ /ase-meta-review
|
|
65
77
|
```
|
|
66
78
|
|
|
79
|
+
Review the staged changes, reporting only `MEDIUM` and `HIGH` findings:
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
❯ /ase-meta-review -S MEDIUM
|
|
83
|
+
```
|
|
84
|
+
|
|
67
85
|
## SEE ALSO
|
|
68
86
|
|
|
69
87
|
`ase-meta-diff`, `ase-meta-commit`, `ase-code-lint`, `ase-code-analyze`,
|