@rse/ase 0.0.38 → 0.0.40

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 (33) hide show
  1. package/package.json +1 -1
  2. package/plugin/.claude-plugin/plugin.json +1 -1
  3. package/plugin/.github/plugin/plugin.json +1 -1
  4. package/plugin/meta/ase-constitution.md +2 -1
  5. package/plugin/meta/ase-control.md +63 -0
  6. package/plugin/meta/ase-persona.md +1 -0
  7. package/plugin/meta/ase-skill.md +1 -62
  8. package/plugin/package.json +1 -1
  9. package/plugin/skills/ase-arch-analyze/SKILL.md +8 -5
  10. package/plugin/skills/ase-arch-discover/SKILL.md +1 -0
  11. package/plugin/skills/ase-code-analyze/SKILL.md +1 -0
  12. package/plugin/skills/ase-code-craft/SKILL.md +71 -95
  13. package/plugin/skills/ase-code-explain/SKILL.md +7 -4
  14. package/plugin/skills/ase-code-insight/SKILL.md +8 -5
  15. package/plugin/skills/ase-code-lint/SKILL.md +1 -0
  16. package/plugin/skills/ase-code-refactor/SKILL.md +74 -98
  17. package/plugin/skills/ase-code-resolve/SKILL.md +92 -111
  18. package/plugin/skills/ase-meta-changes/SKILL.md +1 -0
  19. package/plugin/skills/ase-meta-chat/SKILL.md +1 -0
  20. package/plugin/skills/ase-meta-commit/SKILL.md +1 -0
  21. package/plugin/skills/ase-meta-evaluate/SKILL.md +1 -0
  22. package/plugin/skills/ase-meta-persona/SKILL.md +1 -0
  23. package/plugin/skills/ase-meta-quorum/SKILL.md +1 -0
  24. package/plugin/skills/ase-meta-search/SKILL.md +1 -0
  25. package/plugin/skills/ase-meta-why/SKILL.md +1 -0
  26. package/plugin/skills/ase-task-delete/SKILL.md +1 -0
  27. package/plugin/skills/ase-task-edit/SKILL.md +6 -4
  28. package/plugin/skills/ase-task-id/SKILL.md +1 -0
  29. package/plugin/skills/ase-task-implement/SKILL.md +6 -4
  30. package/plugin/skills/ase-task-list/SKILL.md +1 -0
  31. package/plugin/skills/ase-task-preflight/SKILL.md +11 -8
  32. package/plugin/skills/ase-task-reboot/SKILL.md +6 -4
  33. package/plugin/skills/ase-task-view/SKILL.md +1 -0
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "homepage": "http://github.com/rse/ase",
7
7
  "repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
8
8
  "bugs": { "url": "http://github.com/rse/ase/issues" },
9
- "version": "0.0.38",
9
+ "version": "0.0.40",
10
10
  "license": "GPL-3.0-only",
11
11
  "author": {
12
12
  "name": "Dr. Ralf S. Engelschall",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ase",
3
- "version": "0.0.38",
3
+ "version": "0.0.40",
4
4
  "description": "Agentic Software Engineering (ASE)",
5
5
  "keywords": [ "agentic", "software", "engineering" ],
6
6
  "homepage": "https://ase.tools",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ase",
3
- "version": "0.0.38",
3
+ "version": "0.0.40",
4
4
  "description": "Agentic Software Engineering (ASE)",
5
5
  "keywords": [ "agentic", "software", "engineering" ],
6
6
  "homepage": "https://ase.tools",
@@ -110,5 +110,6 @@ Tenets
110
110
  Persona
111
111
  -------
112
112
 
113
- @./ase-skill.md
113
+ @./ase-control.md
114
114
  @./ase-persona.md
115
+
@@ -0,0 +1,63 @@
1
+
2
+ Control Flow Constructs
3
+ -----------------------
4
+
5
+ - *IMPORTANT*: You *MUST* honor the following control flow construct:
6
+ <define name="<define-name/>"><define-body/></define>:
7
+
8
+ This specifies a *reusable definition* named <define-name/> and
9
+ an <define-body/> which can contain arbitrary information with
10
+ optional `<args/>` (or alternatively, individual `<arg1/>`,
11
+ `<arg2/>`, etc) and optional `<content/>` references from
12
+ subsequent <expand/> calls.
13
+ This construct is expanded into nothing.
14
+ Do not output anything.
15
+
16
+ - *IMPORTANT*: You *MUST* honor the following control flow construct:
17
+ <expand name="<define-name/>" [arg1="<expand-arg1/>" [arg2="<expand-arg2/>]" [...]]]><expand-content/></expand>:
18
+
19
+ This specifies the *expansion* of previous <define/>.
20
+ This construct is expanded into the <define-body/> of <define/>
21
+ with `<args/>` substituted with `<expand-arg1/> <expand-arg2/>
22
+ [...]`, `<arg1/>` substituted with <expand-arg1/>, and `<content/>`
23
+ substituted with <expand-content/>.
24
+ Do not output anything else.
25
+
26
+ - *IMPORTANT*: You *MUST* honor the following control flow construct:
27
+ <flow><flow-body/></flow>:
28
+
29
+ This specifies a *sequential flow* of <step/>s, which have
30
+ to be followed/executed in exactly the given order.
31
+ This construct is expanded to its <flow-body/>.
32
+ Do not output anything else.
33
+
34
+ - *IMPORTANT*: You *MUST* honor the following control flow construct:
35
+ <step id="<id/>"><step-body/></step>:
36
+
37
+ This specifies a distinct *single step* in a <flow/>.
38
+ This construct is expanded to its <step-body/>.
39
+ Do not output anything else.
40
+
41
+ - *IMPORTANT*: You *MUST* honor the following control flow construct:
42
+ <if condition="<if-condition/>"><if-body/></if>:
43
+
44
+ This specifies a simple condition which is expanded to <if-body/>
45
+ if <if-condition/> is met, or to empty string if <if-condition/> is
46
+ *not* met. Do not output anything else.
47
+
48
+ - *IMPORTANT*: You *MUST* honor the following control flow construct:
49
+ <while condition="<while-condition/>"><while-body/></while>:
50
+
51
+ This specifies a <while-body/> which is *repeated* as long as
52
+ <while-condition/> is met. This construct is expanded to the
53
+ repetition of <while-body/>. Do not output anything else.
54
+
55
+ - *IMPORTANT*: You *MUST* honor the following control flow construct:
56
+ <for items="<for-item/> [...]"><for-body/></for>:
57
+
58
+ This specifies a <for-body/> which is *repeated* for all
59
+ <for-item/>s and where `<item/>` is expanded with the current
60
+ <for-item/> in <for-body/>. This construct is expanded to the
61
+ repetition of <for-body/>. A <break/> in <for-body/> can stop the
62
+ repetition early. Do not output anything else.
63
+
@@ -61,3 +61,4 @@ Apply Persona
61
61
  - Apply ruleset "level2": <expand name="level2"/>
62
62
  - Apply ruleset "level3": <expand name="level3"/>
63
63
  </if>
64
+
@@ -90,68 +90,6 @@ Skill Output
90
90
  Skills that report severity MUST support `ACCEPTED`
91
91
  in addition to `LOW`, `MEDIUM`, and `HIGH`.
92
92
 
93
- Skill Control Flow
94
- ------------------
95
-
96
- - *IMPORTANT*: You *MUST* honor the following control flow construct:
97
- <define name="<define-name/>"><define-body/></define>:
98
-
99
- This specifies a *reusable definition* named <define-name/> and
100
- an <define-body/> which can contain arbitrary information with
101
- optional `<args/>` (or alternatively, individual `<arg1/>`,
102
- `<arg2/>`, etc) and optional `<content/>` references from
103
- subsequent <expand/> calls.
104
- This construct is expanded into nothing.
105
- Do not output anything.
106
-
107
- - *IMPORTANT*: You *MUST* honor the following control flow construct:
108
- <expand name="<define-name/>" [arg1="<expand-arg1/>" [arg2="<expand-arg2/>]" [...]]]><expand-content/></expand>:
109
-
110
- This specifies the *expansion* of previous <define/>.
111
- This construct is expanded into the <define-body/> of <define/>
112
- with `<args/>` substituted with `<expand-arg1/> <expand-arg2/>
113
- [...]`, `<arg1/>` substituted with <expand-arg1/>, and `<content/>`
114
- substituted with <expand-content/>.
115
- Do not output anything else.
116
-
117
- - *IMPORTANT*: You *MUST* honor the following control flow construct:
118
- <flow><flow-body/></flow>:
119
-
120
- This specifies a *sequential flow* of <step/>s, which have
121
- to be followed/executed in exactly the given order.
122
- This construct is expanded to its <flow-body/>.
123
- Do not output anything else.
124
-
125
- - *IMPORTANT*: You *MUST* honor the following control flow construct:
126
- <step id="<id/>"><step-body/></step>:
127
-
128
- This specifies a distinct *single step* in a <flow/>.
129
- This construct is expanded to its <step-body/>.
130
- Do not output anything else.
131
-
132
- - *IMPORTANT*: You *MUST* honor the following control flow construct:
133
- <if condition="<if-condition/>"><if-body/></if>:
134
-
135
- This specifies a simple condition which is expanded to <if-body/>
136
- if <if-condition/> is met, or to empty string if <if-condition/> is
137
- *not* met. Do not output anything else.
138
-
139
- - *IMPORTANT*: You *MUST* honor the following control flow construct:
140
- <while condition="<while-condition/>"><while-body/></while>:
141
-
142
- This specifies a <while-body/> which is *repeated* as long as
143
- <while-condition/> is met. This construct is expanded to the
144
- repetition of <while-body/>. Do not output anything else.
145
-
146
- - *IMPORTANT*: You *MUST* honor the following control flow construct:
147
- <for items="<for-item/> [...]"><for-body/></for>:
148
-
149
- This specifies a <for-body/> which is *repeated* for all
150
- <for-item/>s and where `<item/>` is expanded with the current
151
- <for-item/> in <for-body/>. This construct is expanded to the
152
- repetition of <for-body/>. A <break/> in <for-body/> can stop the
153
- repetition early. Do not output anything else.
154
-
155
93
  Skill Sequential Processing
156
94
  ---------------------------
157
95
 
@@ -237,3 +175,4 @@ Skill Identification
237
175
  <template>
238
176
  ⧉ **ASE**: ◎ objective: **<objective/>**
239
177
  </template>
178
+
@@ -6,7 +6,7 @@
6
6
  "homepage": "http://github.com/rse/ase",
7
7
  "repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
8
8
  "bugs": { "url": "http://github.com/rse/ase/issues" },
9
- "version": "0.0.38",
9
+ "version": "0.0.40",
10
10
  "license": "GPL-3.0-only",
11
11
  "author": {
12
12
  "name": "Dr. Ralf S. Engelschall",
@@ -99,6 +99,7 @@ allowed-tools:
99
99
  - "Skill"
100
100
  ---
101
101
 
102
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
102
103
  @${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
103
104
  @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
104
105
 
@@ -302,11 +303,13 @@ interface quality, quality attributes, and architecture governance.
302
303
  - For <style/>, name the detected architecture style or
303
304
  "*undeclared*" if none is documented.
304
305
 
305
- - For <rendered-diagram-as-fenced-code-block/>, emit *Mermaid*
306
- source for a `flowchart TB` of the high-level component or
307
- layer structure and invoke the `ase-meta-diagram` skill via the
308
- `Skill` tool to render it. Show layers / slices / major
309
- components and their dependency direction.
306
+ - For <rendered-diagram-as-fenced-code-block/>, build a Mermaid
307
+ specification <mermaid-spec/> for a `flowchart TB` of the
308
+ high-level component or layer structure and invoke the
309
+ `ase-meta-diagram` skill by calling the tool `Skill(skill:
310
+ "ase:ase-meta-diagram", args: <mermaid-spec/>)` to render it.
311
+ Show layers / slices / major components and their dependency
312
+ direction.
310
313
 
311
314
  - Mark detected *anomalies* directly in the Mermaid source.
312
315
  Because `!` and `?` are Mermaid special characters, *always
@@ -15,6 +15,7 @@ allowed-tools:
15
15
  - "WebFetch"
16
16
  ---
17
17
 
18
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
18
19
  @${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
19
20
  @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
20
21
 
@@ -10,6 +10,7 @@ allowed-tools:
10
10
  - "Agent"
11
11
  ---
12
12
 
13
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
13
14
  @${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
14
15
  @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
15
16
 
@@ -11,6 +11,7 @@ allowed-tools:
11
11
  - "Skill"
12
12
  ---
13
13
 
14
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
14
15
  @${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
15
16
  @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
16
17
  @${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md
@@ -74,7 +75,7 @@ permitted way to persist artifacts is via `task_save(...)`.
74
75
  <feature><text/></feature> and <ase-task-id><id/></ase-task-id>
75
76
  and call the `task_id(id: <ase-task-id/>, session:
76
77
  <ase-session-id/>)` tool from the `ase` MCP service to
77
- implicitly switch the task.
78
+ implicitly switch the task. Do not output anything.
78
79
 
79
80
  3. If <feature/> is empty,
80
81
  ask the user interactively, without a special tool, for the
@@ -92,7 +93,7 @@ permitted way to persist artifacts is via `task_save(...)`.
92
93
  which consists of two lower-case words concatenated with a
93
94
  `-` character. Then call the `task_id(id: <ase-task-id/>,
94
95
  session: <ase-session-id/>)` tool from the `ase` MCP service to
95
- implicitly switch the task.
96
+ implicitly switch the task. Do not output anything.
96
97
  </if>
97
98
 
98
99
  5. Report the task and feature with the following <template/>:
@@ -119,40 +120,12 @@ permitted way to persist artifacts is via `task_save(...)`.
119
120
 
120
121
  3. Do not output anything in this step.
121
122
 
122
- 3. **Find Feature Crafting Approaches**:
123
+ 3. **Internalize Crafting Tenets**:
123
124
 
124
- 1. *Propose* corresponding *feature approach*, including optionally,
125
- some *alternative* feature approaches.
126
-
127
- 2. Annotate the approach you recommend with an <annotation/> of
128
- ` ⚝ **RECOMMENDATION** ⚝`.
125
+ Internalize and honor the following tenets.
126
+ Do not output anything.
129
127
 
130
- 3. Report each approach with the following <template/>:
131
-
132
- <template>
133
- &#x1F535; **APPROACH A<n/>**<annotation/>: *<summary/>*
134
- - [...]
135
- - [...]
136
- - [...]
137
- <optional-diagram/>
138
- </template>
139
-
140
- Hints:
141
-
142
- - Give a short one-sentence <summary/> of the feature approach plus
143
- *precise* and *brief* feature information. Try to keep the
144
- number of bullet points in the range of 1-4.
145
-
146
- - In case of a *complex feature situation* only, visualize it with
147
- an optional diagram <optional-diagram/> by invoking the
148
- `ase-meta-diagram` skill via the `Skill` tool. For *current vs.
149
- proposed* comparisons, render each side as a *separate*
150
- `ase-meta-diagram` invocation and stack the rendered blocks
151
- *vertically* (labels `**Before:**` / `**After:**`); never
152
- side-by-side. Omit <optional-diagram/> entirely for simple or
153
- purely local situation.
154
-
155
- *Recommended* Tenets (generic):
128
+ 1. *Recommended* Tenets (generic):
156
129
 
157
130
  - **Surgical Changes**:
158
131
  Keep source code changes always as small as possible.
@@ -170,20 +143,73 @@ permitted way to persist artifacts is via `task_save(...)`.
170
143
  Strictly align with the existing code base by exactly following its
171
144
  coding style, its structure, its naming conventions, etc.
172
145
 
173
- *Essential* Tenets (specific):
146
+ 2. *Essential* Tenets (feature crafting specific):
174
147
 
175
148
  - **High Cohesion, Low Coupling**:
176
149
  Strike for a set of small, focused parts (high cohesion) connected by
177
150
  thin, explicit wires (low coupling).
178
151
 
179
- 4. **Choose Feature Crafting Approach**:
152
+ 4. **Find Feature Crafting Approaches**:
153
+
154
+ You *MUST* perform the following sub-steps *internally* and *without
155
+ any output* until and including the recommendation decision. Only
156
+ sub-step 4 below is allowed to produce output.
157
+
158
+ 1. *Propose* corresponding *feature approach*, including optionally,
159
+ some *alternative* feature approaches. Do *not* output anything
160
+ in this sub-step.
161
+
162
+ 2. *Reflect* on and *critique* the proposed approaches by deriving,
163
+ per approach, a small set of concrete *pros* and *cons*. Do
164
+ *not* output anything in this sub-step.
165
+
166
+ 3. Based on the reflection, *decide* which approach to recommend
167
+ and annotate it with an <annotation/> of
168
+ ` ⚝ **RECOMMENDATION** ⚝`. All other approaches receive an
169
+ empty <annotation/>. Do *not* output anything in this sub-step.
170
+
171
+ 4. *Now* report each approach with the following <template/>,
172
+ inlining its pros/cons derived in sub-step 2:
173
+
174
+ <template>
175
+ &#x1F535; **APPROACH A<n/>**<annotation/>: *<summary/>*
176
+ ● [...]
177
+ ● [...]
178
+ ● [...]
179
+ ⊕ *pro*: [...]
180
+ ⊖ *con*: [...]
181
+ <optional-diagram/>
182
+ </template>
183
+
184
+ Hints:
185
+
186
+ - Give a short one-sentence <summary/> of the feature approach plus
187
+ *precise* and *brief* feature information. Try to keep the
188
+ number of bullet points (●) in the range of 1-4.
189
+
190
+ - In case of a *complex feature situation* only, visualize
191
+ it with an optional diagram <optional-diagram/> by building
192
+ a Mermaid specification <mermaid-spec/> (e.g. `flowchart
193
+ TB`, `stateDiagram-v2`, `sequenceDiagram`, `classDiagram`,
194
+ or `erDiagram`, depending on intent) and invoking the
195
+ `ase-meta-diagram` skill by calling the tool `Skill(skill:
196
+ "ase:ase-meta-diagram", args: <mermaid-spec/>)`. For
197
+ *current vs. proposed* comparisons, render each side as
198
+ a *separate* `ase-meta-diagram` invocation and stack the
199
+ rendered blocks *vertically* (labels `**Before:**` /
200
+ `**After:**`); never side-by-side. Omit <optional-diagram/>
201
+ entirely for simple or purely local situation.
202
+
203
+ 5. **Choose Feature Crafting Approach**:
180
204
 
181
205
  1. If <getopt-option-auto/> is equal `false`:
182
206
  Let the *user interactively choose* the preferred feature
183
207
  approach A<n/> with the help of the <user-dialog-tool/> tool.
184
- Use the header `Select Approach` and *single-selection* only
185
- and provide small *code change previews*. Mark your recommended
186
- feature approach with ` **RECOMMENDATION** ⚝` here again.
208
+ Use the header `Select Approach`, use `A<n/>: <short-summary/>`
209
+ for the option (where <short-summary/> is an ultra brief summary
210
+ of the approach A<n/>), and *single-selection* only and provide
211
+ small *code change previews*. Mark your recommended feature
212
+ approach with ` ⚝ **RECOMMENDATION** ⚝` here again.
187
213
 
188
214
  2. If <getopt-option-auto/> is equal `true`:
189
215
  Set <n/> to the number of the feature approach A<n/> you recommend.
@@ -193,7 +219,7 @@ permitted way to persist artifacts is via `task_save(...)`.
193
219
  ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **auto-chosen approach A<n/>**
194
220
  </template>
195
221
 
196
- 5. **Compose Feature Crafting Plan**:
222
+ 6. **Compose Feature Crafting Plan**:
197
223
 
198
224
  1. *Compose a feature plan* for the chosen feature A<n/> by
199
225
  closely aligning to the existing architecture and the existing
@@ -220,59 +246,9 @@ permitted way to persist artifacts is via `task_save(...)`.
220
246
  ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan created**
221
247
  </template>
222
248
 
223
- 5. *Determine next step*:
224
-
225
- - If <getopt-option-next/> matches the regex `^(DONE|EDIT|PREFLIGHT|IMPLEMENT)$`:
226
- Honor the pre-selection what to do as the next step.
227
- Set <result><getopt-option-next/></result>.
228
-
229
- - If <getopt-option-next/> is equal to `none`:
230
- Let the *user interactively choose* what to do as the next step.
231
-
232
- <expand name="user-dialog">
233
- Next Step: How would you like to proceed with the plan?
234
- DONE: Stop processing.
235
- EDIT: Hand processing off to editing.
236
- PREFLIGHT: Hand processing off to preflighting.
237
- IMPLEMENT: Hand processing off to implementation.
238
- </expand>
239
-
240
- 6. Check the tool <result/> and dispatch accordingly:
241
-
242
- - If <result/> is `DONE` or `CANCEL`:
243
- Only output the following <template/> and then *STOP*.
244
-
245
- <template>
246
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **done**
247
- </template>
248
-
249
- - If <result/> is `EDIT`:
250
- Only output the following <template/> and then use the
251
- `Skill` tool to invoke the `ase:ase-task-edit` skill in
252
- order to edit the plan. Immediately stop processing the
253
- current skill once the `Skill` tool was used.
254
-
255
- <template>
256
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **hand off to edit**
257
- </template>
258
-
259
- - If <result/> is `PREFLIGHT`:
260
- Only output the following <template/> and then use the
261
- `Skill` tool to invoke the `ase:ase-task-preflight` skill in
262
- order to preflight the plan. Immediately stop processing the
263
- current skill once the `Skill` tool was used.
264
-
265
- <template>
266
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **hand off to preflight**
267
- </template>
268
-
269
- - If <result/> is `IMPLEMENT`:
270
- Only output the following <template/> and then use the
271
- `Skill` tool to invoke the `ase:ase-task-implement` skill in
272
- order to implement the plan. Immediately stop processing the
273
- current skill once the `Skill` tool was used.
274
-
275
- <template>
276
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **hand off to implement**
277
- </template>
249
+ 5. Directly pass-through control to the `ase:ase-task-edit` skill.
250
+ Set <args></args> (set args to empty). If <getopt-option-next/>
251
+ is not equal `none`, set <args><args/> --next
252
+ <getopt-option-next/></args> (append to args). Then call the
253
+ tool `Skill(skill: "ase:ase-task-edit", args: <args/>)`.
278
254
 
@@ -12,6 +12,7 @@ allowed-tools:
12
12
  - "Agent"
13
13
  ---
14
14
 
15
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
15
16
  @${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
16
17
  @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
17
18
 
@@ -72,10 +73,12 @@ code and *explain* it in *brief*, *standardized*, and *concise* way.
72
73
  Second, draw a diagram to show the control or data flow, code or
73
74
  data structure, or code or data relationships. What gives the best
74
75
  overall overview of the code?
75
- Choose the Mermaid diagram type per intent: `classDiagram` for
76
- class/method structure, `sequenceDiagram` for actor/message flow,
77
- or `flowchart TB` for boxes-and-lines component layouts.
78
- Invoke the `ase-meta-diagram` skill via the `Skill` tool to render the
76
+ Build a Mermaid specification <mermaid-spec/>, choosing the Mermaid
77
+ diagram type per intent: `classDiagram` for class/method structure,
78
+ `sequenceDiagram` for actor/message flow, or `flowchart TB` for
79
+ boxes-and-lines component layouts. Then invoke the
80
+ `ase-meta-diagram` skill by calling the tool `Skill(skill:
81
+ "ase:ase-meta-diagram", args: <mermaid-spec/>)` to render the
79
82
  diagram. Do *not* hand-draw.
80
83
 
81
84
  Keep your explanation *brief* and *concise*.
@@ -14,6 +14,7 @@ allowed-tools:
14
14
  - "Skill"
15
15
  ---
16
16
 
17
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
17
18
  @${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
18
19
  @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
19
20
 
@@ -90,11 +91,13 @@ Give *insights* into the project through the source code of $ARGUMENTS.
90
91
  &#x1F535; **MODULE STRUCTURE**:
91
92
  </template>
92
93
 
93
- Find all modules (or OOP classes) and draw a `flowchart TB`
94
- diagram with all modules as boxes and the imports between modules
95
- as the directed edges. Invoke the `ase-meta-diagram` skill via the
96
- `Skill` tool to render the diagram. Do not display any further
97
- explanation except for this diagram.
94
+ Find all modules (or OOP classes) and build a Mermaid specification
95
+ <mermaid-spec/> for a `flowchart TB` diagram with all modules as
96
+ boxes and the imports between modules as the directed edges. Then
97
+ invoke the `ase-meta-diagram` skill by calling the tool
98
+ `Skill(skill: "ase:ase-meta-diagram", args: <mermaid-spec/>)`
99
+ to render the diagram. Do not display any further explanation except
100
+ for this diagram.
98
101
  </step>
99
102
  </flow>
100
103
 
@@ -8,6 +8,7 @@ disable-model-invocation: false
8
8
  effort: medium
9
9
  ---
10
10
 
11
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
11
12
  @${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
12
13
  @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
13
14