@rse/ase 0.9.44 → 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-setup.js +50 -0
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/.github/plugin/plugin.json +1 -1
- package/plugin/agents/ase-code-lint.md +11 -0
- package/plugin/agents/ase-docs-proofread.md +8 -0
- package/plugin/agents/ase-meta-chat.md +13 -7
- package/plugin/agents/ase-meta-search.md +0 -1
- package/plugin/meta/ase-common-task.md +145 -0
- package/plugin/meta/ase-constitution.md +4 -1
- package/plugin/meta/ase-dialog.md +5 -5
- package/plugin/meta/ase-format-arch.md +4 -4
- package/plugin/meta/ase-format-spec.md +23 -23
- package/plugin/meta/ase-format-task.md +1 -1
- package/plugin/meta/ase-persona.md +3 -3
- package/plugin/meta/ase-skill.md +2 -2
- package/plugin/meta/ase-tenets.md +4 -4
- package/plugin/package.json +1 -1
- package/plugin/skills/ase-arch-analyze/SKILL.md +2 -3
- package/plugin/skills/ase-code-craft/SKILL.md +7 -7
- package/plugin/skills/ase-code-lint/SKILL.md +19 -3
- package/plugin/skills/ase-code-refactor/SKILL.md +7 -7
- package/plugin/skills/ase-code-resolve/SKILL.md +6 -6
- package/plugin/skills/ase-docs-distill/SKILL.md +6 -6
- package/plugin/skills/ase-docs-proofread/SKILL.md +18 -3
- package/plugin/skills/ase-meta-changelog/SKILL.md +5 -2
- package/plugin/skills/ase-meta-commit/SKILL.md +4 -4
- package/plugin/skills/ase-meta-compat/SKILL.md +3 -3
- package/plugin/skills/ase-meta-diaboli/SKILL.md +2 -2
- package/plugin/skills/ase-meta-evaluate/SKILL.md +6 -9
- package/plugin/skills/ase-meta-quorum/SKILL.md +33 -4
- package/plugin/skills/ase-meta-search/SKILL.md +1 -1
- package/plugin/skills/ase-meta-steelman/SKILL.md +3 -3
- package/plugin/skills/ase-meta-why/SKILL.md +1 -1
- package/plugin/skills/ase-sync-export/SKILL.md +7 -7
- package/plugin/skills/ase-sync-import/SKILL.md +20 -16
- package/plugin/skills/ase-sync-reconcile/SKILL.md +9 -9
- package/plugin/skills/ase-task-condense/SKILL.md +34 -79
- package/plugin/skills/ase-task-edit/SKILL.md +41 -49
- package/plugin/skills/ase-task-grill/SKILL.md +10 -12
- package/plugin/skills/ase-task-id/SKILL.md +7 -3
- package/plugin/skills/ase-task-implement/SKILL.md +18 -111
- package/plugin/skills/ase-task-list/SKILL.md +3 -0
- package/plugin/skills/ase-task-preflight/SKILL.md +22 -115
- package/plugin/skills/ase-task-reboot/SKILL.md +27 -63
- package/plugin/skills/ase-task-view/SKILL.md +7 -7
|
@@ -4,7 +4,6 @@ argument-hint: "[--help|-h] <source-reference>"
|
|
|
4
4
|
description: Review software architecture, including package cohesion and inter-package coupling
|
|
5
5
|
user-invocable: true
|
|
6
6
|
disable-model-invocation: false
|
|
7
|
-
model: opus
|
|
8
7
|
effort: high
|
|
9
8
|
allowed-tools:
|
|
10
9
|
- "Bash(wc *)"
|
|
@@ -252,7 +251,7 @@ interface quality, quality attributes, and architecture governance.
|
|
|
252
251
|
- *god-package*: *incoming ≥ 5* and *outgoing ≥ 3* -
|
|
253
252
|
coordinator dumping ground that should be split along its
|
|
254
253
|
internal topical clusters
|
|
255
|
-
- *fragment*: 1
|
|
254
|
+
- *fragment*: 1-2 files under a sibling parent that share a
|
|
256
255
|
*name prefix* or *imported interface* with that sibling -
|
|
257
256
|
consolidation candidate
|
|
258
257
|
|
|
@@ -278,7 +277,7 @@ interface quality, quality attributes, and architecture governance.
|
|
|
278
277
|
which operations sit *between* the specific acquire and
|
|
279
278
|
release in source order.
|
|
280
279
|
|
|
281
|
-
- *Package-graph construction (SA19
|
|
280
|
+
- *Package-graph construction (SA19-SA21)*: parse each file's
|
|
282
281
|
import (or equivalent language construct) statement, keep
|
|
283
282
|
only first-party packages within the analyzed scope, and
|
|
284
283
|
persist two intermediate structures: the per-package
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: ase-code-craft
|
|
3
3
|
argument-hint: "[--help|-h] [--auto|-a] [--dry|-d] [--quick|-Q] [--next|-n <option>[,...]] [<task-id>:] <feature>"
|
|
4
4
|
description: >
|
|
5
|
-
Craft Source:
|
|
5
|
+
Craft Source Code:
|
|
6
6
|
Use when user wants to "create", "add", or "craft" a new feature from scratch.
|
|
7
7
|
user-invocable: true
|
|
8
8
|
disable-model-invocation: false
|
|
@@ -109,7 +109,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
109
109
|
7. Ask the user for clarification if the goal of this crafting is too
|
|
110
110
|
unclear.
|
|
111
111
|
|
|
112
|
-
8. Do not output anything in this step, unless you asked the user.
|
|
112
|
+
8. Do not output anything else in this step, unless you asked the user.
|
|
113
113
|
|
|
114
114
|
</step>
|
|
115
115
|
|
|
@@ -231,18 +231,18 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
231
231
|
closely aligning to the existing architecture and the existing
|
|
232
232
|
code base. Use the <format/> defined for a task plan and inject
|
|
233
233
|
the information from feature A<n/> and all derived realization
|
|
234
|
-
decisions into it. Store the resulting task plan in <content/>.
|
|
234
|
+
decisions into it. Store the resulting task plan in <task-content/>.
|
|
235
235
|
|
|
236
236
|
If a `CHANGELOG.md` file exists in the project (or in any
|
|
237
237
|
affected sub-package), the plan *MUST* include, as part of its
|
|
238
|
-
`##
|
|
238
|
+
`## CHANGES` section, an explicit bullet point describing
|
|
239
239
|
the addition of a corresponding new entry to that `CHANGELOG.md`
|
|
240
240
|
file, aligned with its existing style and conventions.
|
|
241
241
|
|
|
242
242
|
<if condition="<getopt-option-dry/> is equal `true`">
|
|
243
243
|
You *MUST* completely omit the `## VERIFICATION` section
|
|
244
244
|
(including its heading and all of its bullet points) from
|
|
245
|
-
<content/>.
|
|
245
|
+
<task-content/>.
|
|
246
246
|
</if>
|
|
247
247
|
|
|
248
248
|
You *MUST* *NOT* call `Edit`, `Write`, `NotebookEdit`, or any
|
|
@@ -253,10 +253,10 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
253
253
|
<timestamp-created/> and <timestamp-modified/> information. Then
|
|
254
254
|
insert the current <ase-task-id/>, <timestamp-created/>, and
|
|
255
255
|
<timestamp-modified/> information and calculate the number of
|
|
256
|
-
words <words/> of <content/>.
|
|
256
|
+
words <words/> of <task-content/>.
|
|
257
257
|
|
|
258
258
|
3. You then *MUST* *save* the resulting plan content with the
|
|
259
|
-
`ase_task_save(id: "<ase-task-id/>", text: "<content/>")`.
|
|
259
|
+
`ase_task_save(id: "<ase-task-id/>", text: "<task-content/>")`.
|
|
260
260
|
|
|
261
261
|
4. Output a hint with the following <template/>:
|
|
262
262
|
|
|
@@ -154,11 +154,14 @@ related to a set of code quality aspects.
|
|
|
154
154
|
still perform substep 3 first. Never leave this marker active
|
|
155
155
|
for a later, unrelated `Edit`.
|
|
156
156
|
|
|
157
|
-
2.
|
|
157
|
+
2. Set <total/> to the number of problems in <problems/> and
|
|
158
|
+
<index/> to `0`. Then iterate over all problems:
|
|
158
159
|
|
|
159
160
|
<for items="<problems/>">
|
|
160
161
|
|
|
161
|
-
1.
|
|
162
|
+
1. Increment <index/> by one (the 1-based position of the
|
|
163
|
+
current <item/> within <problems/>).
|
|
164
|
+
Set <aspect/> to the `aspect` field of <item/>.
|
|
162
165
|
Set <severity/> to the `severity` field of <item/>.
|
|
163
166
|
Set <description/> to the `description` field of <item/>.
|
|
164
167
|
Set <change-set/> to the `change-set` field of <item/>.
|
|
@@ -193,6 +196,19 @@ related to a set of code quality aspects.
|
|
|
193
196
|
Set <new-text/> to the `new_text` field of <item/>.
|
|
194
197
|
Set <context-after/> to the `context_after` field of <item/>.
|
|
195
198
|
|
|
199
|
+
Then *normalize* the hunk to its *minimal* form, so
|
|
200
|
+
that the proposed diff shows exactly the lines the
|
|
201
|
+
later `Edit` will actually change: while the *first*
|
|
202
|
+
line of <old-text/> is identical to the *first* line
|
|
203
|
+
of <new-text/>, *move* that line from both to the
|
|
204
|
+
end of <context-before/> and increment <line/> by
|
|
205
|
+
one; likewise, while the *last* line of <old-text/>
|
|
206
|
+
is identical to the *last* line of <new-text/>,
|
|
207
|
+
*move* that line from both to the front of
|
|
208
|
+
<context-after/>. Finally, *trim* <context-before/>
|
|
209
|
+
to its *last* two lines and <context-after/> to its
|
|
210
|
+
*first* two lines.
|
|
211
|
+
|
|
196
212
|
2. *Skip* this substep entirely when <ase-project-boxing/>
|
|
197
213
|
is equal `grey` - the full unified diff is suppressed
|
|
198
214
|
there, so none of the <hunk-body/>, <old-count/>,
|
|
@@ -288,7 +304,7 @@ related to a set of code quality aspects.
|
|
|
288
304
|
4. Report the problem with the following <template/>:
|
|
289
305
|
|
|
290
306
|
<template>
|
|
291
|
-
<ase-tpl-bullet-signal/> **<aspect/> PROBLEM** (`<severity/>`): <context/>
|
|
307
|
+
<ase-tpl-bullet-signal/> [<index/>/<total/>]: **<aspect/> PROBLEM** (`<severity/>`): <context/>
|
|
292
308
|
|
|
293
309
|
<description/>
|
|
294
310
|
|
|
@@ -18,7 +18,7 @@ allowed-tools:
|
|
|
18
18
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
19
19
|
|
|
20
20
|
<skill name="ase-code-refactor">
|
|
21
|
-
Refactor
|
|
21
|
+
Refactor Source Code
|
|
22
22
|
</skill>
|
|
23
23
|
|
|
24
24
|
<expand name="getopt"
|
|
@@ -109,7 +109,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
109
109
|
7. Ask the user for clarification if the goal of this refactoring is
|
|
110
110
|
too unclear.
|
|
111
111
|
|
|
112
|
-
8. Do not output anything in this step, unless you asked the user.
|
|
112
|
+
8. Do not output anything else in this step, unless you asked the user.
|
|
113
113
|
|
|
114
114
|
</step>
|
|
115
115
|
|
|
@@ -231,18 +231,18 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
231
231
|
closely aligning to the existing architecture and the existing
|
|
232
232
|
code base. Use the <format/> defined for a task plan and inject
|
|
233
233
|
the information from refactoring A<n/> and all derived realization
|
|
234
|
-
decisions into it. Store the resulting task plan in <content/>.
|
|
234
|
+
decisions into it. Store the resulting task plan in <task-content/>.
|
|
235
235
|
|
|
236
236
|
If a `CHANGELOG.md` file exists in the project (or in any
|
|
237
237
|
affected sub-package), the plan *MUST* include, as part of its
|
|
238
|
-
`##
|
|
238
|
+
`## CHANGES` section, an explicit bullet point describing
|
|
239
239
|
the addition of a corresponding new entry to that `CHANGELOG.md`
|
|
240
240
|
file, aligned with its existing style and conventions.
|
|
241
241
|
|
|
242
242
|
<if condition="<getopt-option-dry/> is equal `true`">
|
|
243
243
|
You *MUST* completely omit the `## VERIFICATION` section
|
|
244
244
|
(including its heading and all of its bullet points) from
|
|
245
|
-
<content/>.
|
|
245
|
+
<task-content/>.
|
|
246
246
|
</if>
|
|
247
247
|
|
|
248
248
|
You *MUST* *NOT* call `Edit`, `Write`, `NotebookEdit`, or any
|
|
@@ -253,10 +253,10 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
253
253
|
<timestamp-created/> and <timestamp-modified/> information. Then
|
|
254
254
|
insert the current <ase-task-id/>, <timestamp-created/>, and
|
|
255
255
|
<timestamp-modified/> information and calculate the number of
|
|
256
|
-
words <words/> of <content/>.
|
|
256
|
+
words <words/> of <task-content/>.
|
|
257
257
|
|
|
258
258
|
3. You then *MUST* *save* the resulting plan content with the
|
|
259
|
-
`ase_task_save(id: "<ase-task-id/>", text: "<content/>")`.
|
|
259
|
+
`ase_task_save(id: "<ase-task-id/>", text: "<task-content/>")`.
|
|
260
260
|
|
|
261
261
|
4. Output a hint with the following <template/>:
|
|
262
262
|
|
|
@@ -124,7 +124,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
124
124
|
8. Ask the user for clarification if the goal of this resolution is
|
|
125
125
|
too unclear.
|
|
126
126
|
|
|
127
|
-
9. Do not output anything in this step, unless you asked the user.
|
|
127
|
+
9. Do not output anything else in this step, unless you asked the user.
|
|
128
128
|
|
|
129
129
|
10. Investigate and *figure out details* related to this problem.
|
|
130
130
|
Report those details with the following <template/>:
|
|
@@ -285,18 +285,18 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
285
285
|
problem, the chosen resolution approach, a preview of the *unified
|
|
286
286
|
diff* of the necessary code changes, and a possible way to verify
|
|
287
287
|
the success of the resolution, by using the <format/> defined for a
|
|
288
|
-
task plan. Store the resulting task plan in <content/>.
|
|
288
|
+
task plan. Store the resulting task plan in <task-content/>.
|
|
289
289
|
|
|
290
290
|
If a `CHANGELOG.md` file exists in the project (or in any
|
|
291
291
|
affected sub-package), the plan *MUST* include, as part of its
|
|
292
|
-
`##
|
|
292
|
+
`## CHANGES` section, an explicit bullet point describing
|
|
293
293
|
the addition of a corresponding new entry to that `CHANGELOG.md`
|
|
294
294
|
file, aligned with its existing style and conventions.
|
|
295
295
|
|
|
296
296
|
<if condition="<getopt-option-dry/> is equal `true`">
|
|
297
297
|
You *MUST* completely omit the `## VERIFICATION` section
|
|
298
298
|
(including its heading and all of its bullet points) from
|
|
299
|
-
<content/>.
|
|
299
|
+
<task-content/>.
|
|
300
300
|
</if>
|
|
301
301
|
|
|
302
302
|
You *MUST* *NOT* call `Edit`, `Write`, `NotebookEdit`, or any
|
|
@@ -307,10 +307,10 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
307
307
|
<timestamp-created/> and <timestamp-modified/> information. Then
|
|
308
308
|
insert the current <ase-task-id/>, <timestamp-created/>, and
|
|
309
309
|
<timestamp-modified/> information and calculate the number of
|
|
310
|
-
words <words/> of <content/>.
|
|
310
|
+
words <words/> of <task-content/>.
|
|
311
311
|
|
|
312
312
|
3. You then *MUST* *save* the resulting plan content with the
|
|
313
|
-
`ase_task_save(id: "<ase-task-id/>", text: "<content/>")`.
|
|
313
|
+
`ase_task_save(id: "<ase-task-id/>", text: "<task-content/>")`.
|
|
314
314
|
|
|
315
315
|
4. If <problem-id/> is set (i.e. the <problem/> was retrieved from
|
|
316
316
|
`ase_kv_get` in STEP 1.1 via key `ase-issue-<problem-id/>`),
|
|
@@ -17,7 +17,7 @@ effort: high
|
|
|
17
17
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
18
18
|
|
|
19
19
|
<skill name="ase-docs-distill">
|
|
20
|
-
|
|
20
|
+
Distill Key Points
|
|
21
21
|
</skill>
|
|
22
22
|
|
|
23
23
|
<expand name="getopt"
|
|
@@ -27,11 +27,11 @@ effort: high
|
|
|
27
27
|
</expand>
|
|
28
28
|
|
|
29
29
|
<objective>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
*Distill* the content `<getopt-arguments/>` into a *flat*,
|
|
31
|
+
*importance-ranked* list of its *key points* - each point an
|
|
32
|
+
*atomic* claim carrying a *0-10 salience rank*, a *one-line
|
|
33
|
+
rationale*, and a *verbatim, line-cited evidence* snippet - keeping
|
|
34
|
+
at most `<getopt-option-top/>` points.
|
|
35
35
|
</objective>
|
|
36
36
|
|
|
37
37
|
Procedure
|
|
@@ -135,11 +135,14 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
135
135
|
still perform substep 3 first. Never leave this marker active
|
|
136
136
|
for a later, unrelated `Edit`.
|
|
137
137
|
|
|
138
|
-
2.
|
|
138
|
+
2. Set <total/> to the number of problems in <problems/> and
|
|
139
|
+
<index/> to `0`. Then iterate over all problems:
|
|
139
140
|
|
|
140
141
|
<for items="<problems/>">
|
|
141
142
|
|
|
142
|
-
1.
|
|
143
|
+
1. Increment <index/> by one (the 1-based position of the
|
|
144
|
+
current <item/> within <problems/>).
|
|
145
|
+
Set <type/> to the `type` field of <item/>.
|
|
143
146
|
Set <file/> to the `file` field of <item/>.
|
|
144
147
|
Set <line/> to the `line` field of <item/>.
|
|
145
148
|
Set <description/> to the `description` field of <item/>.
|
|
@@ -148,10 +151,22 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
148
151
|
Set <new-text/> to the `new_text` field of <item/>.
|
|
149
152
|
Set <context-after/> to the `context_after` field of <item/>.
|
|
150
153
|
|
|
154
|
+
Then *normalize* the change to its *minimal* form, so
|
|
155
|
+
that the proposed diff shows exactly the lines the later
|
|
156
|
+
`Edit` will actually change: while the *first* line of
|
|
157
|
+
<old-text/> is identical to the *first* line of
|
|
158
|
+
<new-text/>, *move* that line from both to the end of
|
|
159
|
+
<context-before/> and increment <line/> by one; likewise,
|
|
160
|
+
while the *last* line of <old-text/> is identical to the
|
|
161
|
+
*last* line of <new-text/>, *move* that line from both to
|
|
162
|
+
the front of <context-after/>. Finally, *trim*
|
|
163
|
+
<context-before/> to its *last* two lines and
|
|
164
|
+
<context-after/> to its *first* two lines.
|
|
165
|
+
|
|
151
166
|
2. Report the problem with the following <template/>:
|
|
152
167
|
|
|
153
168
|
<template>
|
|
154
|
-
<ase-tpl-bullet-signal/> **<type/> PROBLEM**: `<file/>`:<line/>:
|
|
169
|
+
<ase-tpl-bullet-signal/> [<index/>/<total/>]: **<type/> PROBLEM**: `<file/>`:<line/>:
|
|
155
170
|
|
|
156
171
|
<description/>
|
|
157
172
|
</template>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: ase-meta-changelog
|
|
3
3
|
argument-hint: "[--help|-h]"
|
|
4
4
|
description: >
|
|
5
|
-
Update
|
|
5
|
+
Update ChangeLog entries in CHANGELOG.md files
|
|
6
6
|
user-invocable: true
|
|
7
7
|
disable-model-invocation: false
|
|
8
8
|
effort: high
|
|
@@ -108,7 +108,10 @@ Processing
|
|
|
108
108
|
corresponding Git tag already exists with the command `git tag --list
|
|
109
109
|
N.M.K`. If this command produces *no* output, the first section is
|
|
110
110
|
still in-progress/untagged, so use the `N.M.K` from the *second*
|
|
111
|
-
level-2 header as the baseline tag instead. If
|
|
111
|
+
level-2 header as the baseline tag instead. If *no* second level-2
|
|
112
|
+
header exists (very first, still untagged release), skip the baseline
|
|
113
|
+
tag and check *all* Git commits with the command `git log HEAD
|
|
114
|
+
--numstat --pretty=format:'%h: %s'` instead. If this command *does*
|
|
112
115
|
produce output, the first section is already released/tagged, so use
|
|
113
116
|
the `N.M.K` from the *first* level-2 header as the baseline tag. Then
|
|
114
117
|
check all Git commits between `HEAD` and this baseline tag with the
|
|
@@ -48,10 +48,10 @@ currently staged Git changes.
|
|
|
48
48
|
of the `ase-meta-diff` and `ase-meta-changelog` skills) and their
|
|
49
49
|
usual corresponding kind of change are:
|
|
50
50
|
|
|
51
|
-
- `FEATURE`: new
|
|
52
|
-
- `IMPROVEMENT`: improved
|
|
53
|
-
- `BUGFIX`: corrected
|
|
54
|
-
- `UPDATE`: updated
|
|
51
|
+
- `FEATURE`: new functionality or configuration
|
|
52
|
+
- `IMPROVEMENT`: improved functionality or configuration
|
|
53
|
+
- `BUGFIX`: corrected functionality or configuration
|
|
54
|
+
- `UPDATE`: updated functionality or configuration
|
|
55
55
|
- `CLEANUP`: cleaned up functionality or configuration
|
|
56
56
|
- `REFACTOR`: refactored functionality or configuration
|
|
57
57
|
|
|
@@ -40,8 +40,8 @@ value until STEP 6. Do not fabricate passes: a probe whose actual result
|
|
|
40
40
|
differs from its expected result *MUST* be recorded as a *fail*.
|
|
41
41
|
|
|
42
42
|
Notice that this skill intentionally does not strictly follow the ASE
|
|
43
|
-
skill format,
|
|
44
|
-
|
|
43
|
+
skill format; in particular, it does not include the usual meta skill
|
|
44
|
+
information.
|
|
45
45
|
|
|
46
46
|
Procedure
|
|
47
47
|
---------
|
|
@@ -107,7 +107,7 @@ Procedure
|
|
|
107
107
|
Record <s/> as actual result for `control-flow/while-sum`.
|
|
108
108
|
|
|
109
109
|
3. *for-order*: Set <s></s>, then evaluate
|
|
110
|
-
`<for items="x y z"><s><s/>-<item/></for>`.
|
|
110
|
+
`<for items="x y z"><s><s/>-<item/></s></for>`.
|
|
111
111
|
Record <s/> as actual result for `control-flow/for-order`.
|
|
112
112
|
|
|
113
113
|
4. *while-break*: Set <i>1</i> and <hit></hit>, then evaluate
|
|
@@ -103,8 +103,8 @@ to <getopt-option-count/>; if <getopt-option-count/> is *non-numeric* or
|
|
|
103
103
|
|
|
104
104
|
- **Argue in Good Faith**:
|
|
105
105
|
Make clear you're just stress-testing the thesis, not
|
|
106
|
-
obstructing, because the goal
|
|
107
|
-
|
|
106
|
+
obstructing, because the goal is a better final decision, not
|
|
107
|
+
winning.
|
|
108
108
|
|
|
109
109
|
- **Know When to Yield**:
|
|
110
110
|
Conceding when the argument holds is what makes the challenge
|
|
@@ -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
|
|
@@ -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
|
|
|
@@ -65,7 +69,8 @@ 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
|
|
72
|
+
`gemini`, `deepseek`, `grok`, `glm`, `qwen`, `claude`, `codex`,
|
|
73
|
+
`copilot`. If any token is *not*
|
|
69
74
|
in this set, bind <token/> to that offending token, then only output
|
|
70
75
|
the following <template/> and then immediately *STOP* processing the
|
|
71
76
|
entire current skill:
|
|
@@ -76,7 +81,10 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
76
81
|
|
|
77
82
|
The default is the single token `all`. If <getopt-option-models/>
|
|
78
83
|
contains the token `all`, you *MUST* treat it as the full list
|
|
79
|
-
`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
|
|
80
88
|
Claude (yourself) is *always* included, independent of this option.
|
|
81
89
|
|
|
82
90
|
<define name="agent">
|
|
@@ -116,6 +124,15 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
116
124
|
<if condition="<getopt-option-models/> contains `all` OR <getopt-option-models/> contains `qwen`">
|
|
117
125
|
<expand name="agent" arg1="Alibaba Qwen" arg2="qwen"></expand>
|
|
118
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>
|
|
119
136
|
|
|
120
137
|
You *MUST* *NOT* output anything in this step.
|
|
121
138
|
|
|
@@ -202,6 +219,18 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
202
219
|
○ **Alibaba Qwen**:
|
|
203
220
|
- [...]
|
|
204
221
|
- [...]
|
|
222
|
+
|
|
223
|
+
○ **Anthropic Claude (harness)**:
|
|
224
|
+
- [...]
|
|
225
|
+
- [...]
|
|
226
|
+
|
|
227
|
+
○ **OpenAI Codex**:
|
|
228
|
+
- [...]
|
|
229
|
+
- [...]
|
|
230
|
+
|
|
231
|
+
○ **GitHub Copilot**:
|
|
232
|
+
- [...]
|
|
233
|
+
- [...]
|
|
205
234
|
</template>
|
|
206
235
|
|
|
207
236
|
In this output, when a quorum was *not* possible (see STEP 4),
|
|
@@ -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
|
|
|
@@ -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
|
|
@@ -47,7 +47,7 @@ addressing surface-level symptoms.
|
|
|
47
47
|
|
|
48
48
|
2. <step id="STEP 2: Root-Cause Analysis">
|
|
49
49
|
|
|
50
|
-
Find the root-cause of <problem/> by following
|
|
50
|
+
Find the root-cause of <problem/> by following this iteration cycle.
|
|
51
51
|
Start with a <question/> set equal to the <problem/>.
|
|
52
52
|
|
|
53
53
|
Determine the *maximum chain length* from <getopt-option-depth/>:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-sync-export
|
|
3
|
-
argument-hint: "[--help|-h] [--source|-s <source>[,...]] [<
|
|
3
|
+
argument-hint: "[--help|-h] [--source|-s <source>[,...]] [<hint>]"
|
|
4
4
|
description: >
|
|
5
5
|
Export artifact content into side-by-side, ready-to-consume files,
|
|
6
6
|
one per artifact that declares an export. Use when the user wants to
|
|
@@ -18,7 +18,7 @@ allowed-tools:
|
|
|
18
18
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
19
19
|
|
|
20
20
|
<skill name="ase-sync-export">
|
|
21
|
-
|
|
21
|
+
Export Artifact Set to Side-by-Side Files
|
|
22
22
|
</skill>
|
|
23
23
|
|
|
24
24
|
<expand name="getopt"
|
|
@@ -28,11 +28,11 @@ allowed-tools:
|
|
|
28
28
|
</expand>
|
|
29
29
|
|
|
30
30
|
<objective>
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
*Export* the *source* artifact kinds (optionally filtered by
|
|
32
|
+
<hint/>) into side-by-side files, by reading the source artifacts
|
|
33
|
+
and materializing, for every artifact that declares an export,
|
|
34
|
+
the corresponding derived file next to the artifact itself.
|
|
35
|
+
<hint><getopt-arguments/></hint>.
|
|
36
36
|
</objective>
|
|
37
37
|
|
|
38
38
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-format-meta.md
|
|
@@ -17,7 +17,7 @@ effort: xhigh
|
|
|
17
17
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
18
18
|
|
|
19
19
|
<skill name="ase-sync-import">
|
|
20
|
-
|
|
20
|
+
Import Foreign Sources into Artifact Set
|
|
21
21
|
</skill>
|
|
22
22
|
|
|
23
23
|
<expand name="getopt"
|
|
@@ -27,11 +27,11 @@ effort: xhigh
|
|
|
27
27
|
</expand>
|
|
28
28
|
|
|
29
29
|
<objective>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
*Import* the information of the *foreign sources* (named by the
|
|
31
|
+
<hint/>) into the *target* artifact kinds, by reading the foreign
|
|
32
|
+
sources and generating or updating the target artifacts to faithfully
|
|
33
|
+
reflect the imported information:
|
|
34
|
+
<hint><getopt-arguments/></hint>.
|
|
35
35
|
</objective>
|
|
36
36
|
|
|
37
37
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-format-meta.md
|
|
@@ -49,7 +49,7 @@ Procedure
|
|
|
49
49
|
|
|
50
50
|
1. The recognized artifact kinds are the seven tokens `TASK`,
|
|
51
51
|
`SPEC`, `ARCH`, `CODE`, `DOCS`, `INFR`, and `OTHR`. Parse
|
|
52
|
-
<getopt-target/> as the comma-separated <target/> kind list.
|
|
52
|
+
<getopt-option-target/> as the comma-separated <target/> kind list.
|
|
53
53
|
Upper-case and trim every parsed kind token. Do not output
|
|
54
54
|
anything.
|
|
55
55
|
|
|
@@ -111,12 +111,15 @@ Procedure
|
|
|
111
111
|
|
|
112
112
|
3. <step id="STEP 3: Generate or Update Artifacts">
|
|
113
113
|
|
|
114
|
-
1. For all kinds in <target
|
|
115
|
-
... ])` tool of the `ase` MCP server
|
|
116
|
-
lower-cased `kind` tokens, and read the
|
|
117
|
-
array of `{ kind, files }` objects to
|
|
118
|
-
file list per kind.
|
|
119
|
-
|
|
114
|
+
1. For all kinds in <target/> except `TASK`, call the
|
|
115
|
+
`ase_artifact_list(kind: [ ... ])` tool of the `ase` MCP server
|
|
116
|
+
*once*, passing the lower-cased `kind` tokens, and read the
|
|
117
|
+
returned `artifacts` array of `{ kind, files }` objects to
|
|
118
|
+
obtain the project-relative file list per kind. The `TASK` kind
|
|
119
|
+
is *not* resolvable via `ase_artifact_list` (task plans are
|
|
120
|
+
managed by the `ase_task_*` tools), so resolve and read it via
|
|
121
|
+
the `ase_task_id` and `ase_task_load` tools instead. Read all
|
|
122
|
+
*existing* target artifacts to understand their current state.
|
|
120
123
|
|
|
121
124
|
2. Internalize and honor the artifact-format conventions:
|
|
122
125
|
|
|
@@ -136,8 +139,8 @@ Procedure
|
|
|
136
139
|
**ASE Tenets** when generating or updating in the following. Do
|
|
137
140
|
not output anything.
|
|
138
141
|
|
|
139
|
-
4.
|
|
140
|
-
|
|
142
|
+
4. Call the `ase_timestamp(format: "yyyy-LL-dd HH:mm")` tool of the
|
|
143
|
+
`ase` MCP server *once* to find out the current time and store it in
|
|
141
144
|
<timestamp-modified/>.
|
|
142
145
|
|
|
143
146
|
5. *Generate or update* the <target/> artifact files so that they
|
|
@@ -163,7 +166,8 @@ Procedure
|
|
|
163
166
|
abstraction (a SPEC states intent, an ARCH states structure).
|
|
164
167
|
|
|
165
168
|
Apply the generation/update directly to the target artifacts via
|
|
166
|
-
the `Write`/`Edit` tools.
|
|
169
|
+
the `Write`/`Edit` tools. For a `TASK` target, apply it via the
|
|
170
|
+
`ase_task_save` tool instead.
|
|
167
171
|
|
|
168
172
|
6. Report the performed changes with the following <template/>, listing
|
|
169
173
|
one bullet line per generated or updated file (with <file/> its
|