@rse/ase 0.0.30 → 0.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dst/ase-hello.js +22 -0
- package/dst/ase-hook.js +3 -1
- package/dst/ase-setup.js +10 -7
- package/package.json +2 -1
- package/plugin/.claude/settings.local.json +7 -0
- package/plugin/.claude-plugin/plugin.json +20 -0
- package/plugin/.github/plugin/plugin.json +21 -0
- package/plugin/agents/ase-meta-chat.md +10 -0
- package/plugin/agents/ase-meta-search.md +16 -0
- package/plugin/commands/ase-code-lint/complete.md +9 -0
- package/plugin/commands/ase-code-lint/explain.md +9 -0
- package/plugin/commands/ase-code-lint/nope.md +11 -0
- package/plugin/commands/ase-code-lint/reassess.md +15 -0
- package/plugin/commands/ase-code-lint/recheck.md +9 -0
- package/plugin/commands/ase-code-lint/refine.md +9 -0
- package/plugin/hooks/hooks-copilot.json +23 -0
- package/plugin/hooks/hooks.json +40 -0
- package/plugin/meta/ase-constitution.md +114 -0
- package/plugin/meta/ase-dialog.md +122 -0
- package/plugin/meta/ase-persona.md +63 -0
- package/plugin/meta/ase-plan.md +69 -0
- package/plugin/meta/ase-skill.md +238 -0
- package/plugin/skills/ase-arch-analyze/SKILL.md +442 -0
- package/plugin/skills/ase-arch-discover/SKILL.md +160 -0
- package/plugin/skills/ase-code-analyze/SKILL.md +108 -0
- package/plugin/skills/ase-code-craft/SKILL.md +237 -0
- package/plugin/skills/ase-code-explain/SKILL.md +115 -0
- package/plugin/skills/ase-code-insight/SKILL.md +96 -0
- package/plugin/skills/ase-code-lint/SKILL.md +382 -0
- package/plugin/skills/ase-code-refactor/SKILL.md +241 -0
- package/plugin/skills/ase-code-resolve/SKILL.md +299 -0
- package/plugin/skills/ase-meta-changes/SKILL.md +95 -0
- package/plugin/skills/ase-meta-chat/SKILL.md +58 -0
- package/plugin/skills/ase-meta-commit/SKILL.md +64 -0
- package/plugin/skills/ase-meta-diagram/SKILL.md +101 -0
- package/plugin/skills/ase-meta-evaluate/SKILL.md +247 -0
- package/plugin/skills/ase-meta-persona/SKILL.md +52 -0
- package/plugin/skills/ase-meta-quorum/SKILL.md +122 -0
- package/plugin/skills/ase-meta-search/SKILL.md +48 -0
- package/plugin/skills/ase-meta-why/SKILL.md +69 -0
- package/plugin/skills/ase-task-delete/SKILL.md +76 -0
- package/plugin/skills/ase-task-edit/SKILL.md +390 -0
- package/plugin/skills/ase-task-id/SKILL.md +46 -0
- package/plugin/skills/ase-task-implement/SKILL.md +146 -0
- package/plugin/skills/ase-task-list/SKILL.md +44 -0
- package/plugin/skills/ase-task-preflight/SKILL.md +181 -0
- package/plugin/skills/ase-task-reboot/SKILL.md +161 -0
- package/plugin/skills/ase-task-view/SKILL.md +81 -0
|
@@ -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 `○`) 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>
|