@rse/ase 0.0.44 → 0.0.48
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 +103 -3
- package/dst/ase-getopt.js +5 -1
- package/dst/ase-hook.js +48 -1
- package/dst/ase-service.js +2 -1
- package/dst/ase-skills.js +184 -44
- package/dst/ase-statusline.js +1 -1
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.github/plugin/plugin.json +1 -1
- package/plugin/meta/ase-constitution.md +7 -7
- package/plugin/meta/ase-control.md +1 -1
- package/plugin/meta/ase-dialog.md +2 -2
- package/plugin/meta/ase-persona.md +6 -5
- package/plugin/meta/ase-plan.md +3 -3
- package/plugin/meta/ase-skill.md +2 -2
- package/plugin/package.json +1 -1
- package/plugin/skills/ase-arch-analyze/SKILL.md +2 -2
- package/plugin/skills/ase-arch-discover/SKILL.md +14 -3
- package/plugin/skills/ase-code-craft/SKILL.md +4 -4
- package/plugin/skills/ase-code-explain/SKILL.md +1 -1
- package/plugin/skills/ase-code-insight/SKILL.md +1 -1
- package/plugin/skills/ase-code-lint/SKILL.md +8 -8
- package/plugin/skills/ase-code-refactor/SKILL.md +4 -4
- package/plugin/skills/ase-code-resolve/SKILL.md +7 -7
- package/plugin/skills/ase-docs-proofread/SKILL.md +293 -0
- package/plugin/skills/ase-meta-changes/SKILL.md +6 -6
- package/plugin/skills/ase-meta-chat/SKILL.md +1 -1
- package/plugin/skills/ase-meta-commit/SKILL.md +1 -1
- package/plugin/skills/ase-meta-diagram/SKILL.md +5 -5
- package/plugin/skills/ase-meta-evaluate/SKILL.md +4 -4
- package/plugin/skills/ase-meta-persona/SKILL.md +1 -1
- package/plugin/skills/ase-meta-quorum/SKILL.md +1 -1
- package/plugin/skills/ase-meta-why/SKILL.md +2 -2
- package/plugin/skills/ase-task-edit/SKILL.md +1 -1
- package/plugin/skills/ase-task-preflight/SKILL.md +1 -1
- package/plugin/skills/ase-task-view/SKILL.md +1 -1
package/plugin/meta/ase-plan.md
CHANGED
|
@@ -51,7 +51,7 @@ You *MUST* honor the following hints on this *task plan* format:
|
|
|
51
51
|
- The <timestamp-created/> is the timestamp when this feature
|
|
52
52
|
crafting specification was created. The
|
|
53
53
|
<timestamp-modified/> is the timestamp when this feature
|
|
54
|
-
specification was last modified. Both use
|
|
54
|
+
specification was last modified. Both use an ISO-style format
|
|
55
55
|
value. The value of both can be determined by
|
|
56
56
|
a call to the `timestamp(format: "yyyy-LL-dd HH:mm")`
|
|
57
57
|
tool of the `ase` MCP service and use the `text` field of
|
|
@@ -61,10 +61,10 @@ You *MUST* honor the following hints on this *task plan* format:
|
|
|
61
61
|
50 characters.
|
|
62
62
|
|
|
63
63
|
- The sections `※ CHANGES` and `※ VERIFICATION` all are just a short
|
|
64
|
-
list of 1-5 bullet points. Each bullet
|
|
64
|
+
list of 1-5 bullet points. Each bullet point is formatted as
|
|
65
65
|
`- **<aspect/>**: <specification/>` where <aspect/> indicates
|
|
66
66
|
the aspect of the section and <specification/> is 1-3 sentences
|
|
67
|
-
giving
|
|
67
|
+
giving an *ultra precise* but also *ultra brief* and *ultra concise*
|
|
68
68
|
description of the aspect.
|
|
69
69
|
|
|
70
70
|
- In all sections, break all lines with a newline character
|
package/plugin/meta/ase-skill.md
CHANGED
|
@@ -15,7 +15,7 @@ Skill Output
|
|
|
15
15
|
- *IMPORTANT*: *All* output is *exclusively* requested through
|
|
16
16
|
<template/> sections. You *MUST* *NOT* output anything *EXCEPT* it
|
|
17
17
|
is explicitly included in such a <template/> section. Especially,
|
|
18
|
-
you *MUST* *NOT* output any explanations on your own,
|
|
18
|
+
you *MUST* *NOT* output any explanations on your own, unless
|
|
19
19
|
explicitly requested.
|
|
20
20
|
|
|
21
21
|
- *IMPORTANT*: You *MUST* output all <template/> sections *EXACTLY* as provided
|
|
@@ -49,7 +49,7 @@ Skill Output
|
|
|
49
49
|
padding, draw the top edge to that width, then keep every
|
|
50
50
|
inner line (including annotations like `!`, `?`, `*`)
|
|
51
51
|
within it. Count columns and verify before emitting; a
|
|
52
|
-
one-space drift is a defect
|
|
52
|
+
one-space drift is a defect — re-render.
|
|
53
53
|
|
|
54
54
|
- *IMPORTANT*: For *Findings* (problems, tradeoffs, warnings
|
|
55
55
|
emitted by analysis skills):
|
package/plugin/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.
|
|
9
|
+
"version": "0.0.48",
|
|
10
10
|
"license": "GPL-3.0-only",
|
|
11
11
|
"author": {
|
|
12
12
|
"name": "Dr. Ralf S. Engelschall",
|
|
@@ -170,7 +170,7 @@ interface quality, quality attributes, and architecture governance.
|
|
|
170
170
|
races and shared mutable state is covered by SA17.)
|
|
171
171
|
- **SA09 COHESION**: *strong cohesion* within each component —
|
|
172
172
|
internal parts (functions, fields, methods) are *tightly
|
|
173
|
-
related*, *co-change*, and share data or
|
|
173
|
+
related*, *co-change*, and share data or behavior; scattered
|
|
174
174
|
helpers that merely coexist by accident are flagged.
|
|
175
175
|
- **SA10 EXTENSIBILITY**: components are *open for extension*
|
|
176
176
|
(plugins, SPIs, hooks) but *closed for modification*.
|
|
@@ -266,7 +266,7 @@ interface quality, quality attributes, and architecture governance.
|
|
|
266
266
|
|
|
267
267
|
- *Package-graph construction (SA19–SA21)*: parse each file's
|
|
268
268
|
import (or equivalent language construct) statement, keep
|
|
269
|
-
only first-party packages within the
|
|
269
|
+
only first-party packages within the analyzed scope, and
|
|
270
270
|
persist two intermediate structures: the per-package
|
|
271
271
|
incoming/outgoing class-edge map (drives SA20, SA21) and
|
|
272
272
|
the per-package noun-token frequency table extracted from
|
|
@@ -9,6 +9,7 @@ disable-model-invocation: false
|
|
|
9
9
|
effort: medium
|
|
10
10
|
allowed-tools:
|
|
11
11
|
- "Bash(npm search --json *)"
|
|
12
|
+
- "Bash(curl -s https://search.maven.org/*)"
|
|
12
13
|
- "Skill"
|
|
13
14
|
- "Agent"
|
|
14
15
|
---
|
|
@@ -92,7 +93,7 @@ for the technology stack to *provide* the *needed functionality*
|
|
|
92
93
|
official package name as <package-K/>, the latest version as
|
|
93
94
|
<version-K/>, the stars as <stars-K/>, the created date as
|
|
94
95
|
<created-K/>, the last updated date as <updated-K/>, the total
|
|
95
|
-
number of downloads in the last month
|
|
96
|
+
number of downloads in the last month as <downloads-K/>.
|
|
96
97
|
|
|
97
98
|
- If <stack/> is "JavaScript" or "TypeScript":
|
|
98
99
|
|
|
@@ -114,9 +115,19 @@ for the technology stack to *provide* the *needed functionality*
|
|
|
114
115
|
|
|
115
116
|
- Based on the essential keywords <keyword-L/> (L=1-M),
|
|
116
117
|
use the `ase-meta-search` skill in a subagent to *generally*
|
|
117
|
-
discover an initial set of a maximum of 12 *
|
|
118
|
+
discover an initial set of a maximum of 12 *Maven packages*
|
|
118
119
|
<component-K/> and at least their real name <name-K/> and
|
|
119
|
-
their unique
|
|
120
|
+
their unique Maven coordinates <package-K/> of the form
|
|
121
|
+
`groupId:artifactId`.
|
|
122
|
+
|
|
123
|
+
- Use the shell command `curl -s 'https://search.maven.org/solrsearch/select?q=<keyword-1/>+<keyword-M/>&rows=12&wt=json'`
|
|
124
|
+
to *specifically* discover an additional set of a maximum
|
|
125
|
+
of 12 *Maven packages* <component-K/> and at least their
|
|
126
|
+
unique Maven coordinates <package-K/> (i.e. `<g/>:<a/>` from
|
|
127
|
+
each result document's `g` and `a` fields), based on the
|
|
128
|
+
essential keywords <keyword-L/> (L=1-M). Merge the results
|
|
129
|
+
into the already existing result set, but deduplicate
|
|
130
|
+
entries by Maven coordinate.
|
|
120
131
|
|
|
121
132
|
- Call the `component_info(stack: <stack/>, components:
|
|
122
133
|
[ <package-1/>, ..., <package-N/> ])` tool of the `ase` MCP
|
|
@@ -107,7 +107,7 @@ permitted way to persist artifacts is via `task_save(...)`.
|
|
|
107
107
|
7. Ask the user for clarification if the goal of this crafting is too
|
|
108
108
|
unclear.
|
|
109
109
|
|
|
110
|
-
8. Do not output anything in this step,
|
|
110
|
+
8. Do not output anything in this step, unless you asked the user.
|
|
111
111
|
|
|
112
112
|
2. **Investigate Code Base**:
|
|
113
113
|
|
|
@@ -127,7 +127,7 @@ permitted way to persist artifacts is via `task_save(...)`.
|
|
|
127
127
|
1. Generic Tenets:
|
|
128
128
|
|
|
129
129
|
- **Separation of Concerns**:
|
|
130
|
-
Clearly separate all individual concerns as
|
|
130
|
+
Clearly separate all individual concerns as well as possible.
|
|
131
131
|
|
|
132
132
|
- **Code Base Alignment**:
|
|
133
133
|
Strictly align with the existing source code base by exactly
|
|
@@ -162,7 +162,7 @@ permitted way to persist artifacts is via `task_save(...)`.
|
|
|
162
162
|
to change.
|
|
163
163
|
|
|
164
164
|
- **Loose Coupling, High Cohesion**:
|
|
165
|
-
|
|
165
|
+
Strive for good modularity by a set of small, focused parts
|
|
166
166
|
(high cohesion), connected by thin, explicit wires and
|
|
167
167
|
interfaces (loose coupling).
|
|
168
168
|
|
|
@@ -229,7 +229,7 @@ permitted way to persist artifacts is via `task_save(...)`.
|
|
|
229
229
|
a *separate* `ase-meta-diagram` invocation and stack the
|
|
230
230
|
rendered blocks *vertically* (labels `**Before:**` /
|
|
231
231
|
`**After:**`); never side-by-side. Omit <optional-diagram/>
|
|
232
|
-
entirely for simple or purely local
|
|
232
|
+
entirely for simple or purely local situations.
|
|
233
233
|
|
|
234
234
|
6. Indicate end of reporting by showing the following <template/>:
|
|
235
235
|
|
|
@@ -27,7 +27,7 @@ specialized in *explaining source code*.
|
|
|
27
27
|
|
|
28
28
|
<objective>
|
|
29
29
|
*Analyze* the source code of $ARGUMENTS, and its directly related source
|
|
30
|
-
code and *explain* it in *brief*, *standardized*, and *concise* way.
|
|
30
|
+
code and *explain* it in a *brief*, *standardized*, and *concise* way.
|
|
31
31
|
</objective>
|
|
32
32
|
|
|
33
33
|
<flow>
|
|
@@ -64,7 +64,7 @@ Give *insights* into the project through the source code of $ARGUMENTS.
|
|
|
64
64
|
</step>
|
|
65
65
|
|
|
66
66
|
3. <step id="STEP 3: SOURCE CHURN">
|
|
67
|
-
Display the source files
|
|
67
|
+
Display the source files which caused the most churn by
|
|
68
68
|
figuring out which source files have the most commits.
|
|
69
69
|
Display the following <template/>:
|
|
70
70
|
|
|
@@ -37,7 +37,7 @@ related to a set of code quality aspects.
|
|
|
37
37
|
</template>
|
|
38
38
|
|
|
39
39
|
Then decide whether you detected *potential problems* which
|
|
40
|
-
*
|
|
40
|
+
*require* a *code change* and *think* about this decision to be
|
|
41
41
|
sure it is *not* a false positive. Then choose one of the following
|
|
42
42
|
cases:
|
|
43
43
|
|
|
@@ -87,7 +87,7 @@ related to a set of code quality aspects.
|
|
|
87
87
|
2. <step id="A01 - FORMATTING">
|
|
88
88
|
<expand name="linter" arg1="A01 - FORMATTING">
|
|
89
89
|
Check for inconsistently formatted code and badly vertically
|
|
90
|
-
aligned code on
|
|
90
|
+
aligned code on subsequent lines.
|
|
91
91
|
|
|
92
92
|
For vertical alignment, prefer to align on operators. For
|
|
93
93
|
continuous code blocks (those without any blank lines at all),
|
|
@@ -135,7 +135,7 @@ related to a set of code quality aspects.
|
|
|
135
135
|
Check for extremely long functions, and deeply nested code
|
|
136
136
|
constructs.
|
|
137
137
|
|
|
138
|
-
Especially, for functions prefer fewer
|
|
138
|
+
Especially, for functions prefer fewer than 100 lines, and for
|
|
139
139
|
nested constructs prefer fewer than 10 nesting levels.
|
|
140
140
|
</expand>
|
|
141
141
|
</step>
|
|
@@ -183,11 +183,11 @@ related to a set of code quality aspects.
|
|
|
183
183
|
</expand>
|
|
184
184
|
</step>
|
|
185
185
|
|
|
186
|
-
9. <step id="A08 -
|
|
187
|
-
<expand name="linter" arg1="A08 -
|
|
186
|
+
9. <step id="A08 - COMPLICATEDNESS">
|
|
187
|
+
<expand name="linter" arg1="A08 - COMPLICATEDNESS">
|
|
188
188
|
Check for complicated or cumbersome code constructs.
|
|
189
189
|
|
|
190
|
-
Especially, check for
|
|
190
|
+
Especially, check for unnecessarily difficult code constructs
|
|
191
191
|
for which simpler solutions exist.
|
|
192
192
|
</expand>
|
|
193
193
|
</step>
|
|
@@ -196,9 +196,9 @@ related to a set of code quality aspects.
|
|
|
196
196
|
<expand name="linter" arg1="A09 - CONCISENESS">
|
|
197
197
|
Check for non-concise and boilerplate-based code.
|
|
198
198
|
|
|
199
|
-
Especially, check for
|
|
199
|
+
Especially, check for unnecessarily long code constructs for
|
|
200
200
|
which shorter solutions exist, and check for unnecessary
|
|
201
|
-
technical/infrastructural code with too
|
|
201
|
+
technical/infrastructural code with too few domain-specific
|
|
202
202
|
aspects.
|
|
203
203
|
</expand>
|
|
204
204
|
</step>
|
|
@@ -107,7 +107,7 @@ permitted way to persist artifacts is via `task_save(...)`.
|
|
|
107
107
|
7. Ask the user for clarification if the goal of this refactoring is
|
|
108
108
|
too unclear.
|
|
109
109
|
|
|
110
|
-
8. Do not output anything in this step,
|
|
110
|
+
8. Do not output anything in this step, unless you asked the user.
|
|
111
111
|
|
|
112
112
|
2. **Investigate Code Base**:
|
|
113
113
|
|
|
@@ -127,7 +127,7 @@ permitted way to persist artifacts is via `task_save(...)`.
|
|
|
127
127
|
1. Generic Tenets:
|
|
128
128
|
|
|
129
129
|
- **Separation of Concerns**:
|
|
130
|
-
Clearly separate all individual concerns as
|
|
130
|
+
Clearly separate all individual concerns as well as possible.
|
|
131
131
|
|
|
132
132
|
- **Code Base Alignment**:
|
|
133
133
|
Strictly align with the existing source code base by exactly
|
|
@@ -155,7 +155,7 @@ permitted way to persist artifacts is via `task_save(...)`.
|
|
|
155
155
|
to change.
|
|
156
156
|
|
|
157
157
|
- **Loose Coupling, High Cohesion**:
|
|
158
|
-
|
|
158
|
+
Strive for good modularity by a set of small, focused parts
|
|
159
159
|
(high cohesion), connected by thin, explicit wires and
|
|
160
160
|
interfaces (loose coupling).
|
|
161
161
|
|
|
@@ -219,7 +219,7 @@ permitted way to persist artifacts is via `task_save(...)`.
|
|
|
219
219
|
a *separate* `ase-meta-diagram` invocation and stack the
|
|
220
220
|
rendered blocks *vertically* (labels `**Before:**` /
|
|
221
221
|
`**After:**`); never side-by-side. Omit <optional-diagram/>
|
|
222
|
-
entirely for simple or purely local
|
|
222
|
+
entirely for simple or purely local situations.
|
|
223
223
|
|
|
224
224
|
6. Indicate end of reporting by showing the following <template/>:
|
|
225
225
|
|
|
@@ -119,7 +119,7 @@ permitted way to persist artifacts is via `task_save(...)`.
|
|
|
119
119
|
8. Ask the user for clarification if the goal of this resolution is
|
|
120
120
|
too unclear.
|
|
121
121
|
|
|
122
|
-
9. Do not output anything in this step,
|
|
122
|
+
9. Do not output anything in this step, unless you asked the user.
|
|
123
123
|
|
|
124
124
|
10. Investigate and *figure out details* related to this problem.
|
|
125
125
|
Report those details with the following <template/>:
|
|
@@ -155,7 +155,7 @@ permitted way to persist artifacts is via `task_save(...)`.
|
|
|
155
155
|
`erDiagram`, depending on intent) and invoking the
|
|
156
156
|
`ase-meta-diagram` skill by calling the tool `Skill(skill:
|
|
157
157
|
"ase:ase-meta-diagram", args: <mermaid-spec/>)`. Omit
|
|
158
|
-
<optional-diagram/> entirely for simple or purely local
|
|
158
|
+
<optional-diagram/> entirely for simple or purely local situations.
|
|
159
159
|
|
|
160
160
|
2. **Investigate Code Base**:
|
|
161
161
|
|
|
@@ -175,7 +175,7 @@ permitted way to persist artifacts is via `task_save(...)`.
|
|
|
175
175
|
1. Generic Tenets:
|
|
176
176
|
|
|
177
177
|
- **Separation of Concerns**:
|
|
178
|
-
Clearly separate all individual concerns as
|
|
178
|
+
Clearly separate all individual concerns as well as possible.
|
|
179
179
|
|
|
180
180
|
- **Code Base Alignment**:
|
|
181
181
|
Strictly align with the existing source code base by exactly
|
|
@@ -189,7 +189,7 @@ permitted way to persist artifacts is via `task_save(...)`.
|
|
|
189
189
|
|
|
190
190
|
- **No Cleanups**:
|
|
191
191
|
Strictly focus on resolving the problem and do not mix this
|
|
192
|
-
task with any other necessary code cleanups,
|
|
192
|
+
task with any other necessary code cleanups, unless they are
|
|
193
193
|
really necessary for resolving the task.
|
|
194
194
|
|
|
195
195
|
- **Minimum Flags**:
|
|
@@ -206,8 +206,8 @@ permitted way to persist artifacts is via `task_save(...)`.
|
|
|
206
206
|
- **Origin Proximity**:
|
|
207
207
|
Problems for *obvious, particular, or expected* errors
|
|
208
208
|
*should* be handled *near the origin*. Problems for
|
|
209
|
-
*theoretical, fictive, or unexpected* errors
|
|
210
|
-
handled more
|
|
209
|
+
*theoretical, fictive, or unexpected* errors *should* be
|
|
210
|
+
handled more generally and in parent scopes.
|
|
211
211
|
|
|
212
212
|
4. **Find Problem Resolution Approaches**:
|
|
213
213
|
|
|
@@ -265,7 +265,7 @@ permitted way to persist artifacts is via `task_save(...)`.
|
|
|
265
265
|
a *separate* `ase-meta-diagram` invocation and stack the
|
|
266
266
|
rendered blocks *vertically* (labels `**Before:**` /
|
|
267
267
|
`**After:**`); never side-by-side. Omit <optional-diagram/>
|
|
268
|
-
entirely for simple or purely local
|
|
268
|
+
entirely for simple or purely local situations.
|
|
269
269
|
|
|
270
270
|
6. Indicate end of reporting by showing the following <template/>:
|
|
271
271
|
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ase-docs-proofread
|
|
3
|
+
argument-hint: "<docs-reference>"
|
|
4
|
+
description: >
|
|
5
|
+
Analyze the documents for spelling, punctuation, or grammar errors.
|
|
6
|
+
Use when the user wants to "proofread" or "spellcheck" a document.
|
|
7
|
+
user-invocable: true
|
|
8
|
+
disable-model-invocation: false
|
|
9
|
+
effort: medium
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
13
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
14
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md
|
|
15
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
16
|
+
|
|
17
|
+
Proofread Documentation
|
|
18
|
+
=======================
|
|
19
|
+
|
|
20
|
+
<skill name="ase-docs-proofread">
|
|
21
|
+
Analyze the documents for spelling, punctuation, or grammar errors.
|
|
22
|
+
</skill>
|
|
23
|
+
|
|
24
|
+
<expand name="getopt"
|
|
25
|
+
arg1="ase-docs-proofread"
|
|
26
|
+
arg2="--auto|-a">
|
|
27
|
+
$ARGUMENTS
|
|
28
|
+
</expand>
|
|
29
|
+
|
|
30
|
+
<role>
|
|
31
|
+
Your role is an experienced, *expert-level proofreader*, specialized in
|
|
32
|
+
checking and correcting the *spelling*, *punctuation* and *grammar* of
|
|
33
|
+
documents.
|
|
34
|
+
</role>
|
|
35
|
+
|
|
36
|
+
<objective>
|
|
37
|
+
*Analyze* the documents of `<getopt-arguments/>` for problems in their
|
|
38
|
+
*spelling*, *punctuation*, or *grammar* and propose corrections.
|
|
39
|
+
</objective>
|
|
40
|
+
|
|
41
|
+
<flow>
|
|
42
|
+
|
|
43
|
+
1. <step id="STEP 1: Investigation">
|
|
44
|
+
|
|
45
|
+
First, use the following <template/> to give a hint on this step:
|
|
46
|
+
|
|
47
|
+
<template>
|
|
48
|
+
⚪ **PROOFREADING INVESTIGATION**
|
|
49
|
+
</template>
|
|
50
|
+
|
|
51
|
+
Then dispatch the investigation to a *sub-agent* via the `Agent`
|
|
52
|
+
tool so that *no* investigation details leak into the user-visible
|
|
53
|
+
transcript. The sub-agent performs the silent reading and checking;
|
|
54
|
+
only its final structured return value is consumed here.
|
|
55
|
+
|
|
56
|
+
Invoke the `Agent` tool *exactly once* with:
|
|
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
|
+
```
|
|
135
|
+
|
|
136
|
+
4. You *MUST* *NOT* propose, apply, or render any document
|
|
137
|
+
changes itself.
|
|
138
|
+
|
|
139
|
+
Parse the JSON array from the sub-agent's return value and set
|
|
140
|
+
<problems/> to that list.
|
|
141
|
+
|
|
142
|
+
You *MUST* *NOT* output anything at all in this step 1 beyond the
|
|
143
|
+
single `Agent` tool invocation.
|
|
144
|
+
</step>
|
|
145
|
+
|
|
146
|
+
2. <step id="STEP 2: Summary">
|
|
147
|
+
|
|
148
|
+
Use the following <template/> to give a summary of the detected
|
|
149
|
+
problems in <problems/>:
|
|
150
|
+
|
|
151
|
+
<template>
|
|
152
|
+
⚪ **PROOFREADING SUMMARY**:
|
|
153
|
+
|
|
154
|
+
| *Proofread Type* | *Proofread Result* |
|
|
155
|
+
| ---------------- | ----------------------- |
|
|
156
|
+
| **SPELLING**: | **<n/>** problems found |
|
|
157
|
+
| **PUNCTUATION**: | **<m/>** problems found |
|
|
158
|
+
| **GRAMMAR**: | **<k/>** problems found |
|
|
159
|
+
|
|
160
|
+
</template>
|
|
161
|
+
|
|
162
|
+
Hints:
|
|
163
|
+
|
|
164
|
+
- <n/> is the number of problems with `type` equal to `SPELLING` in <problems/>
|
|
165
|
+
- <m/> is the number of problems with `type` equal to `PUNCTUATION` in <problems/>
|
|
166
|
+
- <k/> is the number of problems with `type` equal to `GRAMMAR` in <problems/>
|
|
167
|
+
|
|
168
|
+
</step>
|
|
169
|
+
|
|
170
|
+
3. <step id="STEP 3: Correction">
|
|
171
|
+
|
|
172
|
+
1. You *MUST* activate the auto-approve gate for the `Edit` tool
|
|
173
|
+
by setting the session-scoped `agent.skill` configuration value
|
|
174
|
+
to this skill's name via the MCP tool call `config_set(key:
|
|
175
|
+
"agent.skill", val: "ase-docs-proofread", scope:
|
|
176
|
+
"session:<ase-session-id/>")` of the `ase` service.
|
|
177
|
+
|
|
178
|
+
2. Iterate over all problems:
|
|
179
|
+
|
|
180
|
+
<for items="<problems/>">
|
|
181
|
+
|
|
182
|
+
1. Set <type/> to the `type` field of <item/>.
|
|
183
|
+
Set <file/> to the `file` field of <item/>.
|
|
184
|
+
Set <line/> to the `line` field of <item/>.
|
|
185
|
+
Set <description/> to the `description` field of <item/>.
|
|
186
|
+
Set <context-before/> to the `context_before` field of <item/>.
|
|
187
|
+
Set <old-text/> to the `old_text` field of <item/>.
|
|
188
|
+
Set <new-text/> to the `new_text` field of <item/>.
|
|
189
|
+
Set <context-after/> to the `context_after` field of <item/>.
|
|
190
|
+
|
|
191
|
+
2. Report the problem with the following <template/>:
|
|
192
|
+
|
|
193
|
+
<template>
|
|
194
|
+
🟠 **<type/> PROBLEM**: `<file/>`:<line/>:
|
|
195
|
+
|
|
196
|
+
<description/>
|
|
197
|
+
</template>
|
|
198
|
+
|
|
199
|
+
3. <if condition="<getopt-option-auto/> is not 'true'">
|
|
200
|
+
|
|
201
|
+
Render the proposed correction as a *unified diff* with *one*
|
|
202
|
+
line of context in a fenced block based on the following <template/>:
|
|
203
|
+
|
|
204
|
+
<template>
|
|
205
|
+
|
|
206
|
+
🔵 **<type/> CORRECTION**:
|
|
207
|
+
|
|
208
|
+
```diff
|
|
209
|
+
--- <file/> (original)
|
|
210
|
+
+++ <file/> (corrected)
|
|
211
|
+
@@ -<line/>,<n/> +<line/>,<m/> @@
|
|
212
|
+
<context-before/>
|
|
213
|
+
-<old-text/>
|
|
214
|
+
+<new-text/>
|
|
215
|
+
<context-after/>
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
</template>
|
|
219
|
+
|
|
220
|
+
Hints:
|
|
221
|
+
- The <n/> is the number of lines in <old-text/>.
|
|
222
|
+
- The <m/> is the number of lines in <new-text/>.
|
|
223
|
+
|
|
224
|
+
</if>
|
|
225
|
+
|
|
226
|
+
4. <if condition="<getopt-option-auto/> is not 'true'">
|
|
227
|
+
|
|
228
|
+
Ask the user how to proceed via an interactive user dialog:
|
|
229
|
+
|
|
230
|
+
<expand name="user-dialog">
|
|
231
|
+
CORRECTION: How would you like to proceed with this proposed correction?
|
|
232
|
+
ACCEPT: Apply the proposed correction.
|
|
233
|
+
REFINE: Discard this proposed correction and generate a new one.
|
|
234
|
+
REJECT: Skip this proposed correction.
|
|
235
|
+
</expand>
|
|
236
|
+
|
|
237
|
+
</if>
|
|
238
|
+
|
|
239
|
+
<if condition="<getopt-option-auto/> is 'true'">
|
|
240
|
+
|
|
241
|
+
Set <result>ACCEPT</result>.
|
|
242
|
+
|
|
243
|
+
</if>
|
|
244
|
+
|
|
245
|
+
5. Check <result/> and dispatch accordingly:
|
|
246
|
+
|
|
247
|
+
- <if condition="<result/> is 'ACCEPT'">
|
|
248
|
+
|
|
249
|
+
Invoke the `Edit` tool to apply the change exactly as shown
|
|
250
|
+
in the diff. The operation will be auto-approved because of
|
|
251
|
+
the active proofread marker, so *no* interactive permission
|
|
252
|
+
prompt will appear. Then continue with the next <item/>.
|
|
253
|
+
|
|
254
|
+
</if>
|
|
255
|
+
|
|
256
|
+
- <if condition="
|
|
257
|
+
<result/> starts with 'REFINE' or
|
|
258
|
+
<result/> starts with 'OTHER'
|
|
259
|
+
">
|
|
260
|
+
|
|
261
|
+
Generate a *new* proposal for the *same* <item/>
|
|
262
|
+
(incorporating the user's free-text hint from <result/> if
|
|
263
|
+
provided via the "OTHER" prefix) and loop back to substep 2
|
|
264
|
+
of this iteration. There is *no* cap on refinement rounds —
|
|
265
|
+
keep refining until the user picks `ACCEPT` or `REJECT`.
|
|
266
|
+
|
|
267
|
+
</if>
|
|
268
|
+
|
|
269
|
+
- <if condition="
|
|
270
|
+
<result/> is 'REJECT' or
|
|
271
|
+
<result/> is 'CANCEL' or
|
|
272
|
+
<result/> starts with 'ERROR'
|
|
273
|
+
">
|
|
274
|
+
|
|
275
|
+
Skip this <item/> without any `Edit` call and continue
|
|
276
|
+
with the next <item/>.
|
|
277
|
+
|
|
278
|
+
</if>
|
|
279
|
+
|
|
280
|
+
</for>
|
|
281
|
+
|
|
282
|
+
3. After the iteration has finished, you *MUST* clear the auto-approve
|
|
283
|
+
gate via the call MCP tool call `config_delete(key:
|
|
284
|
+
"agent.skill", scope: "session:<ase-session-id/>")` of the `ase`
|
|
285
|
+
service.
|
|
286
|
+
|
|
287
|
+
4. You *MUST* *NOT* output any further additional explanations or
|
|
288
|
+
summaries at the end of this skill processing.
|
|
289
|
+
|
|
290
|
+
</step>
|
|
291
|
+
|
|
292
|
+
</flow>
|
|
293
|
+
|
|
@@ -33,7 +33,7 @@ based on underlying *Git* commit messages.
|
|
|
33
33
|
</objective>
|
|
34
34
|
|
|
35
35
|
For this, understand that ChangeLog entries are
|
|
36
|
-
|
|
36
|
+
always formatted `<prefix/>: <summary/>` where
|
|
37
37
|
the <prefix/> is one of the following tags
|
|
38
38
|
and their usual related changes...
|
|
39
39
|
|
|
@@ -66,7 +66,7 @@ are also grouped and sorted according to the above <prefix/>es.
|
|
|
66
66
|
</step>
|
|
67
67
|
|
|
68
68
|
3. <step id="STEP 3: Complete ChangeLog entries">
|
|
69
|
-
Without immediately modifying `CHANGELOG.md` file,
|
|
69
|
+
Without immediately modifying the `CHANGELOG.md` file,
|
|
70
70
|
*complete* the entries in the first (most recent) section only,
|
|
71
71
|
by adding the corresponding (most recent) Git commits only.
|
|
72
72
|
For each Git commit, reduce the Git commit messages to a single
|
|
@@ -74,17 +74,17 @@ are also grouped and sorted according to the above <prefix/>es.
|
|
|
74
74
|
</step>
|
|
75
75
|
|
|
76
76
|
4. <step id="STEP 4: Consolidate ChangeLog entries">
|
|
77
|
-
Without immediately modifying `CHANGELOG.md` file,
|
|
77
|
+
Without immediately modifying the `CHANGELOG.md` file,
|
|
78
78
|
*consolidate* the entries in the first (most recent) section only,
|
|
79
79
|
by summarizing and merging closely related entries.
|
|
80
80
|
Perform the entry consolidation per prefix group only.
|
|
81
|
-
If a changelog <summary/> is too short or is
|
|
82
|
-
because of too
|
|
81
|
+
If a changelog <summary/> is too short or is not comprehensible enough
|
|
82
|
+
because of too little context, add some context, especially references
|
|
83
83
|
to the class/module/package, etc.
|
|
84
84
|
</step>
|
|
85
85
|
|
|
86
86
|
5. <step id="STEP 5: Sort ChangeLog entries">
|
|
87
|
-
Without immediately modifying `CHANGELOG.md` file,
|
|
87
|
+
Without immediately modifying the `CHANGELOG.md` file,
|
|
88
88
|
*sort* the entries in the first (most recent) section only.
|
|
89
89
|
Instead of the chronological commit order, group the entries
|
|
90
90
|
by the prefixes.
|
|
@@ -3,7 +3,7 @@ name: ase-meta-chat
|
|
|
3
3
|
argument-hint: "<llm> <query>"
|
|
4
4
|
description: >
|
|
5
5
|
Query foreign LLM for Chat.
|
|
6
|
-
Use this skill if a foreign LLM like OpenAI
|
|
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
|
|
@@ -24,7 +24,7 @@ Your role is an experienced, *expert-level software developer*,
|
|
|
24
24
|
specialized in *Git commit messages*.
|
|
25
25
|
|
|
26
26
|
<objective>
|
|
27
|
-
Help to *craft* a *
|
|
27
|
+
Help to *craft* a *concise commit message* for the
|
|
28
28
|
currently staged Git changes.
|
|
29
29
|
</objective>
|
|
30
30
|
|