@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
|
@@ -106,13 +106,15 @@ addressing surface-level symptoms.
|
|
|
106
106
|
|
|
107
107
|
Ask <question/> and surface up to <width/> *distinct*,
|
|
108
108
|
*non-overlapping* candidate sub-causes, each documented in <answer-k/>.
|
|
109
|
+
Let <count/> be the number of candidates you actually surfaced
|
|
110
|
+
(at least one, at most <width/>).
|
|
109
111
|
Don't stop at symptoms, keep digging for systemic issues.
|
|
110
112
|
Explore *different* candidates -- technical, domain-specific,
|
|
111
113
|
process-related, or organizational causes -- and avoid restating
|
|
112
114
|
the same cause in different words.
|
|
113
115
|
|
|
114
116
|
Start with <k>1</k> (set candidate counter to one).
|
|
115
|
-
<while condition="<k/> is less than or equal to <
|
|
117
|
+
<while condition="<k/> is less than or equal to <count/>">
|
|
116
118
|
<template>
|
|
117
119
|
<ase-tpl-bullet-secondary/> **WHY <n/>.<k/>**: <answer-k/>
|
|
118
120
|
</template>
|
|
@@ -150,15 +152,19 @@ addressing surface-level symptoms.
|
|
|
150
152
|
whole chain up to the original <problem/>).
|
|
151
153
|
|
|
152
154
|
When <width/> is *greater than 1* and this backward validation *fails* at
|
|
153
|
-
some level -- i.e. the chosen sub-cause does *not* adequately explain
|
|
154
|
-
fact above it -- *backtrack*: discard the chosen sub-cause
|
|
155
|
-
downward, pick the next-best
|
|
156
|
-
<
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
155
|
+
some level <m/> -- i.e. the chosen sub-cause does *not* adequately explain
|
|
156
|
+
the fact above it -- *backtrack*: discard the chosen sub-cause (and every
|
|
157
|
+
chosen sub-cause below it) from level <m/> downward, pick the next-best
|
|
158
|
+
candidate from level <m/>'s <fallbacks/>, and resume the STEP 2 widened
|
|
159
|
+
descent: set <n/> to <m/> (reset the iteration counter to the failed level),
|
|
160
|
+
set <question/> to the picked candidate, and re-enter STEP 2's
|
|
161
|
+
<while condition="<n/> is less than or equal to <depth/>"/> loop at that
|
|
162
|
+
level -- so the original <depth/> budget is honored from <m/> downward.
|
|
163
|
+
Repeat until a chain survives backward validation or level <m/>'s
|
|
164
|
+
<fallbacks/> are exhausted (then report the strongest chain found and note
|
|
165
|
+
that no candidate fully validated). This is the payoff of <width/> *greater
|
|
166
|
+
than 1*: the enumerated alternatives let the analysis *recover* from a wrong
|
|
167
|
+
turn instead of committing to a mis-rooted chain.
|
|
162
168
|
|
|
163
169
|
Propose a solution that addresses and solves the validated root-cause.
|
|
164
170
|
For the proposed solution, optionally directly propose corresponding source code changes.
|
|
@@ -77,4 +77,4 @@ committing early to the wrong root-cause:
|
|
|
77
77
|
|
|
78
78
|
## SEE ALSO
|
|
79
79
|
|
|
80
|
-
`ase-code-analyze
|
|
80
|
+
[`ase-code-analyze`](../ase-code-analyze/help.md), [`ase-code-resolve`](../ase-code-resolve/help.md), [`ase-arch-analyze`](../ase-arch-analyze/help.md).
|
|
@@ -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-condense**, ▶ ERROR: expected single `[<id>]` argument
|
|
76
76
|
</template>
|
|
77
|
-
</
|
|
77
|
+
</elseif>
|
|
78
78
|
|
|
79
79
|
2. **Determine Operation:**
|
|
80
80
|
|
|
@@ -114,9 +114,9 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
114
114
|
and unchanged*. Honor the following ruleset *strictly*:
|
|
115
115
|
|
|
116
116
|
1. *Preserve-exactly (never alter)*: the plan <format/>
|
|
117
|
-
structure (the headings `#`/`##`,
|
|
118
|
-
|
|
119
|
-
|
|
117
|
+
structure (the headings `#`/`##`, all three `## CONTEXT`,
|
|
118
|
+
`## CHANGES`, and `## VERIFICATION` sections, the
|
|
119
|
+
`Created:`/`Modified:` lines, and
|
|
120
120
|
the `- **<aspect/>**:` bullet labels), all *code spans* and
|
|
121
121
|
code blocks, technical terms, file paths, identifiers,
|
|
122
122
|
numbers, severities (`LOW`/`MEDIUM`/`HIGH`/`ACCEPTED`), and
|
|
@@ -203,9 +203,11 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
203
203
|
</template>
|
|
204
204
|
|
|
205
205
|
- If <getopt-option-next/> is equal to `none`:
|
|
206
|
-
Let the *user interactively choose* what to do as the next
|
|
206
|
+
Let the *user interactively choose* what to do as the next
|
|
207
|
+
step. For this you *MUST* use the custom `custom-dialog` and
|
|
208
|
+
*NOT* the `AskUserQuestion` based "user-dialog":
|
|
207
209
|
|
|
208
|
-
<expand name="
|
|
210
|
+
<expand name="custom-dialog">
|
|
209
211
|
Next Step: How would you like to proceed with the plan?
|
|
210
212
|
DONE: Stop processing.
|
|
211
213
|
EDIT: Hand off plan to editing.
|
|
@@ -223,13 +225,15 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
223
225
|
</template>
|
|
224
226
|
|
|
225
227
|
- If <result/> is `EDIT`:
|
|
226
|
-
Set <args></args> (empty).
|
|
228
|
+
Set <args></args> (set args to empty).
|
|
229
|
+
<if condition="the condensed plan was saved via `ase_task_save` in step 3">
|
|
230
|
+
Set <args>--int-reuse-task</args>.
|
|
231
|
+
</if>
|
|
227
232
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
228
|
-
|
|
229
|
-
remaining list tokens to the downstream skill).
|
|
233
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
230
234
|
</if>
|
|
231
235
|
Only output the following <template/> and then call the
|
|
232
|
-
tool `Skill(skill: "ase:ase-task-edit", args: <args/>)`
|
|
236
|
+
tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`
|
|
233
237
|
to invoke the `ase:ase-task-edit` skill in order to *edit*
|
|
234
238
|
the condensed plan. Immediately stop processing the current
|
|
235
239
|
skill once the `Skill` tool was used.
|
|
@@ -239,13 +243,15 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
239
243
|
</template>
|
|
240
244
|
|
|
241
245
|
- If <result/> is `IMPLEMENT`:
|
|
242
|
-
Set <args></args> (empty).
|
|
246
|
+
Set <args></args> (set args to empty).
|
|
247
|
+
<if condition="the condensed plan was saved via `ase_task_save` in step 3">
|
|
248
|
+
Set <args>--int-reuse-task</args>.
|
|
249
|
+
</if>
|
|
243
250
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
244
|
-
|
|
245
|
-
remaining list tokens to the downstream skill).
|
|
251
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
246
252
|
</if>
|
|
247
253
|
Only output the following <template/> and then call the
|
|
248
|
-
`Skill(skill: "ase:ase-task-implement", args: <args/>)` tool
|
|
254
|
+
`Skill(skill: "ase:ase-task-implement", args: "<args/>")` tool
|
|
249
255
|
to *apply* the plan.
|
|
250
256
|
|
|
251
257
|
<template>
|
|
@@ -253,15 +259,26 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
253
259
|
</template>
|
|
254
260
|
|
|
255
261
|
- If <result/> is `PREFLIGHT`:
|
|
256
|
-
Set <args></args> (empty).
|
|
262
|
+
Set <args></args> (set args to empty).
|
|
263
|
+
<if condition="the condensed plan was saved via `ase_task_save` in step 3">
|
|
264
|
+
Set <args>--int-reuse-task</args>.
|
|
265
|
+
</if>
|
|
257
266
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
258
|
-
|
|
259
|
-
remaining list tokens to the downstream skill).
|
|
267
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
260
268
|
</if>
|
|
261
269
|
Only output the following <template/> and then call the
|
|
262
|
-
`Skill(skill: "ase:ase-task-preflight", args: <args/>)` tool
|
|
270
|
+
`Skill(skill: "ase:ase-task-preflight", args: "<args/>")` tool
|
|
263
271
|
to *apply* the plan.
|
|
264
272
|
|
|
265
273
|
<template>
|
|
266
274
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan condensed -- hand-off to pre-flight**
|
|
267
275
|
</template>
|
|
276
|
+
|
|
277
|
+
- If <result/> matches `OTHER: <text/>` or is any other
|
|
278
|
+
unrecognized value:
|
|
279
|
+
Treat it as `DONE` (the condensed plan is already saved):
|
|
280
|
+
only output the following <template/> and then *STOP*.
|
|
281
|
+
|
|
282
|
+
<template>
|
|
283
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan condensed -- done**
|
|
284
|
+
</template>
|
|
@@ -30,7 +30,7 @@ telegrapher-like even under the `writer` persona.
|
|
|
30
30
|
|
|
31
31
|
The plan is saved *only* when condensing actually makes it smaller; if no
|
|
32
32
|
further reduction is possible, the plan is left untouched (including its
|
|
33
|
-
|
|
33
|
+
`⚙ Modified:` timestamp) and reported as *already condensed*.
|
|
34
34
|
|
|
35
35
|
After condensing, the user is asked whether to stop or hand off to
|
|
36
36
|
`ase-task-edit`, `ase-task-implement`, or `ase-task-preflight`, unless
|
|
@@ -73,5 +73,5 @@ Condense a specific task and hand off to editing:
|
|
|
73
73
|
|
|
74
74
|
## SEE ALSO
|
|
75
75
|
|
|
76
|
-
`ase-task-edit
|
|
77
|
-
`ase-task-rename
|
|
76
|
+
[`ase-task-edit`](../ase-task-edit/help.md), [`ase-task-reboot`](../ase-task-reboot/help.md), [`ase-task-view`](../ase-task-view/help.md),
|
|
77
|
+
[`ase-task-rename`](../ase-task-rename/help.md), [`ase-task-delete`](../ase-task-delete/help.md).
|
|
@@ -35,6 +35,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
35
35
|
1. Set <id>$ARGUMENTS</id> initially, with any leading and trailing
|
|
36
36
|
whitespace stripped.
|
|
37
37
|
Inherit the always existing <ase-task-id/> from the current context.
|
|
38
|
+
Inherit the always existing <ase-session-id/> from the current context.
|
|
38
39
|
Do not output anything.
|
|
39
40
|
|
|
40
41
|
2. <if condition="<id/> is empty">
|
|
@@ -59,20 +60,22 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
59
60
|
output anything related to this MCP tool call.
|
|
60
61
|
|
|
61
62
|
- If <text/> starts with `ERROR:` or `WARNING:`:
|
|
62
|
-
|
|
63
|
+
Set <deleted>false</deleted> and only output the following
|
|
64
|
+
<template/>:
|
|
63
65
|
|
|
64
66
|
<template>
|
|
65
67
|
⧉ **ASE**: ◉ task: **<id/>**, ▶ status: **<text/>**
|
|
66
68
|
</template>
|
|
67
69
|
|
|
68
70
|
- If <text/> starts NOT with `ERROR:` and NOT with `WARNING:`:
|
|
69
|
-
|
|
71
|
+
Set <deleted>true</deleted> and only output the following
|
|
72
|
+
<template/>:
|
|
70
73
|
|
|
71
74
|
<template>
|
|
72
75
|
⧉ **ASE**: ◉ task: **<id/>**, ▶ status: **task deleted**
|
|
73
76
|
</template>
|
|
74
77
|
|
|
75
|
-
2. <if condition="<id/> is equal <ase-task-id/> AND <ase-task-id/> is not equal 'default'">
|
|
78
|
+
2. <if condition="<deleted/> is equal 'true' AND <id/> is equal <ase-task-id/> AND <ase-task-id/> is not equal 'default'">
|
|
76
79
|
Set <ase-task-id>default</ase-task-id>. Call the `ase_task_id(id:
|
|
77
80
|
"<ase-task-id/>", session: "<ase-session-id/>")` tool from the `ase`
|
|
78
81
|
MCP server to switch the task to the default task. Only output
|
|
@@ -39,5 +39,5 @@ Delete a specific task plan:
|
|
|
39
39
|
|
|
40
40
|
## SEE ALSO
|
|
41
41
|
|
|
42
|
-
`ase-task-edit
|
|
43
|
-
`ase-task-rename
|
|
42
|
+
[`ase-task-edit`](../ase-task-edit/help.md), [`ase-task-list`](../ase-task-list/help.md), [`ase-task-view`](../ase-task-view/help.md),
|
|
43
|
+
[`ase-task-rename`](../ase-task-rename/help.md), [`ase-task-reboot`](../ase-task-reboot/help.md).
|
|
@@ -23,7 +23,7 @@ Iteratively Edit a Task Plan
|
|
|
23
23
|
|
|
24
24
|
<expand name="getopt"
|
|
25
25
|
arg1="ase-task-edit"
|
|
26
|
-
arg2="--plan|-p=(none|OVERWRITE|REFINE|PRESERVE) --dry|-d --next|-n=(none|DONE|GRILL|PREFLIGHT|IMPLEMENT)...">
|
|
26
|
+
arg2="--plan|-p=(none|OVERWRITE|REFINE|PRESERVE) --dry|-d --next|-n=(none|DONE|GRILL|PREFLIGHT|IMPLEMENT)... --int-reuse-task">
|
|
27
27
|
$ARGUMENTS
|
|
28
28
|
</expand>
|
|
29
29
|
|
|
@@ -67,7 +67,7 @@ the <instruction/> and all decisions you derived from the
|
|
|
67
67
|
|
|
68
68
|
If a `CHANGELOG.md` file exists in the project (or in any
|
|
69
69
|
affected sub-package), the plan *MUST* include, as part of
|
|
70
|
-
its `##
|
|
70
|
+
its `## CHANGES` section, an explicit bullet point
|
|
71
71
|
describing the addition of a corresponding new entry to
|
|
72
72
|
that `CHANGELOG.md` file, aligned with its existing style
|
|
73
73
|
and conventions.
|
|
@@ -111,7 +111,7 @@ Set <content-dirty>true</content-dirty>.
|
|
|
111
111
|
</template>
|
|
112
112
|
</if>
|
|
113
113
|
|
|
114
|
-
2.
|
|
114
|
+
2. <elseif condition="
|
|
115
115
|
<instruction/> has the format `<id/>: <text/>` where
|
|
116
116
|
<id/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$` and
|
|
117
117
|
<text/> is *empty*
|
|
@@ -126,9 +126,9 @@ Set <content-dirty>true</content-dirty>.
|
|
|
126
126
|
<template>
|
|
127
127
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task given**
|
|
128
128
|
</template>
|
|
129
|
-
</
|
|
129
|
+
</elseif>
|
|
130
130
|
|
|
131
|
-
3.
|
|
131
|
+
3. <elseif condition="
|
|
132
132
|
<instruction/> has the format `<id/>: <text/>` where
|
|
133
133
|
<id/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$` and
|
|
134
134
|
<text/> is *not empty*
|
|
@@ -144,9 +144,9 @@ Set <content-dirty>true</content-dirty>.
|
|
|
144
144
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task given**
|
|
145
145
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ⇌ instruction: **<instruction/>**, ▶ status: **instruction given**
|
|
146
146
|
</template>
|
|
147
|
-
</
|
|
147
|
+
</elseif>
|
|
148
148
|
|
|
149
|
-
4.
|
|
149
|
+
4. <elseif condition="
|
|
150
150
|
<instruction/> is not empty
|
|
151
151
|
">
|
|
152
152
|
Only output the following <template/>:
|
|
@@ -155,9 +155,9 @@ Set <content-dirty>true</content-dirty>.
|
|
|
155
155
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task inherited**
|
|
156
156
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ⇌ instruction: **<instruction/>**, ▶ status: **instruction given**
|
|
157
157
|
</template>
|
|
158
|
-
</
|
|
158
|
+
</elseif>
|
|
159
159
|
|
|
160
|
-
5.
|
|
160
|
+
5. <elseif condition="
|
|
161
161
|
<instruction/> is empty
|
|
162
162
|
">
|
|
163
163
|
Only output the following <template/>:
|
|
@@ -165,14 +165,26 @@ Set <content-dirty>true</content-dirty>.
|
|
|
165
165
|
<template>
|
|
166
166
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task inherited**
|
|
167
167
|
</template>
|
|
168
|
-
</
|
|
168
|
+
</elseif>
|
|
169
169
|
|
|
170
170
|
2. **Determine Plan:**
|
|
171
171
|
|
|
172
|
-
1.
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
172
|
+
1. Determine any existing plan content:
|
|
173
|
+
|
|
174
|
+
<if condition="<getopt-option-int-reuse-task/> is equal `true`">
|
|
175
|
+
Set <text/> to the `text` argument of the most recent
|
|
176
|
+
`ase_task_save(id: '<ase-task-id/>', ...)` tool call,
|
|
177
|
+
*without* calling `ase_task_load` again. Set <status>plan
|
|
178
|
+
reused</status>. Do not output anything.
|
|
179
|
+
</if>
|
|
180
|
+
<else>
|
|
181
|
+
Call the `ase_task_load(id: "<ase-task-id/>")` tool of the
|
|
182
|
+
`ase` MCP server to load any existing plan content and set
|
|
183
|
+
<text/> to the `text` output field of this `ase_task_load`
|
|
184
|
+
tool call. Do not output anything related to this MCP tool
|
|
185
|
+
call. Set <status>plan loaded</status>.
|
|
186
|
+
</else>
|
|
187
|
+
|
|
176
188
|
Set <content-dirty>false</content-dirty>.
|
|
177
189
|
|
|
178
190
|
- If <text/> starts with `ERROR:`:
|
|
@@ -187,7 +199,7 @@ Set <content-dirty>true</content-dirty>.
|
|
|
187
199
|
Only output the following <template/>:
|
|
188
200
|
|
|
189
201
|
<template>
|
|
190
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status:
|
|
202
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **<status/>**
|
|
191
203
|
</template>
|
|
192
204
|
|
|
193
205
|
2. <if condition="<content/> is empty AND <instruction/> is empty">
|
|
@@ -214,9 +226,11 @@ Set <content-dirty>true</content-dirty>.
|
|
|
214
226
|
Set <result><getopt-option-plan/></result>.
|
|
215
227
|
|
|
216
228
|
- If <getopt-option-plan/> is equal to `none`:
|
|
217
|
-
Let the *user interactively choose* what to do as the next
|
|
229
|
+
Let the *user interactively choose* what to do as the next
|
|
230
|
+
step. For this you *MUST* use the custom `custom-dialog` and
|
|
231
|
+
*NOT* the `AskUserQuestion` based "user-dialog":
|
|
218
232
|
|
|
219
|
-
<expand name="
|
|
233
|
+
<expand name="custom-dialog">
|
|
220
234
|
Previous Plan: Should the previous plan content be overwritten, refined, or preserved?
|
|
221
235
|
OVERWRITE: Continue operation, overwrite previous plan.
|
|
222
236
|
REFINE: Continue operation, refine previous plan.
|
|
@@ -271,7 +285,7 @@ Set <content-dirty>true</content-dirty>.
|
|
|
271
285
|
</template>
|
|
272
286
|
</if>
|
|
273
287
|
|
|
274
|
-
4. <if condition="<content/> does not contain '#
|
|
288
|
+
4. <if condition="<content/> does not contain '# TASK' AND <instruction/> is empty">
|
|
275
289
|
Set <instruction><content/></instruction> (set instruction to content).
|
|
276
290
|
Set <content></content> (set content to empty).
|
|
277
291
|
Set <content-dirty>true</content-dirty>.
|
|
@@ -296,12 +310,12 @@ Set <content-dirty>true</content-dirty>.
|
|
|
296
310
|
`PREFLIGHT`, or declines/cancels in the dialog of step 3.4:
|
|
297
311
|
|
|
298
312
|
1. *Update timestamp*:
|
|
299
|
-
<if condition="<content/> contains '
|
|
313
|
+
<if condition="<content/> contains '⚙ Modified:' AND <content-dirty/> is 'true'">
|
|
300
314
|
Update <timestamp-modified/> with the current time in
|
|
301
315
|
ISO-style format, which has to be determined by calling the
|
|
302
316
|
`ase_timestamp(format: "yyyy-LL-dd HH:mm")` tool of the `ase`
|
|
303
317
|
MCP server and use the `text` field of its response. Update
|
|
304
|
-
<content/> with the new
|
|
318
|
+
<content/> with the new `Modified: <timestamp-modified/>`.
|
|
305
319
|
Do not output anything.
|
|
306
320
|
</if>
|
|
307
321
|
|
|
@@ -350,8 +364,8 @@ Set <content-dirty>true</content-dirty>.
|
|
|
350
364
|
Set <instruction></instruction> (clear the instruction, as
|
|
351
365
|
any instruction carried in via the arguments was already
|
|
352
366
|
applied to the plan in step 2 before this loop), so that a
|
|
353
|
-
|
|
354
|
-
refinement instruction below.
|
|
367
|
+
later `OTHER: <text/>` refinement correctly starts from a
|
|
368
|
+
*fresh* refinement instruction below.
|
|
355
369
|
|
|
356
370
|
- else:
|
|
357
371
|
Only output the following <template/> and then immediately
|
|
@@ -362,9 +376,11 @@ Set <content-dirty>true</content-dirty>.
|
|
|
362
376
|
</template>
|
|
363
377
|
|
|
364
378
|
- If <getopt-option-next/> is equal to `none`:
|
|
365
|
-
Let the *user interactively choose* what to do as the next
|
|
379
|
+
Let the *user interactively choose* what to do as the next
|
|
380
|
+
step. For this you *MUST* use the custom `custom-dialog` and
|
|
381
|
+
*NOT* the `AskUserQuestion` based "user-dialog":
|
|
366
382
|
|
|
367
|
-
<expand name="
|
|
383
|
+
<expand name="custom-dialog">
|
|
368
384
|
Next Step: How would you like to proceed with the plan?
|
|
369
385
|
DONE: Mark plan finalized, exit planning loop.
|
|
370
386
|
GRILL: Hand off plan to grilling.
|
|
@@ -385,13 +401,16 @@ Set <content-dirty>true</content-dirty>.
|
|
|
385
401
|
|
|
386
402
|
- If <result/> is `GRILL`:
|
|
387
403
|
|
|
388
|
-
*Break* out of the *loop*.
|
|
404
|
+
*Break* out of the *loop*.
|
|
405
|
+
Set <args></args> (set args to empty).
|
|
406
|
+
<if condition="the plan was saved via `ase_task_save` in step 3.2">
|
|
407
|
+
Set <args>--int-reuse-task</args>.
|
|
408
|
+
</if>
|
|
389
409
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
390
|
-
|
|
391
|
-
remaining list tokens to the downstream skill).
|
|
410
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
392
411
|
</if>
|
|
393
412
|
Only output the following <template/> and then call the
|
|
394
|
-
`Skill(skill: "ase:ase-task-grill", args: <args/>)` tool
|
|
413
|
+
`Skill(skill: "ase:ase-task-grill", args: "<args/>")` tool
|
|
395
414
|
to *grill* the finalized plan.
|
|
396
415
|
|
|
397
416
|
<template>
|
|
@@ -400,13 +419,16 @@ Set <content-dirty>true</content-dirty>.
|
|
|
400
419
|
|
|
401
420
|
- If <result/> is `PREFLIGHT`:
|
|
402
421
|
|
|
403
|
-
*Break* out of the *loop*.
|
|
422
|
+
*Break* out of the *loop*.
|
|
423
|
+
Set <args></args> (set args to empty).
|
|
424
|
+
<if condition="the plan was saved via `ase_task_save` in step 3.2">
|
|
425
|
+
Set <args>--int-reuse-task</args>.
|
|
426
|
+
</if>
|
|
404
427
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
405
|
-
|
|
406
|
-
remaining list tokens to the downstream skill).
|
|
428
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
407
429
|
</if>
|
|
408
430
|
Only output the following <template/> and then call the
|
|
409
|
-
`Skill(skill: "ase:ase-task-preflight", args: <args/>)` tool
|
|
431
|
+
`Skill(skill: "ase:ase-task-preflight", args: "<args/>")` tool
|
|
410
432
|
to *apply* the finalized plan.
|
|
411
433
|
|
|
412
434
|
<template>
|
|
@@ -415,13 +437,16 @@ Set <content-dirty>true</content-dirty>.
|
|
|
415
437
|
|
|
416
438
|
- If <result/> is `IMPLEMENT`:
|
|
417
439
|
|
|
418
|
-
*Break* out of the *loop*.
|
|
440
|
+
*Break* out of the *loop*.
|
|
441
|
+
Set <args></args> (set args to empty).
|
|
442
|
+
<if condition="the plan was saved via `ase_task_save` in step 3.2">
|
|
443
|
+
Set <args>--int-reuse-task</args>.
|
|
444
|
+
</if>
|
|
419
445
|
<if condition="<getopt-option-next/> is not equal `none`">
|
|
420
|
-
|
|
421
|
-
remaining list tokens to the downstream skill).
|
|
446
|
+
Set <args><args/> --next <getopt-option-next/></args>
|
|
422
447
|
</if>
|
|
423
448
|
Only output the following <template/> and then call the
|
|
424
|
-
`Skill(skill: "ase:ase-task-implement", args: <args/>)` tool
|
|
449
|
+
`Skill(skill: "ase:ase-task-implement", args: "<args/>")` tool
|
|
425
450
|
to *apply* the finalized plan.
|
|
426
451
|
|
|
427
452
|
<template>
|
|
@@ -48,8 +48,8 @@ hand-off to implementation or preflight.
|
|
|
48
48
|
`none` (default, interactive answer required), `DONE` (no next
|
|
49
49
|
step), `GRILL` (hand-over to `ase-task-grill`), `PREFLIGHT`
|
|
50
50
|
(hand-over to `ase-task-preflight`), or `IMPLEMENT` (hand-over to
|
|
51
|
-
`ase-task-implement`). Example: `--next GRILL,DONE`
|
|
52
|
-
|
|
51
|
+
`ase-task-implement`). Example: `--next GRILL,DONE` hands the plan
|
|
52
|
+
off to grilling and forwards `DONE` so grilling exits without asking.
|
|
53
53
|
|
|
54
54
|
## ARGUMENTS
|
|
55
55
|
|
|
@@ -82,5 +82,5 @@ Further refine the task under id `hello`:
|
|
|
82
82
|
|
|
83
83
|
## SEE ALSO
|
|
84
84
|
|
|
85
|
-
`ase-task-reboot
|
|
86
|
-
`ase-task-view
|
|
85
|
+
[`ase-task-reboot`](../ase-task-reboot/help.md), [`ase-task-preflight`](../ase-task-preflight/help.md), [`ase-task-implement`](../ase-task-implement/help.md),
|
|
86
|
+
[`ase-task-view`](../ase-task-view/help.md), [`ase-task-list`](../ase-task-list/help.md), [`ase-task-rename`](../ase-task-rename/help.md), [`ase-task-delete`](../ase-task-delete/help.md).
|