@rse/ase 0.0.30 → 0.0.31
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-hello.js +22 -0
- package/dst/ase-hook.js +3 -1
- package/dst/ase-setup.js +10 -7
- package/package.json +2 -1
- package/plugin/.claude/settings.local.json +7 -0
- package/plugin/.claude-plugin/plugin.json +20 -0
- package/plugin/.github/plugin/plugin.json +21 -0
- package/plugin/agents/ase-meta-chat.md +10 -0
- package/plugin/agents/ase-meta-search.md +16 -0
- package/plugin/commands/ase-code-lint/complete.md +9 -0
- package/plugin/commands/ase-code-lint/explain.md +9 -0
- package/plugin/commands/ase-code-lint/nope.md +11 -0
- package/plugin/commands/ase-code-lint/reassess.md +15 -0
- package/plugin/commands/ase-code-lint/recheck.md +9 -0
- package/plugin/commands/ase-code-lint/refine.md +9 -0
- package/plugin/hooks/hooks-copilot.json +23 -0
- package/plugin/hooks/hooks.json +40 -0
- package/plugin/meta/ase-constitution.md +114 -0
- package/plugin/meta/ase-dialog.md +122 -0
- package/plugin/meta/ase-persona.md +63 -0
- package/plugin/meta/ase-plan.md +69 -0
- package/plugin/meta/ase-skill.md +238 -0
- package/plugin/skills/ase-arch-analyze/SKILL.md +442 -0
- package/plugin/skills/ase-arch-discover/SKILL.md +160 -0
- package/plugin/skills/ase-code-analyze/SKILL.md +108 -0
- package/plugin/skills/ase-code-craft/SKILL.md +237 -0
- package/plugin/skills/ase-code-explain/SKILL.md +115 -0
- package/plugin/skills/ase-code-insight/SKILL.md +96 -0
- package/plugin/skills/ase-code-lint/SKILL.md +382 -0
- package/plugin/skills/ase-code-refactor/SKILL.md +241 -0
- package/plugin/skills/ase-code-resolve/SKILL.md +299 -0
- package/plugin/skills/ase-meta-changes/SKILL.md +95 -0
- package/plugin/skills/ase-meta-chat/SKILL.md +58 -0
- package/plugin/skills/ase-meta-commit/SKILL.md +64 -0
- package/plugin/skills/ase-meta-diagram/SKILL.md +101 -0
- package/plugin/skills/ase-meta-evaluate/SKILL.md +247 -0
- package/plugin/skills/ase-meta-persona/SKILL.md +52 -0
- package/plugin/skills/ase-meta-quorum/SKILL.md +122 -0
- package/plugin/skills/ase-meta-search/SKILL.md +48 -0
- package/plugin/skills/ase-meta-why/SKILL.md +69 -0
- package/plugin/skills/ase-task-delete/SKILL.md +76 -0
- package/plugin/skills/ase-task-edit/SKILL.md +390 -0
- package/plugin/skills/ase-task-id/SKILL.md +46 -0
- package/plugin/skills/ase-task-implement/SKILL.md +146 -0
- package/plugin/skills/ase-task-list/SKILL.md +44 -0
- package/plugin/skills/ase-task-preflight/SKILL.md +181 -0
- package/plugin/skills/ase-task-reboot/SKILL.md +161 -0
- package/plugin/skills/ase-task-view/SKILL.md +81 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ase-task-preflight
|
|
3
|
+
argument-hint: "[<id>]"
|
|
4
|
+
description: >
|
|
5
|
+
Preflight the implementation of current or given task plan.
|
|
6
|
+
Use when the user calls to "preflight", "dry-run" or "test-drive"
|
|
7
|
+
the "task", "plan", "spec", or "specification".
|
|
8
|
+
user-invocable: true
|
|
9
|
+
disable-model-invocation: false
|
|
10
|
+
effort: xhigh
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
|
|
14
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
15
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md
|
|
16
|
+
|
|
17
|
+
Preflight a Task Plan
|
|
18
|
+
=====================
|
|
19
|
+
|
|
20
|
+
<skill name="ase-task-preflight">
|
|
21
|
+
Preflight a Task Plan
|
|
22
|
+
</skill>
|
|
23
|
+
|
|
24
|
+
Your role is an experienced, *expert-level assistant*,
|
|
25
|
+
specialized in the *implementation* of changes.
|
|
26
|
+
|
|
27
|
+
*Preflight* the implementation of a task plan by creating a draft
|
|
28
|
+
for a corresponding, *complete source code change set*.
|
|
29
|
+
|
|
30
|
+
Procedure
|
|
31
|
+
---------
|
|
32
|
+
|
|
33
|
+
You *MUST* follow the following numbered items *strictly* *sequentially*!
|
|
34
|
+
You *MUST* not skip any numbered item during processing!
|
|
35
|
+
|
|
36
|
+
You *MUST* *NOT* output anything in this entire procedure, *except* when
|
|
37
|
+
explicitly requested by this procedure via outputs based on a <template/>!
|
|
38
|
+
|
|
39
|
+
1. **Determine Task:**
|
|
40
|
+
|
|
41
|
+
1. Set <instruction>$ARGUMENTS</instruction> initially.
|
|
42
|
+
Inherit the always existing <ase-task-id/> from the current context.
|
|
43
|
+
Inherit the always existing <ase-session-id/> from the current context.
|
|
44
|
+
Do not output anything.
|
|
45
|
+
|
|
46
|
+
2. React on task id:
|
|
47
|
+
|
|
48
|
+
1. <if condition="
|
|
49
|
+
<instruction/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
|
|
50
|
+
">
|
|
51
|
+
Set <ase-task-id><instruction/></ase-task-id> (set task
|
|
52
|
+
id to instruction) and <instruction></instruction> (set
|
|
53
|
+
instruction empty), call the `task_id(id: <ase-task-id/>,
|
|
54
|
+
session: <ase-session-id/>)` tool from the `ase` MCP
|
|
55
|
+
service to switch the task, and then only output the
|
|
56
|
+
following <template/>:
|
|
57
|
+
|
|
58
|
+
<template>
|
|
59
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task given**
|
|
60
|
+
</template>
|
|
61
|
+
</if>
|
|
62
|
+
|
|
63
|
+
2. else <if condition="
|
|
64
|
+
<instruction/> has the format `<id/>: <text/>` where
|
|
65
|
+
<id/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$` and
|
|
66
|
+
<text/> is *empty*
|
|
67
|
+
">
|
|
68
|
+
Set <instruction></instruction> (set instruction to empty)
|
|
69
|
+
and <ase-task-id><id/></ase-task-id> (set task id to
|
|
70
|
+
id) and call the `task_id(id: <ase-task-id/>, session:
|
|
71
|
+
<ase-session-id/>)` tool from the `ase` MCP service to
|
|
72
|
+
switch the task, and then only output the following
|
|
73
|
+
<template/>:
|
|
74
|
+
|
|
75
|
+
<template>
|
|
76
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task given**
|
|
77
|
+
</template>
|
|
78
|
+
</if>
|
|
79
|
+
|
|
80
|
+
2. **Determine Operation:**
|
|
81
|
+
|
|
82
|
+
1. Call the `task_load(id: <ase-task-id/>)` tool of the `ase` MCP
|
|
83
|
+
service to load the current task plan content and set <content/> to
|
|
84
|
+
the `text` output field of the `task_load` tool call.
|
|
85
|
+
|
|
86
|
+
Calculate the number of words <words/> of <content/>.
|
|
87
|
+
|
|
88
|
+
Only output the following <template/>:
|
|
89
|
+
|
|
90
|
+
<template>
|
|
91
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan loaded**
|
|
92
|
+
</template>
|
|
93
|
+
|
|
94
|
+
2. If the <content/> is still empty, complain and tell the user to
|
|
95
|
+
use the `ase-code-resolve`, `ase-code-refactor`, `ase-code-craft`,
|
|
96
|
+
or `ase-task-edit` skills first to create a task plan.
|
|
97
|
+
|
|
98
|
+
3. **Create Implementation Draft:**
|
|
99
|
+
|
|
100
|
+
1. Perform a *preflight* of the *implementation* of <content/> by creating a
|
|
101
|
+
draft for a corresponding, *complete artifact change set*
|
|
102
|
+
which *would* fully implement the task plan <content/>. Store
|
|
103
|
+
this artifact change set in *unified diff* format in <unified-diff/>.
|
|
104
|
+
|
|
105
|
+
2. Append this artifact change set <unified-diff/> to the end
|
|
106
|
+
of the <content/> with the following <template/>. If a section
|
|
107
|
+
named `## ※ IMPLEMENTATION DRAFT:` already exists from a
|
|
108
|
+
previous run of this skill, *replace* this entire existing
|
|
109
|
+
section.
|
|
110
|
+
|
|
111
|
+
<template>
|
|
112
|
+
|
|
113
|
+
## ※ IMPLEMENTATION DRAFT:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
<unified-diff/>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
</template>
|
|
120
|
+
|
|
121
|
+
3. <if condition="<content/> contains '✎ modified:'">
|
|
122
|
+
Set update <timestamp-modified/> with the current time in
|
|
123
|
+
ISO-style format, which has to be determined by calling the
|
|
124
|
+
`timestamp(format: "yyyy-LL-dd HH:mm")` tool of the `ase`
|
|
125
|
+
MCP service and use the `text` field of its response. Update
|
|
126
|
+
<content/> with the new `✎ modified: **<timestamp-modified/>**`.
|
|
127
|
+
Do not output anything.
|
|
128
|
+
</if>
|
|
129
|
+
|
|
130
|
+
4. Finally, call the `task_save(id: <ase-task-id/>,
|
|
131
|
+
text: <content/>)` of the `ase` MCP service to save the updated
|
|
132
|
+
task plan content. Calculate the number of words <words/> of
|
|
133
|
+
<content/>. Do not output anything related to this MCP tool call
|
|
134
|
+
except the following <template/>:
|
|
135
|
+
|
|
136
|
+
<template>
|
|
137
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated**
|
|
138
|
+
</template>
|
|
139
|
+
|
|
140
|
+
4. **Decide Next Step:**
|
|
141
|
+
|
|
142
|
+
1. *Ask user*: Let the *user interactively choose*
|
|
143
|
+
what to do as the next step.
|
|
144
|
+
|
|
145
|
+
<expand name="user-dialog>
|
|
146
|
+
Next Step: How would you like to proceed with the plan?
|
|
147
|
+
DONE: Stop processing.
|
|
148
|
+
EDIT: Hand processing off to editing.
|
|
149
|
+
IMPLEMENT: Hand processing off to implementation.
|
|
150
|
+
</expand>
|
|
151
|
+
|
|
152
|
+
2. Check the tool <result/> and dispatch accordingly:
|
|
153
|
+
|
|
154
|
+
- If <result/> is `DONE` or `CANCEL`:
|
|
155
|
+
Only output the following <template/> and then *STOP*.
|
|
156
|
+
|
|
157
|
+
<template>
|
|
158
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- done**
|
|
159
|
+
</template>
|
|
160
|
+
|
|
161
|
+
- If <result/> is `EDIT`:
|
|
162
|
+
Only output the following <template/> and then use the
|
|
163
|
+
`Skill` tool to invoke the `ase:ase-task-edit` skill
|
|
164
|
+
in order to *edit* the updated plan. Immediately stop
|
|
165
|
+
processing the current skill once the `Skill` tool was used.
|
|
166
|
+
|
|
167
|
+
<template>
|
|
168
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- hand-off to edit**
|
|
169
|
+
</template>
|
|
170
|
+
|
|
171
|
+
- If <result/> is `IMPLEMENT`:
|
|
172
|
+
Only output the following <template/> and then use the
|
|
173
|
+
`Skill` tool to invoke the `ase:ase-task-implement` skill
|
|
174
|
+
in order to *implement* the updated plan. Immediately stop
|
|
175
|
+
processing the current skill once the `Skill` tool was used.
|
|
176
|
+
|
|
177
|
+
<template>
|
|
178
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- hand-off to implement**
|
|
179
|
+
</template>
|
|
180
|
+
|
|
181
|
+
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ase-task-reboot
|
|
3
|
+
argument-hint: "[<id>]"
|
|
4
|
+
description: >
|
|
5
|
+
Reboot the current or given task plan by re-creating it from scratch.
|
|
6
|
+
Use when the user calls to "reboot", "recreate" or "refresh"
|
|
7
|
+
the "task", "plan", "spec", or "specification".
|
|
8
|
+
user-invocable: true
|
|
9
|
+
disable-model-invocation: false
|
|
10
|
+
effort: xhigh
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
|
|
14
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
15
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md
|
|
16
|
+
|
|
17
|
+
Reboot a Task Plan
|
|
18
|
+
==================
|
|
19
|
+
|
|
20
|
+
<skill name="ase-task-reboot">
|
|
21
|
+
Reboot a Task Plan
|
|
22
|
+
</skill>
|
|
23
|
+
|
|
24
|
+
Your role is an experienced, *expert-level assistant*,
|
|
25
|
+
specialized in the *planning* of changes.
|
|
26
|
+
|
|
27
|
+
*Reboot* the task plan by crafting it from scratch,
|
|
28
|
+
based on the existing *WHAT* and *WHY*.
|
|
29
|
+
|
|
30
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-plan.md
|
|
31
|
+
|
|
32
|
+
Procedure
|
|
33
|
+
---------
|
|
34
|
+
|
|
35
|
+
You *MUST* follow the following numbered items *strictly* *sequentially*!
|
|
36
|
+
You *MUST* not skip any numbered item during processing!
|
|
37
|
+
|
|
38
|
+
You *MUST* *NOT* output anything in this entire procedure, *except* when
|
|
39
|
+
explicitly requested by this procedure via outputs based on a <template/>!
|
|
40
|
+
|
|
41
|
+
1. **Determine Task:**
|
|
42
|
+
|
|
43
|
+
1. Set <instruction>$ARGUMENTS</instruction> initially.
|
|
44
|
+
Inherit the always existing <ase-task-id/> from the current context.
|
|
45
|
+
Inherit the always existing <ase-session-id/> from the current context.
|
|
46
|
+
Do not output anything.
|
|
47
|
+
|
|
48
|
+
2. React on task id:
|
|
49
|
+
|
|
50
|
+
<if condition="
|
|
51
|
+
<instruction/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
|
|
52
|
+
">
|
|
53
|
+
Set <ase-task-id><instruction/></ase-task-id> (set task
|
|
54
|
+
id to instruction) and <instruction></instruction> (set
|
|
55
|
+
instruction empty), call the `task_id(id: <ase-task-id/>,
|
|
56
|
+
session: <ase-session-id/>)` tool from the `ase` MCP
|
|
57
|
+
service to switch the task, and then only output the
|
|
58
|
+
following <template/>:
|
|
59
|
+
|
|
60
|
+
<template>
|
|
61
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task given**
|
|
62
|
+
</template>
|
|
63
|
+
</if>
|
|
64
|
+
|
|
65
|
+
2. **Determine Operation:**
|
|
66
|
+
|
|
67
|
+
1. Call the `task_load(id: <ase-task-id/>)` tool of the `ase` MCP
|
|
68
|
+
service to load the current task plan content and set <content/> to
|
|
69
|
+
the `text` output field of the `task_load` tool call.
|
|
70
|
+
|
|
71
|
+
Calculate the number of words <words/> of <content/>.
|
|
72
|
+
|
|
73
|
+
Only output the following <template/>:
|
|
74
|
+
|
|
75
|
+
<template>
|
|
76
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan loaded**
|
|
77
|
+
</template>
|
|
78
|
+
|
|
79
|
+
2. <if condition="<content/> is empty">
|
|
80
|
+
Complain and tell the user to use the `ase-code-resolve`,
|
|
81
|
+
`ase-code-refactor`, `ase-code-craft`, or `ase-task-edit` skills
|
|
82
|
+
first to create a task plan. Then immediately stop processing
|
|
83
|
+
this skill.
|
|
84
|
+
</if>
|
|
85
|
+
|
|
86
|
+
3. **Reboot Task Plan:**
|
|
87
|
+
|
|
88
|
+
1. Start with <instruction></instruction> (set instruction to empty).
|
|
89
|
+
|
|
90
|
+
2. <if condition="<content/> contains neither '- **WHAT**:' nor '- **WHY**:'">
|
|
91
|
+
Set <instruction><content/></instruction> (set instruction to content).
|
|
92
|
+
</if>
|
|
93
|
+
|
|
94
|
+
3. <if condition="<content/> contains '- **WHAT**: <text/>'">
|
|
95
|
+
Set <instruction><text/></instruction> (set instruction to extracted text).
|
|
96
|
+
</if>
|
|
97
|
+
|
|
98
|
+
4. <if condition="<content/> contains '- **WHY**: <text/>'">
|
|
99
|
+
Set <instruction><instruction/>, BECAUSE <text/></instruction>
|
|
100
|
+
(append extracted text to instruction).
|
|
101
|
+
</if>
|
|
102
|
+
|
|
103
|
+
5. <if condition="<content/> contains 'created: **<text/>**'">
|
|
104
|
+
Set <timestamp-created><text/></timestamp-created> (set
|
|
105
|
+
timestamp-created to extracted text)
|
|
106
|
+
</if>
|
|
107
|
+
|
|
108
|
+
6. Create a new plan from scratch and store the result as
|
|
109
|
+
<content/> by closely following the defined plan format
|
|
110
|
+
<format/> and injecting into it all the information from
|
|
111
|
+
the <instruction/> and all decisions you derived from the
|
|
112
|
+
<instruction/>.
|
|
113
|
+
|
|
114
|
+
7. Call the `timestamp(format: "yyyy-LL-dd HH:mm")` tool of the
|
|
115
|
+
`ase` MCP service and use the `text` field of its response for
|
|
116
|
+
<timestamp-modified/> information. Then insert the current
|
|
117
|
+
<ase-task-id/>, previous <timestamp-created/>, and refreshed
|
|
118
|
+
<timestamp-modified/> information and calculate the number of
|
|
119
|
+
words <words/> of <content/>.
|
|
120
|
+
|
|
121
|
+
8. Call the `task_save(id: <ase-task-id/>,
|
|
122
|
+
text: <content/>)` of the `ase` MCP service to save the updated
|
|
123
|
+
task plan content. Do not output anything related to this MCP
|
|
124
|
+
call.
|
|
125
|
+
|
|
126
|
+
9. Only output the following <template/> and continue processing:
|
|
127
|
+
|
|
128
|
+
<template>
|
|
129
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan rebooted**
|
|
130
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ⇌ instruction: **<instruction/>**, ▶ status: **instruction given**
|
|
131
|
+
</template>
|
|
132
|
+
|
|
133
|
+
4. **Decide Next Step:**
|
|
134
|
+
|
|
135
|
+
1. *Ask user*: Let the *user interactively choose*
|
|
136
|
+
what to do as the next step.
|
|
137
|
+
|
|
138
|
+
<expand name="user-dialog>
|
|
139
|
+
Next Step: How would you like to proceed with the plan?
|
|
140
|
+
DONE: Stop processing.
|
|
141
|
+
EDIT: Hand processing off to editing.
|
|
142
|
+
</expand>
|
|
143
|
+
|
|
144
|
+
2. Check the tool <result/> and dispatch accordingly:
|
|
145
|
+
|
|
146
|
+
- If <result/> is `DONE` or `CANCEL`:
|
|
147
|
+
Only output the following <template/> and then *STOP*.
|
|
148
|
+
|
|
149
|
+
<template>
|
|
150
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- done**
|
|
151
|
+
</template>
|
|
152
|
+
|
|
153
|
+
- If <result/> is `EDIT`:
|
|
154
|
+
Only output the following <template/> and then use the
|
|
155
|
+
`Skill` tool to invoke the `ase:ase-task-edit` skill
|
|
156
|
+
in order to *edit* the updated plan. Immediately stop
|
|
157
|
+
processing the current skill once the `Skill` tool was used.
|
|
158
|
+
|
|
159
|
+
<template>
|
|
160
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- hand-off to edit**
|
|
161
|
+
</template>
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ase-task-view
|
|
3
|
+
argument-hint: "[<id>]"
|
|
4
|
+
description: >
|
|
5
|
+
View current or given task plan.
|
|
6
|
+
Use when the user calls to "view", "show" or "see" the
|
|
7
|
+
"task", "plan", "spec", or "specification".
|
|
8
|
+
user-invocable: true
|
|
9
|
+
disable-model-invocation: false
|
|
10
|
+
effort: low
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
|
|
14
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
15
|
+
|
|
16
|
+
View a Task Plan
|
|
17
|
+
================
|
|
18
|
+
|
|
19
|
+
<skill name="ase-task-view">
|
|
20
|
+
View a Task Plan
|
|
21
|
+
</skill>
|
|
22
|
+
|
|
23
|
+
Your role is an experienced, *expert-level assistant*.
|
|
24
|
+
*View* the task plan.
|
|
25
|
+
|
|
26
|
+
Procedure
|
|
27
|
+
---------
|
|
28
|
+
|
|
29
|
+
You *MUST* follow the following numbered items *strictly* *sequentially*!
|
|
30
|
+
You *MUST* not skip any numbered item during processing!
|
|
31
|
+
|
|
32
|
+
You *MUST* *NOT* output anything in this entire procedure, *except* when
|
|
33
|
+
explicitly requested by this procedure via outputs based on a <template/>!
|
|
34
|
+
|
|
35
|
+
1. **Determine Task:**
|
|
36
|
+
|
|
37
|
+
1. Set <id>$ARGUMENTS</id> initially.
|
|
38
|
+
Inherit the always existing <ase-task-id/> from the current context.
|
|
39
|
+
Do not output anything.
|
|
40
|
+
|
|
41
|
+
2. <if condition="<id/> is empty">
|
|
42
|
+
Set <id><ase-task-id/></id>
|
|
43
|
+
Do not output anything.
|
|
44
|
+
</if>
|
|
45
|
+
|
|
46
|
+
2. **Perform Operation**:
|
|
47
|
+
|
|
48
|
+
1. Call the `task_load(id: <id/>)` tool of the `ase` MCP
|
|
49
|
+
service to load the task plan content and set <text/> to the
|
|
50
|
+
`text` output field of this `task_load` tool call. Do not
|
|
51
|
+
output anything related to this MCP tool call.
|
|
52
|
+
|
|
53
|
+
- If <text/> starts with `ERROR:` or `WARNING:`:
|
|
54
|
+
Set <content></content> (set content to empty).
|
|
55
|
+
Only output the following <template/>:
|
|
56
|
+
|
|
57
|
+
<template>
|
|
58
|
+
⧉ **ASE**: ◉ task: **<id/>**, ▶ status: **<text/>**
|
|
59
|
+
</template>
|
|
60
|
+
|
|
61
|
+
- If <text/> starts NOT with `ERROR:`:
|
|
62
|
+
Set <content><text/></content> (set content to text).
|
|
63
|
+
Calculate the number of words <words/> of <content/>.
|
|
64
|
+
Only output the following <template/>:
|
|
65
|
+
|
|
66
|
+
<template>
|
|
67
|
+
⧉ **ASE**: ◉ task: **<id/>**, ✪ plan: **<words/>** words, ▶ status: **plan loaded**
|
|
68
|
+
</template>
|
|
69
|
+
|
|
70
|
+
2. <if condition="<content/> is not empty">
|
|
71
|
+
*Render plan*: Only output the following <template/>, so the user
|
|
72
|
+
can read the plan and react to it. Do *not* truncate, summarize,
|
|
73
|
+
or partially show the plan -- always show the complete plan
|
|
74
|
+
<content/> here:.
|
|
75
|
+
|
|
76
|
+
<template>
|
|
77
|
+
⧉ **ASE**: ┈┈┈┈┈┈┈┈────────━━━━━━━━**(** `TASK-PLAN-BEGIN` **)**━━━━━━━━────────┈┈┈┈┈┈┈┈
|
|
78
|
+
<content/>
|
|
79
|
+
⧉ **ASE**: ┈┈┈┈┈┈┈┈────────━━━━━━━━**(** `TASK-PLAN-END` **)**━━━━━━━━────────┈┈┈┈┈┈┈┈
|
|
80
|
+
</template>
|
|
81
|
+
</if>
|