@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.
Files changed (48) hide show
  1. package/dst/ase-hello.js +22 -0
  2. package/dst/ase-hook.js +3 -1
  3. package/dst/ase-setup.js +10 -7
  4. package/package.json +2 -1
  5. package/plugin/.claude/settings.local.json +7 -0
  6. package/plugin/.claude-plugin/plugin.json +20 -0
  7. package/plugin/.github/plugin/plugin.json +21 -0
  8. package/plugin/agents/ase-meta-chat.md +10 -0
  9. package/plugin/agents/ase-meta-search.md +16 -0
  10. package/plugin/commands/ase-code-lint/complete.md +9 -0
  11. package/plugin/commands/ase-code-lint/explain.md +9 -0
  12. package/plugin/commands/ase-code-lint/nope.md +11 -0
  13. package/plugin/commands/ase-code-lint/reassess.md +15 -0
  14. package/plugin/commands/ase-code-lint/recheck.md +9 -0
  15. package/plugin/commands/ase-code-lint/refine.md +9 -0
  16. package/plugin/hooks/hooks-copilot.json +23 -0
  17. package/plugin/hooks/hooks.json +40 -0
  18. package/plugin/meta/ase-constitution.md +114 -0
  19. package/plugin/meta/ase-dialog.md +122 -0
  20. package/plugin/meta/ase-persona.md +63 -0
  21. package/plugin/meta/ase-plan.md +69 -0
  22. package/plugin/meta/ase-skill.md +238 -0
  23. package/plugin/skills/ase-arch-analyze/SKILL.md +442 -0
  24. package/plugin/skills/ase-arch-discover/SKILL.md +160 -0
  25. package/plugin/skills/ase-code-analyze/SKILL.md +108 -0
  26. package/plugin/skills/ase-code-craft/SKILL.md +237 -0
  27. package/plugin/skills/ase-code-explain/SKILL.md +115 -0
  28. package/plugin/skills/ase-code-insight/SKILL.md +96 -0
  29. package/plugin/skills/ase-code-lint/SKILL.md +382 -0
  30. package/plugin/skills/ase-code-refactor/SKILL.md +241 -0
  31. package/plugin/skills/ase-code-resolve/SKILL.md +299 -0
  32. package/plugin/skills/ase-meta-changes/SKILL.md +95 -0
  33. package/plugin/skills/ase-meta-chat/SKILL.md +58 -0
  34. package/plugin/skills/ase-meta-commit/SKILL.md +64 -0
  35. package/plugin/skills/ase-meta-diagram/SKILL.md +101 -0
  36. package/plugin/skills/ase-meta-evaluate/SKILL.md +247 -0
  37. package/plugin/skills/ase-meta-persona/SKILL.md +52 -0
  38. package/plugin/skills/ase-meta-quorum/SKILL.md +122 -0
  39. package/plugin/skills/ase-meta-search/SKILL.md +48 -0
  40. package/plugin/skills/ase-meta-why/SKILL.md +69 -0
  41. package/plugin/skills/ase-task-delete/SKILL.md +76 -0
  42. package/plugin/skills/ase-task-edit/SKILL.md +390 -0
  43. package/plugin/skills/ase-task-id/SKILL.md +46 -0
  44. package/plugin/skills/ase-task-implement/SKILL.md +146 -0
  45. package/plugin/skills/ase-task-list/SKILL.md +44 -0
  46. package/plugin/skills/ase-task-preflight/SKILL.md +181 -0
  47. package/plugin/skills/ase-task-reboot/SKILL.md +161 -0
  48. 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
+ &#x1F7E0; **PROBLEM CONTEXT**: *<context/>*
106
+ <affected-code-excerpt/>
107
+ <optional-diagram/>
108
+
109
+ &#x1F7E0; **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
+ &#x1F535; **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
+