@rse/ase 0.0.43 → 0.0.46

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 CHANGED
@@ -50,7 +50,7 @@ export const projectClassificationPresets = {
50
50
  }
51
51
  };
52
52
  /* hard-coded map: which scope kinds each variable may be SET on
53
- (reads always cascade through the full chain, this restricts writes only);
53
+ (reads always cascade through the full chain; this restricts writes only);
54
54
  keys absent from this map default to all non-"default" scope kinds */
55
55
  export const configWritableScopes = {
56
56
  "agent.task": ["session"]
package/dst/ase-hook.js CHANGED
@@ -177,7 +177,7 @@ export default class HookCommand {
177
177
  #{@ase_agent_status} (refreshed on tmux's own interval,
178
178
  independent of Claude Code's statusline repaint cadence).
179
179
  Notice: the Claude Code statusline is not usable for this case
180
- here at all, as it is not repainted during agent processing! */
180
+ at all, as it is not repainted during agent processing! */
181
181
  writeAgentStatus(status) {
182
182
  const icon = status === "busy" ? "▶" : "⏸";
183
183
  if (process.env.TMUX !== undefined
package/dst/ase-skills.js CHANGED
@@ -6,7 +6,7 @@
6
6
  import { z } from "zod";
7
7
  import { ofetch } from "ofetch";
8
8
  import pacote from "pacote";
9
- /* reusable functionality: gather per-package metadata in maximum parallel */
9
+ /* reusable functionality: gather per-package metadata with maximum parallelism */
10
10
  export class Skills {
11
11
  /* HTTP timeout for the GitHub/npm-downloads side calls */
12
12
  static HTTP_TIMEOUT_MS = 10_000;
@@ -75,7 +75,7 @@ export class Skills {
75
75
  return "N.A.";
76
76
  }
77
77
  }
78
- /* gather metadata for all given components in maximum parallel,
78
+ /* gather metadata for all given components with maximum parallelism,
79
79
  dispatching on the technology stack:
80
80
  - "JavaScript"/"TypeScript": NPM registry (pacote) + GitHub stars + npm-downloads
81
81
  - "Java"/"Kotlin"/"Unknown": not yet supported -- return empty result */
@@ -160,7 +160,7 @@ export class SkillsMCP {
160
160
  register(mcp) {
161
161
  mcp.registerTool("component_info", {
162
162
  title: "ASE component info",
163
- description: "Gather metadata for a list of NPM packages in maximum parallel. " +
163
+ description: "Gather metadata for a list of NPM packages with maximum parallelism. " +
164
164
  "For each package, fetches the full registry packument via `pacote` " +
165
165
  "(in-process, no `npm view` subprocess), the GitHub `stargazers_count` " +
166
166
  "from `api.github.com` (if the repository points to GitHub), and the " +
@@ -481,7 +481,7 @@ export default class StatuslineCommand {
481
481
  /* send output */
482
482
  process.stdout.write(out);
483
483
  /* optionally publish task id to the calling tmux pane as a per-pane user
484
- option, so someone (like claudeX) can pick it up via #{@ase_task_id} */
484
+ option, so something (like claudeX) can pick it up via #{@ase_task_id} */
485
485
  if (process.env.TMUX !== undefined
486
486
  && process.env.TMUX !== ""
487
487
  && process.env.TMUX_PANE !== undefined
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.43",
9
+ "version": "0.0.46",
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.43",
3
+ "version": "0.0.46",
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.43",
3
+ "version": "0.0.46",
4
4
  "description": "Agentic Software Engineering (ASE)",
5
5
  "keywords": [ "agentic", "software", "engineering" ],
6
6
  "homepage": "https://ase.tools",
@@ -21,7 +21,7 @@ Prohibitions
21
21
  - Do *not* factor out (move) code into own functions without good reason, like necessary reusability.
22
22
  - Do *not* use braces around single statement blocks in "if" and "while" constructs unless the language requires them.
23
23
  - Do *not* insist on early "return" in "if" blocks if an "else" block exists.
24
- - Do *not* remove any whitespaces in the code formatting -- keep whitespaces align with code base.
24
+ - Do *not* remove any whitespaces in the code formatting -- keep whitespaces aligned with code base.
25
25
  - Do *not* show just partial code changes -- always show complete changes.
26
26
  - Do *not* produce any line which consists of just one or more space characters before the newline -- use just the newline.
27
27
  - Do *not* use semicolons where they are syntactically optional, except inside `for` clauses.
@@ -50,7 +50,7 @@ Commandments
50
50
  - Try to *vertically align similar operators* on consecutive, similar lines.
51
51
  - Place spaces after opening and before closing angle brackets and braces.
52
52
  - Use *double-quotes* (`"[...]"`) instead of single-quotes (`'[...]'`) for all strings.
53
- - Use K&R coding style with *opening braces* at end of lines and *closing braces* at the begin of lines.
53
+ - Use K&R coding style with *opening braces* at end of lines and *closing braces* at the beginning of lines.
54
54
  - When a language has a *more strongly-typed variant*, prefer that
55
55
  variant (e.g., TypeScript over JavaScript, Python with type hints
56
56
  over untyped Python).
@@ -1,36 +1,43 @@
1
1
 
2
- Ruleset Levels
3
- --------------
2
+ Persona Ruleset Levels
3
+ ----------------------
4
+
5
+ ### Level 0
6
+
7
+ <define name="level0">
8
+ - You *MUST* *always keep* technical terms exactly.
9
+ - You *MUST* *always keep* errors quoted exactly.
10
+ - You *MUST* *always keep* code blocks unchanged.
11
+ </define>
4
12
 
5
13
  ### Level 1
6
14
 
7
15
  <define name="level1">
8
- - You *MUST* *use* short synonyms
9
- ("big" not "extensive", "fix" not "implement a solution for").
10
- - You *MUST* *drop* filler
16
+ - You *MUST* *drop* filler words
11
17
  ("just", "really", "basically", "actually", "simply", etc).
12
18
  - You *MUST* *drop* pleasantries
13
19
  ("sure", "certainly", "of course", "happy to", etc).
14
20
  - You *MUST* *drop* hedging
15
21
  ("I think", "maybe", "perhaps", "it seems", "sort of", "probably", "I'm not sure but...", "it might be", etc).
16
- - You *MUST* *keep* technical terms exactly.
17
- - You *MUST* *keep* code blocks unchanged.
18
- - You *MUST* *keep* errors quoted exactly.
19
- - You *MUST* *use* diagrams instead of prose when a topic this way can be explained more consisely.
22
+ - You *MUST* *prefer* lists with bullet points, instead of long prose paragraphs.
23
+ - You *MUST* *prefer* bullet points with one or two sentences.
20
24
  </define>
21
25
 
22
26
  ### Level 2
23
27
 
24
28
  <define name="level2">
29
+ - You *MUST* *use* shorter synonyms
30
+ ("big" not "extensive", "fix" not "implement a solution for").
25
31
  - You *MUST* *use* abbreviations
26
32
  ("DB", "auth", "config", "req", "res", "fn", "impl", etc).
27
33
  - You *MUST* *use* arrows for causality
28
34
  ("X → Y").
35
+ - You *MUST* *use* em-dashes for short subsequent facts
36
+ ("X — Y").
29
37
  - You *MUST* *drop* articles
30
38
  ("a", "an", "the", etc).
31
- - You *MUST* *drop* conjunctions
32
- ("and", "but", "or", "so", "because", "however", "therefore", "although"),
33
- and instead *use* short sentences.
39
+ - You *MUST* *use* short separate sentences instead of conjunctions
40
+ ("and", "but", "or", "so", "because", "however", "therefore", "although").
34
41
  - You *MUST* *drop* all fluff in wording.
35
42
  </define>
36
43
 
@@ -40,12 +47,12 @@ Ruleset Levels
40
47
  - You *MUST* *use* only one word, when one word is clear enough.
41
48
  - You *MUST* *use* only two words, when two words are clear enough.
42
49
  - You *MUST* *use* the three sentence patterns
43
- (dependending what information has to be expressed):
50
+ (depending what information has to be expressed):
44
51
  - `<subject/> <action/> <object/>, <reason/>.` → e.g. "Cat eats fish, hungry."
45
52
  - `<subject/> <action/> <object/>.` → e.g. "Dog chases ball."
46
53
  - `<subject/> <action/>.` → e.g. "Birds fly."
47
- - You *MUST* *drop* all lists and just provide very short sentences.
48
- - You *MUST* *keep* all technical substance.
54
+ - You *MUST* *drop* all lists and their bullet points and instead
55
+ provide very short subsequent sentences only.
49
56
  </define>
50
57
 
51
58
  Apply Persona
@@ -55,23 +62,26 @@ Apply Persona
55
62
  rules even if later skill rules say different:
56
63
 
57
64
  - <if condition="<ase-persona-style/> is 'writer'">
58
- - You *MUST* use a decorative, eloquent, and explaining communication style of a writer.
59
- - This is your default style of communication where no rulesets are applied.
65
+ - You *MUST* use the decorative, eloquent, and explaining communication style of a *writer*.
66
+ - Apply ruleset "level0": <expand name="level0"/>
60
67
  </if>
61
68
 
62
69
  - <if condition="<ase-persona-style/> is 'engineer'">
63
- - You *MUST* use a brief, factual, and accurate communication style of an engineer.
70
+ - You *MUST* use the concise, factual, and accurate communication style of an *engineer*.
71
+ - Apply ruleset "level0": <expand name="level0"/>
64
72
  - Apply ruleset "level1": <expand name="level1"/>
65
73
  </if>
66
74
 
67
75
  - <if condition="<ase-persona-style/> is 'telegrapher'">
68
- - You *MUST* use a very brief, factual, and abbreviating communication style of a telegrapher.
76
+ - You *MUST* use the brief, factual, and abbreviating communication style of a *telegrapher*.
77
+ - Apply ruleset "level0": <expand name="level0"/>
69
78
  - Apply ruleset "level1": <expand name="level1"/>
70
79
  - Apply ruleset "level2": <expand name="level2"/>
71
80
  </if>
72
81
 
73
82
  - <if condition="<ase-persona-style/> is 'caveman'">
74
- - You *MUST* use an ultra brief, rough and stuttering communication style of a caveman.
83
+ - You *MUST* use the terse, rough and stuttering communication style of a *caveman*.
84
+ - Apply ruleset "level0": <expand name="level0"/>
75
85
  - Apply ruleset "level1": <expand name="level1"/>
76
86
  - Apply ruleset "level2": <expand name="level2"/>
77
87
  - Apply ruleset "level3": <expand name="level3"/>
@@ -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 a ISO-style format
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
@@ -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.43",
9
+ "version": "0.0.46",
10
10
  "license": "GPL-3.0-only",
11
11
  "author": {
12
12
  "name": "Dr. Ralf S. Engelschall",
@@ -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, except you asked the user.
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 good as possible.
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
- Strike for good modularity by a set of small, focused parts
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 situation.
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 with caused the most churn by
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
 
@@ -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 sub-sequent lines.
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 then 100 lines, and for
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>
@@ -187,7 +187,7 @@ related to a set of code quality aspects.
187
187
  <expand name="linter" arg1="A08 - COMPLICATENESS">
188
188
  Check for complicated or cumbersome code constructs.
189
189
 
190
- Especially, check for unnecessary difficult code constructs
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 unnecessary long code constructs 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 less domain-specific
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, except you asked the user.
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 good as possible.
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
- Strike for good modularity by a set of small, focused parts
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 situation.
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, except you asked the user.
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 situation.
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 good as possible.
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, except they are
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**:
@@ -207,7 +207,7 @@ permitted way to persist artifacts is via `task_save(...)`.
207
207
  Problems for *obvious, particular, or expected* errors
208
208
  *should* be handled *near the origin*. Problems for
209
209
  *theoretical, fictive, or unexpected* errors, *should* be
210
- handled more general and in parent scopes.
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 situation.
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,119 @@
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 "spellcheck", "proofread", or "lint" a text or document.
7
+ user-invocable: true
8
+ disable-model-invocation: false
9
+ effort: high
10
+ ---
11
+
12
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
13
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
14
+
15
+ Proofread Documentation
16
+ =======================
17
+
18
+ <skill name="ase-docs-proofread">
19
+ Analyze the documents for spelling, punctuation, or grammar errors.
20
+ </skill>
21
+
22
+ <role>
23
+ Your role is an experienced, *expert-level proofreader*, specialized in
24
+ checking and correcting the *spelling*, *punctuation* and *grammar* of
25
+ documents.
26
+ </role>
27
+
28
+ <objective>
29
+ *Analyze* the documents of $ARGUMENTS for problems in their *spelling*,
30
+ *punctuation* or *grammar* and immediately correct all found problems.
31
+ </objective>
32
+
33
+ <flow>
34
+
35
+ 1. <step id="STEP 1: Investigation & Checking">
36
+ Investigate on the document base by using the `Read` tool to read all
37
+ referenced document files. For all contained texts in those files,
38
+ check the following problem types *ONLY*:
39
+
40
+ - **Spelling**
41
+ - **Punctuation**
42
+ - **Grammar**
43
+
44
+ You *MUST* collect *all* found problems into an internal list only,
45
+ and then set <problems/> to the value of this list.
46
+
47
+ You *MUST* *NOT* propose document changes in this step 1.
48
+ You *MUST* *NOT* output anything in this step 1.
49
+ </step>
50
+
51
+ 2. <step id="STEP 2: Summary">
52
+ Use the following <template/> to give a summary of the detected
53
+ problems in <problems/>:
54
+
55
+ <template>
56
+ | *Proofread Type* | *Proofread Result* |
57
+ | ---------------- | ----------------------- |
58
+ | **SPELLING**: | **<n/>** problems found |
59
+ | **PUNCTUATION**: | **<m/>** problems found |
60
+ | **GRAMMAR**: | **<k/>** problems found |
61
+ </template>
62
+
63
+ Hints:
64
+
65
+ - <n/> is the number of spelling problems in <problems/>
66
+ - <m/> is the number of punctuation problems in <problems/>
67
+ - <k/> is the number of grammar problems in <problems/>
68
+ </step>
69
+
70
+ 3. <step id="STEP 3: Details & Correction">
71
+
72
+ <for items="<problems/>">
73
+
74
+ For the current <item/> from the collected list <problems/>, do the
75
+ following:
76
+
77
+ 1. Report the problem with the following <template/>:
78
+
79
+ <template>
80
+ &#x1F7E0; **<type/>**: [`<file/>`:<line/>]: <description/>
81
+ </template>
82
+
83
+ Hints:
84
+
85
+ - The <type/> is `SPELLING`, `PUNCTUATION` or `GRAMMAR`
86
+ of <item/>.
87
+
88
+ - The <file/> is the name of the document artifact of <item/>.
89
+ The <line/> is the line number of the document artifact of <item/>.
90
+
91
+ - The <description/> is an ultra brief and concise description
92
+ of the problem <item/> with a hint what is wrong and why
93
+ it is wrong. In <description/>, markup all verbatim words
94
+ <words/> related to the checked text (or the proposed
95
+ corrected text) as quoted strings containing monospaced text
96
+ with the Markdown <template>"`<words/>`"</template>.
97
+
98
+ 2. Propose a direct change to the corresponding document via the
99
+ interactive `Edit` tool.
100
+
101
+ **IMPORTANT**: Regardless of whether the change was *accepted*
102
+ or *rejected* by the user (i.e., even if the `Edit` tool returns
103
+ an error like "The user doesn't want to proceed with this tool
104
+ use" or "User rejected"), you *MUST* immediately *CONTINUE* with
105
+ the *next* <item/> in the iteration.
106
+
107
+ Do *NOT* stop. Do *NOT* ask the user for confirmation. Do *NOT*
108
+ summarize. A rejection is *NOT* a signal to abort; it is only
109
+ a signal that *this one* change is skipped. Only after *all*
110
+ problems have been processed may you stop.
111
+
112
+ </for>
113
+
114
+ You *MUST* *NOT* output any further additional explanations or
115
+ summaries at the end of this skill processing.
116
+ </step>
117
+
118
+ </flow>
119
+
@@ -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
- are always formatted `<prefix/>: <summary/>` where
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
 
@@ -78,8 +78,8 @@ are also grouped and sorted according to the above <prefix/>es.
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 too less comprehensible
82
- because of too less context, add some context, especially references
81
+ If a changelog <summary/> is too short or is too little comprehensible
82
+ because of too little context, add some context, especially references
83
83
  to the class/module/package, etc.
84
84
  </step>
85
85
 
@@ -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 ChatCGPT, Google Gemini,
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 *consise commit message* for the
27
+ Help to *craft* a *concise commit message* for the
28
28
  currently staged Git changes.
29
29
  </objective>
30
30
 
@@ -7,7 +7,7 @@ description: >
7
7
  control-flow/branching/concurrency as Flowchart,
8
8
  state-machine/states/transitions as an UML State Diagram,
9
9
  data-flow/actors/messages/protocols as an UML Sequence Diagram,
10
- data-structure/classes/methods as an UML Class Diagram
10
+ data-structure/classes/methods as an UML Class Diagram,
11
11
  data-model/entities/relationships as an ER Diagram, or
12
12
  metrics/distributions/time-series as XY-Charts.
13
13
  user-invocable: false
@@ -116,7 +116,7 @@ multi-*criteria* decision matrix.
116
116
  - From the <request>$ARGUMENTS</request>, try to derive the criteria
117
117
  <criteria-L/> (L=1-M) for the evaluation. Do not output anything.
118
118
 
119
- - For each criteria <criteria-L/> (L=1-M), decide on its <weight-L/>
119
+ - For each criterion <criteria-L/> (L=1-M), decide on its <weight-L/>
120
120
  from the value set { 4.00, 2.00, 1.00, 0.50, 0.25 } (from most
121
121
  important, over normal, to less important). Do not output anything.
122
122
 
@@ -146,9 +146,9 @@ multi-*criteria* decision matrix.
146
146
  </step>
147
147
 
148
148
  4. <step id="STEP 4: Evaluate Alternatives against Criteria">
149
- - For each alternative <alternative-K/> (K=1-N) and each criteria
149
+ - For each alternative <alternative-K/> (K=1-N) and each criterion
150
150
  <criteria-L/> (L=1-M), decide on the evaluation <eval-K-L/>, which
151
- means how good the alternative meets the criteria on a Likert-scale
151
+ means how well the alternative meets the criterion on a Likert-scale
152
152
  from { -2, -1, 0, +1, +2 } (from worst, over neutral, to best). Do
153
153
  not output anything.
154
154
 
@@ -2,53 +2,57 @@
2
2
  name: ase-meta-persona
3
3
  argument-hint: "[<persona>]"
4
4
  description: >
5
- Adjust communication style in four intensivity levels of token usage.
6
- The <persona> can be either a decorative, eloquent, and explaining "writer",
7
- a brief, factual, and accurate "engineer" (default),
8
- a very brief, factual, and abbreviating "telegrapher",
9
- or an ultra brief, rough and stuttering "caveman".
5
+ Adjust communication style in four intensity levels of token usage.
6
+ The <persona> can be either the decorative, eloquent, and explaining "writer",
7
+ the concise, factual, and accurate "engineer" (default),
8
+ the brief, factual, and abbreviating "telegrapher",
9
+ the terse, rough and stuttering "caveman".
10
10
  Use when user says "persona <persona>" or "be <persona>".
11
11
  user-invocable: true
12
12
  disable-model-invocation: false
13
13
  ---
14
14
 
15
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
16
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
17
+
15
18
  Persona Configuration
16
19
  =====================
17
20
 
18
21
  1. Determine request:
19
22
  <request>$ARGUMENTS</request>
23
+ Do not output anything.
20
24
 
21
25
  2. <if condition="<request/> is empty">
22
- - Call the `persona(session: <ase-session-id/>)`
26
+ 1. Call the `persona(session: <ase-session-id/>)`
23
27
  tool from the `ase` MCP service and set
24
28
  <ase-persona-style/> to its `text` output.
29
+ Do not output anything.
30
+
31
+ 2. Output the following <template/>:
25
32
 
26
- - Output:
27
33
  <template>
28
34
  ⧉ **ASE**: ☯ persona: **<ase-persona-style/>**
29
35
  </template>
30
36
  </if>
31
37
 
32
38
  3. <if condition="<request/> is NOT empty">
33
- - If <request/> is NEITHER 'writer', 'engineer', 'telegrapher', NOR 'caveman',
34
- report this with the following <template/> and stop immediately:
39
+ 1. If <request/> is NEITHER 'writer', 'engineer', 'telegrapher',
40
+ NOR 'caveman', report this with the following <template/> and then
41
+ *STOP* immediately:
42
+
35
43
  <template>
36
- ⧉ **ASE**: **ERROR:** invalid persona: "<request/>" (expected "writer", "engineer", "telegrapher", or "caveman")
44
+ ⧉ **ASE**: **ERROR:** invalid persona: "<request/>" (expected `writer`, `engineer`, `telegrapher`, or `caveman`)
37
45
  </template>
38
46
 
39
- - Set <ase-persona-style><request/></ase-persona-style> and
40
- call the `persona(style: <ase-persona-style/>, session: <ase-session-id/>)`
41
- tool from the `ase` MCP service.
47
+ 2. Set <ase-persona-style><request/></ase-persona-style> and
48
+ call the `persona(style: <ase-persona-style/>, session:
49
+ <ase-session-id/>)` tool from the `ase` MCP service. Do not
50
+ output anything.
51
+
52
+ 3. Output the following <template/>:
42
53
 
43
- - Output:
44
54
  <template>
45
55
  ⧉ **ASE**: ☯ persona: **<ase-persona-style/>** (*updated*)
46
56
  </template>
47
57
  </if>
48
58
 
49
- Apply Persona
50
- -------------
51
-
52
- @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
53
- @${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
54
-
@@ -83,7 +83,7 @@ by querying *multiple* AIs for an *optimal consensus*.
83
83
 
84
84
  If not all AIs agree, determine a <disagreement/> information,
85
85
  formatted as `(disagreement: <ai/>, <ai/>, [...])` where <ai/> is a
86
- name of an AI which disagreed from the consensus. Else, if all AIs
86
+ name of an AI which disagreed with the consensus. Else, if all AIs
87
87
  agree, set <disagreement></disagreement>.
88
88
  </step>
89
89
 
@@ -22,7 +22,7 @@ Your role is an *expert-level assistant*.
22
22
 
23
23
  <objective>
24
24
  Apply the *Five-Whys* *root-cause analysis* technique to investigate
25
- on the following problem:
25
+ the following problem:
26
26
 
27
27
  <problem>Why $ARGUMENTS?</problem>
28
28
 
@@ -48,7 +48,7 @@ addressing surface-level symptoms.
48
48
  Ask <question/> and document the answer in <answer/> with the following template:
49
49
  Don't stop at symptoms, keep digging for systemic issues.
50
50
  Multiple root-causes may exist -- explore different branches.
51
- Consider both technical, domain-specific, process-related or organizational causes.
51
+ Consider technical, domain-specific, process-related, or organizational causes.
52
52
 
53
53
  <template>
54
54
  &#x26AA; **WHY <item/>**: <answer/>
@@ -277,7 +277,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
277
277
 
278
278
  1. *Update timestamp*:
279
279
  <if condition="<content/> contains '✎ modified:' AND <content-dirty/> is 'true'">
280
- Set update <timestamp-modified/> with the current time in
280
+ Update <timestamp-modified/> with the current time in
281
281
  ISO-style format, which has to be determined by calling the
282
282
  `timestamp(format: "yyyy-LL-dd HH:mm")` tool of the `ase`
283
283
  MCP service and use the `text` field of its response. Update
@@ -126,7 +126,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
126
126
  </template>
127
127
 
128
128
  3. <if condition="<content/> contains '✎ modified:'">
129
- Set update <timestamp-modified/> with the current time in
129
+ Update <timestamp-modified/> with the current time in
130
130
  ISO-style format, which has to be determined by calling the
131
131
  `timestamp(format: "yyyy-LL-dd HH:mm")` tool of the `ase`
132
132
  MCP service and use the `text` field of its response. Update
@@ -71,7 +71,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
71
71
  *Render plan*: Only output the following <template/>, so the user
72
72
  can read the plan and react to it. Do *not* truncate, summarize,
73
73
  or partially show the plan -- always show the complete plan
74
- <content/> here:.
74
+ <content/> here.
75
75
 
76
76
  <template>
77
77
  ⧉ **ASE**: ┈┈┈┈┈┈┈┈────────━━━━━━━━**(** `TASK-PLAN-BEGIN` **)**━━━━━━━━────────┈┈┈┈┈┈┈┈