@rse/ase 0.9.7 → 0.9.9
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 +71 -5
- package/dst/ase-hook.js +6 -21
- package/dst/ase-markdown.js +32 -11
- package/dst/ase-mcp.js +22 -8
- package/dst/ase-notify.js +32 -0
- package/dst/ase-service.js +5 -2
- package/dst/ase-setup.js +45 -131
- package/dst/ase-skills.js +17 -13
- package/dst/ase-statusline.js +8 -12
- package/dst/ase-task.js +32 -23
- package/package.json +3 -3
- 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-dialog.md +105 -7
- package/plugin/meta/ase-format-task.md +2 -2
- package/plugin/meta/ase-getopt.md +31 -22
- package/plugin/meta/ase-skill.md +87 -12
- package/plugin/package.json +2 -2
- package/plugin/skills/ase-arch-analyze/SKILL.md +88 -89
- package/plugin/skills/ase-arch-analyze/help.md +2 -2
- package/plugin/skills/ase-arch-discover/SKILL.md +56 -34
- package/plugin/skills/ase-arch-discover/help.md +1 -1
- package/plugin/skills/ase-code-analyze/SKILL.md +6 -5
- package/plugin/skills/ase-code-analyze/help.md +2 -2
- package/plugin/skills/ase-code-craft/SKILL.md +83 -71
- package/plugin/skills/ase-code-craft/help.md +2 -2
- package/plugin/skills/ase-code-explain/SKILL.md +1 -1
- package/plugin/skills/ase-code-explain/help.md +1 -1
- package/plugin/skills/ase-code-insight/SKILL.md +1 -1
- package/plugin/skills/ase-code-insight/help.md +1 -1
- package/plugin/skills/ase-code-lint/SKILL.md +35 -18
- package/plugin/skills/ase-code-lint/help.md +2 -2
- package/plugin/skills/ase-code-refactor/SKILL.md +81 -70
- package/plugin/skills/ase-code-refactor/help.md +2 -2
- package/plugin/skills/ase-code-resolve/SKILL.md +83 -70
- package/plugin/skills/ase-code-resolve/help.md +3 -3
- package/plugin/skills/ase-docs-distill/SKILL.md +1 -1
- package/plugin/skills/ase-docs-distill/help.md +4 -4
- package/plugin/skills/ase-docs-proofread/SKILL.md +36 -19
- package/plugin/skills/ase-docs-proofread/help.md +1 -1
- package/plugin/skills/ase-meta-brainstorm/SKILL.md +29 -8
- package/plugin/skills/ase-meta-brainstorm/help.md +7 -11
- package/plugin/skills/ase-meta-changelog/help.md +1 -1
- package/plugin/skills/ase-meta-chat/help.md +1 -1
- package/plugin/skills/ase-meta-commit/help.md +1 -1
- package/plugin/skills/ase-meta-diaboli/help.md +2 -2
- package/plugin/skills/ase-meta-diff/SKILL.md +6 -5
- package/plugin/skills/ase-meta-diff/help.md +11 -12
- package/plugin/skills/ase-meta-evaluate/SKILL.md +10 -9
- package/plugin/skills/ase-meta-evaluate/help.md +2 -2
- package/plugin/skills/ase-meta-persona/help.md +1 -1
- package/plugin/skills/ase-meta-quorum/SKILL.md +15 -5
- package/plugin/skills/ase-meta-quorum/help.md +1 -1
- package/plugin/skills/ase-meta-review/SKILL.md +3 -4
- package/plugin/skills/ase-meta-review/help.md +5 -5
- package/plugin/skills/ase-meta-search/SKILL.md +9 -8
- package/plugin/skills/ase-meta-search/help.md +1 -1
- package/plugin/skills/ase-meta-steelman/SKILL.md +1 -1
- package/plugin/skills/ase-meta-steelman/help.md +2 -2
- package/plugin/skills/ase-meta-why/SKILL.md +16 -10
- package/plugin/skills/ase-meta-why/help.md +1 -1
- package/plugin/skills/ase-task-condense/SKILL.md +36 -19
- package/plugin/skills/ase-task-condense/help.md +3 -3
- package/plugin/skills/ase-task-delete/SKILL.md +6 -3
- package/plugin/skills/ase-task-delete/help.md +2 -2
- package/plugin/skills/ase-task-edit/SKILL.md +61 -36
- package/plugin/skills/ase-task-edit/help.md +4 -4
- package/plugin/skills/ase-task-grill/SKILL.md +57 -26
- package/plugin/skills/ase-task-grill/help.md +3 -3
- package/plugin/skills/ase-task-id/SKILL.md +11 -2
- package/plugin/skills/ase-task-id/help.md +2 -2
- package/plugin/skills/ase-task-implement/SKILL.md +40 -17
- package/plugin/skills/ase-task-implement/help.md +2 -2
- package/plugin/skills/ase-task-list/SKILL.md +1 -1
- package/plugin/skills/ase-task-list/help.md +2 -2
- package/plugin/skills/ase-task-preflight/SKILL.md +44 -22
- package/plugin/skills/ase-task-preflight/help.md +3 -3
- package/plugin/skills/ase-task-reboot/SKILL.md +31 -20
- package/plugin/skills/ase-task-reboot/help.md +2 -2
- package/plugin/skills/ase-task-rename/SKILL.md +5 -3
- package/plugin/skills/ase-task-rename/help.md +2 -2
- package/plugin/skills/ase-task-view/help.md +26 -7
|
@@ -22,7 +22,7 @@ Iteratively Grill a Task Plan
|
|
|
22
22
|
|
|
23
23
|
<expand name="getopt"
|
|
24
24
|
arg1="ase-task-grill"
|
|
25
|
-
arg2="--next|-n=(none|DONE|EDIT)...">
|
|
25
|
+
arg2="--next|-n=(none|DONE|EDIT|IMPLEMENT|PREFLIGHT)... --int-reuse-task">
|
|
26
26
|
$ARGUMENTS
|
|
27
27
|
</expand>
|
|
28
28
|
|
|
@@ -36,9 +36,15 @@ task plan until reaching a shared understanding.
|
|
|
36
36
|
Procedure
|
|
37
37
|
---------
|
|
38
38
|
|
|
39
|
+
You *MUST* follow the following numbered items *strictly* *sequentially*!
|
|
40
|
+
You *MUST* not skip any numbered item during processing!
|
|
41
|
+
|
|
42
|
+
You *MUST* *NOT* output anything in this entire procedure, *except* when
|
|
43
|
+
explicitly requested by this procedure via outputs based on a <template/>!
|
|
44
|
+
|
|
39
45
|
1. **Determine Task:**
|
|
40
46
|
|
|
41
|
-
1. Set <id
|
|
47
|
+
1. Set <id><getopt-arguments/></id> initially.
|
|
42
48
|
Inherit the always existing <ase-task-id/> from the current context.
|
|
43
49
|
Inherit the always existing <ase-session-id/> from the current context.
|
|
44
50
|
Do not output anything.
|
|
@@ -59,22 +65,34 @@ Procedure
|
|
|
59
65
|
</template>
|
|
60
66
|
</if>
|
|
61
67
|
|
|
62
|
-
2.
|
|
68
|
+
2. <elseif condition="<id/> is NOT empty">
|
|
63
69
|
The argument is neither empty nor a valid task id. As this
|
|
64
70
|
skill only accepts an optional `[<id>]` argument and *never*
|
|
65
71
|
a free-text instruction, only output the following <template/>
|
|
66
72
|
and then immediately *STOP* processing the entire current skill:
|
|
67
73
|
|
|
68
74
|
<template>
|
|
69
|
-
⧉ **ASE**: ☻ skill: **ase-task-grill**, ▶
|
|
75
|
+
⧉ **ASE**: ☻ skill: **ase-task-grill**, ▶ ERROR: expected single `[<id>]` argument
|
|
70
76
|
</template>
|
|
71
|
-
</
|
|
77
|
+
</elseif>
|
|
72
78
|
|
|
73
79
|
2. **Determine Task Plan:**
|
|
74
80
|
|
|
75
|
-
1.
|
|
76
|
-
|
|
77
|
-
|
|
81
|
+
1. Determine the current task plan content:
|
|
82
|
+
|
|
83
|
+
<if condition="<getopt-option-int-reuse-task/> is equal `true`">
|
|
84
|
+
Set <text/> to the `text` argument of the most recent
|
|
85
|
+
`ase_task_save(id: '<ase-task-id/>', ...)` tool call,
|
|
86
|
+
*without* calling `ase_task_load` again. Set <status>plan
|
|
87
|
+
reused</status>. Do not output anything.
|
|
88
|
+
</if>
|
|
89
|
+
<else>
|
|
90
|
+
Call the `ase_task_load(id: "<ase-task-id/>")` tool of the
|
|
91
|
+
`ase` MCP server to load the current task plan content and
|
|
92
|
+
set <text/> to the `text` output field of this `ase_task_load`
|
|
93
|
+
tool call. Do not output anything related to this MCP tool
|
|
94
|
+
call. Set <status>plan loaded</status>.
|
|
95
|
+
</else>
|
|
78
96
|
|
|
79
97
|
- If <text/> starts with `ERROR:` or `WARNING:`:
|
|
80
98
|
Output the following <template/> and then immediately *STOP*
|
|
@@ -91,7 +109,7 @@ Procedure
|
|
|
91
109
|
Output the following <template/>:
|
|
92
110
|
|
|
93
111
|
<template>
|
|
94
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status:
|
|
112
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **<status/>**
|
|
95
113
|
</template>
|
|
96
114
|
|
|
97
115
|
2. <if condition="<plan/> is empty">
|
|
@@ -107,7 +125,7 @@ Procedure
|
|
|
107
125
|
*essential aspect* of the task plan in <plan/> *until* reaching a
|
|
108
126
|
shared understanding and no decisions/questions are left open.
|
|
109
127
|
|
|
110
|
-
This especially means, you *MUST* clarify as
|
|
128
|
+
This especially means, you *MUST* clarify as many aspects as
|
|
111
129
|
necessary to ensure that for at least the most important decisions,
|
|
112
130
|
during a subsequent implementation, no essential freedom of choices
|
|
113
131
|
exist any longer.
|
|
@@ -143,7 +161,7 @@ Procedure
|
|
|
143
161
|
decisions one-by-one. Ask the questions <question-N/> and determine
|
|
144
162
|
corresponding answer <answer-N/>, one at a time.
|
|
145
163
|
|
|
146
|
-
1. For each question <question-N/> in the iteration
|
|
164
|
+
1. For each question <question-N/> in the iteration cycle <N/>:
|
|
147
165
|
|
|
148
166
|
1. Output the following <template/>:
|
|
149
167
|
|
|
@@ -172,7 +190,12 @@ Procedure
|
|
|
172
190
|
<ase-tpl-bullet-normal/> ASPECT <N/>/<n/>: **<aspect-N/>**, ANSWER: **<answer-N/>**
|
|
173
191
|
</template>
|
|
174
192
|
|
|
175
|
-
|
|
193
|
+
2. Finally, update the plan in <plan/> based on all answers <answer-N/>.
|
|
194
|
+
|
|
195
|
+
3. <if condition="<plan/> contains 'Created: <text/>'">
|
|
196
|
+
Set <timestamp-created><text/></timestamp-created> (set
|
|
197
|
+
timestamp-created to extracted text)
|
|
198
|
+
</if>
|
|
176
199
|
|
|
177
200
|
4. Call the `ase_timestamp(format: "yyyy-LL-dd HH:mm")` tool of the
|
|
178
201
|
`ase` MCP server and use the `text` field of its response for
|
|
@@ -216,9 +239,11 @@ Procedure
|
|
|
216
239
|
</template>
|
|
217
240
|
|
|
218
241
|
- If <getopt-option-next/> is equal to `none`:
|
|
219
|
-
Let the *user interactively choose* what to do as the next
|
|
242
|
+
Let the *user interactively choose* what to do as the next
|
|
243
|
+
step. For this you *MUST* use the custom `custom-dialog` and
|
|
244
|
+
*NOT* the `AskUserQuestion` based "user-dialog":
|
|
220
245
|
|
|
221
|
-
<expand name="
|
|
246
|
+
<expand name="custom-dialog">
|
|
222
247
|
Next Step: How would you like to proceed with the plan?
|
|
223
248
|
DONE: Stop processing.
|
|
224
249
|
EDIT: Hand off plan to editing.
|
|
@@ -237,13 +262,12 @@ Procedure
|
|
|
237
262
|
</template>
|
|
238
263
|
|
|
239
264
|
- If <result/> is `EDIT`:
|
|
240
|
-
Set <args
|
|
265
|
+
Set <args>--int-reuse-task</args>.
|
|
241
266
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
242
|
-
|
|
243
|
-
remaining list tokens to the downstream skill).
|
|
267
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
244
268
|
</if>
|
|
245
269
|
Only output the following <template/> and then call the
|
|
246
|
-
tool `Skill(skill: "ase:ase-task-edit", args: <args/>)`
|
|
270
|
+
tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`
|
|
247
271
|
to invoke the `ase:ase-task-edit` skill in order to *edit*
|
|
248
272
|
the updated plan. Immediately stop processing the current
|
|
249
273
|
skill once the `Skill` tool was used.
|
|
@@ -253,13 +277,12 @@ Procedure
|
|
|
253
277
|
</template>
|
|
254
278
|
|
|
255
279
|
- If <result/> is `PREFLIGHT`:
|
|
256
|
-
Set <args
|
|
280
|
+
Set <args>--int-reuse-task</args>.
|
|
257
281
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
258
|
-
|
|
259
|
-
remaining list tokens to the downstream skill).
|
|
282
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
260
283
|
</if>
|
|
261
284
|
Only output the following <template/> and then call the
|
|
262
|
-
`Skill(skill: "ase:ase-task-preflight", args: <args/>)` tool
|
|
285
|
+
`Skill(skill: "ase:ase-task-preflight", args: "<args/>")` tool
|
|
263
286
|
to *apply* the plan.
|
|
264
287
|
|
|
265
288
|
<template>
|
|
@@ -267,15 +290,23 @@ Procedure
|
|
|
267
290
|
</template>
|
|
268
291
|
|
|
269
292
|
- If <result/> is `IMPLEMENT`:
|
|
270
|
-
Set <args
|
|
293
|
+
Set <args>--int-reuse-task</args>.
|
|
271
294
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
272
|
-
|
|
273
|
-
remaining list tokens to the downstream skill).
|
|
295
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
274
296
|
</if>
|
|
275
297
|
Only output the following <template/> and then call the
|
|
276
|
-
`Skill(skill: "ase:ase-task-implement", args: <args/>)` tool
|
|
298
|
+
`Skill(skill: "ase:ase-task-implement", args: "<args/>")` tool
|
|
277
299
|
to *apply* the plan.
|
|
278
300
|
|
|
279
301
|
<template>
|
|
280
302
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- hand-off to implementation**
|
|
281
303
|
</template>
|
|
304
|
+
|
|
305
|
+
- If <result/> matches `OTHER: <text/>` or is any other
|
|
306
|
+
unrecognized value:
|
|
307
|
+
Treat it as `DONE` (the updated plan is already saved):
|
|
308
|
+
only output the following <template/> and then *STOP*.
|
|
309
|
+
|
|
310
|
+
<template>
|
|
311
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- done**
|
|
312
|
+
</template>
|
|
@@ -70,6 +70,6 @@ Grill the current task plan and then hand off to editing:
|
|
|
70
70
|
|
|
71
71
|
## SEE ALSO
|
|
72
72
|
|
|
73
|
-
`ase-task-edit
|
|
74
|
-
`ase-task-implement
|
|
75
|
-
`ase-task-rename
|
|
73
|
+
[`ase-task-edit`](../ase-task-edit/help.md), [`ase-task-reboot`](../ase-task-reboot/help.md), [`ase-task-preflight`](../ase-task-preflight/help.md),
|
|
74
|
+
[`ase-task-implement`](../ase-task-implement/help.md), [`ase-task-view`](../ase-task-view/help.md), [`ase-task-list`](../ase-task-list/help.md),
|
|
75
|
+
[`ase-task-rename`](../ase-task-rename/help.md), [`ase-task-delete`](../ase-task-delete/help.md).
|
|
@@ -24,7 +24,16 @@ Configure Task Id
|
|
|
24
24
|
1. Determine request:
|
|
25
25
|
<request>$ARGUMENTS</request>
|
|
26
26
|
|
|
27
|
-
2. <if condition="<request/> is empty">
|
|
27
|
+
2. <if condition="<request/> is NOT empty AND <request/> does NOT match the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`">
|
|
28
|
+
Only output the following <template/> and then immediately
|
|
29
|
+
*STOP* processing the entire current skill:
|
|
30
|
+
|
|
31
|
+
<template>
|
|
32
|
+
⧉ **ASE**: ☻ skill: **ase-task-id**, ▶ ERROR: given task id `<request/>` is not a valid id
|
|
33
|
+
</template>
|
|
34
|
+
</if>
|
|
35
|
+
|
|
36
|
+
3. <if condition="<request/> is empty">
|
|
28
37
|
- Call the `ase_task_id(session: "<ase-session-id/>")`
|
|
29
38
|
tool from the `ase` MCP server and set
|
|
30
39
|
<ase-task-id/> to its `text` output.
|
|
@@ -35,7 +44,7 @@ Configure Task Id
|
|
|
35
44
|
</template>
|
|
36
45
|
</if>
|
|
37
46
|
|
|
38
|
-
|
|
47
|
+
4. <if condition="<request/> is NOT empty">
|
|
39
48
|
- Set <ase-task-id><request/></ase-task-id> and
|
|
40
49
|
call the `ase_task_id(id: "<ase-task-id/>", session: "<ase-session-id/>")`
|
|
41
50
|
tool from the `ase` MCP server.
|
|
@@ -38,5 +38,5 @@ Switch to a specific task:
|
|
|
38
38
|
|
|
39
39
|
## SEE ALSO
|
|
40
40
|
|
|
41
|
-
`ase-task-list
|
|
42
|
-
`ase-task-rename
|
|
41
|
+
[`ase-task-list`](../ase-task-list/help.md), [`ase-task-edit`](../ase-task-edit/help.md), [`ase-task-view`](../ase-task-view/help.md),
|
|
42
|
+
[`ase-task-rename`](../ase-task-rename/help.md), [`ase-task-delete`](../ase-task-delete/help.md).
|
|
@@ -21,7 +21,7 @@ Implement a Task Plan
|
|
|
21
21
|
|
|
22
22
|
<expand name="getopt"
|
|
23
23
|
arg1="ase-task-implement"
|
|
24
|
-
arg2="--next|-n=(none|DONE|DELETE)...">
|
|
24
|
+
arg2="--next|-n=(none|DONE|DELETE)... --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-implement**, ▶ 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:**
|
|
121
134
|
|
|
@@ -171,9 +184,11 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
171
184
|
</template>
|
|
172
185
|
|
|
173
186
|
- If <getopt-option-next/> is equal to `none`:
|
|
174
|
-
Let the *user interactively choose* what to do as the next
|
|
187
|
+
Let the *user interactively choose* what to do as the next
|
|
188
|
+
step. For this you *MUST* use the custom `custom-dialog` and
|
|
189
|
+
*NOT* the `AskUserQuestion` based "user-dialog":
|
|
175
190
|
|
|
176
|
-
<expand name="
|
|
191
|
+
<expand name="custom-dialog">
|
|
177
192
|
Next Step: How would you like to proceed with the plan?
|
|
178
193
|
DONE: Stop processing and PRESERVE task plan.
|
|
179
194
|
DELETE: Stop processing and DELETE the task plan.
|
|
@@ -189,11 +204,10 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
189
204
|
</template>
|
|
190
205
|
|
|
191
206
|
- If <result/> is `DELETE`:
|
|
192
|
-
Set <args></args> (empty).
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
remaining
|
|
196
|
-
</if>
|
|
207
|
+
Set <args></args> (empty). Do *not* forward any remaining
|
|
208
|
+
`--next` list tokens, because the `ase:ase-task-delete`
|
|
209
|
+
skill accepts only an optional `[<id>]` argument and no
|
|
210
|
+
`--next` option; remaining tokens are intentionally discarded.
|
|
197
211
|
Only output the following <template/> and then call the
|
|
198
212
|
tool `Skill(skill: "ase:ase-task-delete", args: <args/>)`
|
|
199
213
|
to invoke the `ase:ase-task-delete` skill in order to
|
|
@@ -204,3 +218,12 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
204
218
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan implemented -- hand-off to delete task**
|
|
205
219
|
</template>
|
|
206
220
|
|
|
221
|
+
- If <result/> matches `OTHER: <text/>` or is any other
|
|
222
|
+
unrecognized value:
|
|
223
|
+
Treat it as `DONE` (the plan is already implemented):
|
|
224
|
+
only output the following <template/> and then *STOP*.
|
|
225
|
+
|
|
226
|
+
<template>
|
|
227
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan implemented -- done**
|
|
228
|
+
</template>
|
|
229
|
+
|
|
@@ -62,5 +62,5 @@ Implement a specific task and delete the plan when done:
|
|
|
62
62
|
|
|
63
63
|
## SEE ALSO
|
|
64
64
|
|
|
65
|
-
`ase-task-edit
|
|
66
|
-
`ase-task-view
|
|
65
|
+
[`ase-task-edit`](../ase-task-edit/help.md), [`ase-task-preflight`](../ase-task-preflight/help.md), [`ase-task-reboot`](../ase-task-reboot/help.md),
|
|
66
|
+
[`ase-task-view`](../ase-task-view/help.md), [`ase-task-delete`](../ase-task-delete/help.md).
|
|
@@ -27,7 +27,7 @@ List Task Plans
|
|
|
27
27
|
*List* all available *task plans* of the current project.
|
|
28
28
|
</objective>
|
|
29
29
|
|
|
30
|
-
1. Call the `ase_task_list(verbose:
|
|
30
|
+
1. Call the `ase_task_list(verbose: <getopt-option-verbose/>)` tool from
|
|
31
31
|
the `ase` MCP server. The result is a structured object with a
|
|
32
32
|
`tasks` array where each entry has an `id` field, and -- if
|
|
33
33
|
<getopt-option-verbose/> is `true` -- additionally an `mtime` field
|
|
@@ -39,5 +39,5 @@ List all task ids together with their last-modified timestamps:
|
|
|
39
39
|
|
|
40
40
|
## SEE ALSO
|
|
41
41
|
|
|
42
|
-
`ase-task-id
|
|
43
|
-
`ase-task-rename
|
|
42
|
+
[`ase-task-id`](../ase-task-id/help.md), [`ase-task-view`](../ase-task-view/help.md), [`ase-task-edit`](../ase-task-edit/help.md),
|
|
43
|
+
[`ase-task-rename`](../ase-task-rename/help.md), [`ase-task-delete`](../ase-task-delete/help.md).
|
|
@@ -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
|
|
|
@@ -183,9 +196,11 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
183
196
|
</template>
|
|
184
197
|
|
|
185
198
|
- If <getopt-option-next/> is equal to `none`:
|
|
186
|
-
Let the *user interactively choose* what to do as the next
|
|
199
|
+
Let the *user interactively choose* what to do as the next
|
|
200
|
+
step. For this you *MUST* use the custom `custom-dialog` and
|
|
201
|
+
*NOT* the `AskUserQuestion` based "user-dialog":
|
|
187
202
|
|
|
188
|
-
<expand name="
|
|
203
|
+
<expand name="custom-dialog">
|
|
189
204
|
Next Step: How would you like to proceed with the plan?
|
|
190
205
|
DONE: Stop processing.
|
|
191
206
|
EDIT: Hand processing off to editing.
|
|
@@ -202,13 +217,12 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
202
217
|
</template>
|
|
203
218
|
|
|
204
219
|
- If <result/> is `EDIT`:
|
|
205
|
-
Set <args
|
|
220
|
+
Set <args>--int-reuse-task</args>.
|
|
206
221
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
207
|
-
|
|
208
|
-
remaining list tokens to the downstream skill).
|
|
222
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
209
223
|
</if>
|
|
210
224
|
Only output the following <template/> and then call the
|
|
211
|
-
tool `Skill(skill: "ase:ase-task-edit", args: <args/>)`
|
|
225
|
+
tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`
|
|
212
226
|
to invoke the `ase:ase-task-edit` skill in order to *edit*
|
|
213
227
|
the updated plan. Immediately stop processing the current
|
|
214
228
|
skill once the `Skill` tool was used.
|
|
@@ -218,13 +232,12 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
218
232
|
</template>
|
|
219
233
|
|
|
220
234
|
- If <result/> is `IMPLEMENT`:
|
|
221
|
-
Set <args
|
|
235
|
+
Set <args>--int-reuse-task</args>.
|
|
222
236
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
223
|
-
|
|
224
|
-
remaining list tokens to the downstream skill).
|
|
237
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
225
238
|
</if>
|
|
226
239
|
Only output the following <template/> and then call the
|
|
227
|
-
tool `Skill(skill: "ase:ase-task-implement", args: <args/>)`
|
|
240
|
+
tool `Skill(skill: "ase:ase-task-implement", args: "<args/>")`
|
|
228
241
|
to invoke the `ase:ase-task-implement` skill in order to
|
|
229
242
|
*implement* the updated plan. Immediately stop processing
|
|
230
243
|
the current skill once the `Skill` tool was used.
|
|
@@ -233,3 +246,12 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
233
246
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- hand-off to implement**
|
|
234
247
|
</template>
|
|
235
248
|
|
|
249
|
+
- If <result/> matches `OTHER: <text/>` or is any other
|
|
250
|
+
unrecognized value:
|
|
251
|
+
Treat it as `DONE` (the plan is already preflighted):
|
|
252
|
+
only output the following <template/> and then *STOP*.
|
|
253
|
+
|
|
254
|
+
<template>
|
|
255
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- done**
|
|
256
|
+
</template>
|
|
257
|
+
|
|
@@ -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
|
|
@@ -59,5 +59,5 @@ Preflight a specific task and hand off to implementation when done:
|
|
|
59
59
|
|
|
60
60
|
## SEE ALSO
|
|
61
61
|
|
|
62
|
-
`ase-task-edit
|
|
63
|
-
`ase-task-view
|
|
62
|
+
[`ase-task-edit`](../ase-task-edit/help.md), [`ase-task-implement`](../ase-task-implement/help.md), [`ase-task-reboot`](../ase-task-reboot/help.md),
|
|
63
|
+
[`ase-task-view`](../ase-task-view/help.md).
|