@rse/ase 0.9.7 → 0.9.8
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 +11 -1
- package/dst/ase-task.js +20 -21
- package/package.json +2 -2
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.github/plugin/plugin.json +1 -1
- package/plugin/agents/ase-docs-proofread.md +2 -2
- package/plugin/meta/ase-constitution.md +7 -0
- package/plugin/meta/ase-control.md +24 -3
- package/plugin/meta/ase-format-task.md +2 -2
- package/plugin/meta/ase-getopt.md +2 -1
- package/plugin/meta/ase-skill.md +28 -9
- package/plugin/package.json +2 -2
- package/plugin/skills/ase-arch-analyze/SKILL.md +88 -89
- package/plugin/skills/ase-arch-discover/SKILL.md +18 -9
- package/plugin/skills/ase-code-analyze/SKILL.md +6 -5
- package/plugin/skills/ase-code-craft/SKILL.md +42 -35
- 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-lint/SKILL.md +16 -8
- package/plugin/skills/ase-code-refactor/SKILL.md +42 -35
- package/plugin/skills/ase-code-resolve/SKILL.md +43 -35
- package/plugin/skills/ase-docs-distill/SKILL.md +1 -1
- package/plugin/skills/ase-docs-distill/help.md +3 -3
- package/plugin/skills/ase-docs-proofread/SKILL.md +22 -13
- package/plugin/skills/ase-meta-brainstorm/SKILL.md +25 -6
- package/plugin/skills/ase-meta-brainstorm/help.md +6 -10
- package/plugin/skills/ase-meta-diff/SKILL.md +5 -4
- package/plugin/skills/ase-meta-diff/help.md +10 -11
- package/plugin/skills/ase-meta-evaluate/SKILL.md +10 -9
- package/plugin/skills/ase-meta-quorum/SKILL.md +15 -5
- package/plugin/skills/ase-meta-review/SKILL.md +3 -3
- package/plugin/skills/ase-meta-review/help.md +3 -3
- package/plugin/skills/ase-meta-search/SKILL.md +9 -8
- package/plugin/skills/ase-meta-steelman/SKILL.md +1 -1
- package/plugin/skills/ase-meta-why/SKILL.md +16 -10
- package/plugin/skills/ase-task-condense/SKILL.md +32 -17
- package/plugin/skills/ase-task-condense/help.md +1 -1
- package/plugin/skills/ase-task-delete/SKILL.md +6 -3
- package/plugin/skills/ase-task-edit/SKILL.md +53 -32
- package/plugin/skills/ase-task-edit/help.md +2 -2
- package/plugin/skills/ase-task-grill/SKILL.md +53 -24
- package/plugin/skills/ase-task-id/SKILL.md +11 -2
- package/plugin/skills/ase-task-implement/SKILL.md +36 -15
- package/plugin/skills/ase-task-list/SKILL.md +1 -1
- package/plugin/skills/ase-task-preflight/SKILL.md +40 -20
- package/plugin/skills/ase-task-preflight/help.md +1 -1
- package/plugin/skills/ase-task-reboot/SKILL.md +27 -18
- package/plugin/skills/ase-task-rename/SKILL.md +5 -3
- package/plugin/skills/ase-task-view/help.md +24 -5
|
@@ -21,7 +21,7 @@ Preflight a Task Plan
|
|
|
21
21
|
|
|
22
22
|
<expand name="getopt"
|
|
23
23
|
arg1="ase-task-preflight"
|
|
24
|
-
arg2="--next|-n=(none|DONE|EDIT|IMPLEMENT)...">
|
|
24
|
+
arg2="--next|-n=(none|DONE|EDIT|IMPLEMENT)... --int-reuse-task">
|
|
25
25
|
$ARGUMENTS
|
|
26
26
|
</expand>
|
|
27
27
|
|
|
@@ -65,7 +65,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
65
65
|
</template>
|
|
66
66
|
</if>
|
|
67
67
|
|
|
68
|
-
2.
|
|
68
|
+
2. <elseif condition="
|
|
69
69
|
<instruction/> has the format `<id/>: <text/>` where
|
|
70
70
|
<id/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$` and
|
|
71
71
|
<text/> is *empty*
|
|
@@ -80,9 +80,9 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
80
80
|
<template>
|
|
81
81
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task given**
|
|
82
82
|
</template>
|
|
83
|
-
</
|
|
83
|
+
</elseif>
|
|
84
84
|
|
|
85
|
-
3.
|
|
85
|
+
3. <elseif condition="<instruction/> is NOT empty">
|
|
86
86
|
The argument is neither empty nor a valid task id. As this
|
|
87
87
|
skill only accepts an optional `[<id>]` argument and *never*
|
|
88
88
|
a free-text instruction, only output the following <template/>
|
|
@@ -91,13 +91,25 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
91
91
|
<template>
|
|
92
92
|
⧉ **ASE**: ☻ skill: **ase-task-preflight**, ▶ ERROR: expected single `[<id>]` argument
|
|
93
93
|
</template>
|
|
94
|
-
</
|
|
94
|
+
</elseif>
|
|
95
95
|
|
|
96
96
|
2. **Determine Operation:**
|
|
97
97
|
|
|
98
|
-
1.
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
1. Determine the current task plan content:
|
|
99
|
+
|
|
100
|
+
<if condition="<getopt-option-int-reuse-task/> is equal `true`">
|
|
101
|
+
Set <text/> to the `text` argument of the most recent
|
|
102
|
+
`ase_task_save(id: '<ase-task-id/>', ...)` tool call,
|
|
103
|
+
*without* calling `ase_task_load` again. Set <status>plan
|
|
104
|
+
reused</status>. Do not output anything.
|
|
105
|
+
</if>
|
|
106
|
+
<else>
|
|
107
|
+
Call the `ase_task_load(id: "<ase-task-id/>")` tool of the
|
|
108
|
+
`ase` MCP server to load the current task plan content and
|
|
109
|
+
set <text/> to the `text` output field of this `ase_task_load`
|
|
110
|
+
tool call. Do not output anything related to this MCP tool
|
|
111
|
+
call. Set <status>plan loaded</status>.
|
|
112
|
+
</else>
|
|
101
113
|
|
|
102
114
|
- If <text/> starts with `ERROR:` or `WARNING:`:
|
|
103
115
|
Set <content></content> (set content to empty).
|
|
@@ -110,12 +122,13 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
110
122
|
Only output the following <template/>:
|
|
111
123
|
|
|
112
124
|
<template>
|
|
113
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status:
|
|
125
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **<status/>**
|
|
114
126
|
</template>
|
|
115
127
|
|
|
116
128
|
2. If the <content/> is still empty, complain and tell the user to
|
|
117
129
|
use the `ase-code-resolve`, `ase-code-refactor`, `ase-code-craft`,
|
|
118
|
-
or `ase-task-edit` skills first to create a task plan.
|
|
130
|
+
or `ase-task-edit` skills first to create a task plan. Then
|
|
131
|
+
immediately stop processing this skill.
|
|
119
132
|
|
|
120
133
|
3. **Create Implementation Draft:**
|
|
121
134
|
|
|
@@ -140,12 +153,12 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
140
153
|
|
|
141
154
|
</template>
|
|
142
155
|
|
|
143
|
-
3. <if condition="<content/> contains '
|
|
156
|
+
3. <if condition="<content/> contains '⚙ Modified:'">
|
|
144
157
|
Update <timestamp-modified/> with the current time in
|
|
145
158
|
ISO-style format, which has to be determined by calling the
|
|
146
159
|
`ase_timestamp(format: "yyyy-LL-dd HH:mm")` tool of the `ase`
|
|
147
160
|
MCP server and use the `text` field of its response. Update
|
|
148
|
-
<content/> with the new
|
|
161
|
+
<content/> with the new `Modified: <timestamp-modified/>`.
|
|
149
162
|
Do not output anything.
|
|
150
163
|
</if>
|
|
151
164
|
|
|
@@ -202,13 +215,12 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
202
215
|
</template>
|
|
203
216
|
|
|
204
217
|
- If <result/> is `EDIT`:
|
|
205
|
-
Set <args
|
|
218
|
+
Set <args>--int-reuse-task</args>.
|
|
206
219
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
207
|
-
|
|
208
|
-
remaining list tokens to the downstream skill).
|
|
220
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
209
221
|
</if>
|
|
210
222
|
Only output the following <template/> and then call the
|
|
211
|
-
tool `Skill(skill: "ase:ase-task-edit", args: <args/>)`
|
|
223
|
+
tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`
|
|
212
224
|
to invoke the `ase:ase-task-edit` skill in order to *edit*
|
|
213
225
|
the updated plan. Immediately stop processing the current
|
|
214
226
|
skill once the `Skill` tool was used.
|
|
@@ -218,13 +230,12 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
218
230
|
</template>
|
|
219
231
|
|
|
220
232
|
- If <result/> is `IMPLEMENT`:
|
|
221
|
-
Set <args
|
|
233
|
+
Set <args>--int-reuse-task</args>.
|
|
222
234
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
223
|
-
|
|
224
|
-
remaining list tokens to the downstream skill).
|
|
235
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
225
236
|
</if>
|
|
226
237
|
Only output the following <template/> and then call the
|
|
227
|
-
tool `Skill(skill: "ase:ase-task-implement", args: <args/>)`
|
|
238
|
+
tool `Skill(skill: "ase:ase-task-implement", args: "<args/>")`
|
|
228
239
|
to invoke the `ase:ase-task-implement` skill in order to
|
|
229
240
|
*implement* the updated plan. Immediately stop processing
|
|
230
241
|
the current skill once the `Skill` tool was used.
|
|
@@ -233,3 +244,12 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
233
244
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- hand-off to implement**
|
|
234
245
|
</template>
|
|
235
246
|
|
|
247
|
+
- If <result/> matches `OTHER: <text/>` or is any other
|
|
248
|
+
unrecognized value:
|
|
249
|
+
Treat it as `DONE` (the plan is already preflighted):
|
|
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
|
+
|
|
@@ -16,7 +16,7 @@ The `ase-task-preflight` skill performs a *preflight* (dry-run,
|
|
|
16
16
|
test-drive) of the *implementation* of a task plan by creating a
|
|
17
17
|
draft for a corresponding, complete *artifact change set* in
|
|
18
18
|
*unified diff* format. The draft is appended to the task plan as
|
|
19
|
-
|
|
19
|
+
an `IMPLEMENTATION DRAFT` section (replacing any previous draft).
|
|
20
20
|
No source files are modified.
|
|
21
21
|
|
|
22
22
|
After the preflight, the user is asked whether to stop, hand
|
|
@@ -21,7 +21,7 @@ Reboot a Task Plan
|
|
|
21
21
|
|
|
22
22
|
<expand name="getopt"
|
|
23
23
|
arg1="ase-task-reboot"
|
|
24
|
-
arg2="--next|-n=(none|DONE|EDIT)...">
|
|
24
|
+
arg2="--next|-n=(none|DONE|EDIT|IMPLEMENT|PREFLIGHT)...">
|
|
25
25
|
$ARGUMENTS
|
|
26
26
|
</expand>
|
|
27
27
|
|
|
@@ -65,7 +65,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
65
65
|
</template>
|
|
66
66
|
</if>
|
|
67
67
|
|
|
68
|
-
2.
|
|
68
|
+
2. <elseif condition="<instruction/> is NOT empty">
|
|
69
69
|
The argument is neither empty nor a valid task id. As this
|
|
70
70
|
skill only accepts an optional `[<id>]` argument and *never*
|
|
71
71
|
a free-text instruction, only output the following <template/>
|
|
@@ -74,7 +74,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
74
74
|
<template>
|
|
75
75
|
⧉ **ASE**: ☻ skill: **ase-task-reboot**, ▶ ERROR: expected single `[<id>]` argument
|
|
76
76
|
</template>
|
|
77
|
-
</
|
|
77
|
+
</elseif>
|
|
78
78
|
|
|
79
79
|
2. **Determine Operation:**
|
|
80
80
|
|
|
@@ -119,10 +119,10 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
119
119
|
Set <instruction><text/></instruction> (set instruction to extracted text).
|
|
120
120
|
</if>
|
|
121
121
|
|
|
122
|
-
5.
|
|
122
|
+
5. <elseif condition="<content/> contains '- **WHY**: <text/>' and <instruction/> is NOT empty">
|
|
123
123
|
Set <instruction><instruction/>, BECAUSE <text/></instruction>
|
|
124
124
|
(append extracted text to instruction).
|
|
125
|
-
</
|
|
125
|
+
</elseif>
|
|
126
126
|
|
|
127
127
|
6. <if condition="<content/> contains 'Created: <text/>'">
|
|
128
128
|
Set <timestamp-created><text/></timestamp-created> (set
|
|
@@ -137,7 +137,10 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
137
137
|
|
|
138
138
|
8. Call the `ase_timestamp(format: "yyyy-LL-dd HH:mm")` tool of the
|
|
139
139
|
`ase` MCP server and use the `text` field of its response for
|
|
140
|
-
<timestamp-modified/> information.
|
|
140
|
+
<timestamp-modified/> information. If <timestamp-created/> is
|
|
141
|
+
still unset (because the previous <content/> had no `Created:`
|
|
142
|
+
line), set <timestamp-created><timestamp-modified/></timestamp-created>
|
|
143
|
+
(fall back to the modified timestamp). Then insert the current
|
|
141
144
|
<ase-task-id/>, previous <timestamp-created/>, and refreshed
|
|
142
145
|
<timestamp-modified/> information and calculate the number of
|
|
143
146
|
words <words/> of <content/>.
|
|
@@ -198,13 +201,12 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
198
201
|
</template>
|
|
199
202
|
|
|
200
203
|
- If <result/> is `EDIT`:
|
|
201
|
-
Set <args
|
|
204
|
+
Set <args>--int-reuse-task</args>.
|
|
202
205
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
203
|
-
|
|
204
|
-
remaining list tokens to the downstream skill).
|
|
206
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
205
207
|
</if>
|
|
206
208
|
Only output the following <template/> and then call the
|
|
207
|
-
tool `Skill(skill: "ase:ase-task-edit", args: <args/>)`
|
|
209
|
+
tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`
|
|
208
210
|
to invoke the `ase:ase-task-edit` skill in order to *edit*
|
|
209
211
|
the updated plan. Immediately stop processing the current
|
|
210
212
|
skill once the `Skill` tool was used.
|
|
@@ -214,13 +216,12 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
214
216
|
</template>
|
|
215
217
|
|
|
216
218
|
- If <result/> is `IMPLEMENT`:
|
|
217
|
-
Set <args
|
|
219
|
+
Set <args>--int-reuse-task</args>.
|
|
218
220
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
219
|
-
|
|
220
|
-
remaining list tokens to the downstream skill).
|
|
221
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
221
222
|
</if>
|
|
222
223
|
Only output the following <template/> and then call the
|
|
223
|
-
`Skill(skill: "ase:ase-task-implement", args: <args/>)` tool
|
|
224
|
+
`Skill(skill: "ase:ase-task-implement", args: "<args/>")` tool
|
|
224
225
|
to *apply* the plan.
|
|
225
226
|
|
|
226
227
|
<template>
|
|
@@ -228,16 +229,24 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
228
229
|
</template>
|
|
229
230
|
|
|
230
231
|
- If <result/> is `PREFLIGHT`:
|
|
231
|
-
Set <args
|
|
232
|
+
Set <args>--int-reuse-task</args>.
|
|
232
233
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
233
|
-
|
|
234
|
-
remaining list tokens to the downstream skill).
|
|
234
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
235
235
|
</if>
|
|
236
236
|
Only output the following <template/> and then call the
|
|
237
|
-
`Skill(skill: "ase:ase-task-preflight", args: <args/>)` tool
|
|
237
|
+
`Skill(skill: "ase:ase-task-preflight", args: "<args/>")` tool
|
|
238
238
|
to *apply* the plan.
|
|
239
239
|
|
|
240
240
|
<template>
|
|
241
241
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- hand-off to pre-flight**
|
|
242
242
|
</template>
|
|
243
243
|
|
|
244
|
+
- If <result/> matches `OTHER: <text/>` or is any other
|
|
245
|
+
unrecognized value:
|
|
246
|
+
Treat it as `DONE` (the updated plan is already saved):
|
|
247
|
+
only output the following <template/> and then *STOP*.
|
|
248
|
+
|
|
249
|
+
<template>
|
|
250
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- done**
|
|
251
|
+
</template>
|
|
252
|
+
|
|
@@ -33,8 +33,8 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
33
33
|
1. **Determine Task:**
|
|
34
34
|
|
|
35
35
|
1. Parse <arguments>$ARGUMENTS</arguments> into a whitespace-separated
|
|
36
|
-
list of tokens. Inherit the always existing <ase-task-id/>
|
|
37
|
-
the current context. Do not output anything.
|
|
36
|
+
list of tokens. Inherit the always existing <ase-task-id/> and
|
|
37
|
+
<ase-session-id/> from the current context. Do not output anything.
|
|
38
38
|
|
|
39
39
|
2. <if condition="<arguments/> contains two tokens">
|
|
40
40
|
Set <old/> to the first token of <arguments/>.
|
|
@@ -65,6 +65,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
65
65
|
output anything related to this MCP tool call.
|
|
66
66
|
|
|
67
67
|
- If <text/> starts with `ERROR:` or `WARNING:`:
|
|
68
|
+
Set <renamed/> to `false`.
|
|
68
69
|
Only output the following <template/>:
|
|
69
70
|
|
|
70
71
|
<template>
|
|
@@ -72,13 +73,14 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
72
73
|
</template>
|
|
73
74
|
|
|
74
75
|
- If <text/> starts NOT with `ERROR:` and NOT with `WARNING:`:
|
|
76
|
+
Set <renamed/> to `true`.
|
|
75
77
|
Only output the following <template/>:
|
|
76
78
|
|
|
77
79
|
<template>
|
|
78
80
|
⧉ **ASE**: ◉ task: **<new/>**, ▶ status: **task renamed**
|
|
79
81
|
</template>
|
|
80
82
|
|
|
81
|
-
2. <if condition="<old/> is equal <ase-task-id/>">
|
|
83
|
+
2. <if condition="<renamed/> is `true` AND <old/> is equal <ase-task-id/>">
|
|
82
84
|
Set <ase-task-id><new/></ase-task-id>. Call the `ase_task_id(id:
|
|
83
85
|
"<ase-task-id/>", session: "<ase-session-id/>")` tool from the `ase`
|
|
84
86
|
MCP server to switch the task to the renamed task. Only output
|
|
@@ -7,15 +7,28 @@
|
|
|
7
7
|
|
|
8
8
|
`ase-task-view`
|
|
9
9
|
[`--help`|`-h`]
|
|
10
|
+
[`--full`|`-f`]
|
|
10
11
|
[*id*]
|
|
11
12
|
|
|
12
13
|
## DESCRIPTION
|
|
13
14
|
|
|
14
|
-
The `ase-task-view` skill renders the *task plan* identified by *id
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
The `ase-task-view` skill renders the *task plan* identified by *id*.
|
|
16
|
+
The plan is loaded via the `ase_task_load` MCP tool and shown framed
|
|
17
|
+
between a `( TASK )` header and footer rule. If *id* is omitted, the
|
|
18
|
+
*current* task id (inherited from the session context) is used.
|
|
19
|
+
|
|
20
|
+
By default, when the plan is longer than 90 lines and contains an
|
|
21
|
+
`IMPLEMENTATION DRAFT` section (produced by `ase-task-preflight`), the
|
|
22
|
+
content of that section is collapsed to `[...]` to keep the view
|
|
23
|
+
compact. The `--full`|`-f` option suppresses this collapsing and renders
|
|
24
|
+
the plan in full, without any truncation or summarization.
|
|
25
|
+
|
|
26
|
+
## OPTIONS
|
|
27
|
+
|
|
28
|
+
`--full`|`-f`:
|
|
29
|
+
Render the plan in full, without collapsing the `IMPLEMENTATION
|
|
30
|
+
DRAFT` section. By default, that section is replaced with `[...]`
|
|
31
|
+
for plans longer than 90 lines.
|
|
19
32
|
|
|
20
33
|
## ARGUMENTS
|
|
21
34
|
|
|
@@ -37,6 +50,12 @@ View a specific task plan:
|
|
|
37
50
|
❯ /ase-task-view hello
|
|
38
51
|
```
|
|
39
52
|
|
|
53
|
+
View a plan in full, including its `IMPLEMENTATION DRAFT` section:
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
❯ /ase-task-view --full hello
|
|
57
|
+
```
|
|
58
|
+
|
|
40
59
|
## SEE ALSO
|
|
41
60
|
|
|
42
61
|
`ase-task-list`, `ase-task-edit`, `ase-task-id`,
|