@rse/ase 0.0.55 → 0.0.56
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/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.github/plugin/plugin.json +1 -1
- package/plugin/agents/ase-meta-search.md +2 -2
- package/plugin/meta/ase-control.md +6 -6
- package/plugin/meta/ase-dialog.md +2 -2
- package/plugin/meta/ase-getopt.md +13 -11
- package/plugin/package.json +1 -1
- package/plugin/skills/ase-arch-discover/SKILL.md +4 -3
- package/plugin/skills/ase-code-craft/SKILL.md +6 -6
- package/plugin/skills/ase-code-refactor/SKILL.md +6 -6
- package/plugin/skills/ase-code-resolve/SKILL.md +7 -7
- package/plugin/skills/ase-meta-evaluate/SKILL.md +4 -4
- package/plugin/skills/ase-meta-persona/SKILL.md +3 -3
- package/plugin/skills/ase-task-delete/SKILL.md +13 -3
- package/plugin/skills/ase-task-edit/SKILL.md +55 -22
- package/plugin/skills/ase-task-id/SKILL.md +2 -2
- package/plugin/skills/ase-task-implement/SKILL.md +24 -7
- package/plugin/skills/ase-task-list/SKILL.md +1 -1
- package/plugin/skills/ase-task-preflight/SKILL.md +26 -9
- package/plugin/skills/ase-task-reboot/SKILL.md +44 -23
- package/plugin/skills/ase-task-rename/SKILL.md +2 -2
- package/plugin/skills/ase-task-view/SKILL.md +12 -2
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"homepage": "http://github.com/rse/ase",
|
|
7
7
|
"repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
|
|
8
8
|
"bugs": { "url": "http://github.com/rse/ase/issues" },
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.56",
|
|
10
10
|
"license": "GPL-3.0-only",
|
|
11
11
|
"author": {
|
|
12
12
|
"name": "Dr. Ralf S. Engelschall",
|
|
@@ -4,8 +4,8 @@ description: Query the Web
|
|
|
4
4
|
model: sonnet
|
|
5
5
|
effort: low
|
|
6
6
|
tools:
|
|
7
|
-
- "
|
|
8
|
-
- "
|
|
7
|
+
- "mcp__search-perplexity__perplexity_search"
|
|
8
|
+
- "mcp__search-brave__brave_web_search"
|
|
9
9
|
- "mcp__search-exa__web_search_exa"
|
|
10
10
|
- "WebSearch"
|
|
11
11
|
---
|
|
@@ -16,12 +16,12 @@ Control Flow Constructs
|
|
|
16
16
|
- *IMPORTANT*: You *MUST* honor the following control flow construct:
|
|
17
17
|
<expand name="<define-name/>" [arg1="<expand-arg1/>" [arg2="<expand-arg2/>" [...]]]><expand-content/></expand>:
|
|
18
18
|
|
|
19
|
-
This specifies the *expansion* of previous <define/>.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
Do not output anything else.
|
|
19
|
+
This specifies the *expansion* of previous <define/>. This
|
|
20
|
+
construct is expanded to the <define-body/> of <define/> with
|
|
21
|
+
`<args/>` substituted with `<expand-arg1/> <expand-arg2/> [...]`,
|
|
22
|
+
`<arg1/>` substituted with <expand-arg1/>, `<arg2/>` substituted
|
|
23
|
+
with <expand-arg2/>, etc, and `<content/>` substituted with
|
|
24
|
+
<expand-content/>. Do not output anything else.
|
|
25
25
|
|
|
26
26
|
- *IMPORTANT*: You *MUST* honor the following control flow construct:
|
|
27
27
|
<flow><flow-body/></flow>:
|
|
@@ -38,7 +38,7 @@ Let the *user interactively choose* an answer.
|
|
|
38
38
|
|
|
39
39
|
Start with <n>0</n> (set entry count to zero).
|
|
40
40
|
<for items="2 3 4 5">
|
|
41
|
-
Take from <
|
|
41
|
+
Take from <spec/> the line number <item/>.
|
|
42
42
|
If this line does not exist, <break/>.
|
|
43
43
|
If this line exists, parse it according to the format `<label/>: <description/>`.
|
|
44
44
|
If <config/> is not empty, set <config><config/>, </config> (append comma).
|
|
@@ -93,7 +93,7 @@ Let the *user interactively choose* an answer.
|
|
|
93
93
|
|
|
94
94
|
Start with <n>0</n> (set entry count to zero).
|
|
95
95
|
<for items="2 3 4 5">
|
|
96
|
-
Take from <
|
|
96
|
+
Take from <spec/> the line number <item/>.
|
|
97
97
|
If this line does not exist, <break/>.
|
|
98
98
|
If this line exists, parse it according to the format `<label/>: <description/>`.
|
|
99
99
|
If <config/> is not empty, set <config><config/>, </config> (append comma).
|
|
@@ -20,13 +20,14 @@ set placeholders into the context as a side-effect.
|
|
|
20
20
|
then just silently *SKIP* the following steps 3-7!
|
|
21
21
|
|
|
22
22
|
3. **MCP Call**:
|
|
23
|
-
Call the `ase_getopt(name: <getopt-skill
|
|
24
|
-
<getopt-args/>)` tool of the `ase`
|
|
25
|
-
|
|
26
|
-
option token is
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
Call the `ase_getopt(name: "<getopt-skill/>", spec:
|
|
24
|
+
"<getopt-spec/>", args: "<getopt-args/>")` tool of the `ase`
|
|
25
|
+
MCP server and set <text/> to the `text` output field of
|
|
26
|
+
this tool call. The `spec` syntax for each option token is
|
|
27
|
+
`--<long>[|-<short>][=<default>|=(<c1>|<c2>|...)]`, where
|
|
28
|
+
`=<default>` declares a value-taking option with a default, and
|
|
29
|
+
`=(<c1>|<c2>|...)` declares a value-taking option restricted to the
|
|
30
|
+
listed fixed choices (the first choice acts as the default).
|
|
30
31
|
|
|
31
32
|
4. **Short-Circuit for Error**:
|
|
32
33
|
If <text/> starts with `ERROR:`:
|
|
@@ -47,14 +48,15 @@ set placeholders into the context as a side-effect.
|
|
|
47
48
|
{
|
|
48
49
|
"opts": { "<long1/>": <value1/>, "<long2/>": <value2/>, ... },
|
|
49
50
|
"argv": [ "<arg1/>", "<arg2/>", ... ],
|
|
50
|
-
"args": "..."
|
|
51
|
+
"args": "...",
|
|
52
|
+
"info": "..."
|
|
51
53
|
}
|
|
52
54
|
```
|
|
53
55
|
|
|
54
56
|
6. **Materializing into Context**:
|
|
55
|
-
For each *key* `<
|
|
56
|
-
Set <getopt-option-<
|
|
57
|
-
`<getopt-result/>.opts[<
|
|
57
|
+
For each *key* `<longN/>` in <getopt-result/>`.opts`:
|
|
58
|
+
Set <getopt-option-<longN/>/> to the corresponding value
|
|
59
|
+
`<getopt-result/>.opts[<longN/>]`.
|
|
58
60
|
Set <getopt-arguments/> to the value of `<getopt-result/>.args`.
|
|
59
61
|
Set <getopt-info/> to `<getopt-result/>.info`.
|
|
60
62
|
|
package/plugin/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"homepage": "http://github.com/rse/ase",
|
|
7
7
|
"repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
|
|
8
8
|
"bugs": { "url": "http://github.com/rse/ase/issues" },
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.56",
|
|
10
10
|
"license": "GPL-3.0-only",
|
|
11
11
|
"author": {
|
|
12
12
|
"name": "Dr. Ralf S. Engelschall",
|
|
@@ -131,12 +131,13 @@ for the technology stack to *provide* the *needed functionality*
|
|
|
131
131
|
into the already existing result set, but deduplicate
|
|
132
132
|
entries by Maven coordinate.
|
|
133
133
|
|
|
134
|
-
- Call the `ase_component_info(stack: <stack
|
|
135
|
-
[ <package-1
|
|
134
|
+
- Call the `ase_component_info(stack: "<stack/>", components:
|
|
135
|
+
[ "<package-1/>", ..., "<package-N/>" ])` tool of the `ase` MCP
|
|
136
136
|
server *once* for the entire set of discovered packages.
|
|
137
137
|
The tool dispatches internally on <stack/> and fetches all
|
|
138
138
|
metadata in maximum parallel and returns an array of objects `{
|
|
139
|
-
name, version,
|
|
139
|
+
name, version, created, updated, repository, stars, downloads,
|
|
140
|
+
rank }`. For each
|
|
140
141
|
component <component-K/> (K=1-N) read from its corresponding
|
|
141
142
|
entry: <version-K/> from `version`, <updated-K/> from `updated`,
|
|
142
143
|
<created-K/> from `created`, <repository-K/> from `repository`,
|
|
@@ -61,7 +61,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
61
61
|
">
|
|
62
62
|
Set <ase-task-id><feature/></ase-task-id> (set task id to feature)
|
|
63
63
|
and <feature></feature> (set feature empty), call the
|
|
64
|
-
`ase_task_id(id: <ase-task-id
|
|
64
|
+
`ase_task_id(id: "<ase-task-id/>", session: "<ase-session-id/>")` tool
|
|
65
65
|
from the `ase` MCP server to switch the task, and then only
|
|
66
66
|
output the following <template/>:
|
|
67
67
|
|
|
@@ -73,8 +73,8 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
73
73
|
2. If <feature/> has the format `<id/>: <text/>` where <id/> matches
|
|
74
74
|
the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`, then set
|
|
75
75
|
<feature><text/></feature> and <ase-task-id><id/></ase-task-id>
|
|
76
|
-
and call the `ase_task_id(id: <ase-task-id
|
|
77
|
-
<ase-session-id/>)` tool from the `ase` MCP server to
|
|
76
|
+
and call the `ase_task_id(id: "<ase-task-id/>", session:
|
|
77
|
+
"<ase-session-id/>")` tool from the `ase` MCP server to
|
|
78
78
|
implicitly switch the task. Do not output anything.
|
|
79
79
|
|
|
80
80
|
3. If <feature/> is empty,
|
|
@@ -91,8 +91,8 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
91
91
|
">
|
|
92
92
|
Set <ase-task-id/> to a unique task id, derived from <feature/>,
|
|
93
93
|
which consists of two lower-case words concatenated with a
|
|
94
|
-
`-` character. Then call the `ase_task_id(id: <ase-task-id
|
|
95
|
-
session: <ase-session-id/>)` tool from the `ase` MCP server to
|
|
94
|
+
`-` character. Then call the `ase_task_id(id: "<ase-task-id/>",
|
|
95
|
+
session: "<ase-session-id/>")` tool from the `ase` MCP server to
|
|
96
96
|
implicitly switch the task. Do not output anything.
|
|
97
97
|
</if>
|
|
98
98
|
|
|
@@ -279,7 +279,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
279
279
|
words <words/> of <content/>.
|
|
280
280
|
|
|
281
281
|
3. You *MUST* *save* the resulting plan content with the
|
|
282
|
-
`ase_task_save(id: <ase-task-id
|
|
282
|
+
`ase_task_save(id: "<ase-task-id/>", text: "<content/>")`.
|
|
283
283
|
|
|
284
284
|
4. Output a hint with the following <template/>:
|
|
285
285
|
|
|
@@ -61,7 +61,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
61
61
|
">
|
|
62
62
|
Set <ase-task-id><request/></ase-task-id> (set task id to request)
|
|
63
63
|
and <request></request> (set request empty), call the
|
|
64
|
-
`ase_task_id(id: <ase-task-id
|
|
64
|
+
`ase_task_id(id: "<ase-task-id/>", session: "<ase-session-id/>")` tool
|
|
65
65
|
from the `ase` MCP server to switch the task, and then only
|
|
66
66
|
output the following <template/>:
|
|
67
67
|
|
|
@@ -73,8 +73,8 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
73
73
|
2. If <request/> has the format `<id/>: <text/>` where <id/> matches
|
|
74
74
|
the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`, then set
|
|
75
75
|
<request><text/></request> and <ase-task-id><id/></ase-task-id>
|
|
76
|
-
and call the `ase_task_id(id: <ase-task-id
|
|
77
|
-
<ase-session-id/>)` tool from the `ase` MCP server to
|
|
76
|
+
and call the `ase_task_id(id: "<ase-task-id/>", session:
|
|
77
|
+
"<ase-session-id/>")` tool from the `ase` MCP server to
|
|
78
78
|
implicitly switch the task. Do not output anything.
|
|
79
79
|
|
|
80
80
|
3. If <request/> is empty,
|
|
@@ -91,8 +91,8 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
91
91
|
">
|
|
92
92
|
Set <ase-task-id/> to a unique task id, derived from <request/>,
|
|
93
93
|
which consists of two lower-case words concatenated with a
|
|
94
|
-
`-` character. Then call the `ase_task_id(id: <ase-task-id
|
|
95
|
-
session: <ase-session-id/>)` tool from the `ase` MCP server to
|
|
94
|
+
`-` character. Then call the `ase_task_id(id: "<ase-task-id/>",
|
|
95
|
+
session: "<ase-session-id/>")` tool from the `ase` MCP server to
|
|
96
96
|
implicitly switch the task. Do not output anything.
|
|
97
97
|
</if>
|
|
98
98
|
|
|
@@ -270,7 +270,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
270
270
|
words <words/> of <content/>.
|
|
271
271
|
|
|
272
272
|
3. You then *MUST* *save* the resulting plan content with the
|
|
273
|
-
`ase_task_save(id: <ase-task-id
|
|
273
|
+
`ase_task_save(id: "<ase-task-id/>", text: "<content/>")`.
|
|
274
274
|
|
|
275
275
|
4. Output a hint with the following <template/>:
|
|
276
276
|
|
|
@@ -60,7 +60,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
60
60
|
identifier like `P1`, `P2`, `T1`, `T2`, ...),
|
|
61
61
|
set <problem-id><problem/></problem-id> and
|
|
62
62
|
<ase-task-id><problem/></ase-task-id>, call the `ase_task_id(id:
|
|
63
|
-
<ase-task-id
|
|
63
|
+
"<ase-task-id/>", session: "<ase-session-id/>")` tool from the
|
|
64
64
|
`ase` MCP server to implicitly switch the task, and then
|
|
65
65
|
call the `ase_kv_get(key: "ase-issue-<problem-id/>")` tool of
|
|
66
66
|
the `ase` MCP server to retrieve the previously persisted
|
|
@@ -73,7 +73,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
73
73
|
">
|
|
74
74
|
Set <ase-task-id><problem/></ase-task-id> (set task id to problem)
|
|
75
75
|
and <problem></problem> (set problem empty), call the
|
|
76
|
-
`ase_task_id(id: <ase-task-id
|
|
76
|
+
`ase_task_id(id: "<ase-task-id/>", session: "<ase-session-id/>")` tool
|
|
77
77
|
from the `ase` MCP server to switch the task, and then only
|
|
78
78
|
output the following <template/>:
|
|
79
79
|
|
|
@@ -85,8 +85,8 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
85
85
|
3. If <problem/> has the format `<id/>: <text/>` where <id/> matches
|
|
86
86
|
the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`, then set
|
|
87
87
|
<problem><text/></problem> and <ase-task-id><id/></ase-task-id>
|
|
88
|
-
and call the `ase_task_id(id: <ase-task-id
|
|
89
|
-
<ase-session-id/>)` tool from the `ase` MCP server to
|
|
88
|
+
and call the `ase_task_id(id: "<ase-task-id/>", session:
|
|
89
|
+
"<ase-session-id/>")` tool from the `ase` MCP server to
|
|
90
90
|
implicitly switch the task. Do not output anything.
|
|
91
91
|
|
|
92
92
|
4. If <problem/> is empty,
|
|
@@ -103,8 +103,8 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
103
103
|
">
|
|
104
104
|
Set <ase-task-id/> to a unique task id, derived from <problem/>,
|
|
105
105
|
which consists of two lower-case words concatenated with a
|
|
106
|
-
`-` character. Then call the `ase_task_id(id: <ase-task-id
|
|
107
|
-
session: <ase-session-id/>)` tool from the `ase` MCP server to
|
|
106
|
+
`-` character. Then call the `ase_task_id(id: "<ase-task-id/>",
|
|
107
|
+
session: "<ase-session-id/>")` tool from the `ase` MCP server to
|
|
108
108
|
implicitly switch the task. Do not output anything.
|
|
109
109
|
</if>
|
|
110
110
|
|
|
@@ -318,7 +318,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
318
318
|
words <words/> of <content/>.
|
|
319
319
|
|
|
320
320
|
3. You then *MUST* *save* the resulting plan content with the
|
|
321
|
-
`ase_task_save(id: <ase-task-id
|
|
321
|
+
`ase_task_save(id: "<ase-task-id/>", text: "<content/>")`.
|
|
322
322
|
|
|
323
323
|
4. If <problem-id/> is set (i.e. the <problem/> was retrieved from
|
|
324
324
|
`ase_kv_get` in STEP 1.3 via key `ase-issue-<problem-id/>`),
|
|
@@ -154,8 +154,8 @@ multi-*criteria* decision matrix.
|
|
|
154
154
|
|
|
155
155
|
- Then, calculate the ratings <rating-K/> (K=1-N) for all
|
|
156
156
|
alternatives in a single call by invoking the `ase_decision_matrix(matrix:
|
|
157
|
-
[ [ <weight-1/>, <eval-1-1/>, ..., <eval-1
|
|
158
|
-
<eval-M
|
|
157
|
+
[ [ <weight-1/>, <eval-1-1/>, ..., <eval-N-1/> ], ..., [ <weight-M/>,
|
|
158
|
+
<eval-1-M/>, ..., <eval-N-M/> ] ])` tool of the `ase` MCP server.
|
|
159
159
|
The tool returns an array of N numerical values, where the K-th
|
|
160
160
|
entry is the product-sum of all weights <weight-L/> (L=1-M) and
|
|
161
161
|
the evaluation <eval-K-L/> (L=1-M) for alternative <alternative-K/>.
|
|
@@ -173,9 +173,9 @@ multi-*criteria* decision matrix.
|
|
|
173
173
|
|
|
174
174
|
| ⦿ *Criteria* | ⚖ *Weight* | ⚑ **<alternative-1/>** | [...alternatives 2-(N-1)...] | ⚑ **<alternative-N/>** |
|
|
175
175
|
| :------------ | ----------: | ---------------------: | ---------------------------: | ---------------------: |
|
|
176
|
-
| <criteria-1/> | <weight-1/> | <eval-1-1/> | [...evals 1
|
|
176
|
+
| <criteria-1/> | <weight-1/> | <eval-1-1/> | [...evals 2-1..(N-1)-1...] | <eval-N-1/> |
|
|
177
177
|
[...criteria L=2-(M-1) for M>2...]
|
|
178
|
-
| <criteria-M/> | <weight-M/> | <eval-M
|
|
178
|
+
| <criteria-M/> | <weight-M/> | <eval-1-M/> | [...evals 2-M..(N-1)-M...] | <eval-N-M/> |
|
|
179
179
|
| **RATING** | | **<rating-1/>** | [...ratings 2-(N-1)...] | **<rating-N/>** |
|
|
180
180
|
</template>
|
|
181
181
|
</step>
|
|
@@ -24,7 +24,7 @@ Persona Configuration
|
|
|
24
24
|
Do not output anything.
|
|
25
25
|
|
|
26
26
|
2. <if condition="<request/> is empty">
|
|
27
|
-
1. Call the `ase_persona(session: <ase-session-id/>)`
|
|
27
|
+
1. Call the `ase_persona(session: "<ase-session-id/>")`
|
|
28
28
|
tool from the `ase` MCP server and set
|
|
29
29
|
<ase-persona-style/> to its `text` output.
|
|
30
30
|
Do not output anything.
|
|
@@ -46,8 +46,8 @@ Persona Configuration
|
|
|
46
46
|
</template>
|
|
47
47
|
|
|
48
48
|
2. Set <ase-persona-style><request/></ase-persona-style> and
|
|
49
|
-
call the `ase_persona(style: <ase-persona-style
|
|
50
|
-
<ase-session-id/>)` tool from the `ase` MCP server. Do not
|
|
49
|
+
call the `ase_persona(style: "<ase-persona-style/>", session:
|
|
50
|
+
"<ase-session-id/>")` tool from the `ase` MCP server. Do not
|
|
51
51
|
output anything.
|
|
52
52
|
|
|
53
53
|
3. Output the following <template/>:
|
|
@@ -36,7 +36,8 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
36
36
|
|
|
37
37
|
1. **Determine Task:**
|
|
38
38
|
|
|
39
|
-
1. Set <id>$ARGUMENTS</id> initially
|
|
39
|
+
1. Set <id>$ARGUMENTS</id> initially, with any leading and trailing
|
|
40
|
+
whitespace stripped.
|
|
40
41
|
Inherit the always existing <ase-task-id/> from the current context.
|
|
41
42
|
Do not output anything.
|
|
42
43
|
|
|
@@ -45,9 +46,18 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
45
46
|
Do not output anything.
|
|
46
47
|
</if>
|
|
47
48
|
|
|
49
|
+
3. <if condition="<id/> does NOT match the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`">
|
|
50
|
+
Only output the following <template/> and then immediately
|
|
51
|
+
*STOP* processing the entire current skill:
|
|
52
|
+
|
|
53
|
+
<template>
|
|
54
|
+
⧉ **ASE**: ☻ skill: **ase-task-delete**, ▶ ERROR: expected single `[<id>]` argument
|
|
55
|
+
</template>
|
|
56
|
+
</if>
|
|
57
|
+
|
|
48
58
|
2. **Perform Operation**:
|
|
49
59
|
|
|
50
|
-
1. Call the `ase_task_delete(id: <id/>)` tool of the `ase` MCP
|
|
60
|
+
1. Call the `ase_task_delete(id: "<id/>")` tool of the `ase` MCP
|
|
51
61
|
server to delete the task plan content and set <text/> to the
|
|
52
62
|
`text` output field of this `ase_task_delete` tool call. Do not
|
|
53
63
|
output anything related to this MCP tool call.
|
|
@@ -68,7 +78,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
68
78
|
|
|
69
79
|
2. <if condition="<id/> is equal <ase-task-id/> AND <ase-task-id/> is not equal 'default'">
|
|
70
80
|
Set <ase-task-id>default</ase-task-id>. Call the `ase_task_id(id:
|
|
71
|
-
<ase-task-id
|
|
81
|
+
"<ase-task-id/>", session: "<ase-session-id/>")` tool from the `ase`
|
|
72
82
|
MCP server to switch the task to the default task. Only output
|
|
73
83
|
the following <template/>:
|
|
74
84
|
|
|
@@ -56,6 +56,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
56
56
|
|
|
57
57
|
1. Set <instruction><getopt-arguments/></instruction> initially.
|
|
58
58
|
Inherit the always existing <ase-task-id/> from the current context.
|
|
59
|
+
Inherit the always existing <ase-session-id/> from the current context.
|
|
59
60
|
Do not output anything.
|
|
60
61
|
|
|
61
62
|
2. React on task and/or instruction:
|
|
@@ -65,8 +66,8 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
65
66
|
">
|
|
66
67
|
Set <ase-task-id><instruction/></ase-task-id> (set task
|
|
67
68
|
id to instruction) and <instruction></instruction> (set
|
|
68
|
-
instruction empty), call the `ase_task_id(id: <ase-task-id
|
|
69
|
-
session: <ase-session-id/>)` tool from the `ase` MCP
|
|
69
|
+
instruction empty), call the `ase_task_id(id: "<ase-task-id/>",
|
|
70
|
+
session: "<ase-session-id/>")` tool from the `ase` MCP
|
|
70
71
|
server to switch the task, and then only output the
|
|
71
72
|
following <template/>:
|
|
72
73
|
|
|
@@ -82,8 +83,8 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
82
83
|
">
|
|
83
84
|
Set <instruction></instruction> (set instruction to empty)
|
|
84
85
|
and <ase-task-id><id/></ase-task-id> (set task id to
|
|
85
|
-
id) and call the `ase_task_id(id: <ase-task-id
|
|
86
|
-
<ase-session-id/>)` tool from the `ase` MCP server to
|
|
86
|
+
id) and call the `ase_task_id(id: "<ase-task-id/>", session:
|
|
87
|
+
"<ase-session-id/>")` tool from the `ase` MCP server to
|
|
87
88
|
switch the task, and then only output the following
|
|
88
89
|
<template/>:
|
|
89
90
|
|
|
@@ -99,8 +100,8 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
99
100
|
">
|
|
100
101
|
Set <instruction><text/></instruction> (set instruction to
|
|
101
102
|
text) and <ase-task-id><id/></ase-task-id> (set task id
|
|
102
|
-
to id) and call the `ase_task_id(id: <ase-task-id
|
|
103
|
-
<ase-session-id/>)` tool from the `ase` MCP server to
|
|
103
|
+
to id) and call the `ase_task_id(id: "<ase-task-id/>", session:
|
|
104
|
+
"<ase-session-id/>")` tool from the `ase` MCP server to
|
|
104
105
|
switch the task, and then only output the following
|
|
105
106
|
<template/>:
|
|
106
107
|
|
|
@@ -133,7 +134,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
133
134
|
|
|
134
135
|
2. **Determine Plan:**
|
|
135
136
|
|
|
136
|
-
1. Call the `ase_task_load(id: <ase-task-id/>)` tool of the `ase` MCP
|
|
137
|
+
1. Call the `ase_task_load(id: "<ase-task-id/>")` tool of the `ase` MCP
|
|
137
138
|
server to load any existing plan content and set <text/> to
|
|
138
139
|
the `text` output field of this `ase_task_load` tool call.
|
|
139
140
|
Do not output anything related to this MCP tool call.
|
|
@@ -235,6 +236,28 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
235
236
|
|
|
236
237
|
Only output the following <template/> and continue processing:
|
|
237
238
|
|
|
239
|
+
<template>
|
|
240
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan refined**
|
|
241
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ⇌ instruction: **<instruction/>**, ▶ status: **instruction given**
|
|
242
|
+
</template>
|
|
243
|
+
|
|
244
|
+
- If <result/> matches `OTHER: <text/>`:
|
|
245
|
+
|
|
246
|
+
Set <instruction><instruction/> <text/></instruction> (append
|
|
247
|
+
the user's free-text hint to the existing instruction).
|
|
248
|
+
|
|
249
|
+
Treat the <instruction/> as a *refinement instruction* for
|
|
250
|
+
the plan, and update <content/> in-place by *applying* the
|
|
251
|
+
requested <instruction/> to the *plan*. When refining the
|
|
252
|
+
plan this way, preserve the overall structure of the plan
|
|
253
|
+
and only modify what the user actually requested. Do *not*
|
|
254
|
+
rewrite unrelated sections of the plan.
|
|
255
|
+
|
|
256
|
+
Calculate the number of words <words/> of <content/>.
|
|
257
|
+
Set <content-dirty>true</content-dirty>.
|
|
258
|
+
|
|
259
|
+
Only output the following <template/> and continue processing:
|
|
260
|
+
|
|
238
261
|
<template>
|
|
239
262
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan refined**
|
|
240
263
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ⇌ instruction: **<instruction/>**, ▶ status: **instruction given**
|
|
@@ -273,9 +296,9 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
273
296
|
|
|
274
297
|
3. **Iterative Plan Refinement Loop:**
|
|
275
298
|
|
|
276
|
-
*REPEAT* the following steps 3.1 to 3.4 in a
|
|
277
|
-
the user selects `DONE`, `IMPLEMENT`, or `PREFLIGHT`,
|
|
278
|
-
declines/cancels in the dialog of step 3.4:
|
|
299
|
+
*REPEAT* the following steps from 3.1 up to and including 3.4 in a
|
|
300
|
+
*LOOP* until the user selects `DONE`, `IMPLEMENT`, or `PREFLIGHT`,
|
|
301
|
+
or declines/cancels in the dialog of step 3.4:
|
|
279
302
|
|
|
280
303
|
1. *Update timestamp*:
|
|
281
304
|
<if condition="<content/> contains '✎ modified:' AND <content-dirty/> is 'true'">
|
|
@@ -289,7 +312,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
289
312
|
|
|
290
313
|
2. *Persist plan*:
|
|
291
314
|
<if condition="<content-dirty/> is 'true'">
|
|
292
|
-
Call the `ase_task_save(id: <ase-task-id
|
|
315
|
+
Call the `ase_task_save(id: "<ase-task-id/>", text: "<content/>")` tool
|
|
293
316
|
of the `ase` MCP server to persist the current plan, and then
|
|
294
317
|
set <content-dirty>false</content-dirty> again. Calculate the
|
|
295
318
|
number of words <words/> of <content/>. Do not output anything
|
|
@@ -301,11 +324,12 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
301
324
|
</if>
|
|
302
325
|
|
|
303
326
|
3. *Render plan*: Only output the following <template/>, so the user
|
|
304
|
-
can read the plan and react to it. If <content/> is longer
|
|
305
|
-
90 lines and a `※ IMPLEMENTATION DRAFT` section
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
327
|
+
can read the plan and react to it. If <content/> is longer
|
|
328
|
+
than 90 lines and a `※ IMPLEMENTATION DRAFT` section (from the
|
|
329
|
+
companion skill `ase-task-preflight`) exists, replace the entire
|
|
330
|
+
content of the `※ IMPLEMENTATION DRAFT` section with `[...]`.
|
|
331
|
+
Else, do *not* truncate, summarize, or partially show the plan.
|
|
332
|
+
Use the following <template/>:
|
|
309
333
|
|
|
310
334
|
<template>
|
|
311
335
|
⧉ **ASE**: ┈┈┈┈┈┈┈┈────────━━━━━━━━**(** `TASK-PLAN-BEGIN` **)**━━━━━━━━────────┈┈┈┈┈┈┈┈
|
|
@@ -318,8 +342,17 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
318
342
|
- If <getopt-option-next/> matches the regex `^(DONE|IMPLEMENT|PREFLIGHT|REFINE)$`:
|
|
319
343
|
Honor the pre-selection what to do as the next step.
|
|
320
344
|
Set <result><getopt-option-next/></result>.
|
|
321
|
-
|
|
322
|
-
|
|
345
|
+
|
|
346
|
+
Then *clear* <getopt-option-next/> by setting
|
|
347
|
+
<getopt-option-next>none</getopt-option-next> so that
|
|
348
|
+
subsequent loop iterations fall back to the interactive
|
|
349
|
+
dialog.
|
|
350
|
+
|
|
351
|
+
Set <instruction></instruction> (clear the instruction, as
|
|
352
|
+
any instruction carried in via the arguments was already
|
|
353
|
+
applied to the plan in step 2 before this loop), so that a
|
|
354
|
+
pre-selected `REFINE` correctly asks the user for a *fresh*
|
|
355
|
+
refinement instruction below.
|
|
323
356
|
|
|
324
357
|
- If <getopt-option-next/> is equal to `none`:
|
|
325
358
|
Let the *user interactively choose* what to do as the next step.
|
|
@@ -367,9 +400,9 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
367
400
|
|
|
368
401
|
- If <result/> is `REFINE`:
|
|
369
402
|
|
|
370
|
-
Ask the user interactively, without a special tool, for
|
|
371
|
-
|
|
372
|
-
|
|
403
|
+
Ask the user interactively, without a special tool, for the
|
|
404
|
+
refinement instruction with a single question `**What is
|
|
405
|
+
your instruction for further refining the plan?**`. Then set
|
|
373
406
|
<instruction/> to the response of the user.
|
|
374
407
|
|
|
375
408
|
Treat the <instruction/> as a *refinement instruction* for
|
|
@@ -389,7 +422,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
389
422
|
|
|
390
423
|
- If <result/> matches `OTHER: <text/>`:
|
|
391
424
|
|
|
392
|
-
Set <instruction><text/></instruction
|
|
425
|
+
Set <instruction><text/></instruction> (replace existing instruction).
|
|
393
426
|
|
|
394
427
|
Treat the <instruction/> as a *refinement instruction* for
|
|
395
428
|
the plan, and update <content/> in-place by *applying* the
|
|
@@ -24,7 +24,7 @@ Configure Task Id
|
|
|
24
24
|
<request>$ARGUMENTS</request>
|
|
25
25
|
|
|
26
26
|
2. <if condition="<request/> is empty">
|
|
27
|
-
- Call the `ase_task_id(session: <ase-session-id/>)`
|
|
27
|
+
- Call the `ase_task_id(session: "<ase-session-id/>")`
|
|
28
28
|
tool from the `ase` MCP server and set
|
|
29
29
|
<ase-task-id/> to its `text` output.
|
|
30
30
|
|
|
@@ -36,7 +36,7 @@ Configure Task Id
|
|
|
36
36
|
|
|
37
37
|
3. <if condition="<request/> is NOT empty">
|
|
38
38
|
- Set <ase-task-id><request/></ase-task-id> and
|
|
39
|
-
call the `ase_task_id(id: <ase-task-id
|
|
39
|
+
call the `ase_task_id(id: "<ase-task-id/>", session: "<ase-session-id/>")`
|
|
40
40
|
tool from the `ase` MCP server.
|
|
41
41
|
|
|
42
42
|
- Output:
|
|
@@ -59,8 +59,8 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
59
59
|
">
|
|
60
60
|
Set <ase-task-id><instruction/></ase-task-id> (set task
|
|
61
61
|
id to instruction) and <instruction></instruction> (set
|
|
62
|
-
instruction empty), call the `ase_task_id(id: <ase-task-id
|
|
63
|
-
session: <ase-session-id/>)` tool from the `ase` MCP
|
|
62
|
+
instruction empty), call the `ase_task_id(id: "<ase-task-id/>",
|
|
63
|
+
session: "<ase-session-id/>")` tool from the `ase` MCP
|
|
64
64
|
server to switch the task, and then only output the
|
|
65
65
|
following <template/>:
|
|
66
66
|
|
|
@@ -76,8 +76,8 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
76
76
|
">
|
|
77
77
|
Set <instruction></instruction> (set instruction to empty)
|
|
78
78
|
and <ase-task-id><id/></ase-task-id> (set task id to
|
|
79
|
-
id) and call the `ase_task_id(id: <ase-task-id
|
|
80
|
-
<ase-session-id/>)` tool from the `ase` MCP server to
|
|
79
|
+
id) and call the `ase_task_id(id: "<ase-task-id/>", session:
|
|
80
|
+
"<ase-session-id/>")` tool from the `ase` MCP server to
|
|
81
81
|
switch the task, and then only output the following
|
|
82
82
|
<template/>:
|
|
83
83
|
|
|
@@ -86,13 +86,30 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
86
86
|
</template>
|
|
87
87
|
</if>
|
|
88
88
|
|
|
89
|
+
3. else <if condition="<instruction/> is NOT empty">
|
|
90
|
+
The argument is neither empty nor a valid task id. As this
|
|
91
|
+
skill only accepts an optional `[<id>]` argument and *never*
|
|
92
|
+
a free-text instruction, only output the following <template/>
|
|
93
|
+
and then immediately *STOP* processing the entire current skill:
|
|
94
|
+
|
|
95
|
+
<template>
|
|
96
|
+
⧉ **ASE**: ☻ skill: **ase-task-implement**, ▶ ERROR: expected single `[<id>]` argument
|
|
97
|
+
</template>
|
|
98
|
+
</if>
|
|
99
|
+
|
|
89
100
|
2. **Determine Operation**:
|
|
90
101
|
|
|
91
|
-
1. Call the `ase_task_load(id: <ase-task-id/>)` tool of the `ase` MCP
|
|
92
|
-
server to load the current task plan content and set <
|
|
102
|
+
1. Call the `ase_task_load(id: "<ase-task-id/>")` tool of the `ase` MCP
|
|
103
|
+
server to load the current task plan content and set <text/> to
|
|
93
104
|
the `text` output field of the `ase_task_load` tool call.
|
|
94
105
|
|
|
95
|
-
|
|
106
|
+
- If <text/> starts with `ERROR:` or `WARNING:`:
|
|
107
|
+
Set <content></content> (set content to empty).
|
|
108
|
+
Set <words/> to "0".
|
|
109
|
+
|
|
110
|
+
- If <text/> starts NOT with `ERROR:` and NOT with `WARNING:`:
|
|
111
|
+
Set <content><text/></content> (set content to text).
|
|
112
|
+
Calculate the number of words <words/> of <content/>.
|
|
96
113
|
|
|
97
114
|
Only output the following <template/>:
|
|
98
115
|
|
|
@@ -26,7 +26,7 @@ List Task Plans
|
|
|
26
26
|
$ARGUMENTS
|
|
27
27
|
</expand>
|
|
28
28
|
|
|
29
|
-
1. Call the `ase_task_list(verbose: <getopt-option-verbose/>)` tool from
|
|
29
|
+
1. Call the `ase_task_list(verbose: "<getopt-option-verbose/>")` tool from
|
|
30
30
|
the `ase` MCP server. The result is a structured object with a
|
|
31
31
|
`tasks` array where each entry has an `id` field, and -- if
|
|
32
32
|
<getopt-option-verbose/> is `true` -- additionally an `mtime` field
|
|
@@ -59,8 +59,8 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
59
59
|
">
|
|
60
60
|
Set <ase-task-id><instruction/></ase-task-id> (set task
|
|
61
61
|
id to instruction) and <instruction></instruction> (set
|
|
62
|
-
instruction empty), call the `ase_task_id(id: <ase-task-id
|
|
63
|
-
session: <ase-session-id/>)` tool from the `ase` MCP
|
|
62
|
+
instruction empty), call the `ase_task_id(id: "<ase-task-id/>",
|
|
63
|
+
session: "<ase-session-id/>")` tool from the `ase` MCP
|
|
64
64
|
server to switch the task, and then only output the
|
|
65
65
|
following <template/>:
|
|
66
66
|
|
|
@@ -76,8 +76,8 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
76
76
|
">
|
|
77
77
|
Set <instruction></instruction> (set instruction to empty)
|
|
78
78
|
and <ase-task-id><id/></ase-task-id> (set task id to
|
|
79
|
-
id) and call the `ase_task_id(id: <ase-task-id
|
|
80
|
-
<ase-session-id/>)` tool from the `ase` MCP server to
|
|
79
|
+
id) and call the `ase_task_id(id: "<ase-task-id/>", session:
|
|
80
|
+
"<ase-session-id/>")` tool from the `ase` MCP server to
|
|
81
81
|
switch the task, and then only output the following
|
|
82
82
|
<template/>:
|
|
83
83
|
|
|
@@ -86,13 +86,30 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
86
86
|
</template>
|
|
87
87
|
</if>
|
|
88
88
|
|
|
89
|
+
3. else <if condition="<instruction/> is NOT empty">
|
|
90
|
+
The argument is neither empty nor a valid task id. As this
|
|
91
|
+
skill only accepts an optional `[<id>]` argument and *never*
|
|
92
|
+
a free-text instruction, only output the following <template/>
|
|
93
|
+
and then immediately *STOP* processing the entire current skill:
|
|
94
|
+
|
|
95
|
+
<template>
|
|
96
|
+
⧉ **ASE**: ☻ skill: **ase-task-preflight**, ▶ ERROR: expected single `[<id>]` argument
|
|
97
|
+
</template>
|
|
98
|
+
</if>
|
|
99
|
+
|
|
89
100
|
2. **Determine Operation:**
|
|
90
101
|
|
|
91
|
-
1. Call the `ase_task_load(id: <ase-task-id/>)` tool of the `ase` MCP
|
|
92
|
-
server to load the current task plan content and set <
|
|
102
|
+
1. Call the `ase_task_load(id: "<ase-task-id/>")` tool of the `ase` MCP
|
|
103
|
+
server to load the current task plan content and set <text/> to
|
|
93
104
|
the `text` output field of the `ase_task_load` tool call.
|
|
94
105
|
|
|
95
|
-
|
|
106
|
+
- If <text/> starts with `ERROR:` or `WARNING:`:
|
|
107
|
+
Set <content></content> (set content to empty).
|
|
108
|
+
Set <words/> to "0".
|
|
109
|
+
|
|
110
|
+
- If <text/> starts NOT with `ERROR:` and NOT with `WARNING:`:
|
|
111
|
+
Set <content><text/></content> (set content to text).
|
|
112
|
+
Calculate the number of words <words/> of <content/>.
|
|
96
113
|
|
|
97
114
|
Only output the following <template/>:
|
|
98
115
|
|
|
@@ -136,8 +153,8 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
136
153
|
Do not output anything.
|
|
137
154
|
</if>
|
|
138
155
|
|
|
139
|
-
4. Finally, call the `ase_task_save(id: <ase-task-id
|
|
140
|
-
text: <content/>)` of the `ase` MCP server to save the updated
|
|
156
|
+
4. Finally, call the `ase_task_save(id: "<ase-task-id/>",
|
|
157
|
+
text: "<content/>")` of the `ase` MCP server to save the updated
|
|
141
158
|
task plan content. Calculate the number of words <words/> of
|
|
142
159
|
<content/>. Do not output anything related to this MCP tool call
|
|
143
160
|
except the following <template/>:
|
|
@@ -56,28 +56,45 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
56
56
|
|
|
57
57
|
2. React on task id:
|
|
58
58
|
|
|
59
|
-
<if condition="
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
59
|
+
1. <if condition="
|
|
60
|
+
<instruction/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
|
|
61
|
+
">
|
|
62
|
+
Set <ase-task-id><instruction/></ase-task-id> (set task
|
|
63
|
+
id to instruction) and <instruction></instruction> (set
|
|
64
|
+
instruction empty), call the `ase_task_id(id: "<ase-task-id/>",
|
|
65
|
+
session: "<ase-session-id/>")` tool from the `ase` MCP
|
|
66
|
+
server to switch the task, and then only output the
|
|
67
|
+
following <template/>:
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
<template>
|
|
70
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task given**
|
|
71
|
+
</template>
|
|
72
|
+
</if>
|
|
73
|
+
|
|
74
|
+
2. else <if condition="<instruction/> is NOT empty">
|
|
75
|
+
The argument is neither empty nor a valid task id. As this
|
|
76
|
+
skill only accepts an optional `[<id>]` argument and *never*
|
|
77
|
+
a free-text instruction, only output the following <template/>
|
|
78
|
+
and then immediately *STOP* processing the entire current skill:
|
|
79
|
+
|
|
80
|
+
<template>
|
|
81
|
+
⧉ **ASE**: ☻ skill: **ase-task-reboot**, ▶ ERROR: expected single `[<id>]` argument
|
|
82
|
+
</template>
|
|
83
|
+
</if>
|
|
73
84
|
|
|
74
85
|
2. **Determine Operation:**
|
|
75
86
|
|
|
76
|
-
1. Call the `ase_task_load(id: <ase-task-id/>)` tool of the `ase` MCP
|
|
77
|
-
server to load the current task plan content and set <
|
|
87
|
+
1. Call the `ase_task_load(id: "<ase-task-id/>")` tool of the `ase` MCP
|
|
88
|
+
server to load the current task plan content and set <text/> to
|
|
78
89
|
the `text` output field of the `ase_task_load` tool call.
|
|
79
90
|
|
|
80
|
-
|
|
91
|
+
- If <text/> starts with `ERROR:` or `WARNING:`:
|
|
92
|
+
Set <content></content> (set content to empty).
|
|
93
|
+
Set <words/> to "0".
|
|
94
|
+
|
|
95
|
+
- If <text/> starts NOT with `ERROR:` and NOT with `WARNING:`:
|
|
96
|
+
Set <content><text/></content> (set content to text).
|
|
97
|
+
Calculate the number of words <words/> of <content/>.
|
|
81
98
|
|
|
82
99
|
Only output the following <template/>:
|
|
83
100
|
|
|
@@ -104,35 +121,39 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
104
121
|
Set <instruction><text/></instruction> (set instruction to extracted text).
|
|
105
122
|
</if>
|
|
106
123
|
|
|
107
|
-
4. <if condition="<content/> contains '- **WHY**: <text/>'">
|
|
124
|
+
4. <if condition="<content/> contains '- **WHY**: <text/>' and <instruction/> is empty">
|
|
125
|
+
Set <instruction><text/></instruction> (set instruction to extracted text).
|
|
126
|
+
</if>
|
|
127
|
+
|
|
128
|
+
5. else <if condition="<content/> contains '- **WHY**: <text/>' and <instruction/> is NOT empty">
|
|
108
129
|
Set <instruction><instruction/>, BECAUSE <text/></instruction>
|
|
109
130
|
(append extracted text to instruction).
|
|
110
131
|
</if>
|
|
111
132
|
|
|
112
|
-
|
|
133
|
+
6. <if condition="<content/> contains 'created: **<text/>**'">
|
|
113
134
|
Set <timestamp-created><text/></timestamp-created> (set
|
|
114
135
|
timestamp-created to extracted text)
|
|
115
136
|
</if>
|
|
116
137
|
|
|
117
|
-
|
|
138
|
+
7. Create a new plan from scratch and store the result as
|
|
118
139
|
<content/> by closely following the defined plan format
|
|
119
140
|
<format/> and injecting into it all the information from
|
|
120
141
|
the <instruction/> and all decisions you derived from the
|
|
121
142
|
<instruction/>.
|
|
122
143
|
|
|
123
|
-
|
|
144
|
+
8. Call the `ase_timestamp(format: "yyyy-LL-dd HH:mm")` tool of the
|
|
124
145
|
`ase` MCP server and use the `text` field of its response for
|
|
125
146
|
<timestamp-modified/> information. Then insert the current
|
|
126
147
|
<ase-task-id/>, previous <timestamp-created/>, and refreshed
|
|
127
148
|
<timestamp-modified/> information and calculate the number of
|
|
128
149
|
words <words/> of <content/>.
|
|
129
150
|
|
|
130
|
-
|
|
131
|
-
text: <content/>)` of the `ase` MCP server to save the updated
|
|
151
|
+
9. Call the `ase_task_save(id: "<ase-task-id/>",
|
|
152
|
+
text: "<content/>")` of the `ase` MCP server to save the updated
|
|
132
153
|
task plan content. Do not output anything related to this MCP
|
|
133
154
|
call.
|
|
134
155
|
|
|
135
|
-
|
|
156
|
+
10. Only output the following <template/> and continue processing:
|
|
136
157
|
|
|
137
158
|
<template>
|
|
138
159
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan rebooted**
|
|
@@ -64,7 +64,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
64
64
|
|
|
65
65
|
2. **Perform Operation**:
|
|
66
66
|
|
|
67
|
-
1. Call the `ase_task_rename(old: <old
|
|
67
|
+
1. Call the `ase_task_rename(old: "<old/>", new: "<new/>")` tool of the
|
|
68
68
|
`ase` MCP server to rename the task plan and set <text/> to the
|
|
69
69
|
`text` output field of this `ase_task_rename` tool call. Do not
|
|
70
70
|
output anything related to this MCP tool call.
|
|
@@ -85,7 +85,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
85
85
|
|
|
86
86
|
2. <if condition="<old/> is equal <ase-task-id/>">
|
|
87
87
|
Set <ase-task-id><new/></ase-task-id>. Call the `ase_task_id(id:
|
|
88
|
-
<ase-task-id
|
|
88
|
+
"<ase-task-id/>", session: "<ase-session-id/>")` tool from the `ase`
|
|
89
89
|
MCP server to switch the task to the renamed task. Only output
|
|
90
90
|
the following <template/>:
|
|
91
91
|
|
|
@@ -36,7 +36,8 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
36
36
|
|
|
37
37
|
1. **Determine Task:**
|
|
38
38
|
|
|
39
|
-
1. Set <id>$ARGUMENTS</id> initially
|
|
39
|
+
1. Set <id>$ARGUMENTS</id> initially, with any leading and trailing
|
|
40
|
+
whitespace stripped.
|
|
40
41
|
Inherit the always existing <ase-task-id/> from the current context.
|
|
41
42
|
Do not output anything.
|
|
42
43
|
|
|
@@ -45,9 +46,18 @@ explicitly requested by this procedure via outputs based on a <template/>!
|
|
|
45
46
|
Do not output anything.
|
|
46
47
|
</if>
|
|
47
48
|
|
|
49
|
+
3. <if condition="<id/> does NOT match the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`">
|
|
50
|
+
Only output the following <template/> and then immediately
|
|
51
|
+
*STOP* processing the entire current skill:
|
|
52
|
+
|
|
53
|
+
<template>
|
|
54
|
+
⧉ **ASE**: ☻ skill: **ase-task-view**, ▶ ERROR: expected single `[<id>]` argument
|
|
55
|
+
</template>
|
|
56
|
+
</if>
|
|
57
|
+
|
|
48
58
|
2. **Perform Operation**:
|
|
49
59
|
|
|
50
|
-
1. Call the `ase_task_load(id: <id/>)` tool of the `ase` MCP
|
|
60
|
+
1. Call the `ase_task_load(id: "<id/>")` tool of the `ase` MCP
|
|
51
61
|
server to load the task plan content and set <text/> to the
|
|
52
62
|
`text` output field of this `ase_task_load` tool call. Do not
|
|
53
63
|
output anything related to this MCP tool call.
|