@rse/ase 0.0.58 → 0.0.60
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-getopt.js +28 -2
- package/dst/ase-hello.js +5 -5
- 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-format-adr.md +199 -0
- package/plugin/meta/ase-getopt.md +12 -5
- package/plugin/package.json +1 -1
- package/plugin/skills/ase-arch-discover/SKILL.md +1 -1
- package/plugin/skills/ase-code-craft/SKILL.md +43 -15
- package/plugin/skills/ase-code-craft/help.md +24 -8
- package/plugin/skills/ase-code-explain/SKILL.md +1 -1
- package/plugin/skills/ase-code-insight/SKILL.md +1 -1
- package/plugin/skills/ase-code-refactor/SKILL.md +43 -15
- package/plugin/skills/ase-code-refactor/help.md +24 -8
- package/plugin/skills/ase-code-resolve/SKILL.md +43 -15
- package/plugin/skills/ase-code-resolve/help.md +24 -8
- package/plugin/skills/ase-meta-changes/SKILL.md +1 -1
- package/plugin/skills/ase-meta-chat/SKILL.md +1 -1
- package/plugin/skills/ase-meta-diaboli/SKILL.md +152 -0
- package/plugin/skills/ase-meta-diaboli/help.md +60 -0
- package/plugin/skills/ase-meta-persona/SKILL.md +1 -1
- package/plugin/skills/ase-meta-quorum/SKILL.md +1 -1
- package/plugin/skills/ase-meta-search/SKILL.md +1 -1
- package/plugin/skills/ase-meta-why/SKILL.md +4 -4
- package/plugin/skills/ase-task-delete/SKILL.md +1 -1
- package/plugin/skills/ase-task-edit/SKILL.md +42 -23
- package/plugin/skills/ase-task-edit/help.md +10 -4
- package/plugin/skills/ase-task-grill/SKILL.md +275 -0
- package/plugin/skills/ase-task-grill/help.md +79 -0
- package/plugin/skills/ase-task-id/SKILL.md +1 -1
- package/plugin/skills/ase-task-implement/SKILL.md +31 -9
- package/plugin/skills/ase-task-implement/help.md +8 -4
- package/plugin/skills/ase-task-list/SKILL.md +1 -1
- package/plugin/skills/ase-task-preflight/SKILL.md +40 -13
- package/plugin/skills/ase-task-preflight/help.md +10 -5
- package/plugin/skills/ase-task-reboot/SKILL.md +61 -11
- package/plugin/skills/ase-task-reboot/help.md +13 -6
- package/plugin/skills/ase-task-rename/SKILL.md +1 -1
- package/plugin/skills/ase-task-view/SKILL.md +1 -1
- /package/plugin/meta/{ase-plan.md → ase-format-plan.md} +0 -0
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
[`--help`|`-h`]
|
|
10
10
|
[`--auto`|`-a`]
|
|
11
11
|
[`--dry`|`-d`]
|
|
12
|
-
[`--
|
|
12
|
+
[`--quick`|`-Q`]
|
|
13
|
+
[`--next`|`-n` *option*[,...]]
|
|
13
14
|
[*task-id*:] *request*
|
|
14
15
|
|
|
15
16
|
## DESCRIPTION
|
|
@@ -39,13 +40,28 @@ plan via `ase_task_save` and then hands off to `ase-task-edit`,
|
|
|
39
40
|
type-checker, or program execution) once the source files have
|
|
40
41
|
been modified.
|
|
41
42
|
|
|
42
|
-
`--
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
43
|
+
`--quick`|`-Q`:
|
|
44
|
+
Shorthand alias for `-a -d -n IMPLEMENT,DELETE`: automatically pick
|
|
45
|
+
the recommended refactoring approach, compose the plan *without* the
|
|
46
|
+
`※ VERIFICATION` section, immediately hand off to `ase-task-implement`,
|
|
47
|
+
and finally `ase-task-delete` the now-consumed plan. This gives a
|
|
48
|
+
single, fast *one-shot* refactoring mode.
|
|
49
|
+
|
|
50
|
+
`--next`|`-n` *option*[,...]:
|
|
51
|
+
Automatically choose the next step after composing the plan.
|
|
52
|
+
*option* is a single token or a *comma-separated chronological
|
|
53
|
+
list* of tokens; an `IMPLEMENT` or `PREFLIGHT` head token is
|
|
54
|
+
consumed by this skill (bypassing `ase-task-edit`), and any
|
|
55
|
+
remaining tokens are *forwarded* (via `--next`) to the downstream
|
|
56
|
+
skill. For all other head tokens, the *entire* list is forwarded
|
|
57
|
+
to `ase-task-edit`, which consumes its head itself. This lets an
|
|
58
|
+
entire pipeline be pre-scripted in one shot. Recognized tokens at
|
|
59
|
+
this skill: `none` (default, hand-off to `ase-task-edit`
|
|
60
|
+
interactively), `DONE` (stop), `EDIT` (hand off to
|
|
61
|
+
`ase-task-edit`), `PREFLIGHT` (hand off to `ase-task-preflight`),
|
|
62
|
+
or `IMPLEMENT` (hand off to `ase-task-implement`). Example:
|
|
63
|
+
`--next PREFLIGHT,IMPLEMENT,DONE` refactors, preflights, implements,
|
|
64
|
+
and exits without further dialog.
|
|
49
65
|
|
|
50
66
|
## ARGUMENTS
|
|
51
67
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-code-resolve
|
|
3
|
-
argument-hint: "[--help|-h] [--auto|-a] [--dry|-d] [--next|-n <option>] [<task-id>:] <problem>"
|
|
3
|
+
argument-hint: "[--help|-h] [--auto|-a] [--dry|-d] [--quick|-Q] [--next|-n <option>[,...]] [<task-id>:] <problem>"
|
|
4
4
|
description: >
|
|
5
5
|
Resolve Problem:
|
|
6
6
|
Use when user wants a bug fixed or problem resolved.
|
|
7
7
|
user-invocable: true
|
|
8
8
|
disable-model-invocation: false
|
|
9
|
-
effort:
|
|
9
|
+
effort: xhigh
|
|
10
10
|
allowed-tools:
|
|
11
11
|
- "Skill"
|
|
12
12
|
- "Agent"
|
|
@@ -23,16 +23,22 @@ Resolve Problem
|
|
|
23
23
|
|
|
24
24
|
<expand name="getopt"
|
|
25
25
|
arg1="ase-code-resolve"
|
|
26
|
-
arg2="--auto|-a --dry|-d --next|-n=(none|DONE|EDIT|PREFLIGHT|IMPLEMENT)">
|
|
26
|
+
arg2="--auto|-a --dry|-d --quick|-Q --next|-n=(none|DONE|EDIT|PREFLIGHT|IMPLEMENT)...">
|
|
27
27
|
$ARGUMENTS
|
|
28
28
|
</expand>
|
|
29
29
|
|
|
30
|
+
<if condition="<getopt-option-quick/> is equal `true`">
|
|
31
|
+
The `--quick`/`-Q` flag is a *shorthand alias*: set <getopt-option-auto/>
|
|
32
|
+
to `true`, <getopt-option-dry/> to `true`, and <getopt-option-next/> to
|
|
33
|
+
`IMPLEMENT,DELETE`. Do not output anything.
|
|
34
|
+
</if>
|
|
35
|
+
|
|
30
36
|
<objective>
|
|
31
37
|
*Resolve* the following problem:
|
|
32
38
|
<problem><getopt-arguments/></problem>
|
|
33
39
|
</objective>
|
|
34
40
|
|
|
35
|
-
@${CLAUDE_SKILL_DIR}/../../meta/ase-plan.md
|
|
41
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-format-plan.md
|
|
36
42
|
|
|
37
43
|
Procedure
|
|
38
44
|
---------
|
|
@@ -210,7 +216,10 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
210
216
|
|
|
211
217
|
You *MUST* perform the following sub-steps *internally* and *without
|
|
212
218
|
any output* until and including the recommendation decision. Only
|
|
213
|
-
sub-
|
|
219
|
+
sub-steps 4-6 below are allowed to produce output, and only if
|
|
220
|
+
<getopt-option-auto/> is equal `false`. If <getopt-option-auto/> is
|
|
221
|
+
equal `true`, *skip* the reporting sub-steps 4-6 entirely (perform
|
|
222
|
+
no output at all) to speed up processing.
|
|
214
223
|
|
|
215
224
|
1. *Propose* corresponding *resolution approach*, including optionally,
|
|
216
225
|
some *alternative* resolution approaches. Do *not* output anything
|
|
@@ -340,23 +349,42 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
340
349
|
|
|
341
350
|
6. Directly pass-through control to the next skill:
|
|
342
351
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
352
|
+
Treat <getopt-option-next/> as a comma-separated chronological
|
|
353
|
+
list of pre-selected next-step tokens. *Peek* the *first* token
|
|
354
|
+
as <head/> (or `none` if the list is `none`/empty).
|
|
355
|
+
|
|
356
|
+
1. <if condition="<head/> is equal `IMPLEMENT`">
|
|
357
|
+
Consume the head: set <getopt-option-next/> to the remaining
|
|
358
|
+
tokens (joined back with `,`, or `none` if empty). Set
|
|
359
|
+
<args></args> (empty).
|
|
360
|
+
<if condition="<getopt-option-next/> is not equal `none`">
|
|
361
|
+
Set <args>--next <getopt-option-next/></args> (forward
|
|
362
|
+
remaining list tokens to the downstream skill).
|
|
363
|
+
</if>
|
|
364
|
+
Call the tool `Skill(skill: "ase:ase-task-implement", args: <args/>)`
|
|
365
|
+
to *implement* the freshly composed plan, bypassing `ase-task-edit`.
|
|
346
366
|
</if>
|
|
347
367
|
|
|
348
|
-
2. <if condition="<
|
|
349
|
-
|
|
350
|
-
|
|
368
|
+
2. <if condition="<head/> is equal `PREFLIGHT`">
|
|
369
|
+
Consume the head: set <getopt-option-next/> to the remaining
|
|
370
|
+
tokens (joined back with `,`, or `none` if empty). Set
|
|
371
|
+
<args></args> (empty).
|
|
372
|
+
<if condition="<getopt-option-next/> is not equal `none`">
|
|
373
|
+
Set <args>--next <getopt-option-next/></args> (forward
|
|
374
|
+
remaining list tokens to the downstream skill).
|
|
375
|
+
</if>
|
|
376
|
+
Call the tool `Skill(skill: "ase:ase-task-preflight", args: <args/>)`
|
|
377
|
+
to *preflight* the freshly composed plan, bypassing `ase-task-edit`.
|
|
351
378
|
</if>
|
|
352
379
|
|
|
353
380
|
3. <if condition="
|
|
354
|
-
<
|
|
355
|
-
<
|
|
381
|
+
<head/> is not equal `IMPLEMENT` AND
|
|
382
|
+
<head/> is not equal `PREFLIGHT`
|
|
356
383
|
">
|
|
357
|
-
|
|
384
|
+
Forward the *entire* (unshifted) list to `ase-task-edit`, which
|
|
385
|
+
will consume its head itself. Set <args></args> (empty).
|
|
358
386
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
359
|
-
Set <args
|
|
387
|
+
Set <args>--next <getopt-option-next/></args> (append to args).
|
|
360
388
|
</if>
|
|
361
389
|
Then call the tool `Skill(skill: "ase:ase-task-edit", args: <args/>)`.
|
|
362
390
|
</if>
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
[`--help`|`-h`]
|
|
10
10
|
[`--auto`|`-a`]
|
|
11
11
|
[`--dry`|`-d`]
|
|
12
|
-
[`--
|
|
12
|
+
[`--quick`|`-Q`]
|
|
13
|
+
[`--next`|`-n` *option*[,...]]
|
|
13
14
|
[*task-id*:] *problem*
|
|
14
15
|
|
|
15
16
|
## DESCRIPTION
|
|
@@ -44,13 +45,28 @@ plan via `ase_task_save` and then hands off to `ase-task-edit`,
|
|
|
44
45
|
type-checker, or program execution) once the source files have
|
|
45
46
|
been modified.
|
|
46
47
|
|
|
47
|
-
`--
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
48
|
+
`--quick`|`-Q`:
|
|
49
|
+
Shorthand alias for `-a -d -n IMPLEMENT,DELETE`: automatically pick
|
|
50
|
+
the recommended resolution approach, compose the plan *without* the
|
|
51
|
+
`※ VERIFICATION` section, immediately hand off to `ase-task-implement`,
|
|
52
|
+
and finally `ase-task-delete` the now-consumed plan. This gives a
|
|
53
|
+
single, fast *one-shot* resolution mode.
|
|
54
|
+
|
|
55
|
+
`--next`|`-n` *option*[,...]:
|
|
56
|
+
Automatically choose the next step after composing the plan.
|
|
57
|
+
*option* is a single token or a *comma-separated chronological
|
|
58
|
+
list* of tokens; an `IMPLEMENT` or `PREFLIGHT` head token is
|
|
59
|
+
consumed by this skill (bypassing `ase-task-edit`), and any
|
|
60
|
+
remaining tokens are *forwarded* (via `--next`) to the downstream
|
|
61
|
+
skill. For all other head tokens, the *entire* list is forwarded
|
|
62
|
+
to `ase-task-edit`, which consumes its head itself. This lets an
|
|
63
|
+
entire pipeline be pre-scripted in one shot. Recognized tokens at
|
|
64
|
+
this skill: `none` (default, hand-off to `ase-task-edit`
|
|
65
|
+
interactively), `DONE` (stop), `EDIT` (hand off to
|
|
66
|
+
`ase-task-edit`), `PREFLIGHT` (hand off to `ase-task-preflight`),
|
|
67
|
+
or `IMPLEMENT` (hand off to `ase-task-implement`). Example:
|
|
68
|
+
`--next IMPLEMENT,DONE` resolves the problem, implements it, and
|
|
69
|
+
exits without further dialog.
|
|
54
70
|
|
|
55
71
|
## ARGUMENTS
|
|
56
72
|
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ase-meta-diaboli
|
|
3
|
+
argument-hint: "[--help|-h] <thesis>"
|
|
4
|
+
description: >
|
|
5
|
+
Challenge a thesis by playing "Devil’s Advocate" (latin: "Advocatus
|
|
6
|
+
Diaboli"). Use when the user wants a thesis or statement
|
|
7
|
+
relentlessly challenged or criticised.
|
|
8
|
+
user-invocable: true
|
|
9
|
+
disable-model-invocation: false
|
|
10
|
+
effort: xhigh
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
14
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
15
|
+
|
|
16
|
+
<skill name="ase-meta-diaboli">
|
|
17
|
+
Play "Devil's Advocate"
|
|
18
|
+
</skill>
|
|
19
|
+
|
|
20
|
+
<objective>
|
|
21
|
+
Play "Devil’s Advocate" (latin: "Advocatus Diaboli") by relentlessly
|
|
22
|
+
challenging or criticising the thesis: <thesis>$ARGUMENTS</thesis>
|
|
23
|
+
</objective>
|
|
24
|
+
|
|
25
|
+
1. **Repeat Thesis**:
|
|
26
|
+
|
|
27
|
+
Output the thesis with the following <template/>:
|
|
28
|
+
|
|
29
|
+
<template>
|
|
30
|
+
⚪ **THESIS**: <thesis/>
|
|
31
|
+
</template>
|
|
32
|
+
|
|
33
|
+
2. **Determine Anti-Thesis**:
|
|
34
|
+
|
|
35
|
+
Reason on the thesis in <thesis/> by playing *Devil’s Advocate*
|
|
36
|
+
(latin: *Advocatus Diaboli*) by relentlessly challenging or
|
|
37
|
+
criticising it with the help of the following tenets:
|
|
38
|
+
|
|
39
|
+
- **Steelmanning**:
|
|
40
|
+
Attack the strongest ("steelman") interpretation of the
|
|
41
|
+
<thesis/>, not the weakest ("strawman"), because defeating a
|
|
42
|
+
strawman proves nothing.
|
|
43
|
+
|
|
44
|
+
- **Stress-Testing Fundamentals**:
|
|
45
|
+
Identify weaknesses already in the fundamental ideas behind the
|
|
46
|
+
thesis, because if the foundation is already cracked, no amount
|
|
47
|
+
of polish on the surface can save what is built on top of it.
|
|
48
|
+
|
|
49
|
+
- **Target Claims, Not Person**:
|
|
50
|
+
Critique the thesis, the assumption, the evidence — never the
|
|
51
|
+
proponent's competence or motives, because the moment it gets
|
|
52
|
+
personal, the inquiry dies.
|
|
53
|
+
|
|
54
|
+
- **Make the Implicit Explicit**:
|
|
55
|
+
Surface the unstated assumptions the thesis silently depends on,
|
|
56
|
+
because most weak arguments hide in premises nobody bothered to say
|
|
57
|
+
out loud.
|
|
58
|
+
|
|
59
|
+
- **Demand Evidence Proportional to Claim**:
|
|
60
|
+
Ask "How do we know this?" and "What would it take to be true?",
|
|
61
|
+
because extraordinary claims need extraordinary support and
|
|
62
|
+
comfortable consensus needs scrutiny most of all.
|
|
63
|
+
|
|
64
|
+
- **Seek the Disconfirming Case**:
|
|
65
|
+
Actively hunt for the counterexample, the edge case, the scenario
|
|
66
|
+
where the position fails, because one solid counterexample outweighs
|
|
67
|
+
ten confirmations.
|
|
68
|
+
|
|
69
|
+
- **Risk Identification**:
|
|
70
|
+
Focus on potential problems in the thesis with the highest
|
|
71
|
+
potential risk only, because low-risk problems are not worth the
|
|
72
|
+
explicit discussion.
|
|
73
|
+
|
|
74
|
+
- **Push the Logic to its Conclusion**:
|
|
75
|
+
Ask "If we accept this, then what?" and apply "Reduction to
|
|
76
|
+
Absurdity" (latin: "Reductio Ad Absurdum"), because this disproves
|
|
77
|
+
the thesis by showing that accepting it leads to a logically
|
|
78
|
+
absurd, contradictory, or impossible conclusion.
|
|
79
|
+
|
|
80
|
+
- **Expose Hidden Costs and Trade-Offs**:
|
|
81
|
+
Name the opportunity cost, the maintenance burden, the failure mode
|
|
82
|
+
nobody priced in, because every choice in the thesis forecloses
|
|
83
|
+
alternatives.
|
|
84
|
+
|
|
85
|
+
- **Stay Falsifiable and Concrete**:
|
|
86
|
+
Frame objections so they can be answered or dismissed with facts,
|
|
87
|
+
because vague unease ("I just don't like it") is just noise.
|
|
88
|
+
|
|
89
|
+
- **Argue in Good Faith**:
|
|
90
|
+
Make clear you're just stress-testing the thesis, not
|
|
91
|
+
obstructing, because the goal of the objective is a better final
|
|
92
|
+
decision, not winning.
|
|
93
|
+
|
|
94
|
+
- **Know When to Yield**:
|
|
95
|
+
Conceding when the argument holds is what makes the challenge
|
|
96
|
+
credible, because a Devil's Advocate who can never be satisfied is
|
|
97
|
+
just a contrarian.
|
|
98
|
+
|
|
99
|
+
- **Pre-Mortem Thinking**:
|
|
100
|
+
Imagine failure scenarios of the thesis, because better to
|
|
101
|
+
prevent them in advance than having to resolve them later.
|
|
102
|
+
|
|
103
|
+
For each Anti-Thesis or Counter-Argument rank it on a Likert scale
|
|
104
|
+
of 0 (weak) to 10 (strong). Repeat the process of finding more
|
|
105
|
+
Anti-Theses or Counter-Arguments until you EITHER have found at
|
|
106
|
+
least 10 Anti-Theses or Counter-Arguments with at least a rank
|
|
107
|
+
of 7 OR you have already checked a total of 50 Anti-Theses or
|
|
108
|
+
Counter-Arguments.
|
|
109
|
+
|
|
110
|
+
Then, for the top-10 highest-ranked Anti-Theses or
|
|
111
|
+
Counter-Arguments, sort them by their rank from highest to lowest,
|
|
112
|
+
store each in <antithesis-N/> with the format `**<aspect-N/>**
|
|
113
|
+
(rank: <rank-N/>/10): <statement-N/>` (where <aspect-N/> is a short
|
|
114
|
+
1-3 word summary of <statement-N/>, <rank-N/> is the determined
|
|
115
|
+
rank on the Likert scale, and <statement-N/> is a single-sentence
|
|
116
|
+
statement of not more than 40 words), and then output the following
|
|
117
|
+
<template/>:
|
|
118
|
+
|
|
119
|
+
<template>
|
|
120
|
+
🟠 **ANTITHESIS**: <antithesis-N/>
|
|
121
|
+
</template>
|
|
122
|
+
|
|
123
|
+
3. **Dialectical Reasoning**:
|
|
124
|
+
|
|
125
|
+
Following the Hegelian dialectics of...
|
|
126
|
+
|
|
127
|
+
*Thesis* + *Antithesis* → *Synthesis*
|
|
128
|
+
|
|
129
|
+
...with...
|
|
130
|
+
|
|
131
|
+
- *Thesis*: the initial statement, claim, or position. It is asserted
|
|
132
|
+
as true, but on its own it is one-sided: it captures part of the truth
|
|
133
|
+
while ignoring its own limits, gaps, or internal tensions.
|
|
134
|
+
|
|
135
|
+
- *Antithesis*: the opposing force. It is the contradiction,
|
|
136
|
+
objection, or counter-position that the thesis provokes — precisely
|
|
137
|
+
the role a Devil's Advocate played. The antithesis exposes what the
|
|
138
|
+
thesis omitted or got wrong.
|
|
139
|
+
|
|
140
|
+
- *Synthesis*: the resolution. Not a mushy "average" of the two, and
|
|
141
|
+
not the victory of one over the other, but a higher position that
|
|
142
|
+
preserves what was true in both while discarding what was false. The
|
|
143
|
+
synthesis transcends the conflict by reframing it.
|
|
144
|
+
|
|
145
|
+
...finally derive a strong single-sentence (not more than 40 words)
|
|
146
|
+
synthesis of the <thesis/> and all found <antithesis-N/>, store it
|
|
147
|
+
in <synthesis/>, and then finally output the following <template/>:
|
|
148
|
+
|
|
149
|
+
<template>
|
|
150
|
+
🔵 **SYNTHESIS**: <synthesis/>
|
|
151
|
+
</template>
|
|
152
|
+
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
|
|
2
|
+
## NAME
|
|
3
|
+
|
|
4
|
+
`ase-meta-diaboli` - Play "Devil's Advocate" (latin: "Advocatus Diaboli")
|
|
5
|
+
|
|
6
|
+
## SYNOPSIS
|
|
7
|
+
|
|
8
|
+
`ase-meta-diaboli`
|
|
9
|
+
[`--help`|`-h`]
|
|
10
|
+
*thesis*
|
|
11
|
+
|
|
12
|
+
## DESCRIPTION
|
|
13
|
+
|
|
14
|
+
The `ase-meta-diaboli` skill plays *Devil's Advocate* (latin:
|
|
15
|
+
*Advocatus Diaboli*) by relentlessly challenging or criticising a
|
|
16
|
+
supplied *thesis*. It applies a disciplined set of critical-thinking
|
|
17
|
+
tenets — steelmanning, stress-testing fundamentals, surfacing implicit
|
|
18
|
+
assumptions, demanding proportional evidence, seeking disconfirming
|
|
19
|
+
cases, *Reductio Ad Absurdum*, exposing hidden costs, and pre-mortem
|
|
20
|
+
thinking — while targeting the claim rather than its proponent and
|
|
21
|
+
yielding where the argument genuinely holds.
|
|
22
|
+
|
|
23
|
+
The skill iterates until it has found at least ten anti-theses
|
|
24
|
+
(counter-arguments) each ranked at least 7 on a 0 (weak) to 10
|
|
25
|
+
(strong) Likert scale, reports the top ten sorted from strongest to
|
|
26
|
+
weakest, and finally applies *Hegelian dialectics* (*Thesis* +
|
|
27
|
+
*Antithesis* → *Synthesis*) to derive a single-sentence *SYNTHESIS*
|
|
28
|
+
that preserves what is true in both the thesis and its antitheses
|
|
29
|
+
while discarding what is false.
|
|
30
|
+
|
|
31
|
+
The intent is constructive: stress-testing the thesis in good faith to
|
|
32
|
+
arrive at a better final decision, not obstructing or merely being
|
|
33
|
+
contrarian.
|
|
34
|
+
|
|
35
|
+
## ARGUMENTS
|
|
36
|
+
|
|
37
|
+
*thesis*:
|
|
38
|
+
The statement, claim, or position to be relentlessly challenged.
|
|
39
|
+
It may be technical, factual, or opinion-based; the skill attacks
|
|
40
|
+
its strongest ("steelman") interpretation.
|
|
41
|
+
|
|
42
|
+
## EXAMPLES
|
|
43
|
+
|
|
44
|
+
Challenge a technology-choice claim:
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
❯ /ase-meta-diaboli HAPI is the best REST framework
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Stress-test a design decision:
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
❯ /ase-meta-diaboli We should rewrite the service in Rust.
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## SEE ALSO
|
|
57
|
+
|
|
58
|
+
`ase-meta-why`, `ase-meta-evaluate`, `ase-meta-quorum`,
|
|
59
|
+
`ase-meta-persona`.
|
|
60
|
+
|
|
@@ -6,7 +6,7 @@ description: >
|
|
|
6
6
|
Prefer this skill before using Perplexity, Brave and WebSearch.
|
|
7
7
|
user-invocable: true
|
|
8
8
|
disable-model-invocation: false
|
|
9
|
-
effort:
|
|
9
|
+
effort: medium
|
|
10
10
|
allowed-tools:
|
|
11
11
|
- "mcp__search-perplexity__perplexity_search"
|
|
12
12
|
- "mcp__search-brave__brave_web_search"
|
|
@@ -5,7 +5,7 @@ description: >
|
|
|
5
5
|
Five-Whys Root-Cause Analysis.
|
|
6
6
|
user-invocable: true
|
|
7
7
|
disable-model-invocation: false
|
|
8
|
-
effort:
|
|
8
|
+
effort: high
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
@@ -27,7 +27,7 @@ addressing surface-level symptoms.
|
|
|
27
27
|
</objective>
|
|
28
28
|
|
|
29
29
|
<flow>
|
|
30
|
-
1. <step id="STEP 1:
|
|
30
|
+
1. <step id="STEP 1: Determine Problem">
|
|
31
31
|
State the problem statement.
|
|
32
32
|
|
|
33
33
|
<template>
|
|
@@ -35,7 +35,7 @@ addressing surface-level symptoms.
|
|
|
35
35
|
</template>
|
|
36
36
|
</step>
|
|
37
37
|
|
|
38
|
-
2. <step id="STEP 2:
|
|
38
|
+
2. <step id="STEP 2: Root-Cause Analysis">
|
|
39
39
|
Find the root-cause of <problem/> by following the following iteration cycle.
|
|
40
40
|
Start with a <question/> set equal to the <problem/>.
|
|
41
41
|
|
|
@@ -55,7 +55,7 @@ addressing surface-level symptoms.
|
|
|
55
55
|
</for>
|
|
56
56
|
</step>
|
|
57
57
|
|
|
58
|
-
3. <step id="STEP 3:
|
|
58
|
+
3. <step id="STEP 3: Report Solution">
|
|
59
59
|
Validate the root-cause by working backwards the causality chain.
|
|
60
60
|
Propose a solution that addresses and solves the root-cause.
|
|
61
61
|
For the proposed solution, optionally directly propose corresponding source code changes.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-task-edit
|
|
3
|
-
argument-hint: "[--help|-h] [--plan|-p <option>] [--dry|-d] [--next|-n <option>] [<id> | <id>: <instruction> | <instruction>]"
|
|
3
|
+
argument-hint: "[--help|-h] [--plan|-p <option>] [--dry|-d] [--next|-n <option>[,...]] [<id> | <id>: <instruction> | <instruction>]"
|
|
4
4
|
description: >
|
|
5
5
|
Iteratively edit and refine a named plan for a task through a
|
|
6
6
|
conversational loop. Each round, the current plan is shown and the
|
|
@@ -23,7 +23,7 @@ Iteratively Edit a Task Plan
|
|
|
23
23
|
|
|
24
24
|
<expand name="getopt"
|
|
25
25
|
arg1="ase-task-edit"
|
|
26
|
-
arg2="--plan|-p=(none|OVERWRITE|REFINE|PRESERVE) --dry|-d --next|-n=(none|DONE|IMPLEMENT|PREFLIGHT|REFINE)">
|
|
26
|
+
arg2="--plan|-p=(none|OVERWRITE|REFINE|PRESERVE) --dry|-d --next|-n=(none|DONE|IMPLEMENT|PREFLIGHT|REFINE)...">
|
|
27
27
|
$ARGUMENTS
|
|
28
28
|
</expand>
|
|
29
29
|
|
|
@@ -34,7 +34,7 @@ continued refinement, finalization, or hand-off to implementation or
|
|
|
34
34
|
preflight.
|
|
35
35
|
</objective>
|
|
36
36
|
|
|
37
|
-
@${CLAUDE_SKILL_DIR}/../../meta/ase-plan.md
|
|
37
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-format-plan.md
|
|
38
38
|
|
|
39
39
|
Procedure
|
|
40
40
|
---------
|
|
@@ -333,20 +333,31 @@ Set <content-dirty>true</content-dirty>.
|
|
|
333
333
|
|
|
334
334
|
4. *Determine next step*:
|
|
335
335
|
|
|
336
|
-
- If <getopt-option-next/>
|
|
337
|
-
|
|
338
|
-
|
|
336
|
+
- If <getopt-option-next/> is not equal to `none`:
|
|
337
|
+
Treat <getopt-option-next/> as a comma-separated chronological
|
|
338
|
+
list of pre-selected next-step tokens. *Split* it on `,`,
|
|
339
|
+
take the *first* token as <head/>, and store the remaining
|
|
340
|
+
tokens (joined back with `,`, or `none` if empty) into
|
|
341
|
+
<getopt-option-next/> so subsequent loop iterations or
|
|
342
|
+
downstream skills can consume the tail.
|
|
339
343
|
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
dialog.
|
|
344
|
+
- If <head/> matches the regex `^(DONE|IMPLEMENT|PREFLIGHT|REFINE)$`:
|
|
345
|
+
Honor the pre-selected token.
|
|
346
|
+
Set <result><head/></result>.
|
|
344
347
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
348
|
+
Set <instruction></instruction> (clear the instruction, as
|
|
349
|
+
any instruction carried in via the arguments was already
|
|
350
|
+
applied to the plan in step 2 before this loop), so that a
|
|
351
|
+
pre-selected `REFINE` correctly asks the user for a *fresh*
|
|
352
|
+
refinement instruction below.
|
|
353
|
+
|
|
354
|
+
- else:
|
|
355
|
+
Only output the following <template/> and then immediately
|
|
356
|
+
*STOP* processing the entire current skill:
|
|
357
|
+
|
|
358
|
+
<template>
|
|
359
|
+
⧉ **ASE**: ☻ skill: **ase-task-edit**, ▶ ERROR: invalid `--next` token: **<head/>**
|
|
360
|
+
</template>
|
|
350
361
|
|
|
351
362
|
- If <getopt-option-next/> is equal to `none`:
|
|
352
363
|
Let the *user interactively choose* what to do as the next step.
|
|
@@ -372,10 +383,14 @@ Set <content-dirty>true</content-dirty>.
|
|
|
372
383
|
|
|
373
384
|
- If <result/> is `IMPLEMENT`:
|
|
374
385
|
|
|
375
|
-
*Break* out of the *loop
|
|
376
|
-
<
|
|
377
|
-
|
|
378
|
-
|
|
386
|
+
*Break* out of the *loop*. Set <args></args> (empty).
|
|
387
|
+
<if condition="<getopt-option-next/> is not equal `none`">
|
|
388
|
+
Set <args>--next <getopt-option-next/></args> (forward
|
|
389
|
+
remaining list tokens to the downstream skill).
|
|
390
|
+
</if>
|
|
391
|
+
Only output the following <template/> and then call the
|
|
392
|
+
`Skill(skill: "ase:ase-task-implement", args: <args/>)` tool
|
|
393
|
+
to *apply* the finalized plan.
|
|
379
394
|
|
|
380
395
|
<template>
|
|
381
396
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan finalized -- hand-off to implementation**
|
|
@@ -383,10 +398,14 @@ Set <content-dirty>true</content-dirty>.
|
|
|
383
398
|
|
|
384
399
|
- If <result/> is `PREFLIGHT`:
|
|
385
400
|
|
|
386
|
-
*Break* out of the *loop
|
|
387
|
-
<
|
|
388
|
-
|
|
389
|
-
|
|
401
|
+
*Break* out of the *loop*. Set <args></args> (empty).
|
|
402
|
+
<if condition="<getopt-option-next/> is not equal `none`">
|
|
403
|
+
Set <args>--next <getopt-option-next/></args> (forward
|
|
404
|
+
remaining list tokens to the downstream skill).
|
|
405
|
+
</if>
|
|
406
|
+
Only output the following <template/> and then call the
|
|
407
|
+
`Skill(skill: "ase:ase-task-preflight", args: <args/>)` tool
|
|
408
|
+
to *apply* the finalized plan.
|
|
390
409
|
|
|
391
410
|
<template>
|
|
392
411
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan finalized -- hand-off to pre-flight**
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
[`--help`|`-h`]
|
|
10
10
|
[`--plan`|`-p` *option*]
|
|
11
11
|
[`--dry`|`-d`]
|
|
12
|
-
[`--next`|`-n` *option*]
|
|
12
|
+
[`--next`|`-n` *option*[,...]]
|
|
13
13
|
[*id* | *id*: *instruction* | *instruction*]
|
|
14
14
|
|
|
15
15
|
## DESCRIPTION
|
|
@@ -41,13 +41,19 @@ command from outside the agent tool.
|
|
|
41
41
|
build, tests, linter, type-checker, or program execution) once
|
|
42
42
|
the source files have been modified.
|
|
43
43
|
|
|
44
|
-
`--next`|`-n` *option
|
|
44
|
+
`--next`|`-n` *option*[,...]:
|
|
45
45
|
Automatically answer the user dialog for the next step (at the end
|
|
46
|
-
of this skill)
|
|
46
|
+
of this skill). *option* is a single token or a *comma-separated
|
|
47
|
+
chronological list* of tokens; each iteration of the planning loop
|
|
48
|
+
consumes the *first* token of the list, and on hand-off (`IMPLEMENT`
|
|
49
|
+
/ `PREFLIGHT`) any remaining tokens are *forwarded* (via `--next`)
|
|
50
|
+
to the downstream skill so an entire pipeline can be pre-scripted
|
|
51
|
+
in one shot. Recognized tokens at this skill: `none` (default,
|
|
47
52
|
interactive answer required), `DONE` (no next step), `IMPLEMENT`
|
|
48
53
|
(hand-over to `ase-task-implement`), `PREFLIGHT` (hand-over to
|
|
49
54
|
`ase-task-preflight`), or `REFINE` (refine the plan with subsequent
|
|
50
|
-
instruction).
|
|
55
|
+
instruction). Example: `--next REFINE,DONE` first refines once,
|
|
56
|
+
then exits the loop without asking.
|
|
51
57
|
|
|
52
58
|
## ARGUMENTS
|
|
53
59
|
|