@rse/ase 0.9.12 → 0.9.14
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-compat.js +1 -1
- package/dst/ase-diagram.js +5 -2
- package/dst/ase-getopt.js +2 -1
- package/dst/ase-kv.js +30 -11
- package/dst/ase-mcp.js +2 -0
- package/dst/ase-persona.js +4 -1
- package/dst/ase-skills.js +13 -3
- package/dst/ase-statusline.js +2 -2
- package/dst/ase.js +1 -1
- 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-meta-chat.md +3 -3
- package/plugin/meta/ase-dialog.md +1 -1
- package/plugin/meta/ase-format-arch.md +26 -9
- package/plugin/meta/ase-format-meta.md +7 -3
- package/plugin/meta/ase-format-spec.md +11 -6
- package/plugin/meta/ase-getopt.md +8 -3
- package/plugin/meta/ase-skill.md +49 -21
- package/plugin/package.json +1 -1
- package/plugin/skills/ase-arch-analyze/SKILL.md +26 -13
- package/plugin/skills/ase-arch-discover/SKILL.md +25 -14
- package/plugin/skills/ase-code-analyze/SKILL.md +10 -5
- package/plugin/skills/ase-code-craft/SKILL.md +16 -4
- package/plugin/skills/ase-code-explain/SKILL.md +0 -1
- package/plugin/skills/ase-code-insight/SKILL.md +1 -1
- package/plugin/skills/ase-code-lint/SKILL.md +56 -18
- package/plugin/skills/ase-code-refactor/SKILL.md +16 -4
- package/plugin/skills/ase-code-resolve/SKILL.md +17 -4
- package/plugin/skills/ase-docs-proofread/SKILL.md +48 -17
- package/plugin/skills/ase-meta-brainstorm/SKILL.md +5 -2
- package/plugin/skills/ase-meta-compat/SKILL.md +2 -12
- package/plugin/skills/ase-meta-diff/SKILL.md +3 -3
- package/plugin/skills/ase-meta-evaluate/SKILL.md +32 -24
- package/plugin/skills/ase-meta-quorum/SKILL.md +3 -3
- package/plugin/skills/ase-task-condense/SKILL.md +6 -9
- package/plugin/skills/ase-task-edit/SKILL.md +6 -2
- package/plugin/skills/ase-task-grill/SKILL.md +9 -15
- package/plugin/skills/ase-task-id/SKILL.md +7 -4
- package/plugin/skills/ase-task-implement/SKILL.md +6 -11
- package/plugin/skills/ase-task-preflight/SKILL.md +5 -10
- package/plugin/skills/ase-task-reboot/SKILL.md +21 -13
- package/plugin/skills/ase-task-rename/SKILL.md +9 -0
|
@@ -142,9 +142,9 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
142
142
|
set <disagreement/> to `(no quorum: no foreign AIs were available)`,
|
|
143
143
|
then skip the rest of this step.
|
|
144
144
|
|
|
145
|
-
Otherwise,
|
|
146
|
-
|
|
147
|
-
|
|
145
|
+
Otherwise, let <n/> be the *total number of responders* (yourself plus
|
|
146
|
+
all available foreign AIs above). Then determine, on a Likert scale of
|
|
147
|
+
0..<n/>, the amount of the overall consensus <c/> of all the responses.
|
|
148
148
|
If all responses disagree, the consensus <c/> is zero.
|
|
149
149
|
If all responses agree, <c/> is <n/>.
|
|
150
150
|
|
|
@@ -93,6 +93,12 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
93
93
|
Set <words-before><words/></words-before> (remember the loaded
|
|
94
94
|
word count for the strictly-smaller check in step 3).
|
|
95
95
|
|
|
96
|
+
<if condition="<content/> contains 'Created: <text/>'">
|
|
97
|
+
Set <timestamp-created><text/></timestamp-created> (extract the
|
|
98
|
+
original creation timestamp so it can be re-inserted unchanged
|
|
99
|
+
into the condensed <content/> in step 3).
|
|
100
|
+
</if>
|
|
101
|
+
|
|
96
102
|
Only output the following <template/>:
|
|
97
103
|
|
|
98
104
|
<template>
|
|
@@ -274,12 +280,3 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
274
280
|
<template>
|
|
275
281
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan condensed -- hand-off to pre-flight**
|
|
276
282
|
</template>
|
|
277
|
-
|
|
278
|
-
- If <result/> matches `OTHER: <text/>` or is any other
|
|
279
|
-
unrecognized value:
|
|
280
|
-
Treat it as `DONE` (the condensed plan is already saved):
|
|
281
|
-
only output the following <template/> and then *STOP*.
|
|
282
|
-
|
|
283
|
-
<template>
|
|
284
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan condensed -- done**
|
|
285
|
-
</template>
|
|
@@ -171,7 +171,11 @@ Set <content-dirty>true</content-dirty>.
|
|
|
171
171
|
|
|
172
172
|
1. Determine any existing plan content:
|
|
173
173
|
|
|
174
|
-
<if condition="
|
|
174
|
+
<if condition="
|
|
175
|
+
<getopt-option-int-reuse-task/> is equal `true`
|
|
176
|
+
*and* a `ase_task_save(id: '<ase-task-id/>', ...)` tool call
|
|
177
|
+
exists earlier in the current session
|
|
178
|
+
">
|
|
175
179
|
Set <text/> to the `text` argument of the most recent
|
|
176
180
|
`ase_task_save(id: '<ase-task-id/>', ...)` tool call,
|
|
177
181
|
*without* calling `ase_task_load` again. Set <status>plan
|
|
@@ -286,7 +290,7 @@ Set <content-dirty>true</content-dirty>.
|
|
|
286
290
|
</template>
|
|
287
291
|
</if>
|
|
288
292
|
|
|
289
|
-
4. <if condition="<content/>
|
|
293
|
+
4. <if condition="no line of <content/> matches the case-insensitive regex `^\s*#+\s*TASK\b` AND <instruction/> is empty">
|
|
290
294
|
Set <instruction><content/></instruction> (set instruction to content).
|
|
291
295
|
Set <content></content> (set content to empty).
|
|
292
296
|
Set <content-dirty>true</content-dirty>.
|
|
@@ -80,7 +80,11 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
80
80
|
|
|
81
81
|
1. Determine the current task plan content:
|
|
82
82
|
|
|
83
|
-
<if condition="
|
|
83
|
+
<if condition="
|
|
84
|
+
<getopt-option-int-reuse-task/> is equal `true`
|
|
85
|
+
*and* a `ase_task_save(id: '<ase-task-id/>', ...)` tool call
|
|
86
|
+
exists earlier in the current session
|
|
87
|
+
">
|
|
84
88
|
Set <text/> to the `text` argument of the most recent
|
|
85
89
|
`ase_task_save(id: '<ase-task-id/>', ...)` tool call,
|
|
86
90
|
*without* calling `ase_task_load` again. Set <status>plan
|
|
@@ -105,12 +109,11 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
105
109
|
- If <text/> starts NOT with `ERROR:` and NOT with `WARNING:`:
|
|
106
110
|
Set <plan><text/></plan> (set plan to text).
|
|
107
111
|
Calculate the number of words <words/> of <plan/>.
|
|
112
|
+
Then output the following <template/>:
|
|
108
113
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **<status/>**
|
|
113
|
-
</template>
|
|
114
|
+
<template>
|
|
115
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **<status/>**
|
|
116
|
+
</template>
|
|
114
117
|
|
|
115
118
|
2. <if condition="<plan/> is empty">
|
|
116
119
|
Complain and tell the user to use the `ase-code-resolve`,
|
|
@@ -323,12 +326,3 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
323
326
|
<template>
|
|
324
327
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- hand-off to implementation**
|
|
325
328
|
</template>
|
|
326
|
-
|
|
327
|
-
- If <result/> matches `OTHER: <text/>` or is any other
|
|
328
|
-
unrecognized value:
|
|
329
|
-
Treat it as `DONE` (the updated plan is already saved):
|
|
330
|
-
only output the following <template/> and then *STOP*.
|
|
331
|
-
|
|
332
|
-
<template>
|
|
333
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- done**
|
|
334
|
-
</template>
|
|
@@ -28,7 +28,8 @@ Configure Task Id
|
|
|
28
28
|
|
|
29
29
|
1. Determine request:
|
|
30
30
|
<request><getopt-arguments/></request>
|
|
31
|
-
Inherit the always existing <ase-session-id/>
|
|
31
|
+
Inherit the always existing <ase-session-id/> and the current
|
|
32
|
+
<ase-task-id/> from the current context.
|
|
32
33
|
|
|
33
34
|
2. <if condition="<request/> is NOT empty AND <request/> does NOT match the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`">
|
|
34
35
|
Only output the following <template/> and then immediately
|
|
@@ -44,6 +45,8 @@ Configure Task Id
|
|
|
44
45
|
tool from the `ase` MCP server and set <text/> to its
|
|
45
46
|
`text` output. Check the response as mandated above; only
|
|
46
47
|
on a clean response set <ase-task-id><text/></ase-task-id>.
|
|
48
|
+
On an `ERROR:`/`WARNING:` response, keep the <ase-task-id/>
|
|
49
|
+
inherited from the current context as the fallback.
|
|
47
50
|
|
|
48
51
|
- Output:
|
|
49
52
|
<template>
|
|
@@ -52,9 +55,9 @@ Configure Task Id
|
|
|
52
55
|
</if>
|
|
53
56
|
|
|
54
57
|
4. <if condition="<request/> is NOT empty">
|
|
55
|
-
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
- Call the `ase_task_id(id: "<request/>", session: "<ase-session-id/>")`
|
|
59
|
+
tool from the `ase` MCP server. Check the response as mandated
|
|
60
|
+
above; only on a clean response set <ase-task-id><request/></ase-task-id>.
|
|
58
61
|
|
|
59
62
|
- Output:
|
|
60
63
|
<template>
|
|
@@ -97,7 +97,11 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
97
97
|
|
|
98
98
|
1. Determine the current task plan content:
|
|
99
99
|
|
|
100
|
-
<if condition="
|
|
100
|
+
<if condition="
|
|
101
|
+
<getopt-option-int-reuse-task/> is equal `true`
|
|
102
|
+
*and* a `ase_task_save(id: '<ase-task-id/>', ...)` tool call
|
|
103
|
+
exists earlier in the current session
|
|
104
|
+
">
|
|
101
105
|
Set <text/> to the `text` argument of the most recent
|
|
102
106
|
`ase_task_save(id: '<ase-task-id/>', ...)` tool call,
|
|
103
107
|
*without* calling `ase_task_load` again. Set <status>plan
|
|
@@ -210,7 +214,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
210
214
|
skill accepts only an optional `[<id>]` argument and no
|
|
211
215
|
`--next` option; remaining tokens are intentionally discarded.
|
|
212
216
|
Only output the following <template/> and then call the
|
|
213
|
-
tool `Skill(skill: "ase:ase-task-delete", args: <args/>)`
|
|
217
|
+
tool `Skill(skill: "ase:ase-task-delete", args: "<args/>")`
|
|
214
218
|
to invoke the `ase:ase-task-delete` skill in order to
|
|
215
219
|
*delete* the updated plan. Immediately stop processing the
|
|
216
220
|
current skill once the `Skill` tool was used.
|
|
@@ -219,12 +223,3 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
219
223
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan implemented -- hand-off to delete task**
|
|
220
224
|
</template>
|
|
221
225
|
|
|
222
|
-
- If <result/> matches `OTHER: <text/>` or is any other
|
|
223
|
-
unrecognized value:
|
|
224
|
-
Treat it as `DONE` (the plan is already implemented):
|
|
225
|
-
only output the following <template/> and then *STOP*.
|
|
226
|
-
|
|
227
|
-
<template>
|
|
228
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan implemented -- done**
|
|
229
|
-
</template>
|
|
230
|
-
|
|
@@ -97,7 +97,11 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
97
97
|
|
|
98
98
|
1. Determine the current task plan content:
|
|
99
99
|
|
|
100
|
-
<if condition="
|
|
100
|
+
<if condition="
|
|
101
|
+
<getopt-option-int-reuse-task/> is equal `true`
|
|
102
|
+
*and* a `ase_task_save(id: '<ase-task-id/>', ...)` tool call
|
|
103
|
+
exists earlier in the current session
|
|
104
|
+
">
|
|
101
105
|
Set <text/> to the `text` argument of the most recent
|
|
102
106
|
`ase_task_save(id: '<ase-task-id/>', ...)` tool call,
|
|
103
107
|
*without* calling `ase_task_load` again. Set <status>plan
|
|
@@ -247,12 +251,3 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
247
251
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- hand-off to implement**
|
|
248
252
|
</template>
|
|
249
253
|
|
|
250
|
-
- If <result/> matches `OTHER: <text/>` or is any other
|
|
251
|
-
unrecognized value:
|
|
252
|
-
Treat it as `DONE` (the plan is already preflighted):
|
|
253
|
-
only output the following <template/> and then *STOP*.
|
|
254
|
-
|
|
255
|
-
<template>
|
|
256
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- done**
|
|
257
|
-
</template>
|
|
258
|
-
|
|
@@ -129,13 +129,30 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
129
129
|
timestamp-created to extracted text)
|
|
130
130
|
</if>
|
|
131
131
|
|
|
132
|
-
7.
|
|
132
|
+
7. <if condition="<instruction/> is empty or contains only whitespace">
|
|
133
|
+
The WHAT/WHY extraction yielded no usable text (e.g. a
|
|
134
|
+
`- **WHAT**:` line existed but captured empty text, so the
|
|
135
|
+
whole-content fallback above did not fire). Fall back to the
|
|
136
|
+
full previous plan content: set <instruction><content/></instruction>
|
|
137
|
+
(set instruction to content).
|
|
138
|
+
<if condition="<instruction/> is still empty or contains only whitespace">
|
|
139
|
+
There is nothing to reboot from. Only output the following
|
|
140
|
+
<template/> and then immediately *STOP* processing the entire
|
|
141
|
+
current skill:
|
|
142
|
+
|
|
143
|
+
<template>
|
|
144
|
+
⧉ **ASE**: ☻ skill: **ase-task-reboot**, ▶ ERROR: empty instruction -- nothing to reboot from
|
|
145
|
+
</template>
|
|
146
|
+
</if>
|
|
147
|
+
</if>
|
|
148
|
+
|
|
149
|
+
8. Create a new plan from scratch and store the result as
|
|
133
150
|
<content/> by closely following the defined plan format
|
|
134
151
|
<format/> and injecting into it all the information from
|
|
135
152
|
the <instruction/> and all decisions you derived from the
|
|
136
153
|
<instruction/>.
|
|
137
154
|
|
|
138
|
-
|
|
155
|
+
9. Call the `ase_timestamp(format: "yyyy-LL-dd HH:mm")` tool of the
|
|
139
156
|
`ase` MCP server and use the `text` field of its response for
|
|
140
157
|
<timestamp-modified/> information. If <timestamp-created/> is
|
|
141
158
|
still unset (because the previous <content/> had no `Created:`
|
|
@@ -145,12 +162,12 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
145
162
|
<timestamp-modified/> information and calculate the number of
|
|
146
163
|
words <words/> of <content/>.
|
|
147
164
|
|
|
148
|
-
|
|
165
|
+
10. Call the `ase_task_save(id: "<ase-task-id/>",
|
|
149
166
|
text: "<content/>")` of the `ase` MCP server to save the updated
|
|
150
167
|
task plan content. Do not output anything related to this MCP
|
|
151
168
|
call.
|
|
152
169
|
|
|
153
|
-
|
|
170
|
+
11. Only output the following <template/> and continue processing:
|
|
154
171
|
|
|
155
172
|
<template>
|
|
156
173
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan rebooted**
|
|
@@ -244,12 +261,3 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
244
261
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- hand-off to pre-flight**
|
|
245
262
|
</template>
|
|
246
263
|
|
|
247
|
-
- If <result/> matches `OTHER: <text/>` or is any other
|
|
248
|
-
unrecognized value:
|
|
249
|
-
Treat it as `DONE` (the updated plan is already saved):
|
|
250
|
-
only output the following <template/> and then *STOP*.
|
|
251
|
-
|
|
252
|
-
<template>
|
|
253
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- done**
|
|
254
|
-
</template>
|
|
255
|
-
|
|
@@ -71,6 +71,15 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
71
71
|
</template>
|
|
72
72
|
</if>
|
|
73
73
|
|
|
74
|
+
6. <if condition="<old/> is equal <new/>">
|
|
75
|
+
Only output the following <template/> and then immediately
|
|
76
|
+
*STOP* processing the entire current skill:
|
|
77
|
+
|
|
78
|
+
<template>
|
|
79
|
+
⧉ **ASE**: ◉ task: **<old/>**, ▶ status: **task unchanged (old and new task id are equal)**
|
|
80
|
+
</template>
|
|
81
|
+
</if>
|
|
82
|
+
|
|
74
83
|
2. **Perform Operation**:
|
|
75
84
|
|
|
76
85
|
1. Call the `ase_task_rename(old: "<old/>", new: "<new/>")` tool of the
|