@rse/ase 0.9.42 → 0.9.44
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-artifact.js +28 -24
- package/dst/ase-config.js +27 -36
- package/dst/ase-diagram.js +15 -35
- package/dst/ase-getopt.js +10 -15
- package/dst/ase-hook.js +29 -27
- package/dst/ase-kv.js +24 -29
- package/dst/ase-log.js +10 -3
- package/dst/ase-markdown.js +135 -102
- package/dst/ase-mcp.js +3 -10
- package/dst/ase-meta.js +6 -4
- package/dst/ase-persona.js +7 -11
- package/dst/ase-service.js +28 -28
- package/dst/ase-setup.js +15 -28
- package/dst/ase-skills.js +2 -2
- package/dst/ase-statusline.js +26 -34
- package/dst/ase-task.js +60 -63
- package/dst/ase-version.js +2 -1
- package/dst/ase.js +7 -11
- package/package.json +13 -12
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/.github/plugin/plugin.json +2 -2
- package/plugin/agents/ase-code-lint.md +4 -4
- package/plugin/agents/ase-docs-proofread.md +1 -1
- package/plugin/agents/ase-meta-chat.md +6 -6
- package/plugin/agents/ase-meta-diagram.md +1 -1
- package/plugin/agents/ase-meta-search.md +1 -1
- package/plugin/etc/eslint.mjs +0 -2
- package/plugin/meta/ase-constitution.md +1 -1
- package/plugin/meta/ase-control.md +1 -1
- package/plugin/meta/ase-dialog.md +2 -2
- package/plugin/meta/ase-format-arch.md +8 -8
- package/plugin/meta/ase-format-task.md +8 -10
- package/plugin/meta/ase-getopt.md +1 -1
- package/plugin/meta/ase-skill.md +1 -1
- package/plugin/package.json +8 -8
- package/plugin/skills/ase-arch-analyze/help.md +2 -2
- package/plugin/skills/ase-arch-discover/SKILL.md +2 -2
- package/plugin/skills/ase-arch-discover/help.md +3 -2
- package/plugin/skills/ase-code-analyze/SKILL.md +0 -1
- package/plugin/skills/ase-code-craft/SKILL.md +4 -4
- package/plugin/skills/ase-code-lint/SKILL.md +12 -10
- package/plugin/skills/ase-code-refactor/SKILL.md +6 -6
- package/plugin/skills/ase-code-refactor/help.md +1 -1
- package/plugin/skills/ase-code-resolve/SKILL.md +4 -4
- package/plugin/skills/ase-code-resolve/help.md +1 -1
- package/plugin/skills/ase-docs-distill/help.md +6 -4
- package/plugin/skills/ase-docs-proofread/SKILL.md +5 -5
- package/plugin/skills/ase-meta-brainstorm/help.md +1 -1
- package/plugin/skills/ase-meta-changelog/SKILL.md +4 -3
- package/plugin/skills/ase-meta-commit/SKILL.md +3 -1
- package/plugin/skills/ase-meta-compat/SKILL.md +11 -2
- package/plugin/skills/ase-meta-diaboli/SKILL.md +4 -4
- package/plugin/skills/ase-meta-diff/SKILL.md +10 -10
- package/plugin/skills/ase-meta-persona/SKILL.md +1 -1
- package/plugin/skills/ase-meta-quorum/SKILL.md +10 -8
- package/plugin/skills/ase-meta-search/help.md +4 -2
- package/plugin/skills/ase-meta-steelman/SKILL.md +2 -2
- package/plugin/skills/ase-meta-steelman/help.md +5 -3
- package/plugin/skills/ase-meta-why/SKILL.md +1 -1
- package/plugin/skills/ase-meta-why/help.md +3 -1
- package/plugin/skills/ase-sync-export/SKILL.md +13 -10
- package/plugin/skills/ase-sync-import/help.md +2 -2
- package/plugin/skills/ase-sync-reconcile/SKILL.md +1 -1
- package/plugin/skills/ase-sync-reconcile/help.md +1 -1
- package/plugin/skills/ase-task-condense/SKILL.md +6 -7
- package/plugin/skills/ase-task-delete/SKILL.md +1 -1
- package/plugin/skills/ase-task-edit/SKILL.md +2 -2
- package/plugin/skills/ase-task-grill/SKILL.md +1 -1
- package/plugin/skills/ase-task-implement/help.md +2 -2
- package/plugin/skills/ase-task-preflight/SKILL.md +1 -1
- package/plugin/skills/ase-task-reboot/SKILL.md +13 -9
- package/plugin/skills/ase-task-reboot/help.md +2 -1
package/package.json
CHANGED
|
@@ -3,23 +3,23 @@
|
|
|
3
3
|
"description": "Agentic Software Engineering (ASE)",
|
|
4
4
|
"publishConfig": { "access": "public" },
|
|
5
5
|
"keywords": [ "agentic", "ai", "coding", "tool", "cli", "software", "engineering" ],
|
|
6
|
-
"homepage": "
|
|
6
|
+
"homepage": "https://ase.tools",
|
|
7
7
|
"repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
|
|
8
|
-
"bugs": { "url": "
|
|
9
|
-
"version": "0.9.
|
|
8
|
+
"bugs": { "url": "https://github.com/rse/ase/issues" },
|
|
9
|
+
"version": "0.9.44",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"author": {
|
|
12
12
|
"name": "Dr. Ralf S. Engelschall",
|
|
13
13
|
"email": "rse@engelschall.com",
|
|
14
|
-
"url": "
|
|
14
|
+
"url": "https://engelschall.com"
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"bin": { "ase": "bin/ase" },
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"eslint": "9.39.4",
|
|
20
20
|
"@eslint/js": "9.39.4",
|
|
21
|
-
"@typescript-eslint/parser": "8.
|
|
22
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
21
|
+
"@typescript-eslint/parser": "8.65.0",
|
|
22
|
+
"@typescript-eslint/eslint-plugin": "8.65.0",
|
|
23
23
|
"eslint-plugin-promise": "7.3.0",
|
|
24
24
|
"eslint-plugin-import": "2.32.0",
|
|
25
25
|
"neostandard": "0.13.0",
|
|
@@ -42,10 +42,10 @@
|
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"commander": "15.0.0",
|
|
45
|
-
"@dotenvx/dotenvx": "2.
|
|
45
|
+
"@dotenvx/dotenvx": "2.15.1",
|
|
46
46
|
"yaml": "2.9.0",
|
|
47
47
|
"valibot": "1.4.2",
|
|
48
|
-
"execa": "
|
|
48
|
+
"execa": "10.0.0",
|
|
49
49
|
"mkdirp": "3.0.1",
|
|
50
50
|
"@hapi/hapi": "21.4.9",
|
|
51
51
|
"beautiful-mermaid": "1.1.3",
|
|
@@ -54,20 +54,21 @@
|
|
|
54
54
|
"pretty-ms": "9.3.0",
|
|
55
55
|
"luxon": "3.7.2",
|
|
56
56
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
57
|
-
"json-asty": "1.3.
|
|
57
|
+
"json-asty": "1.3.4",
|
|
58
58
|
"zod": "4.4.3",
|
|
59
59
|
"which": "7.0.0",
|
|
60
60
|
"update-notifier": "7.3.1",
|
|
61
|
-
"shell-quote": "1.
|
|
61
|
+
"shell-quote": "1.10.0",
|
|
62
62
|
"get-stdin": "10.0.0",
|
|
63
63
|
"proper-lockfile": "4.1.2",
|
|
64
64
|
"write-file-atomic": "8.0.0",
|
|
65
65
|
"pacote": "22.0.0",
|
|
66
66
|
"ofetch": "1.5.1",
|
|
67
|
-
"picomatch": "4.0.5"
|
|
67
|
+
"picomatch": "4.0.5",
|
|
68
|
+
"lru-cache": "11.5.2"
|
|
68
69
|
},
|
|
69
70
|
"allowScripts": {
|
|
70
|
-
"
|
|
71
|
+
"fsevents": true
|
|
71
72
|
},
|
|
72
73
|
"engines": {
|
|
73
74
|
"npm": ">=10.0.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ase",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.44",
|
|
4
4
|
"description": "Agentic Software Engineering (ASE)",
|
|
5
5
|
"keywords": [ "agentic", "software", "engineering" ],
|
|
6
6
|
"homepage": "https://ase.tools",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"email": "rse@engelschall.com",
|
|
12
12
|
"url": "https://engelschall.com"
|
|
13
13
|
},
|
|
14
|
-
"hooks": "hooks/hooks-copilot.json",
|
|
14
|
+
"hooks": "./hooks/hooks-copilot.json",
|
|
15
15
|
"mcpServers": {
|
|
16
16
|
"ase": {
|
|
17
17
|
"command": "ase",
|
|
@@ -50,7 +50,7 @@ Workflow
|
|
|
50
50
|
- **A03 - CLEANLINESS**:
|
|
51
51
|
Check for unclean code and inconsistent code.
|
|
52
52
|
|
|
53
|
-
For unclean code, especially detect
|
|
53
|
+
For unclean code, especially detect outdated code construct
|
|
54
54
|
patterns. For inconsistent code, especially detect code
|
|
55
55
|
variations for equal intentions.
|
|
56
56
|
|
|
@@ -246,7 +246,7 @@ Workflow
|
|
|
246
246
|
*masks* another bug (e.g., unreachable code after a misplaced
|
|
247
247
|
`return` that skips cleanup logic).
|
|
248
248
|
|
|
249
|
-
Be conservative
|
|
249
|
+
Be conservative - only report clear, well-grounded issues
|
|
250
250
|
that require an actual *code change*. Think twice to avoid
|
|
251
251
|
*false positives*.
|
|
252
252
|
|
|
@@ -314,9 +314,9 @@ Workflow
|
|
|
314
314
|
4. Set <context-after/> to exactly *up to two* lines of
|
|
315
315
|
*unchanged* code content which occurs in <file/>
|
|
316
316
|
directly *after* <old-text/>, i.e., the lines (<line/>
|
|
317
|
-
+ <n/>
|
|
317
|
+
+ <n/>) and (<line/> + <n/> + 1), where <n/> is the
|
|
318
318
|
number of lines in <old-text/>. Reduce to just one line
|
|
319
|
-
(<line/> + <n/>
|
|
319
|
+
(<line/> + <n/>) if <old-text/> is the second-last
|
|
320
320
|
line of the file. Set <context-after/> to empty if
|
|
321
321
|
<old-text/> is the last line in the file.
|
|
322
322
|
|
|
@@ -40,7 +40,7 @@ Workflow
|
|
|
40
40
|
|
|
41
41
|
3. Set <old-text/> to the lines of the old text which
|
|
42
42
|
should be changed. Set <new-text/> to the lines of the
|
|
43
|
-
new text which will
|
|
43
|
+
new text which will replace it.
|
|
44
44
|
|
|
45
45
|
4. Set <description/> to an ultra-brief and concise
|
|
46
46
|
Markdown-formatted description of the problem with
|
|
@@ -3,12 +3,12 @@ name: ase-meta-chat
|
|
|
3
3
|
description: "Query Foreign LLM for Chat via MCP Tool"
|
|
4
4
|
effort: high
|
|
5
5
|
tools:
|
|
6
|
-
- mcp__chat-openai-chatgpt__query
|
|
7
|
-
- mcp__chat-google-gemini__query
|
|
8
|
-
- mcp__chat-deepseek__query
|
|
9
|
-
- mcp__chat-xai-grok__query
|
|
10
|
-
- mcp__chat-zai-glm__query
|
|
11
|
-
- mcp__chat-alibaba-qwen__query
|
|
6
|
+
- "mcp__chat-openai-chatgpt__query"
|
|
7
|
+
- "mcp__chat-google-gemini__query"
|
|
8
|
+
- "mcp__chat-deepseek__query"
|
|
9
|
+
- "mcp__chat-xai-grok__query"
|
|
10
|
+
- "mcp__chat-zai-glm__query"
|
|
11
|
+
- "mcp__chat-alibaba-qwen__query"
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
@../meta/ase-control.md
|
package/plugin/etc/eslint.mjs
CHANGED
|
@@ -6,7 +6,7 @@ You are an expert-level AI coding assistant.
|
|
|
6
6
|
You have the **Agentic Software Engineering (ASE)** companion toolkit enabled,
|
|
7
7
|
which boosts you to an expert-level Software Engineering AI agent.
|
|
8
8
|
|
|
9
|
-
If ((<ase-agent-tool/> is equal `codex`) *AND* (<ase-headless/> is empty
|
|
9
|
+
If ((<ase-agent-tool/> is equal to `codex`) *AND* (<ase-headless/> is empty
|
|
10
10
|
or not set)) you *MUST* output the following <template/> *exactly once*
|
|
11
11
|
as the very *first* thing in your *first* response of this session --
|
|
12
12
|
*before* any other text, *before* any tool call, and *before* entering
|
|
@@ -93,5 +93,5 @@ Control Flow Constructs
|
|
|
93
93
|
This specifies an *early termination* of the innermost enclosing
|
|
94
94
|
<while/> or <for/> repetition: when reached, the current repetition
|
|
95
95
|
is finished and no further repetitions are performed. This construct
|
|
96
|
-
is expanded into nothing. Do not output anything
|
|
96
|
+
is expanded into nothing. Do not output anything.
|
|
97
97
|
|
|
@@ -140,8 +140,8 @@ following procedure:
|
|
|
140
140
|
</if>
|
|
141
141
|
<else>
|
|
142
142
|
Output the following <template/> and then *START OVER*
|
|
143
|
-
by *GOING* to step 2.2
|
|
144
|
-
<text/> from step 2.
|
|
143
|
+
by *GOING* to step 2.2 above, reusing the already-built
|
|
144
|
+
<text/> from step 2.1 unchanged (do *NOT* re-enter step 2.1
|
|
145
145
|
and do *NOT* rebuild <text/>, <keys/>, <n/>, or <width/>).
|
|
146
146
|
|
|
147
147
|
<template>
|
|
@@ -209,7 +209,7 @@ at runtime.
|
|
|
209
209
|
- Kind: <arch-fv-component-kind/>
|
|
210
210
|
- Responsibility: <arch-fv-component-responsibility/>
|
|
211
211
|
- Interface: <arch-fv-component-interface/>
|
|
212
|
-
- Depends On: <arch-fv-component-dependency
|
|
212
|
+
- Depends On: <arch-fv-component-dependency/>[, ...]
|
|
213
213
|
|
|
214
214
|
<arch-fv-component-description/>,
|
|
215
215
|
**BECAUSE** <arch-fv-component-rationale/>.
|
|
@@ -286,7 +286,7 @@ flow.
|
|
|
286
286
|
## ASPECT: <arch-iv-aspect-name/> <a id="ARCH-IV-<arch-iv-aspect-id/>"></a>
|
|
287
287
|
|
|
288
288
|
- Concern: <arch-iv-aspect-concern/>
|
|
289
|
-
- Entities: <arch-iv-aspect-entity
|
|
289
|
+
- Entities: <arch-iv-aspect-entity/>[, ...]
|
|
290
290
|
- Owner: <arch-iv-aspect-owner/>
|
|
291
291
|
- Lifecycle: <arch-iv-aspect-lifecycle/>
|
|
292
292
|
|
|
@@ -364,7 +364,7 @@ communicate.
|
|
|
364
364
|
## UNIT: <arch-co-unit-name/> <a id="ARCH-CO-<arch-co-unit-id/>"></a>
|
|
365
365
|
|
|
366
366
|
- Kind: <arch-co-unit-kind/>
|
|
367
|
-
- Hosts: <arch-co-unit-element
|
|
367
|
+
- Hosts: <arch-co-unit-element/>[, ...]
|
|
368
368
|
- Multiplicity: <arch-co-unit-multiplicity/>
|
|
369
369
|
- Coordination: <arch-co-unit-coordination/>
|
|
370
370
|
|
|
@@ -507,7 +507,7 @@ elements to the runtime platform, hardware, and network topology.
|
|
|
507
507
|
|
|
508
508
|
- Kind: <arch-dp-node-kind/>
|
|
509
509
|
- Platform: <arch-dp-node-platform/>
|
|
510
|
-
- Hosts: <arch-dp-node-element
|
|
510
|
+
- Hosts: <arch-dp-node-element/>[, ...]
|
|
511
511
|
- Network: <arch-dp-node-network/>
|
|
512
512
|
|
|
513
513
|
<arch-dp-node-description/>,
|
|
@@ -584,7 +584,7 @@ production, defining installation, monitoring, and management concerns.
|
|
|
584
584
|
## CONCERN: <arch-ov-concern-name/> <a id="ARCH-OV-<arch-ov-concern-id/>"></a>
|
|
585
585
|
|
|
586
586
|
- Category: <arch-ov-concern-category/>
|
|
587
|
-
- Element: <arch-ov-concern-element
|
|
587
|
+
- Element: <arch-ov-concern-element/>[, ...]
|
|
588
588
|
|
|
589
589
|
<arch-ov-concern-description/>,
|
|
590
590
|
**BECAUSE** <arch-ov-concern-rationale/>.
|
|
@@ -651,9 +651,9 @@ How the Non-Functional Requirements (NR) are addressed.
|
|
|
651
651
|
## PERSPECTIVE: <arch-qp-perspective-name/> <a id="ARCH-QP-<arch-qp-perspective-id/>"></a>
|
|
652
652
|
|
|
653
653
|
- Quality: <arch-qp-perspective-quality/>
|
|
654
|
-
- Addresses: <arch-qp-perspective-requirement
|
|
654
|
+
- Addresses: <arch-qp-perspective-requirement/>[, ...]
|
|
655
655
|
- Tactic: <arch-qp-perspective-tactic/>
|
|
656
|
-
- Affects: <arch-qp-perspective-element
|
|
656
|
+
- Affects: <arch-qp-perspective-element/>[, ...]
|
|
657
657
|
|
|
658
658
|
<arch-qp-perspective-description/>,
|
|
659
659
|
**BECAUSE** <arch-qp-perspective-rationale/>.
|
|
@@ -740,7 +740,7 @@ forces at play, the chosen response, and the reasoning that justifies it.
|
|
|
740
740
|
## DECISION: <arch-dr-decision-name/> <a id="ARCH-DR-<arch-dr-decision-id/>"></a>
|
|
741
741
|
|
|
742
742
|
- Status: <arch-dr-decision-status/>
|
|
743
|
-
- Affects: <arch-dr-decision-element
|
|
743
|
+
- Affects: <arch-dr-decision-element/>[, ...]
|
|
744
744
|
- Superseded-By: <arch-dr-decision-superseded-by/>
|
|
745
745
|
- Created: <arch-dr-decision-created/>
|
|
746
746
|
- Modified: <arch-dr-decision-modified/>
|
|
@@ -40,8 +40,8 @@ You *MUST* honor the following hints on this *task* format:
|
|
|
40
40
|
<template>`<code/>`</template> and *key aspects* as
|
|
41
41
|
<template>*<aspect/>*</template>.
|
|
42
42
|
|
|
43
|
-
- For <summary-what/> and <summary-why/> use *ultra brief* but
|
|
44
|
-
as
|
|
43
|
+
- For <summary-what/> and <summary-why/> use an *ultra brief* but
|
|
44
|
+
*as precise as possible* description of the overall change. In
|
|
45
45
|
<summary-what/> tell what is changed. In <summary-why/> tell why it
|
|
46
46
|
is changed, what benefit results or what the rationale is behind the
|
|
47
47
|
change.
|
|
@@ -49,14 +49,12 @@ You *MUST* honor the following hints on this *task* format:
|
|
|
49
49
|
- The <task-id/> has to be substituted with the current value of
|
|
50
50
|
<ase-task-id/> in the current session context.
|
|
51
51
|
|
|
52
|
-
- The <timestamp-created/> is the timestamp when this
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
tool of the `ase` MCP server and use the `text` field of
|
|
59
|
-
its response.
|
|
52
|
+
- The <timestamp-created/> is the timestamp when this task plan was
|
|
53
|
+
created. The <timestamp-modified/> is the timestamp when this
|
|
54
|
+
task plan was last modified. Both use an ISO-style format
|
|
55
|
+
value. The value of both can be determined by a call to the
|
|
56
|
+
`ase_timestamp(format: "yyyy-LL-dd HH:mm")` tool of the `ase` MCP
|
|
57
|
+
server and use the `text` field of its response.
|
|
60
58
|
|
|
61
59
|
- The <title/> is a short summary of the <summary-what/>, no longer than
|
|
62
60
|
50 characters.
|
|
@@ -20,7 +20,7 @@ set placeholders into the context as a side-effect.
|
|
|
20
20
|
3-6 are *structurally unreachable* and you *MUST NOT* call the
|
|
21
21
|
`ase_getopt` MCP tool under any circumstances.
|
|
22
22
|
|
|
23
|
-
<if condition="<getopt-args/> does *NOT* match the regexp `(^|\s)-` (i.e. it does not
|
|
23
|
+
<if condition="<getopt-args/> does *NOT* match the regexp `(^|\s)-` (i.e. it does not contain an option)">
|
|
24
24
|
Parse the options *locally*, without any MCP call:
|
|
25
25
|
|
|
26
26
|
For each option token in <getopt-spec/> of the form
|
package/plugin/meta/ase-skill.md
CHANGED
|
@@ -218,7 +218,7 @@ Skill Identification
|
|
|
218
218
|
following output <template/>:
|
|
219
219
|
|
|
220
220
|
<template>
|
|
221
|
-
⧉ **ASE**: ✪ skill: **<skill-name/>**, status: **skill finished**
|
|
221
|
+
⧉ **ASE**: ✪ skill: **<skill-name/>**, ▶ status: **skill finished**
|
|
222
222
|
</template>
|
|
223
223
|
|
|
224
224
|
- *IMPORTANT*: Set <objective></objective> (set to empty).
|
package/plugin/package.json
CHANGED
|
@@ -3,23 +3,23 @@
|
|
|
3
3
|
"description": "Agentic Software Engineering (ASE)",
|
|
4
4
|
"private": true,
|
|
5
5
|
"keywords": [ "agentic", "ai", "coding", "tool", "cli", "software", "engineering" ],
|
|
6
|
-
"homepage": "
|
|
6
|
+
"homepage": "https://ase.tools",
|
|
7
7
|
"repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
|
|
8
|
-
"bugs": { "url": "
|
|
9
|
-
"version": "0.9.
|
|
8
|
+
"bugs": { "url": "https://github.com/rse/ase/issues" },
|
|
9
|
+
"version": "0.9.44",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"author": {
|
|
12
12
|
"name": "Dr. Ralf S. Engelschall",
|
|
13
13
|
"email": "rse@engelschall.com",
|
|
14
|
-
"url": "
|
|
14
|
+
"url": "https://engelschall.com"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"@rse/stx": "1.1.6",
|
|
18
|
-
"markdownlint": "0.41.
|
|
19
|
-
"markdownlint-cli2": "0.23.
|
|
20
|
-
"eslint": "10.
|
|
18
|
+
"markdownlint": "0.41.1",
|
|
19
|
+
"markdownlint-cli2": "0.23.1",
|
|
20
|
+
"eslint": "10.7.0",
|
|
21
21
|
"@eslint/markdown": "8.0.3",
|
|
22
|
-
"eslint-markdown": "0.12.
|
|
22
|
+
"eslint-markdown": "0.12.1"
|
|
23
23
|
},
|
|
24
24
|
"engines": {
|
|
25
25
|
"npm": ">=10.0.0",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
## DESCRIPTION
|
|
13
13
|
|
|
14
14
|
The `ase-arch-analyze` skill reviews the *software architecture* of
|
|
15
|
-
the referenced source code, including *package cohesion* and
|
|
16
|
-
package coupling*, for *potential problems* across component boundaries,
|
|
15
|
+
the referenced source code, including *package cohesion* and
|
|
16
|
+
*inter-package coupling*, for *potential problems* across component boundaries,
|
|
17
17
|
structural organization, architecture principles, interface quality,
|
|
18
18
|
quality attributes, and architecture governance.
|
|
19
19
|
|
|
@@ -134,7 +134,7 @@ for the technology stack to *provide* the *needed functionality*
|
|
|
134
134
|
4. If <stack/> is "JavaScript" or "TypeScript":
|
|
135
135
|
|
|
136
136
|
1. Based on the essential keywords <keyword-L/> (L=1-M),
|
|
137
|
-
use the `ase-meta-search` skill in a
|
|
137
|
+
use the `ase-meta-search` skill in a sub-agent to *generally*
|
|
138
138
|
discover an initial set of a maximum of <pool/> *NPM packages*
|
|
139
139
|
<component-K/> and at least their real name <name-K/> and
|
|
140
140
|
their unique package names <package-K/>.
|
|
@@ -150,7 +150,7 @@ for the technology stack to *provide* the *needed functionality*
|
|
|
150
150
|
5. If <stack/> is "Java" or "Kotlin":
|
|
151
151
|
|
|
152
152
|
1. Based on the essential keywords <keyword-L/> (L=1-M),
|
|
153
|
-
use the `ase-meta-search` skill in a
|
|
153
|
+
use the `ase-meta-search` skill in a sub-agent to *generally*
|
|
154
154
|
discover an initial set of a maximum of <pool/> *Maven packages*
|
|
155
155
|
<component-K/> and at least their real name <name-K/> and
|
|
156
156
|
their unique Maven coordinates <package-K/> of the form
|
|
@@ -33,8 +33,9 @@ demotes dependency-heavy components.
|
|
|
33
33
|
## OPTIONS
|
|
34
34
|
|
|
35
35
|
`--limit`|`-l=12`:
|
|
36
|
-
The *maximum* number of components
|
|
37
|
-
|
|
36
|
+
The *maximum* number of components retained in the final ranking
|
|
37
|
+
(default: 12); each discovery source may fetch up to twice this
|
|
38
|
+
number of candidates for ranking. Raise it for a broader, more
|
|
38
39
|
exhaustive survey, lower it for a quicker, narrower lookup.
|
|
39
40
|
|
|
40
41
|
`--staleness`|`-s=18`:
|
|
@@ -199,7 +199,6 @@ problems in *performance* and *efficiency*, or problems in *security*.
|
|
|
199
199
|
Finally, output the following <template/> to give a final hint:
|
|
200
200
|
|
|
201
201
|
<template>
|
|
202
|
-
⧉ **ASE**: ☻ skill: **<skill-name/>**, ▶ status: **skill finished**
|
|
203
202
|
⧉ **ASE**: ↪ hint: **For deeper analysis, suggestions on solution approaches and then final problem resolution, use `/ase-code-resolve P{n}` in the same or even a different session.**
|
|
204
203
|
</template>
|
|
205
204
|
|
|
@@ -139,15 +139,15 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
139
139
|
|
|
140
140
|
You *MUST* perform the following sub-steps *internally* and *without
|
|
141
141
|
any output* until and including the recommendation decision. Only
|
|
142
|
-
sub-steps 4-
|
|
142
|
+
sub-steps 4-7 below are allowed to produce output; sub-steps 4-6 only if
|
|
143
143
|
<getopt-option-auto/> is equal `false` *and* <ase-project-boxing/>
|
|
144
144
|
is *not* equal `black`.
|
|
145
145
|
|
|
146
146
|
If <getopt-option-auto/> is equal `true` or <ase-project-boxing/> is
|
|
147
|
-
equal `black`, *skip* the reporting sub-steps 4-6 entirely (
|
|
148
|
-
no output at all) to speed up processing.
|
|
147
|
+
equal `black`, *skip* the reporting sub-steps 4-6 entirely (they
|
|
148
|
+
perform no output at all) to speed up processing.
|
|
149
149
|
|
|
150
|
-
1. *Propose* corresponding *feature approach*, including
|
|
150
|
+
1. *Propose* a corresponding *feature approach*, optionally including
|
|
151
151
|
some *alternative* feature approaches. Do *not* output anything
|
|
152
152
|
in this sub-step.
|
|
153
153
|
|
|
@@ -104,7 +104,7 @@ related to a set of code quality aspects.
|
|
|
104
104
|
*silently drop* all other problems. With the default floor `LOW`, all
|
|
105
105
|
problems are kept. `ACCEPTED` problems are *never* dropped.
|
|
106
106
|
|
|
107
|
-
You *MUST* *NOT* output anything else in this
|
|
107
|
+
You *MUST* *NOT* output anything else in this STEP 1.
|
|
108
108
|
|
|
109
109
|
</step>
|
|
110
110
|
|
|
@@ -131,7 +131,7 @@ related to a set of code quality aspects.
|
|
|
131
131
|
*(no problems detected)*
|
|
132
132
|
</template>
|
|
133
133
|
|
|
134
|
-
You *MUST* *NOT* output anything else in this
|
|
134
|
+
You *MUST* *NOT* output anything else in this STEP 2.
|
|
135
135
|
|
|
136
136
|
</step>
|
|
137
137
|
|
|
@@ -294,7 +294,7 @@ related to a set of code quality aspects.
|
|
|
294
294
|
|
|
295
295
|
</template>
|
|
296
296
|
|
|
297
|
-
5. <if condition="<getopt-option-auto/> is not
|
|
297
|
+
5. <if condition="<getopt-option-auto/> is not equal `true` and <ase-project-boxing/> is not equal `black`">
|
|
298
298
|
|
|
299
299
|
<if condition="<ase-project-boxing/> is equal `grey`">
|
|
300
300
|
|
|
@@ -341,7 +341,7 @@ related to a set of code quality aspects.
|
|
|
341
341
|
|
|
342
342
|
</else>
|
|
343
343
|
|
|
344
|
-
6. <if condition="<getopt-option-auto/> is not
|
|
344
|
+
6. <if condition="<getopt-option-auto/> is not equal `true`">
|
|
345
345
|
|
|
346
346
|
In the following, you *MUST* *NOT* use your built-in
|
|
347
347
|
<user-dialog-tool/> tool! Instead, you *MUST* just show a
|
|
@@ -359,7 +359,7 @@ related to a set of code quality aspects.
|
|
|
359
359
|
<else>
|
|
360
360
|
|
|
361
361
|
Set <result>ACCEPT</result>.
|
|
362
|
-
You *MUST* *NOT* output anything else in this step 6.
|
|
362
|
+
You *MUST* *NOT* output anything else in this sub-step 6.
|
|
363
363
|
|
|
364
364
|
</else>
|
|
365
365
|
|
|
@@ -367,11 +367,13 @@ related to a set of code quality aspects.
|
|
|
367
367
|
|
|
368
368
|
- <if condition="<result/> is 'ACCEPT'">
|
|
369
369
|
Invoke the `Edit` tool to apply the changes exactly
|
|
370
|
-
as
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
370
|
+
as given by the hunks of the current <change-set/>
|
|
371
|
+
(rendered as <diff/>, unless suppressed under grey
|
|
372
|
+
boxing). The operation will be auto-approved by the ASE
|
|
373
|
+
`pre-tool-use` hook (which tracks the active skill),
|
|
374
|
+
so *no* interactive permission prompt will appear.
|
|
375
|
+
After applying the changes, just continue with the next
|
|
376
|
+
<item/>.
|
|
375
377
|
</if>
|
|
376
378
|
|
|
377
379
|
- <if condition="<result/> starts with 'OTHER'">
|
|
@@ -3,7 +3,7 @@ name: ase-code-refactor
|
|
|
3
3
|
argument-hint: "[--help|-h] [--auto|-a] [--dry|-d] [--quick|-Q] [--next|-n <option>[,...]] [<task-id>:] <request>"
|
|
4
4
|
description: >
|
|
5
5
|
Refactor Code:
|
|
6
|
-
Use when user wants to "refactor"
|
|
6
|
+
Use when user wants to "refactor" or "change" the code base.
|
|
7
7
|
user-invocable: true
|
|
8
8
|
disable-model-invocation: false
|
|
9
9
|
effort: xhigh
|
|
@@ -139,16 +139,16 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
139
139
|
|
|
140
140
|
You *MUST* perform the following sub-steps *internally* and *without
|
|
141
141
|
any output* until and including the recommendation decision. Only
|
|
142
|
-
sub-steps 4-
|
|
142
|
+
sub-steps 4-7 below are allowed to produce output; sub-steps 4-6 only if
|
|
143
143
|
<getopt-option-auto/> is equal `false` *and* <ase-project-boxing/>
|
|
144
144
|
is *not* equal `black`.
|
|
145
145
|
|
|
146
146
|
If <getopt-option-auto/> is equal `true` or <ase-project-boxing/> is
|
|
147
|
-
equal `black`, *skip* the reporting sub-steps 4-6 entirely (
|
|
148
|
-
no output at all) to speed up processing.
|
|
147
|
+
equal `black`, *skip* the reporting sub-steps 4-6 entirely (they
|
|
148
|
+
perform no output at all) to speed up processing.
|
|
149
149
|
|
|
150
|
-
1. *Propose* corresponding *refactoring approach*,
|
|
151
|
-
|
|
150
|
+
1. *Propose* a corresponding *refactoring approach*, optionally
|
|
151
|
+
including some *alternative* refactoring approaches. Do *not*
|
|
152
152
|
output anything in this sub-step.
|
|
153
153
|
|
|
154
154
|
2. *Reflect* on and *critique* the proposed approaches by deriving,
|
|
@@ -56,7 +56,7 @@ plan via `ase_task_save` and then hands off to `ase-task-edit`,
|
|
|
56
56
|
skill. For all other head tokens, the *entire* list is forwarded
|
|
57
57
|
to `ase-task-edit`, which consumes its head itself. This lets an
|
|
58
58
|
entire pipeline be pre-scripted in one shot. Recognized tokens at
|
|
59
|
-
this skill: `none` (default, hand
|
|
59
|
+
this skill: `none` (default, hand off to `ase-task-edit`
|
|
60
60
|
interactively), `DONE` (stop), `EDIT` (hand off to
|
|
61
61
|
`ase-task-edit`), `PREFLIGHT` (hand off to `ase-task-preflight`),
|
|
62
62
|
or `IMPLEMENT` (hand off to `ase-task-implement`). Example:
|
|
@@ -193,15 +193,15 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
193
193
|
|
|
194
194
|
You *MUST* perform the following sub-steps *internally* and *without
|
|
195
195
|
any output* until and including the recommendation decision. Only
|
|
196
|
-
sub-steps 4-
|
|
196
|
+
sub-steps 4-7 below are allowed to produce output; sub-steps 4-6 only if
|
|
197
197
|
<getopt-option-auto/> is equal `false` *and* <ase-project-boxing/>
|
|
198
198
|
is *not* equal `black`.
|
|
199
199
|
|
|
200
200
|
If <getopt-option-auto/> is equal `true` or <ase-project-boxing/> is
|
|
201
|
-
equal `black`, *skip* the reporting sub-steps 4-6 entirely (
|
|
202
|
-
no output at all) to speed up processing.
|
|
201
|
+
equal `black`, *skip* the reporting sub-steps 4-6 entirely (they
|
|
202
|
+
perform no output at all) to speed up processing.
|
|
203
203
|
|
|
204
|
-
1. *Propose* corresponding *resolution approach*, including
|
|
204
|
+
1. *Propose* a corresponding *resolution approach*, optionally including
|
|
205
205
|
some *alternative* resolution approaches. Do *not* output anything
|
|
206
206
|
in this sub-step.
|
|
207
207
|
|
|
@@ -61,7 +61,7 @@ plan via `ase_task_save` and then hands off to `ase-task-edit`,
|
|
|
61
61
|
skill. For all other head tokens, the *entire* list is forwarded
|
|
62
62
|
to `ase-task-edit`, which consumes its head itself. This lets an
|
|
63
63
|
entire pipeline be pre-scripted in one shot. Recognized tokens at
|
|
64
|
-
this skill: `none` (default, hand
|
|
64
|
+
this skill: `none` (default, hand off to `ase-task-edit`
|
|
65
65
|
interactively), `DONE` (stop), `EDIT` (hand off to
|
|
66
66
|
`ase-task-edit`), `PREFLIGHT` (hand off to `ase-task-preflight`),
|
|
67
67
|
or `IMPLEMENT` (hand off to `ase-task-implement`). Example:
|
|
@@ -37,14 +37,16 @@ document has fewer salient points than *N*, the skill emits only the
|
|
|
37
37
|
points it found and *never pads* the list with filler; a `0`, negative, or
|
|
38
38
|
non-numeric value falls back to the default *5*.
|
|
39
39
|
|
|
40
|
-
##
|
|
40
|
+
## OPTIONS
|
|
41
41
|
|
|
42
|
-
`--top
|
|
42
|
+
`--top`|`-t` *N*:
|
|
43
43
|
Bound the ranked list to at most *N* key points (default *5*). The
|
|
44
44
|
bound is a *cap*, never a *quota* - fewer points are emitted when the
|
|
45
45
|
document does not contain *N* salient ones, and an invalid or
|
|
46
46
|
non-positive *N* reverts to the default.
|
|
47
47
|
|
|
48
|
+
## ARGUMENTS
|
|
49
|
+
|
|
48
50
|
*document-reference*:
|
|
49
51
|
The document to distill - either a *path* to a readable file or the
|
|
50
52
|
*text* itself pasted inline. If it resolves to a readable file the
|
|
@@ -58,10 +60,10 @@ Distill the key points of a document file:
|
|
|
58
60
|
❯ /ase-docs-distill doc/architecture.md
|
|
59
61
|
```
|
|
60
62
|
|
|
61
|
-
Distill only the top
|
|
63
|
+
Distill only the top 3 key points:
|
|
62
64
|
|
|
63
65
|
```text
|
|
64
|
-
❯ /ase-docs-distill --top
|
|
66
|
+
❯ /ase-docs-distill --top 3 doc/architecture.md
|
|
65
67
|
```
|
|
66
68
|
|
|
67
69
|
Distill a pasted block of text:
|