@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,299 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ase-code-resolve
|
|
3
|
+
argument-hint: "[<task-id>:] <problem>"
|
|
4
|
+
description: >
|
|
5
|
+
Resolve Problem:
|
|
6
|
+
Use when user wants a bug fixed or problem resolved.
|
|
7
|
+
user-invocable: true
|
|
8
|
+
disable-model-invocation: false
|
|
9
|
+
effort: high
|
|
10
|
+
allowed-tools:
|
|
11
|
+
- "Skill"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
|
|
15
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
16
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md
|
|
17
|
+
|
|
18
|
+
Resolve Problem
|
|
19
|
+
===============
|
|
20
|
+
|
|
21
|
+
<skill name="ase-code-resolve">
|
|
22
|
+
Resolve Problem
|
|
23
|
+
</skill>
|
|
24
|
+
|
|
25
|
+
<role>
|
|
26
|
+
Your role is an experienced, *expert-level software developer*.
|
|
27
|
+
</role>
|
|
28
|
+
|
|
29
|
+
<objective>
|
|
30
|
+
*Resolve* the following problem:
|
|
31
|
+
<problem>$ARGUMENTS</problem>
|
|
32
|
+
</objective>
|
|
33
|
+
|
|
34
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-plan.md
|
|
35
|
+
|
|
36
|
+
Procedure
|
|
37
|
+
---------
|
|
38
|
+
|
|
39
|
+
You *MUST* follow the following numbered items *strictly* *sequentially*!
|
|
40
|
+
You *MUST* not skip any numbered item during processing!
|
|
41
|
+
|
|
42
|
+
You *MUST* *NOT* output anything in this entire procedure, *except* when
|
|
43
|
+
explicitly requested by this procedure via outputs based on a <template/>!
|
|
44
|
+
|
|
45
|
+
1. **Reason About Problem**:
|
|
46
|
+
|
|
47
|
+
1. If <problem/> matches the regexp `^[PT]\d+$` (i.e. a bare issue
|
|
48
|
+
identifier like `P1`, `P2`, `T1`, `T2`, ...), set
|
|
49
|
+
<problem-id><problem/></problem-id>, call the `task_id(id:
|
|
50
|
+
<ase-task-id/>, session: <ase-session-id/>)` tool from the `ase`
|
|
51
|
+
MCP service to implicitly switch the task, and then call the
|
|
52
|
+
`kv_get(key: "ase-issue-<problem-id/>")` tool
|
|
53
|
+
of the `ase` MCP service to retrieve the previously persisted
|
|
54
|
+
problem description. If the returned `text` is non-empty, set
|
|
55
|
+
<problem><text/></problem>, otherwise complain to the user that
|
|
56
|
+
no analyzer result exists for <problem-id/> and stop processing.
|
|
57
|
+
|
|
58
|
+
2. <if condition="
|
|
59
|
+
<problem/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
|
|
60
|
+
">
|
|
61
|
+
Set <ase-task-id><problem/></ase-task-id> (set task id to problem)
|
|
62
|
+
and <problem></problem> (set problem empty), call the
|
|
63
|
+
`task_id(id: <ase-task-id/>, session: <ase-session-id/>)` tool
|
|
64
|
+
from the `ase` MCP service to switch the task, and then only
|
|
65
|
+
output the following <template/>:
|
|
66
|
+
|
|
67
|
+
<template>
|
|
68
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task given**
|
|
69
|
+
</template>
|
|
70
|
+
</if>
|
|
71
|
+
|
|
72
|
+
3. If <problem/> has the format `<id/>: <text/>` where <id/> matches
|
|
73
|
+
the regexp `^[a-zA-Z][a-zA-Z0-9_-]+$`, then set
|
|
74
|
+
<problem><text/></problem> and <ase-task-id><id/></ase-task-id>
|
|
75
|
+
and call the `task_id(id: <ase-task-id/>, session:
|
|
76
|
+
<ase-session-id/>)` tool from the `ase` MCP service to
|
|
77
|
+
implicitly switch the task.
|
|
78
|
+
|
|
79
|
+
4. If <problem/> is empty,
|
|
80
|
+
ask the user interactively, without a special tool, for the
|
|
81
|
+
initial problem with a single question:
|
|
82
|
+
|
|
83
|
+
`**No problem details known yet. What is the problem you want to resolve?**`
|
|
84
|
+
|
|
85
|
+
Then set <problem/> to the response of the user.
|
|
86
|
+
|
|
87
|
+
5. Report the task and problem with the following <template/>:
|
|
88
|
+
|
|
89
|
+
<template>
|
|
90
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**
|
|
91
|
+
⧉ **ASE**: ⇌ problem: **<problem/>**
|
|
92
|
+
</template>
|
|
93
|
+
|
|
94
|
+
6. Figure out what the requested <problem/> is about.
|
|
95
|
+
|
|
96
|
+
7. Ask the user for clarification if the goal of this resolution is
|
|
97
|
+
too unclear.
|
|
98
|
+
|
|
99
|
+
8. Do not output anything in this step, except you asked the user.
|
|
100
|
+
|
|
101
|
+
9. Investigate and *figure out details* related to this problem.
|
|
102
|
+
Report those details with the following <template/>:
|
|
103
|
+
|
|
104
|
+
<template>
|
|
105
|
+
🟠 **PROBLEM CONTEXT**: *<context/>*
|
|
106
|
+
<affected-code-excerpt/>
|
|
107
|
+
<optional-diagram/>
|
|
108
|
+
|
|
109
|
+
🟠 **PROBLEM DETAILS**: *<summary/>*
|
|
110
|
+
- [...]
|
|
111
|
+
- [...]
|
|
112
|
+
- [...]
|
|
113
|
+
</template>
|
|
114
|
+
|
|
115
|
+
Hints:
|
|
116
|
+
|
|
117
|
+
- Give a short one-sentence <context/> of the <problem/> plus
|
|
118
|
+
a short excerpt of the affected code <affected-code-excerpt/>.
|
|
119
|
+
|
|
120
|
+
- Give a short one-sentence <summary/> of the <problem/> plus *precise*
|
|
121
|
+
but *brief* code processing information to understand the problem.
|
|
122
|
+
Try to keep the number of bullet points in the range of 1-4.
|
|
123
|
+
|
|
124
|
+
- In case of a *complex context situation* with complex *structure*
|
|
125
|
+
(layout, components, dependencies, etc), complex *control flow*
|
|
126
|
+
(branching, concurrency, etc), complex *state machine* (states,
|
|
127
|
+
transitions, etc), complex *data flow* (actors, messages, etc), or
|
|
128
|
+
complex *data structure* (classes, entities, relationships, etc),
|
|
129
|
+
visualize it with an optional diagram <optional-diagram/> by
|
|
130
|
+
invoking the `ase-meta-diagram` skill via the `Skill` tool. Omit
|
|
131
|
+
<optional-diagram/> entirely for simple or purely local situation.
|
|
132
|
+
|
|
133
|
+
2. **Investigate Code Base**:
|
|
134
|
+
|
|
135
|
+
1. Check the existing source files for all code which is related to the
|
|
136
|
+
requested <problem/> resolution.
|
|
137
|
+
|
|
138
|
+
2. Check the architecture of the existing code base to understand the
|
|
139
|
+
overall structures and dynamics.
|
|
140
|
+
|
|
141
|
+
3. Do not output anything in this step.
|
|
142
|
+
|
|
143
|
+
3. **Find Problem Resolution Approaches**:
|
|
144
|
+
|
|
145
|
+
1. *Propose* corresponding *resolution approach*, including optionally,
|
|
146
|
+
some *alternative* resolution approaches.
|
|
147
|
+
|
|
148
|
+
2. Annotate the approach you recommend with an <annotation/> of
|
|
149
|
+
` ⚝ **RECOMMENDATION** ⚝`.
|
|
150
|
+
|
|
151
|
+
3. Report each approach with the following <template/>
|
|
152
|
+
and do not output anything else in this step:
|
|
153
|
+
|
|
154
|
+
<template>
|
|
155
|
+
🔵 **APPROACH A<n/>**<annotation/>: *<summary/>*
|
|
156
|
+
- [...]
|
|
157
|
+
- [...]
|
|
158
|
+
- [...]
|
|
159
|
+
<optional-diagram/>
|
|
160
|
+
</template>
|
|
161
|
+
|
|
162
|
+
Hints:
|
|
163
|
+
|
|
164
|
+
- Give a short one-sentence <summary/> of the resolution approach plus
|
|
165
|
+
*precise* and *brief* resolution information. Try to keep the
|
|
166
|
+
number of bullet points in the range of 1-4.
|
|
167
|
+
|
|
168
|
+
- Focus on resolution approaches for *practically relevant* cases and do *not*
|
|
169
|
+
investigate on theoretical or fictive cases. This is especially the case
|
|
170
|
+
for error handling cases and race condition cases.
|
|
171
|
+
|
|
172
|
+
- In case of resolution approaches for problems related to *obvious or
|
|
173
|
+
expected* errors, they *should* be handled *near the origin*.
|
|
174
|
+
|
|
175
|
+
- In case of resolution approaches for problems related to *theoretical
|
|
176
|
+
or unexpected* errors, they *should* be handled in parent scopes to
|
|
177
|
+
avoid cluttering the source code with too much error handling at all.
|
|
178
|
+
|
|
179
|
+
- In case of a *complex resolution situation* only, visualize it with
|
|
180
|
+
an optional diagram <optional-diagram/> by invoking the
|
|
181
|
+
`ase-meta-diagram` skill via the `Skill` tool. For *current vs.
|
|
182
|
+
proposed* comparisons, render each side as a *separate*
|
|
183
|
+
`ase-meta-diagram` invocation and stack the rendered blocks
|
|
184
|
+
*vertically* (labels `**Before:**` / `**After:**`); never
|
|
185
|
+
side-by-side. Omit <optional-diagram/> entirely for simple or
|
|
186
|
+
purely local situation.
|
|
187
|
+
|
|
188
|
+
*Recommended* Tenets (generic):
|
|
189
|
+
|
|
190
|
+
- **Surgical Changes**:
|
|
191
|
+
Keep source code changes always as small as possible.
|
|
192
|
+
|
|
193
|
+
- **Separation of Concerns**:
|
|
194
|
+
Clearly separate all individual concerns as good as possible.
|
|
195
|
+
|
|
196
|
+
- **Single Responsibility Principle**:
|
|
197
|
+
Every module, class, or function should have only one reason to change.
|
|
198
|
+
|
|
199
|
+
- **Behavior Preservation**:
|
|
200
|
+
Refactoring changes only re-structure, never change any observable behavior.
|
|
201
|
+
|
|
202
|
+
- **Align with Code Base**:
|
|
203
|
+
Strictly align with the existing code base by exactly following its
|
|
204
|
+
coding style, its structure, its naming conventions, etc.
|
|
205
|
+
|
|
206
|
+
*Essential* Tenets (specific):
|
|
207
|
+
|
|
208
|
+
- **No Cleanups**:
|
|
209
|
+
Strictly focus on resolving the problem and do not mix this task
|
|
210
|
+
with any other necessary code cleanups, except they are really
|
|
211
|
+
necessary for resolving the task.
|
|
212
|
+
|
|
213
|
+
4. **Choose Problem Resolution Approach**:
|
|
214
|
+
|
|
215
|
+
1. Let the *user interactively choose* the preferred resolution approach A<n/>
|
|
216
|
+
with the help of the <user-dialog-tool/> tool. Use *single-selection* only
|
|
217
|
+
and provide small *code change previews*. Mark your recommended
|
|
218
|
+
resolution approach with ` ⚝ **RECOMMENDATION** ⚝` here again.
|
|
219
|
+
|
|
220
|
+
5. **Write Problem Resolution Plan**:
|
|
221
|
+
|
|
222
|
+
1. *Write a plan* with code references, a precise description of the
|
|
223
|
+
problem, the chosen resolution approach, a preview of the *unified
|
|
224
|
+
diff* of the necessary code changes, and a possible way to verify
|
|
225
|
+
the success of the resolution, by using the <format/> defined for a
|
|
226
|
+
task plan. Store the resulting task plan in <content/>.
|
|
227
|
+
|
|
228
|
+
2. Call the `timestamp(format: "yyyy-LL-dd HH:mm")` tool of the
|
|
229
|
+
`ase` MCP service and use the `text` field of its response for
|
|
230
|
+
<timestamp-created/> and <timestamp-modified/> information. Then
|
|
231
|
+
insert the current <ase-task-id/>, <timestamp-created/>, and
|
|
232
|
+
<timestamp-modified/> information and calculate the number of
|
|
233
|
+
words <words/> of <content/>.
|
|
234
|
+
|
|
235
|
+
3. You then *MUST* *save* the resulting plan content with the
|
|
236
|
+
`task_save(id: <ase-task-id/>, text: <content/>)`.
|
|
237
|
+
|
|
238
|
+
4. If <problem-id/> is set (i.e. the <problem/> was retrieved from
|
|
239
|
+
`kv_get` in STEP 1.3 via key `ase-issue-<problem-id/>`),
|
|
240
|
+
you *MUST* additionally call the `kv_delete(key:
|
|
241
|
+
"ase-issue-<problem-id/>")` tool of the `ase` MCP
|
|
242
|
+
service to remove the now-resolved analyzer result from the
|
|
243
|
+
in-memory key/value store.
|
|
244
|
+
|
|
245
|
+
5. Output a hint with the following <template/>:
|
|
246
|
+
|
|
247
|
+
<template>
|
|
248
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan created**
|
|
249
|
+
</template>
|
|
250
|
+
|
|
251
|
+
6. *Ask user*: Let the *user interactively choose*
|
|
252
|
+
what to do as the next step.
|
|
253
|
+
|
|
254
|
+
<expand name="user-dialog>
|
|
255
|
+
Next Step: How would you like to proceed with the plan?
|
|
256
|
+
DONE: Stop processing.
|
|
257
|
+
EDIT: Hand processing off to editing.
|
|
258
|
+
PREFLIGHT: Hand processing off to preflighting.
|
|
259
|
+
IMPLEMENT: Hand processing off to implementation.
|
|
260
|
+
</expand>
|
|
261
|
+
|
|
262
|
+
7. Check the tool <result/> and dispatch accordingly:
|
|
263
|
+
|
|
264
|
+
- If <result/> is `DONE` or `CANCEL`:
|
|
265
|
+
Only output the following <template/> and then *STOP*.
|
|
266
|
+
|
|
267
|
+
<template>
|
|
268
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **done**
|
|
269
|
+
</template>
|
|
270
|
+
|
|
271
|
+
- If <result/> is `EDIT`:
|
|
272
|
+
Only output the following <template/> and then use the
|
|
273
|
+
`Skill` tool to invoke the `ase:ase-task-edit` skill in
|
|
274
|
+
order to edit the plan. Immediately stop processing the
|
|
275
|
+
current skill once the `Skill` tool was used.
|
|
276
|
+
|
|
277
|
+
<template>
|
|
278
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **hand off to edit**
|
|
279
|
+
</template>
|
|
280
|
+
|
|
281
|
+
- If <result/> is `PREFLIGHT`:
|
|
282
|
+
Only output the following <template/> and then use the
|
|
283
|
+
`Skill` tool to invoke the `ase:ase-task-preflight` skill in
|
|
284
|
+
order to preflight the plan. Immediately stop processing the
|
|
285
|
+
current skill once the `Skill` tool was used.
|
|
286
|
+
|
|
287
|
+
<template>
|
|
288
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **hand off to preflight**
|
|
289
|
+
</template>
|
|
290
|
+
|
|
291
|
+
- If <result/> is `IMPLEMENT`:
|
|
292
|
+
Only output the following <template/> and then use the
|
|
293
|
+
`Skill` tool to invoke the `ase:ase-task-implement` skill in
|
|
294
|
+
order to implement the plan. Immediately stop processing the
|
|
295
|
+
current skill once the `Skill` tool was used.
|
|
296
|
+
|
|
297
|
+
<template>
|
|
298
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **hand off to implement**
|
|
299
|
+
</template>
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ase-meta-changes
|
|
3
|
+
argument-hint: ""
|
|
4
|
+
description: >
|
|
5
|
+
Update changes entries in CHANGELOG.md files
|
|
6
|
+
user-invocable: true
|
|
7
|
+
disable-model-invocation: false
|
|
8
|
+
effort: medium
|
|
9
|
+
allowed-tools:
|
|
10
|
+
- "Bash(git log *)"
|
|
11
|
+
- "Bash(git status *)"
|
|
12
|
+
- "Bash(git show *)"
|
|
13
|
+
- "Write"
|
|
14
|
+
- "Edit"
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
|
|
18
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
19
|
+
|
|
20
|
+
Update ChangeLog Entries
|
|
21
|
+
========================
|
|
22
|
+
|
|
23
|
+
Your role is an experienced, *expert-level software developer*,
|
|
24
|
+
specialized in *Git version control*.
|
|
25
|
+
|
|
26
|
+
<objective>
|
|
27
|
+
Help to complete, consolidate and sort *ChangeLog* entries,
|
|
28
|
+
based on underling *Git* commit messages.
|
|
29
|
+
</objective>
|
|
30
|
+
|
|
31
|
+
For this, understand that ChangeLog entries are
|
|
32
|
+
are always formatted `<prefix/>: <summary/>` where
|
|
33
|
+
the <prefix/> is one of the following tags
|
|
34
|
+
and their usual related changes...
|
|
35
|
+
|
|
36
|
+
- `FEATURE`: new functionality or configuration
|
|
37
|
+
- `IMPROVEMENT`: improved functionality or configuration
|
|
38
|
+
- `BUGFIX`: corrected functionality or configuration
|
|
39
|
+
- `UPDATE`: updated functionality or configuration
|
|
40
|
+
- `CLEANUP`: cleaned up functionality or configuration
|
|
41
|
+
- `REFACTOR`: refactored functionality or configuration
|
|
42
|
+
|
|
43
|
+
...and <summary/> is not longer than about 60-80 characters.
|
|
44
|
+
The ChangeLog entries for a single product release version
|
|
45
|
+
are also grouped and sorted according to the above <prefix/>es.
|
|
46
|
+
|
|
47
|
+
<flow>
|
|
48
|
+
1. <step id="STEP 1: Locate and read existing ChangeLog entries">
|
|
49
|
+
The *ChangeLog* file `CHANGELOG.md` contains sections
|
|
50
|
+
with headers in the style `N.M.K (YYYY-MM-DD)`.
|
|
51
|
+
The `CHANGELOG.md` file is located in the *current* directory
|
|
52
|
+
or one of the *parent* directories.
|
|
53
|
+
</step>
|
|
54
|
+
|
|
55
|
+
2. <step id="STEP 2: Read corresponding Git commit log messages">
|
|
56
|
+
*Ignore* the current Git *index* and Git *stash* and use the Git *commits* only.
|
|
57
|
+
For finding the corresponding Git commits, use the `N.M.K`
|
|
58
|
+
from the *second* header in the *ChangeLog* file as
|
|
59
|
+
the corresponding Git tag and then check all Git commits
|
|
60
|
+
between `HEAD` and this tag.
|
|
61
|
+
</step>
|
|
62
|
+
|
|
63
|
+
3. <step id="STEP 3: Complete ChangeLog entries">
|
|
64
|
+
Without immediately modifying `CHANGELOG.md` file,
|
|
65
|
+
*complete* the entries in the first (most recent) section only,
|
|
66
|
+
by adding the corresponding (most recent) Git commits only.
|
|
67
|
+
For each Git commit, reduce the Git commit messages to a single
|
|
68
|
+
short sentence.
|
|
69
|
+
</step>
|
|
70
|
+
|
|
71
|
+
4. <step id="STEP 4: Consolidate ChangeLog entries">
|
|
72
|
+
Without immediately modifying `CHANGELOG.md` file,
|
|
73
|
+
*consolidate* the entries in the first (most recent) section only,
|
|
74
|
+
by summarizing and merging closely related entries.
|
|
75
|
+
Perform the entry consolidation per prefix group only.
|
|
76
|
+
If a changelog <summary/> is too short or is too less comprehensible
|
|
77
|
+
because of too less context, add some context, especially references
|
|
78
|
+
to the class/module/package, etc.
|
|
79
|
+
</step>
|
|
80
|
+
|
|
81
|
+
5. <step id="STEP 5: Sort ChangeLog entries">
|
|
82
|
+
Without immediately modifying `CHANGELOG.md` file,
|
|
83
|
+
*sort* the entries in the first (most recent) section only.
|
|
84
|
+
Instead of the chronological commit order, group the entries
|
|
85
|
+
by the prefixes.
|
|
86
|
+
</step>
|
|
87
|
+
|
|
88
|
+
6. <step id="STEP 6: Write modified ChangeLog entries">
|
|
89
|
+
Finally, *update* the `CHANGELOG.md` file with the
|
|
90
|
+
completed, consolidated and sorted *ChangeLog* entries.
|
|
91
|
+
Also, update the date `YYYY-MM-DD` in the `N.M.K (YYYY-MM-DD)`
|
|
92
|
+
headline of the *first* (most recent) section.
|
|
93
|
+
</step>
|
|
94
|
+
</flow>
|
|
95
|
+
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ase-meta-chat
|
|
3
|
+
argument-hint: "<llm> <query>"
|
|
4
|
+
description: >
|
|
5
|
+
Query foreign LLM for Chat.
|
|
6
|
+
Use this skill if a foreign LLM like OpenAI ChatCGPT, Google Gemini,
|
|
7
|
+
DeepSeek or xAI Grok should be queried with a single chat message.
|
|
8
|
+
user-invocable: true
|
|
9
|
+
disable-model-invocation: false
|
|
10
|
+
context: fork
|
|
11
|
+
effort: low
|
|
12
|
+
allowed-tools:
|
|
13
|
+
- "mcp__chat-openai-chatgpt"
|
|
14
|
+
- "mcp__chat-google-gemini"
|
|
15
|
+
- "mcp__chat-deepseek"
|
|
16
|
+
- "mcp__chat-xai-grok"
|
|
17
|
+
- "Task"
|
|
18
|
+
- "Agent"
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
|
|
22
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
23
|
+
|
|
24
|
+
Query Foreign LLMs for Chat
|
|
25
|
+
===========================
|
|
26
|
+
|
|
27
|
+
Your role is to act as a proxy to query a foreign LLM for a single chat message.
|
|
28
|
+
|
|
29
|
+
<objective>
|
|
30
|
+
Query foreign LLM for: <query>$ARGUMENTS</query>
|
|
31
|
+
</objective>
|
|
32
|
+
|
|
33
|
+
<flow>
|
|
34
|
+
1. <step id="STEP 1: Select LLMs">
|
|
35
|
+
Use the *first word* of the following <query/> for selecting the
|
|
36
|
+
foreign LLMs to query, and their corresponding MCP servers, from the
|
|
37
|
+
following list:
|
|
38
|
+
|
|
39
|
+
- **OpenAI ChatGPT**: via MCP server `chat-openai-chatgpt`
|
|
40
|
+
- **Google Gemini**: via MCP server `chat-google-gemini`
|
|
41
|
+
- **DeepSeek**: via MCP server `chat-deepseek`
|
|
42
|
+
- **xAI Grok**: via MCP server `chat-xai-grok`
|
|
43
|
+
</step>
|
|
44
|
+
|
|
45
|
+
2. <step id="STEP 2: Spawn Agents">
|
|
46
|
+
Spawn a *sub-task* with the companion `ase-meta-chat` *agent* for
|
|
47
|
+
the selected foreign LLMs, and pass the *second and all remaining*
|
|
48
|
+
words of the following <query/> as the query for the selected LLM.
|
|
49
|
+
</step>
|
|
50
|
+
|
|
51
|
+
3. <step id="STEP 3: Return Responses">
|
|
52
|
+
Return the *plain response* of the `ase-meta-chat` agent 1:1 and
|
|
53
|
+
*without any modifications*. Especially, do *NOT* add or remove any
|
|
54
|
+
text from the agent response on your own and do not interpret the
|
|
55
|
+
result in any way.
|
|
56
|
+
</step>
|
|
57
|
+
</flow>
|
|
58
|
+
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ase-meta-commit
|
|
3
|
+
argument-hint: ""
|
|
4
|
+
description: >
|
|
5
|
+
Determine commit message for staged Git changes.
|
|
6
|
+
user-invocable: true
|
|
7
|
+
disable-model-invocation: false
|
|
8
|
+
effort: medium
|
|
9
|
+
allowed-tools:
|
|
10
|
+
- "Bash(git diff *)"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
|
|
14
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
15
|
+
|
|
16
|
+
Git Commit
|
|
17
|
+
==========
|
|
18
|
+
|
|
19
|
+
Your role is an experienced, *expert-level software developer*,
|
|
20
|
+
specialized in *Git commit messages*.
|
|
21
|
+
|
|
22
|
+
<objective>
|
|
23
|
+
Help to *craft* a *consise commit message* for the
|
|
24
|
+
currently staged Git changes.
|
|
25
|
+
</objective>
|
|
26
|
+
|
|
27
|
+
<flow>
|
|
28
|
+
1. <step id="STEP 1: Find out staged changes">
|
|
29
|
+
Run the following command to find out details
|
|
30
|
+
of what changes are currently staged for commit:
|
|
31
|
+
|
|
32
|
+
`git diff --staged`
|
|
33
|
+
</step>
|
|
34
|
+
|
|
35
|
+
2. <step id="STEP 2: Craft a consolidated commit message">
|
|
36
|
+
Craft a commit <message/> in the following format:
|
|
37
|
+
|
|
38
|
+
`<type/>: <summary/>`
|
|
39
|
+
|
|
40
|
+
The known <type/>s and their usual corresponding kind of change are:
|
|
41
|
+
- `FEATURE`: new functionality or configuration
|
|
42
|
+
- `IMPROVEMENT`: improved functionality or configuration
|
|
43
|
+
- `BUGFIX`: corrected functionality or configuration
|
|
44
|
+
- `UPDATE`: updated functionality or configuration
|
|
45
|
+
- `CLEANUP`: cleaned up functionality or configuration
|
|
46
|
+
- `REFACTOR`: refactored functionality or configuration
|
|
47
|
+
|
|
48
|
+
The rules for generating <summary/> are:
|
|
49
|
+
- Use a maximum of 70 characters
|
|
50
|
+
- Use imperative mood ("add" not "added")
|
|
51
|
+
- Use *no* period at the end
|
|
52
|
+
- Use *no* Markdown formatting
|
|
53
|
+
|
|
54
|
+
Output this crafted commit message with the following <template/>:
|
|
55
|
+
|
|
56
|
+
<template>
|
|
57
|
+
Commit Message:
|
|
58
|
+
**<message/>**
|
|
59
|
+
</template>
|
|
60
|
+
|
|
61
|
+
Do *not* output any further explanation.
|
|
62
|
+
</step>
|
|
63
|
+
</flow>
|
|
64
|
+
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ase-meta-diagram
|
|
3
|
+
description: >
|
|
4
|
+
Render diagrams via the `diagram` tool of the `ase` MCP service.
|
|
5
|
+
*Always use* when you have to *visualize*
|
|
6
|
+
structure/layout/components/dependencies as Flowchart,
|
|
7
|
+
control-flow/branching/concurrency as Flowchart,
|
|
8
|
+
state-machine/states/transitions as an UML State Diagram,
|
|
9
|
+
data-flow/actors/messages/protocols as an UML Sequence Diagram,
|
|
10
|
+
data-structure/classes/methods as an UML Class Diagram
|
|
11
|
+
data-model/entities/relationships as an ER Diagram, or
|
|
12
|
+
metrics/distributions/time-series as XY-Charts.
|
|
13
|
+
user-invocable: false
|
|
14
|
+
disable-model-invocation: false
|
|
15
|
+
effort: low
|
|
16
|
+
allowed-tools:
|
|
17
|
+
- "mcp__plugin_ase_ase__diagram"
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
Render Diagrams
|
|
21
|
+
===============
|
|
22
|
+
|
|
23
|
+
Your role is to render *every* diagram in the current session, with
|
|
24
|
+
*deterministic* and *clean* output. For this, your objective is to
|
|
25
|
+
produce a beautifully rendered diagram that the user can read directly
|
|
26
|
+
in the response text, derived from a *Mermaid* diagram specification,
|
|
27
|
+
which is rendered with the `diagram` tool of the `ase` MCP service.
|
|
28
|
+
|
|
29
|
+
Rules
|
|
30
|
+
-----
|
|
31
|
+
|
|
32
|
+
- WHEN NOT:
|
|
33
|
+
You *MUST* *NEVER* hand-draw diagrams under any circumstances!
|
|
34
|
+
|
|
35
|
+
Box-drawing characters (`┌`, `│`, `└`, `┐`, `┘`, `─`, `┼`, `├`,
|
|
36
|
+
`┤`, `┬`, `┴`, `╭`, `╰`), ASCII surrogates (`+`, `-`, `|`), or any
|
|
37
|
+
other attempt to draw a framed shape token-by-token are *forbidden*
|
|
38
|
+
as your own diagram output.
|
|
39
|
+
|
|
40
|
+
- WHEN:
|
|
41
|
+
You *MUST* always use the `diagram` tool from the `ase` MCP service,
|
|
42
|
+
whenever a diagram should be drawn!
|
|
43
|
+
|
|
44
|
+
Every diagram in the output *MUST* originate from a `diagram`
|
|
45
|
+
MCP tool call, with Mermaid diagram specification passed in the
|
|
46
|
+
`diagram` field, made in the *same* session response turn. Also,
|
|
47
|
+
pass a `colorMode` of `none` to always get monochrome renderings.
|
|
48
|
+
|
|
49
|
+
- INPUT:
|
|
50
|
+
For describing the diagrams, you *MUST* use the *Mermaid* diagram
|
|
51
|
+
specification language!
|
|
52
|
+
|
|
53
|
+
Use the following Mermaid diagram types per intent:
|
|
54
|
+
|
|
55
|
+
- *structure / layout / components / dependencies* → `flowchart`
|
|
56
|
+
- *control flow / branching / concurrency* → `flowchart`
|
|
57
|
+
- *state machine / states / transitions* → `stateDiagram-v2`
|
|
58
|
+
- *data flow / actors / messages / protocols* → `sequenceDiagram`
|
|
59
|
+
- *data structure / classes / methods* → `classDiagram`
|
|
60
|
+
- *data model / entities / relationships* → `erDiagram`
|
|
61
|
+
- *metrics / distributions / time series* → `xychart-beta`
|
|
62
|
+
|
|
63
|
+
Other Mermaid diagram types are *not* supported by the renderer
|
|
64
|
+
and hence should *not* be specified!
|
|
65
|
+
|
|
66
|
+
- OUTPUT:
|
|
67
|
+
You *MUST* reproduce the `text` output of the `diagram` tool from
|
|
68
|
+
the `ase` MCP service in the response text! Do not produce any other
|
|
69
|
+
output, especially no explanations.
|
|
70
|
+
|
|
71
|
+
In other words, after the `diagram` tool call completes, the
|
|
72
|
+
skill *MUST* copy the tool's `text` result *verbatim* into a
|
|
73
|
+
Markdown-fenced code block (triple backticks), directly placed
|
|
74
|
+
in the response text immediately after the MCP tool call -— the
|
|
75
|
+
user reads the Markdown fenced block in the response, not the
|
|
76
|
+
(truncated) tool call display. Emitting only the tool call without
|
|
77
|
+
the reproduction of the `text` output is a defect: the diagram is
|
|
78
|
+
then effectively invisible.
|
|
79
|
+
|
|
80
|
+
- NOTICE 1:
|
|
81
|
+
You *MUST* *NEVER* emit the plain Mermaid diagram specification, as
|
|
82
|
+
it is just an intermediate format for driving the rendering process!
|
|
83
|
+
|
|
84
|
+
- NOTICE 2:
|
|
85
|
+
You *SHOULD* keep diagrams narrow!
|
|
86
|
+
|
|
87
|
+
The renderer's horizontal extent scales with siblings per row, node
|
|
88
|
+
label lengths, and inter-node padding. Limit *≤6 siblings per row*
|
|
89
|
+
and group further items into nested `subgraph` hierarchies; keep
|
|
90
|
+
*node labels* *≤20 chars* (abbreviate long names, drop adjectives).
|
|
91
|
+
|
|
92
|
+
- NOTICE 3:
|
|
93
|
+
You *SHOULD* stack diagrams vertically!
|
|
94
|
+
|
|
95
|
+
For *comparison diagrams* (e.g., *current vs. proposed*, *before
|
|
96
|
+
vs. after*), render each side as a *separate* Mermaid diagram
|
|
97
|
+
specification via the `diagram` tool from the `ase` MCP service, and
|
|
98
|
+
then stack the two rendered blocks *vertically* -— each preceded by
|
|
99
|
+
a bold label (`**BEFORE:**` / `**AFTER:**`, or similar). Do *not*
|
|
100
|
+
attempt side-by-side layout.
|
|
101
|
+
|