@rse/ase 0.0.29 → 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 (49) 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/dst/ase-task.js +12 -7
  5. package/package.json +2 -1
  6. package/plugin/.claude/settings.local.json +7 -0
  7. package/plugin/.claude-plugin/plugin.json +20 -0
  8. package/plugin/.github/plugin/plugin.json +21 -0
  9. package/plugin/agents/ase-meta-chat.md +10 -0
  10. package/plugin/agents/ase-meta-search.md +16 -0
  11. package/plugin/commands/ase-code-lint/complete.md +9 -0
  12. package/plugin/commands/ase-code-lint/explain.md +9 -0
  13. package/plugin/commands/ase-code-lint/nope.md +11 -0
  14. package/plugin/commands/ase-code-lint/reassess.md +15 -0
  15. package/plugin/commands/ase-code-lint/recheck.md +9 -0
  16. package/plugin/commands/ase-code-lint/refine.md +9 -0
  17. package/plugin/hooks/hooks-copilot.json +23 -0
  18. package/plugin/hooks/hooks.json +40 -0
  19. package/plugin/meta/ase-constitution.md +114 -0
  20. package/plugin/meta/ase-dialog.md +122 -0
  21. package/plugin/meta/ase-persona.md +63 -0
  22. package/plugin/meta/ase-plan.md +69 -0
  23. package/plugin/meta/ase-skill.md +238 -0
  24. package/plugin/skills/ase-arch-analyze/SKILL.md +442 -0
  25. package/plugin/skills/ase-arch-discover/SKILL.md +160 -0
  26. package/plugin/skills/ase-code-analyze/SKILL.md +108 -0
  27. package/plugin/skills/ase-code-craft/SKILL.md +237 -0
  28. package/plugin/skills/ase-code-explain/SKILL.md +115 -0
  29. package/plugin/skills/ase-code-insight/SKILL.md +96 -0
  30. package/plugin/skills/ase-code-lint/SKILL.md +382 -0
  31. package/plugin/skills/ase-code-refactor/SKILL.md +241 -0
  32. package/plugin/skills/ase-code-resolve/SKILL.md +299 -0
  33. package/plugin/skills/ase-meta-changes/SKILL.md +95 -0
  34. package/plugin/skills/ase-meta-chat/SKILL.md +58 -0
  35. package/plugin/skills/ase-meta-commit/SKILL.md +64 -0
  36. package/plugin/skills/ase-meta-diagram/SKILL.md +101 -0
  37. package/plugin/skills/ase-meta-evaluate/SKILL.md +247 -0
  38. package/plugin/skills/ase-meta-persona/SKILL.md +52 -0
  39. package/plugin/skills/ase-meta-quorum/SKILL.md +122 -0
  40. package/plugin/skills/ase-meta-search/SKILL.md +48 -0
  41. package/plugin/skills/ase-meta-why/SKILL.md +69 -0
  42. package/plugin/skills/ase-task-delete/SKILL.md +76 -0
  43. package/plugin/skills/ase-task-edit/SKILL.md +390 -0
  44. package/plugin/skills/ase-task-id/SKILL.md +46 -0
  45. package/plugin/skills/ase-task-implement/SKILL.md +146 -0
  46. package/plugin/skills/ase-task-list/SKILL.md +44 -0
  47. package/plugin/skills/ase-task-preflight/SKILL.md +181 -0
  48. package/plugin/skills/ase-task-reboot/SKILL.md +161 -0
  49. package/plugin/skills/ase-task-view/SKILL.md +81 -0
@@ -0,0 +1,63 @@
1
+
2
+ Ruleset Levels
3
+ --------------
4
+
5
+ ### Level 1
6
+
7
+ <define name="level1">
8
+ - You *MUST* *use* short synonyms
9
+ ("big" not "extensive", "fix" not "implement a solution for").
10
+ - You *MUST* *drop* articles ("a", "an", "the", etc).
11
+ - You *MUST* *drop* filler ("just", "really", "basically", "actually", "simply", etc).
12
+ - You *MUST* *drop* pleasantries ("sure", "certainly", "of course", "happy to", etc).
13
+ - You *MUST* *drop* hedging ("I think", "maybe", "perhaps", "it seems",
14
+ "sort of", "probably", "I'm not sure but...", "it might be", etc).
15
+ - You *MUST* *keep* technical terms exactly.
16
+ - You *MUST* *keep* code blocks unchanged.
17
+ - You *MUST* *keep* errors quoted exactly.
18
+ - You *MUST* *use* diagrams instead of prose when a topic this way can be explained more consisely.
19
+ </define>
20
+
21
+ ### Level 2
22
+
23
+ <define name="level2">
24
+ - You *MUST* *use* abbreviations ("DB", "auth", "config", "req", "res", "fn", "impl", etc).
25
+ - You *MUST* *use* arrows for causality ("X → Y").
26
+ - You *MUST* *drop* conjunctions ("and", "but", "or", "so", "because", "however", "therefore", "although"), and instead *use* short sentences.
27
+ - You *MUST* *drop* all fluff in wording.
28
+ </define>
29
+
30
+ ### Level 3
31
+
32
+ <define name="level3">
33
+ - You *MUST* *use* one word, when one word is enough.
34
+ - You *MUST* *use* the sentence pattern: `<thing/> <action/> <reason/>.`
35
+ - You *MUST* *keep* all technical substance.
36
+ - You *MUST* *drop* all lists and just provide very short sentences.
37
+ </define>
38
+
39
+ Apply Persona
40
+ -------------
41
+
42
+ - *IMPORTANT*: Output *MUST* in all cases follow the following conditioned rules even if later skill rules say different:
43
+
44
+ - <if condition="<ase-persona-style/> is 'writer'">
45
+ - You *MUST* use a decorative, eloquent, and explaining communication style of a writer.
46
+ - This is your default style of communication where no rulesets are applied.
47
+ </if>
48
+
49
+ - <if condition="<ase-persona-style/> is 'engineer'">
50
+ - You *MUST* use a brief, factual, and accurate communication style of an engineer.
51
+ - Apply ruleset "level1": <expand name="level1"/>
52
+ </if>
53
+ - <if condition="<ase-persona-style/> is 'telegrapher'">
54
+ - You *MUST* use a very brief, factual, and abbreviating communication style of a telegrapher.
55
+ - Apply ruleset "level1": <expand name="level1"/>
56
+ - Apply ruleset "level2": <expand name="level2"/>
57
+ </if>
58
+ - <if condition="<ase-persona-style/> is 'caveman'">
59
+ - You *MUST* use an ultra brief, rough and stuttering communication style of a caveman.
60
+ - Apply ruleset "level1": <expand name="level1"/>
61
+ - Apply ruleset "level2": <expand name="level2"/>
62
+ - Apply ruleset "level3": <expand name="level3"/>
63
+ </if>
@@ -0,0 +1,69 @@
1
+
2
+ Plan Format
3
+ -----------
4
+
5
+ Every *task plan* uses a strict and fixed format:
6
+
7
+ <format>
8
+
9
+ # ✪ TASK PLAN: **<title/>**
10
+
11
+ ◉ task id: **<ase-task-id/>** // ✳ created: **<timestamp-created/>** // ✎ modified: **<timestamp-modified/>**
12
+
13
+ ## ※ CONTEXT:
14
+
15
+ - **WHAT**: <summary-what/>
16
+
17
+ - **WHY**: <summary-why/>
18
+
19
+ ## ※ CHANGES:
20
+
21
+ - [...]
22
+
23
+ - [...]
24
+
25
+ ## ※ VERIFICATION:
26
+
27
+ - [...]
28
+
29
+ - [...]
30
+
31
+ </format>
32
+
33
+ You *MUST* honor the following hints on this *task plan* format:
34
+
35
+ - You *MUST* always keep the first empty line and the last empty line.
36
+ If one of them is missing, add it back.
37
+
38
+ - In all descriptions, highlight *code* as
39
+ <template>`<code/>`</template> and *key aspects* as
40
+ <template>*<aspect/>*</template>.
41
+
42
+ - For <summary-what/> and <summary-why/> use *ultra brief* but
43
+ as *very precise* as possible description of the overall change. In
44
+ <summary-what/> tell what is changed. In <summary-why/> tell why it
45
+ is changed, what benefit results or what the rationale is behind the
46
+ change.
47
+
48
+ - The <timestamp-created/> is the timestamp when this feature
49
+ crafting specification was created. The
50
+ <timestamp-modified/> is the timestamp when this feature
51
+ specification was last modified. Both use a ISO-style format
52
+ value. The value of both can be determined by
53
+ a call to the `timestamp(format: "yyyy-LL-dd HH:mm")`
54
+ tool of the `ase` MCP service and use the `text` field of
55
+ its response.
56
+
57
+ - The <title/> is a short summary of the <summary-what/>, no longer than
58
+ 50 characters.
59
+
60
+ - The sections `※ CHANGES:` and `※ VERIFICATION:` all are just a short
61
+ list of 1-5 bullet points. Each bullet points is formatted as
62
+ `- **<aspect/>**: <specification/>` where <aspect/> indicates
63
+ the aspect of the section and <specification/> is 1-3 sentences
64
+ giving a *ultra precise* but also *ultra brief* and *ultra concise*
65
+ description of the aspect.
66
+
67
+ - In all sections, break all lines with a newline character
68
+ after about 120 characters per line for better subsequent
69
+ manual editing.
@@ -0,0 +1,238 @@
1
+
2
+ ASE Skill Meta Information
3
+ ==========================
4
+
5
+ Skill Output
6
+ ------------
7
+
8
+ - *IMPORTANT*: The following rules apply both to regular skill responses
9
+ *and* to generated plan files (`EnterPlanMode` tool).
10
+
11
+ - *IMPORTANT*: The syntax `<xxx>[...]</xxx>` is used to *set* the value
12
+ of a placeholder named `xxx`, and the syntax `<xxx/>` is used to *get*
13
+ the value of a placeholder named `xxx`.
14
+
15
+ - *IMPORTANT*: *All* output is *exclusively* requested through
16
+ <template/> sections. You *MUST* *NOT* output anything *EXCEPT* it
17
+ is explicitly included in such a <template/> section. Especially,
18
+ you *MUST* *NOT* output any explanations on your own, except
19
+ explicitly requested.
20
+
21
+ - *IMPORTANT*: You *MUST* output all <template/> sections *EXACTLY* as provided
22
+ (including newlines), except for removing trailing spaces and
23
+ replacing the placeholders `<xxx/>` and `[...]` and replacing XML
24
+ entities (like `&#x25CB;`) with the corresponding Unicode characters.
25
+
26
+ - *IMPORTANT*: The active *persona style* (see `ase-persona.md`) *MUST* be applied
27
+ to all *free-text placeholders* within <template/> sections — i.e. any placeholder
28
+ whose content you author yourself (such as `<description/>`, `<title/>`, `<objective/>`,
29
+ `<summary/>`, `<explanation/>`, etc.). The *structure* of the template (fixed keywords,
30
+ punctuation, labels) remains unchanged; only the *authored content* inside free
31
+ placeholders carries the persona style.
32
+
33
+ - *IMPORTANT*: You *MUST* *NEVER* output any `---` lines.
34
+
35
+ - *IMPORTANT*: For *Diagrams*: whenever the response needs a
36
+ diagram (structural, control-flow, state, sequence, class,
37
+ entity-relationship, or metrics), you *MUST* invoke the
38
+ `ase-meta-diagram` skill via the `Skill` tool and follow its rules.
39
+ All hand-drawn ASCII frames, raw Mermaid source as a
40
+ substitute for a rendered block, and missing stdout
41
+ reproduction are defects defined by that skill.
42
+
43
+ - *IMPORTANT*: For Markdown *Tables*:
44
+
45
+ - *Alignment is mandatory*: every vertical edge character
46
+ (`|`, `│`, `+`) that belongs in the same column *must*
47
+ sit at the same column across all rows. Determine box
48
+ width from the *longest* content line plus 1-space
49
+ padding, draw the top edge to that width, then keep every
50
+ inner line (including annotations like `!`, `?`, `*`)
51
+ within it. Count columns and verify before emitting; a
52
+ one-space drift is a defect -— re-render.
53
+
54
+ - *IMPORTANT*: For *Findings* (problems, tradeoffs, warnings
55
+ emitted by analysis skills):
56
+
57
+ - *Evidence-grounded (mandatory)*: each finding MUST cite
58
+ the exact line range that triggers it AND the cited
59
+ snippet must prove the claim *verbatim*. If the cited
60
+ lines do not prove the claim, *re-investigate and
61
+ re-cite correctly*. Drop the finding *only* if no code
62
+ location in the scanned files proves it — never drop
63
+ due to sloppy citation alone.
64
+
65
+ - *Documented-context alignment*: cross-check each
66
+ finding against documented context — interface
67
+ contracts, docstrings (Javadoc, JSDoc, Python
68
+ docstring, ...), adjacent code comments, and
69
+ project-level AI guidance files (`CLAUDE.md`,
70
+ `AGENTS.md`, `GEMINI.md`, `MEMORY.md`,
71
+ `.github/copilot-instructions.md`, `.cursor/rules/`,
72
+ or similar). Two cases resolve via the same
73
+ mechanism — do *not* drop, keep the finding visible
74
+ for traceability:
75
+
76
+ - *Problem already addressed*: the finding's
77
+ concern is explicitly stated in a contract or
78
+ docstring (e.g. "MUST be non-blocking"). Mark
79
+ severity `ACCEPTED` with note "contractually
80
+ addressed".
81
+
82
+ - *Fix conflicts with documented priority*: the
83
+ recommendation would violate a documented priority
84
+ (hot-path, allocation-free, lock-free, latency-
85
+ sensitive, sub-µs budget). Either weaken the
86
+ recommendation, convert it to a tradeoff, or mark
87
+ severity `ACCEPTED` with note "priority-conflict
88
+ accepted".
89
+
90
+ Skills that report severity MUST support `ACCEPTED`
91
+ in addition to `LOW`, `MEDIUM`, and `HIGH`.
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 its <define-body/> with `<args/>`
112
+ substituted with `<expand-arg1/> <expand-arg2/> [...]`, `<arg1/>`
113
+ substituted with <expand-arg1/>, and `<content/>` substituted with
114
+ <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
+ Skill Sequential Processing
156
+ ---------------------------
157
+
158
+ - *IMPORTANT*: For each given <flow/>, you *MUST* use the
159
+ `TaskCreate` tool to create a corresponding set of processing steps.
160
+
161
+ Each `<step id="xxx" [...]/>` corresponds to a `TaskCreate({
162
+ subject: "xxx", description: "xxx", activeForm: "xxx" })`. In
163
+ other words, use the text of the `id` attribute of <step/> for the
164
+ `subject`, `description`, and `activeForm` fields of `TaskCreate`.
165
+
166
+ Make the `TaskCreate` tool calls *sequentially*, *not* in parallel,
167
+ so the user can see intermediate results.
168
+
169
+ - *IMPORTANT*: For each <step/> you *MUST* use the `TaskUpdate` tool
170
+ for updating its status during processing.
171
+
172
+ - *IMPORTANT*: You *MUST* sequentially execute every <step/> in
173
+ a <flow/> *EXACTLY* as the instructions specify.
174
+
175
+ - *IMPORTANT*: For any <step/> that specifies an *agent* in its
176
+ `agent="[...]"` XML attribute, you *MUST* use the specified
177
+ *agent* to execute the instructions for that <step/>.
178
+
179
+ - *IMPORTANT*: If you need clarification on any details of your current
180
+ <step/>, temporarily stop and immediately ask the user specific
181
+ numbered questions, and then continue immediately once you have all
182
+ of the information you need.
183
+
184
+ - *IMPORTANT*: You *MUST* output the result of all <step/> *EXACTLY* as
185
+ provided, without any further text interpretations and modifications.
186
+
187
+ MCP Tool Calls
188
+ --------------
189
+
190
+ - *IMPORTANT*: Whenever you call *any* tool from the `ase` MCP service,
191
+ you *MUST* check the response immediately:
192
+
193
+ - If the call fails because the `ase` MCP service is not running
194
+ (tool not found, connection refused, server not connected, internal
195
+ error), output the following and stop immediately:
196
+
197
+ <template>
198
+ ⧉ **ASE**: **ERROR:** MCP service not running — please start it via `ase service start` and reconnect via `/mcp`, then retry.
199
+ </template>
200
+
201
+ - If the call fails for any other reason (timeout, transport error,
202
+ or other infrastructure problem), output the following and stop immediately:
203
+
204
+ <template>
205
+ ⧉ **ASE**: **ERROR:** MCP tool unavailable
206
+ </template>
207
+
208
+ - If the response `text` starts with or contains `ERROR: <info/>`,
209
+ output the following and stop immediately:
210
+
211
+ <template>
212
+ ⧉ **ASE**: **ERROR:** MCP tool failed: <info/>
213
+ </template>
214
+
215
+ - Only on a clean response: proceed as the skill instructs.
216
+
217
+ Skill Identification
218
+ --------------------
219
+
220
+ - *IMPORTANT*: Set <skill></skill> (set to empty)
221
+ and <skill-name></skill-name> (set name to empty).
222
+ Then, in case <skill/> later becomes *not* empty
223
+ by defining it as <skill name="<name/>"><body/></skill>,
224
+ set <skill-name><name/></skill-name> (set skill name to name),
225
+ set <skill><body/></skill> (set skill to body), and
226
+ then you *MUST* once output the following output <template/>:
227
+
228
+ <template>
229
+ ⧉ **ASE**: ☻ skill: **<skill-name/>**, ✦ purpose: **<skill/>**, ▶ status: **skill started**
230
+ </template>
231
+
232
+ - *IMPORTANT*: Set <objective></objective> (set to empty).
233
+ Then, in case <objective/> later becomes *not* empty,
234
+ you *MUST* once output the following output <template/>:
235
+
236
+ <template>
237
+ ⧉ **ASE**: ◎ objective: **<objective/>**
238
+ </template>