@rse/ase 0.0.48 → 0.0.50
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-config.js +1 -4
- package/dst/ase-diagram.js +3 -3
- package/dst/ase-getopt.js +3 -3
- package/dst/ase-hook.js +86 -33
- package/dst/ase-mcp.js +26 -20
- package/dst/ase-service.js +8 -2
- package/dst/ase-statusline.js +19 -23
- package/dst/ase-task.js +60 -1
- 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-code-lint.md +370 -0
- package/plugin/agents/ase-docs-proofread.md +100 -0
- package/plugin/agents/ase-meta-chat.md +38 -5
- package/plugin/agents/ase-meta-diagram.md +60 -0
- package/plugin/agents/ase-meta-search.md +3 -5
- package/plugin/meta/ase-persona.md +1 -1
- package/plugin/meta/ase-skill.md +7 -5
- package/plugin/package.json +1 -1
- package/plugin/skills/ase-arch-analyze/SKILL.md +8 -7
- package/plugin/skills/ase-code-analyze/SKILL.md +2 -2
- package/plugin/skills/ase-code-craft/SKILL.md +12 -8
- package/plugin/skills/ase-code-explain/SKILL.md +7 -5
- package/plugin/skills/ase-code-insight/SKILL.md +7 -4
- package/plugin/skills/ase-code-lint/SKILL.md +179 -298
- package/plugin/skills/ase-code-refactor/SKILL.md +11 -7
- package/plugin/skills/ase-code-resolve/SKILL.md +18 -11
- package/plugin/skills/ase-docs-proofread/SKILL.md +29 -103
- package/plugin/skills/ase-meta-chat/SKILL.md +22 -38
- package/plugin/skills/ase-meta-evaluate/SKILL.md +1 -1
- package/plugin/skills/ase-meta-persona/SKILL.md +1 -1
- package/plugin/skills/ase-meta-quorum/SKILL.md +58 -27
- package/plugin/skills/ase-meta-search/SKILL.md +39 -13
- package/plugin/skills/ase-task-rename/SKILL.md +92 -0
- package/plugin/skills/ase-meta-diagram/SKILL.md +0 -101
|
@@ -48,96 +48,25 @@ documents.
|
|
|
48
48
|
⚪ **PROOFREADING INVESTIGATION**
|
|
49
49
|
</template>
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
Dispatch the investigation to a *sub-agent* via the `Agent`
|
|
52
52
|
tool so that *no* investigation details leak into the user-visible
|
|
53
53
|
transcript. The sub-agent performs the silent reading and checking;
|
|
54
54
|
only its final structured return value is consumed here.
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
- `subagent_type`: `general-purpose`
|
|
59
|
-
- `description`: `Proofread Investigation`
|
|
60
|
-
- `prompt`: a *self-contained* briefing, instructing the sub-agent to:
|
|
61
|
-
|
|
62
|
-
1. Use the `Read` tool to read all document files referenced
|
|
63
|
-
by <getopt-arguments/>.
|
|
64
|
-
|
|
65
|
-
2. Check the contained texts *only* for the following problem
|
|
66
|
-
types:
|
|
67
|
-
|
|
68
|
-
- **Spelling**
|
|
69
|
-
- **Punctuation**
|
|
70
|
-
- **Grammar**
|
|
71
|
-
|
|
72
|
-
Do *NOT* flag stylistic preferences, Markdown formatting
|
|
73
|
-
choices, code/identifiers, XML/template tags, technical
|
|
74
|
-
terms, intentional capitalization, list/heading style, or
|
|
75
|
-
anything inside fenced code blocks or backtick spans. Be
|
|
76
|
-
conservative — only report clear, objective errors.
|
|
77
|
-
|
|
78
|
-
For each found problem:
|
|
79
|
-
|
|
80
|
-
- Set <type/> to the string `SPELLING`, `PUNCTUATION`, or
|
|
81
|
-
`GRAMMAR`, indicating the problem type.
|
|
82
|
-
|
|
83
|
-
- Set <file/> to the *relative* filename path of the document.
|
|
84
|
-
Set <line/> to the numeric 1-based line number in the
|
|
85
|
-
document.
|
|
86
|
-
|
|
87
|
-
- Set <old-text/> to the lines of the old text which
|
|
88
|
-
should be changed. Set <new-text/> to the lines of the
|
|
89
|
-
new text which will be changed.
|
|
90
|
-
|
|
91
|
-
- Set <description/> to an ultra-brief and concise
|
|
92
|
-
Markdown-formatted description of the problem with
|
|
93
|
-
a hint of what is wrong and why it is wrong. In
|
|
94
|
-
this description, mark up all referenced verbatim
|
|
95
|
-
words <words/> from <old-text/> or <new-text/> as
|
|
96
|
-
quoted strings containing monospaced text with
|
|
97
|
-
Markdown based on the following <template/>:
|
|
98
|
-
<template>"`<words/>`"</template>.
|
|
99
|
-
|
|
100
|
-
- Set <context-before/> to exactly *up to two* lines of
|
|
101
|
-
*unchanged* text context which occurs in the document
|
|
102
|
-
directly *before* <old-text/>, i.e., the lines (<line/> -
|
|
103
|
-
2) and (<line/> - 1). Reduce to just one line (<line/> -
|
|
104
|
-
1) if <old-text/> is the second line of the document. Set
|
|
105
|
-
<context-before/> to empty if <old-text/> is the first line in
|
|
106
|
-
the document.
|
|
107
|
-
|
|
108
|
-
- Set <context-after/> to exactly *up to two* lines of
|
|
109
|
-
*unchanged* text content which occurs in the document
|
|
110
|
-
directly *after* <old-text/> the lines (<line/> + <n/> + 1)
|
|
111
|
-
and (<line/> + <n/> + 2), where <n/> is the number of lines
|
|
112
|
-
in <old-text/>. Reduce to just one line (<line/> + <n/> + 1)
|
|
113
|
-
if <old-text/> is the second-last line of the document. Set
|
|
114
|
-
<context-after/> to empty if <old-text/> is the last line in
|
|
115
|
-
the document.
|
|
116
|
-
|
|
117
|
-
3. Return *exclusively* a single fenced JSON block (no prose,
|
|
118
|
-
no preamble, no summary) of the following shape:
|
|
119
|
-
|
|
120
|
-
```json
|
|
121
|
-
[
|
|
122
|
-
{
|
|
123
|
-
"type": <type/>,
|
|
124
|
-
"file": <file/>,
|
|
125
|
-
"line": <line/>,
|
|
126
|
-
"description": <description/>,
|
|
127
|
-
"context_before": <context-before/>,
|
|
128
|
-
"old_text": <old-text/>,
|
|
129
|
-
"new_text": <new-text/>,
|
|
130
|
-
"context_after": <context-after/>
|
|
131
|
-
},
|
|
132
|
-
[...]
|
|
133
|
-
]
|
|
134
|
-
```
|
|
56
|
+
For this, invoke *exactly once* the tool:
|
|
135
57
|
|
|
136
|
-
|
|
137
|
-
|
|
58
|
+
```text
|
|
59
|
+
Agent(
|
|
60
|
+
name: "ase:ase-docs-proofread",
|
|
61
|
+
description: "Proofread Investigation",
|
|
62
|
+
subagent_type: "ase:ase-docs-proofread",
|
|
63
|
+
mode: "plan",
|
|
64
|
+
prompt: <getopt-arguments/>
|
|
65
|
+
)
|
|
66
|
+
```
|
|
138
67
|
|
|
139
|
-
Parse the
|
|
140
|
-
<problems/> to that list.
|
|
68
|
+
Parse the single result message of the `Agent` tool as a JSON array
|
|
69
|
+
and set <problems/> to that list.
|
|
141
70
|
|
|
142
71
|
You *MUST* *NOT* output anything at all in this step 1 beyond the
|
|
143
72
|
single `Agent` tool invocation.
|
|
@@ -169,11 +98,9 @@ documents.
|
|
|
169
98
|
|
|
170
99
|
3. <step id="STEP 3: Correction">
|
|
171
100
|
|
|
172
|
-
1. You *MUST*
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
"agent.skill", val: "ase-docs-proofread", scope:
|
|
176
|
-
"session:<ase-session-id/>")` of the `ase` service.
|
|
101
|
+
1. You *MUST* call the MCP tool `config_set(key: "agent.skill", val:
|
|
102
|
+
"ase-docs-proofread", scope: "session:<ase-session-id/>")` of the
|
|
103
|
+
`ase` MCP server.
|
|
177
104
|
|
|
178
105
|
2. Iterate over all problems:
|
|
179
106
|
|
|
@@ -230,7 +157,6 @@ documents.
|
|
|
230
157
|
<expand name="user-dialog">
|
|
231
158
|
CORRECTION: How would you like to proceed with this proposed correction?
|
|
232
159
|
ACCEPT: Apply the proposed correction.
|
|
233
|
-
REFINE: Discard this proposed correction and generate a new one.
|
|
234
160
|
REJECT: Skip this proposed correction.
|
|
235
161
|
</expand>
|
|
236
162
|
|
|
@@ -253,15 +179,12 @@ documents.
|
|
|
253
179
|
|
|
254
180
|
</if>
|
|
255
181
|
|
|
256
|
-
- <if condition="
|
|
257
|
-
<result/> starts with 'REFINE' or
|
|
258
|
-
<result/> starts with 'OTHER'
|
|
259
|
-
">
|
|
182
|
+
- <if condition="<result/> starts with 'OTHER'">
|
|
260
183
|
|
|
261
|
-
Generate a *new* proposal for the *same* <item
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
184
|
+
Generate a *new* proposal for the *same* <item/>,
|
|
185
|
+
incorporating the user's free-text hint from <result/>
|
|
186
|
+
after the "OTHER:" prefix, and loop back to substep 2 of
|
|
187
|
+
this iteration. There is *no* cap on refinement rounds —
|
|
265
188
|
keep refining until the user picks `ACCEPT` or `REJECT`.
|
|
266
189
|
|
|
267
190
|
</if>
|
|
@@ -279,13 +202,16 @@ documents.
|
|
|
279
202
|
|
|
280
203
|
</for>
|
|
281
204
|
|
|
282
|
-
3.
|
|
283
|
-
|
|
284
|
-
"agent.skill", scope: "session:<ase-session-id/>")` of the `ase`
|
|
285
|
-
service.
|
|
205
|
+
3. You *MUST* call the MCP tool `config_delete(key: "agent.skill",
|
|
206
|
+
scope: "session:<ase-session-id/>")` of the `ase` MCP server.
|
|
286
207
|
|
|
287
208
|
4. You *MUST* *NOT* output any further additional explanations or
|
|
288
|
-
summaries at the end of this skill processing
|
|
209
|
+
summaries at the end of this skill processing, except for the
|
|
210
|
+
following final <template/>:
|
|
211
|
+
|
|
212
|
+
<template>
|
|
213
|
+
⚪ **PROOFREAD FINISHED**
|
|
214
|
+
</template>
|
|
289
215
|
|
|
290
216
|
</step>
|
|
291
217
|
|
|
@@ -2,64 +2,48 @@
|
|
|
2
2
|
name: ase-meta-chat
|
|
3
3
|
argument-hint: "<llm> <query>"
|
|
4
4
|
description: >
|
|
5
|
-
Query foreign LLM for
|
|
5
|
+
Query foreign LLM for chat.
|
|
6
6
|
Use this skill if a foreign LLM like OpenAI ChatGPT, Google Gemini,
|
|
7
7
|
DeepSeek or xAI Grok should be queried with a single chat message.
|
|
8
8
|
user-invocable: true
|
|
9
9
|
disable-model-invocation: false
|
|
10
|
-
context: fork
|
|
11
10
|
effort: low
|
|
12
11
|
allowed-tools:
|
|
13
|
-
- "mcp__chat-openai-chatgpt"
|
|
14
|
-
- "mcp__chat-google-gemini"
|
|
15
|
-
- "mcp__chat-deepseek"
|
|
16
|
-
- "mcp__chat-xai-grok"
|
|
17
|
-
- "Task"
|
|
18
12
|
- "Agent"
|
|
19
13
|
---
|
|
20
14
|
|
|
21
15
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
22
16
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
23
17
|
|
|
24
|
-
Query Foreign
|
|
25
|
-
|
|
18
|
+
Query Foreign LLM for Chat
|
|
19
|
+
==========================
|
|
26
20
|
|
|
27
21
|
<skill name="ase-meta-chat">
|
|
28
|
-
Query Foreign
|
|
22
|
+
Query Foreign LLM for Chat
|
|
29
23
|
</skill>
|
|
30
24
|
|
|
25
|
+
<role>
|
|
31
26
|
Your role is to act as a proxy to query a foreign LLM for a single chat message.
|
|
27
|
+
</role>
|
|
32
28
|
|
|
33
29
|
<objective>
|
|
34
30
|
Query foreign LLM for: <query>$ARGUMENTS</query>
|
|
35
31
|
</objective>
|
|
36
32
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
foreign LLMs, and pass the *second and all remaining* words of the
|
|
54
|
-
following <query/> as the query for the selected LLM.
|
|
55
|
-
</step>
|
|
56
|
-
|
|
57
|
-
3. <step id="STEP 3: Return Responses">
|
|
58
|
-
Return the *plain response* of the `ase-meta-chat` agent 1:1 and
|
|
59
|
-
*without any modifications*. Especially, do *NOT* add or remove any
|
|
60
|
-
text from the agent response on your own and do not interpret the
|
|
61
|
-
result in any way.
|
|
62
|
-
</step>
|
|
63
|
-
|
|
64
|
-
</flow>
|
|
33
|
+
1. You *MUST* *NOT* output anything in this step.
|
|
34
|
+
Just call the underlying agent with the following tool:
|
|
35
|
+
|
|
36
|
+
```text
|
|
37
|
+
Agent(
|
|
38
|
+
name: "ase:ase-meta-chat",
|
|
39
|
+
description: "Query Foreign LLM for Chat",
|
|
40
|
+
subagent_type: "ase:ase-meta-chat",
|
|
41
|
+
prompt: <query/>
|
|
42
|
+
)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
2. Output the *plain response* of the `ase:ase-meta-chat` agent
|
|
46
|
+
*verbatim* and *without any modifications*. Especially, do *NOT* add or
|
|
47
|
+
remove any text from the agent response on your own and do not interpret
|
|
48
|
+
the result in any way.
|
|
65
49
|
|
|
@@ -248,7 +248,7 @@ multi-*criteria* decision matrix.
|
|
|
248
248
|
⚠ *ATTENTION: all alternatives rate negatively; this is the least-bad choice, not a strong winner!*
|
|
249
249
|
</template>
|
|
250
250
|
|
|
251
|
-
- Otherwise (<percentage/> is greater than or equal 0.10), output
|
|
251
|
+
- Otherwise (<percentage/> is greater than or equal to 0.10), output
|
|
252
252
|
just the following <template/> and do not output anything else:
|
|
253
253
|
|
|
254
254
|
<template>
|
|
@@ -6,7 +6,7 @@ description: >
|
|
|
6
6
|
The <persona> can be either the decorative, eloquent, and explaining "writer",
|
|
7
7
|
the concise, factual, and accurate "engineer" (default),
|
|
8
8
|
the brief, factual, and abbreviating "telegrapher",
|
|
9
|
-
the terse, rough and stuttering "caveman".
|
|
9
|
+
the terse, rough, and stuttering "caveman".
|
|
10
10
|
Use when user says "persona <persona>" or "be <persona>".
|
|
11
11
|
user-invocable: true
|
|
12
12
|
disable-model-invocation: false
|
|
@@ -21,7 +21,9 @@ Query Multiple AIs for Quorum Answer
|
|
|
21
21
|
Query Multiple AIs for Quorum Answer
|
|
22
22
|
</skill>
|
|
23
23
|
|
|
24
|
+
<role>
|
|
24
25
|
Your role is an *expert-level assistant*.
|
|
26
|
+
</role>
|
|
25
27
|
|
|
26
28
|
<objective>
|
|
27
29
|
Find a *quorum answer* on an arbitrary question,
|
|
@@ -29,11 +31,12 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
29
31
|
</objective>
|
|
30
32
|
|
|
31
33
|
<flow>
|
|
32
|
-
1. <step id="STEP 1: Determine Own Answer">
|
|
33
|
-
Determine your own answer.
|
|
34
|
-
For yourself (Anthropic Claude), first answer the following <query/> in advance:
|
|
35
34
|
|
|
36
|
-
|
|
35
|
+
1. <step id="STEP 1: Preview Own Answer">
|
|
36
|
+
|
|
37
|
+
Prepare the LLM query by setting <query/> to the following <template/>:
|
|
38
|
+
|
|
39
|
+
<template>
|
|
37
40
|
$ARGUMENTS.
|
|
38
41
|
Please respond with facts and very concise and brief only,
|
|
39
42
|
usually with just 1 to 7 corresponding bullet points and with short sentences.
|
|
@@ -41,55 +44,80 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
41
44
|
Beside bullet points, do not provide any additional explanations.
|
|
42
45
|
Emphasize keywords or cruxes in your response with Markdown formatting.
|
|
43
46
|
Format code parts with Markdown formatting.
|
|
44
|
-
</
|
|
45
|
-
</step>
|
|
47
|
+
</template>
|
|
46
48
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
For this,
|
|
49
|
+
For yourself (Anthropic Claude), first answer this <query/> in
|
|
50
|
+
advance yourself by showing your own answer to the query as a sneak
|
|
51
|
+
preview. For this, output the following <template/>:
|
|
50
52
|
|
|
51
53
|
<template>
|
|
52
54
|
**Anthropic Claude** (sneak preview in advance):
|
|
53
55
|
- [...]
|
|
54
56
|
- [...]
|
|
55
57
|
</template>
|
|
58
|
+
|
|
56
59
|
</step>
|
|
57
60
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
the `
|
|
62
|
-
|
|
61
|
+
2. <step id="STEP 2: Query Foreign AIs">
|
|
62
|
+
|
|
63
|
+
<define name="agent">
|
|
64
|
+
Call the `Agent` tool:
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
Agent(
|
|
68
|
+
name: "ase:ase-meta-chat",
|
|
69
|
+
description: "Query Foreign LLM: <arg1/>",
|
|
70
|
+
subagent_type: "ase:ase-meta-chat",
|
|
71
|
+
prompt: "<arg2/> <query/>"
|
|
72
|
+
)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
</define>
|
|
76
|
+
|
|
77
|
+
<expand name="agent" arg1="OpenAI ChatGPT" arg2="chatgpt"></expand>
|
|
78
|
+
<expand name="agent" arg1="Google Gemini" arg2="gemini"></expand>
|
|
79
|
+
<expand name="agent" arg1="DeepSeek" arg2="deepseek"></expand>
|
|
80
|
+
<expand name="agent" arg1="xAI Grok" arg2="grok"></expand>
|
|
63
81
|
|
|
64
|
-
|
|
65
|
-
- Google Gemini: `chat-google-gemini`
|
|
66
|
-
- DeepSeek: `chat-deepseek`
|
|
67
|
-
- xAI Grok: `chat-xai-grok`
|
|
82
|
+
You *MUST* *NOT* output anything in this step.
|
|
68
83
|
|
|
69
|
-
Silently skip those AIs where the corresponding MCP server is not available.
|
|
70
84
|
</step>
|
|
71
85
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
86
|
+
3. <step id="STEP 3: Summarize Responses">
|
|
87
|
+
|
|
88
|
+
Agents which returned a response with an `ERROR:` prefix are
|
|
89
|
+
silently skipped and are treatd as not available.
|
|
90
|
+
|
|
91
|
+
Summarize all responses, of both yourself and all available agents
|
|
92
|
+
with just 1 to 7 corresponding bullet points and with short
|
|
93
|
+
sentences.
|
|
94
|
+
|
|
95
|
+
You *MUST* *NOT* output anything in this step.
|
|
96
|
+
|
|
75
97
|
</step>
|
|
76
98
|
|
|
77
|
-
|
|
99
|
+
4. <step id="STEP 4: Determine Consensus Rating">
|
|
100
|
+
|
|
78
101
|
Determine, on a Likert scale of 0..<n/>, the amount of the overall
|
|
79
102
|
consensus <c/> of all the responses. The <n/> is the *total number of
|
|
80
103
|
responders* (yourself plus all available foreign AIs above).
|
|
81
104
|
If all responses disagree, the consensus <c/> is zero.
|
|
82
105
|
If all responses agree, <c/> is <n/>.
|
|
83
106
|
|
|
84
|
-
If not all AIs agree, determine
|
|
107
|
+
If not all AIs agree, determine <disagreement/> information,
|
|
85
108
|
formatted as `(disagreement: <ai/>, <ai/>, [...])` where <ai/> is a
|
|
86
109
|
name of an AI which disagreed with the consensus. Else, if all AIs
|
|
87
110
|
agree, set <disagreement></disagreement>.
|
|
111
|
+
|
|
112
|
+
You *MUST* *NOT* output anything in this step.
|
|
113
|
+
|
|
88
114
|
</step>
|
|
89
115
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
116
|
+
5. <step id="STEP 5: Show Results">
|
|
117
|
+
|
|
118
|
+
Finally show the summary, the consensus and the complete and
|
|
119
|
+
unmodified responses of yourself and each of the MCP servers, based
|
|
120
|
+
on the following output <template/>:
|
|
93
121
|
|
|
94
122
|
<template>
|
|
95
123
|
**QUESTION**:
|
|
@@ -123,6 +151,9 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
123
151
|
</template>
|
|
124
152
|
|
|
125
153
|
In this output, remove the sections of those AIs which were not available.
|
|
154
|
+
You *MUST* *NOT* output any further explanations yourself.
|
|
155
|
+
|
|
126
156
|
</step>
|
|
157
|
+
|
|
127
158
|
</flow>
|
|
128
159
|
|
|
@@ -10,9 +10,7 @@ effort: low
|
|
|
10
10
|
allowed-tools:
|
|
11
11
|
- "mcp__perplexity__perplexity_search"
|
|
12
12
|
- "mcp__brave__brave_web_search"
|
|
13
|
-
- "
|
|
14
|
-
- "WebFetch"
|
|
15
|
-
- "Task"
|
|
13
|
+
- "Agent"
|
|
16
14
|
---
|
|
17
15
|
|
|
18
16
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
@@ -25,7 +23,9 @@ Search the Internet/Web
|
|
|
25
23
|
Search the Internet/Web
|
|
26
24
|
</skill>
|
|
27
25
|
|
|
26
|
+
<role>
|
|
28
27
|
Your role is an expert-level *web specialist*.
|
|
28
|
+
</role>
|
|
29
29
|
|
|
30
30
|
<objective>
|
|
31
31
|
Your objective is to *search* the *Internet*/*Web* for the following query:
|
|
@@ -33,20 +33,46 @@ Your objective is to *search* the *Internet*/*Web* for the following query:
|
|
|
33
33
|
</objective>
|
|
34
34
|
|
|
35
35
|
<flow>
|
|
36
|
-
1. <step id="STEP 1: QUERY SERVICES">
|
|
37
|
-
If the MCP tool `mcp__perplexity__perplexity_search` is available, send <query/> to it
|
|
38
|
-
via a first *sub-task* and our companion `ase-meta-search` *agent*.
|
|
39
36
|
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
1. <step id="STEP 1: Query Search Services">
|
|
38
|
+
|
|
39
|
+
<define name="agent">
|
|
40
|
+
```text
|
|
41
|
+
Agent(
|
|
42
|
+
name: "ase:ase-meta-search",
|
|
43
|
+
description: "Query Web Search Service",
|
|
44
|
+
subagent_type: "ase:ase-meta-search",
|
|
45
|
+
prompt: <content/>
|
|
46
|
+
)
|
|
47
|
+
```
|
|
48
|
+
</define>
|
|
49
|
+
|
|
50
|
+
If the MCP tool `mcp__perplexity__perplexity_search` is available, call:
|
|
51
|
+
<expand name="agent">
|
|
52
|
+
Call the MCP tool `mcp__perplexity__perplexity_search(query: "<query/>")`
|
|
53
|
+
</expand>
|
|
54
|
+
|
|
55
|
+
If the MCP tool `mcp__brave__brave_web_search` is available, call:
|
|
56
|
+
<expand name="agent">
|
|
57
|
+
Call the MCP tool `mcp__brave__brave_web_search(query: "<query/>")`
|
|
58
|
+
</expand>
|
|
59
|
+
|
|
60
|
+
<expand name="agent">
|
|
61
|
+
Call the tool `WebSearch(query: "<query/>")`
|
|
62
|
+
</expand>
|
|
42
63
|
|
|
43
|
-
Send <query/> to the built-in tool `WebSearch`
|
|
44
|
-
via a third *sub-task* and our companion `ase-meta-search` *agent*.
|
|
45
64
|
</step>
|
|
46
65
|
|
|
47
|
-
2. <step id="STEP 2:
|
|
48
|
-
|
|
49
|
-
|
|
66
|
+
2. <step id="STEP 2: Consolidate Search Answers">
|
|
67
|
+
|
|
68
|
+
Consolidate all responses from the `ase:ase-meta-search` agents
|
|
69
|
+
calls above into a single response and output it without giving any
|
|
70
|
+
further explanations.
|
|
71
|
+
|
|
72
|
+
For the consolidation, do *NOT* remove any orginal information,
|
|
73
|
+
just *MERGE* all overlapping information.
|
|
74
|
+
|
|
50
75
|
</step>
|
|
76
|
+
|
|
51
77
|
</flow>
|
|
52
78
|
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ase-task-rename
|
|
3
|
+
argument-hint: "[<old>] <new>"
|
|
4
|
+
description: >
|
|
5
|
+
Rename the current or given task plan.
|
|
6
|
+
Use when the user calls to "rename", "move" or "relabel" 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-control.md
|
|
14
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
15
|
+
|
|
16
|
+
Rename a Task Plan
|
|
17
|
+
==================
|
|
18
|
+
|
|
19
|
+
<skill name="ase-task-rename">
|
|
20
|
+
Rename a Task Plan
|
|
21
|
+
</skill>
|
|
22
|
+
|
|
23
|
+
Your role is an experienced, *expert-level assistant*.
|
|
24
|
+
*Rename* 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. Parse <arguments>$ARGUMENTS</arguments> into a whitespace-separated
|
|
38
|
+
list of tokens. Inherit the always existing <ase-task-id/> from
|
|
39
|
+
the current context. Do not output anything.
|
|
40
|
+
|
|
41
|
+
2. <if condition="<arguments/> contains two tokens">
|
|
42
|
+
Set <old/> to the first token of <arguments/>.
|
|
43
|
+
Set <new/> to the second token of <arguments/>.
|
|
44
|
+
Do not output anything.
|
|
45
|
+
</if>
|
|
46
|
+
|
|
47
|
+
3. <if condition="<arguments/> contains exactly one token">
|
|
48
|
+
Set <old><ase-task-id/></old>.
|
|
49
|
+
Set <new/> to the single token of <arguments/>.
|
|
50
|
+
Do not output anything.
|
|
51
|
+
</if>
|
|
52
|
+
|
|
53
|
+
4. <if condition="<arguments/> is empty OR contains more than two tokens">
|
|
54
|
+
Only output the following <template/> and then immediately
|
|
55
|
+
*STOP* processing the entire current skill:
|
|
56
|
+
|
|
57
|
+
<template>
|
|
58
|
+
⧉ **ASE**: ☻ skill: **ase-task-rename**, ▶ ERROR: expected `[<old>] <new>` arguments
|
|
59
|
+
</template>
|
|
60
|
+
</if>
|
|
61
|
+
|
|
62
|
+
2. **Perform Operation**:
|
|
63
|
+
|
|
64
|
+
1. Call the `task_rename(old: <old/>, new: <new/>)` tool of the
|
|
65
|
+
`ase` MCP service to rename the task plan and set <text/> to the
|
|
66
|
+
`text` output field of this `task_rename` tool call. Do not
|
|
67
|
+
output anything related to this MCP tool call.
|
|
68
|
+
|
|
69
|
+
- If <text/> starts with `ERROR:` or `WARNING:`:
|
|
70
|
+
Only output the following <template/>:
|
|
71
|
+
|
|
72
|
+
<template>
|
|
73
|
+
⧉ **ASE**: ◉ task: **<old/>**, ▶ status: **<text/>**
|
|
74
|
+
</template>
|
|
75
|
+
|
|
76
|
+
- If <text/> starts NOT with `ERROR:` and NOT with `WARNING:`:
|
|
77
|
+
Only output the following <template/>:
|
|
78
|
+
|
|
79
|
+
<template>
|
|
80
|
+
⧉ **ASE**: ◉ task: **<new/>**, ▶ status: **task renamed**
|
|
81
|
+
</template>
|
|
82
|
+
|
|
83
|
+
2. <if condition="<old/> is equal <ase-task-id/>">
|
|
84
|
+
Set <ase-task-id><new/></ase-task-id>. Call the `task_id(id:
|
|
85
|
+
<ase-task-id/>, session: <ase-session-id/>)` tool from the `ase`
|
|
86
|
+
MCP service to switch the task to the renamed task. Only output
|
|
87
|
+
the following <template/>:
|
|
88
|
+
|
|
89
|
+
<template>
|
|
90
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task switched**
|
|
91
|
+
</template>
|
|
92
|
+
</if>
|