@rse/ase 0.9.43 → 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.
Files changed (73) hide show
  1. package/dst/ase-artifact.js +28 -24
  2. package/dst/ase-config.js +27 -36
  3. package/dst/ase-diagram.js +15 -35
  4. package/dst/ase-getopt.js +10 -15
  5. package/dst/ase-hook.js +29 -27
  6. package/dst/ase-kv.js +24 -29
  7. package/dst/ase-log.js +10 -3
  8. package/dst/ase-markdown.js +135 -102
  9. package/dst/ase-mcp.js +3 -10
  10. package/dst/ase-meta.js +6 -4
  11. package/dst/ase-persona.js +7 -11
  12. package/dst/ase-service.js +28 -28
  13. package/dst/ase-setup.js +15 -28
  14. package/dst/ase-skills.js +2 -2
  15. package/dst/ase-statusline.js +26 -34
  16. package/dst/ase-task.js +60 -63
  17. package/dst/ase-version.js +2 -1
  18. package/dst/ase.js +7 -11
  19. package/package.json +12 -10
  20. package/plugin/.claude-plugin/plugin.json +1 -1
  21. package/plugin/.codex-plugin/plugin.json +1 -1
  22. package/plugin/.github/plugin/plugin.json +2 -2
  23. package/plugin/agents/ase-code-lint.md +4 -4
  24. package/plugin/agents/ase-docs-proofread.md +1 -1
  25. package/plugin/agents/ase-meta-chat.md +6 -6
  26. package/plugin/agents/ase-meta-diagram.md +1 -1
  27. package/plugin/agents/ase-meta-search.md +1 -1
  28. package/plugin/etc/eslint.mjs +0 -2
  29. package/plugin/meta/ase-constitution.md +1 -1
  30. package/plugin/meta/ase-control.md +1 -1
  31. package/plugin/meta/ase-dialog.md +2 -2
  32. package/plugin/meta/ase-format-arch.md +8 -8
  33. package/plugin/meta/ase-format-task.md +8 -10
  34. package/plugin/meta/ase-getopt.md +1 -1
  35. package/plugin/meta/ase-skill.md +1 -1
  36. package/plugin/package.json +8 -8
  37. package/plugin/skills/ase-arch-analyze/help.md +2 -2
  38. package/plugin/skills/ase-arch-discover/SKILL.md +2 -2
  39. package/plugin/skills/ase-arch-discover/help.md +3 -2
  40. package/plugin/skills/ase-code-analyze/SKILL.md +0 -1
  41. package/plugin/skills/ase-code-craft/SKILL.md +4 -4
  42. package/plugin/skills/ase-code-lint/SKILL.md +12 -10
  43. package/plugin/skills/ase-code-refactor/SKILL.md +6 -6
  44. package/plugin/skills/ase-code-refactor/help.md +1 -1
  45. package/plugin/skills/ase-code-resolve/SKILL.md +4 -4
  46. package/plugin/skills/ase-code-resolve/help.md +1 -1
  47. package/plugin/skills/ase-docs-distill/help.md +6 -4
  48. package/plugin/skills/ase-docs-proofread/SKILL.md +5 -5
  49. package/plugin/skills/ase-meta-brainstorm/help.md +1 -1
  50. package/plugin/skills/ase-meta-changelog/SKILL.md +4 -3
  51. package/plugin/skills/ase-meta-commit/SKILL.md +3 -1
  52. package/plugin/skills/ase-meta-compat/SKILL.md +11 -2
  53. package/plugin/skills/ase-meta-diaboli/SKILL.md +4 -4
  54. package/plugin/skills/ase-meta-diff/SKILL.md +10 -10
  55. package/plugin/skills/ase-meta-persona/SKILL.md +1 -1
  56. package/plugin/skills/ase-meta-quorum/SKILL.md +10 -8
  57. package/plugin/skills/ase-meta-search/help.md +4 -2
  58. package/plugin/skills/ase-meta-steelman/SKILL.md +2 -2
  59. package/plugin/skills/ase-meta-steelman/help.md +5 -3
  60. package/plugin/skills/ase-meta-why/SKILL.md +1 -1
  61. package/plugin/skills/ase-meta-why/help.md +3 -1
  62. package/plugin/skills/ase-sync-export/SKILL.md +13 -10
  63. package/plugin/skills/ase-sync-import/help.md +2 -2
  64. package/plugin/skills/ase-sync-reconcile/SKILL.md +1 -1
  65. package/plugin/skills/ase-sync-reconcile/help.md +1 -1
  66. package/plugin/skills/ase-task-condense/SKILL.md +6 -7
  67. package/plugin/skills/ase-task-delete/SKILL.md +1 -1
  68. package/plugin/skills/ase-task-edit/SKILL.md +2 -2
  69. package/plugin/skills/ase-task-grill/SKILL.md +1 -1
  70. package/plugin/skills/ase-task-implement/help.md +2 -2
  71. package/plugin/skills/ase-task-preflight/SKILL.md +1 -1
  72. package/plugin/skills/ase-task-reboot/SKILL.md +13 -9
  73. 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": "http://github.com/rse/ase",
6
+ "homepage": "https://ase.tools",
7
7
  "repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
8
- "bugs": { "url": "http://github.com/rse/ase/issues" },
9
- "version": "0.9.43",
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": "http://engelschall.com"
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.63.0",
22
- "@typescript-eslint/eslint-plugin": "8.63.0",
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.2.2",
45
+ "@dotenvx/dotenvx": "2.15.1",
46
46
  "yaml": "2.9.0",
47
47
  "valibot": "1.4.2",
48
- "execa": "9.6.1",
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",
@@ -58,15 +58,17 @@
58
58
  "zod": "4.4.3",
59
59
  "which": "7.0.0",
60
60
  "update-notifier": "7.3.1",
61
- "shell-quote": "1.9.0",
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": {
71
+ "fsevents": true
70
72
  },
71
73
  "engines": {
72
74
  "npm": ">=10.0.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ase",
3
- "version": "0.9.43",
3
+ "version": "0.9.44",
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.9.43",
3
+ "version": "0.9.44",
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.9.43",
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 out-dated code construct
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 only report clear, well-grounded issues
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/> + 1) and (<line/> + <n/> + 2), where <n/> is the
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/> + 1) if <old-text/> is the second-last
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 be changed.
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
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: ase-meta-diagram
3
3
  description: "Diagram Rendering"
4
+ effort: high
4
5
  tools:
5
6
  - "mcp__plugin_ase_ase__ase_diagram"
6
- effort: high
7
7
  ---
8
8
 
9
9
  Your role is to render a *single* diagram, with *deterministic* and
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ase-meta-search
3
- description: Query the Web
3
+ description: "Query the Web"
4
4
  model: sonnet
5
5
  effort: low
6
6
  tools:
@@ -5,11 +5,9 @@
5
5
  */
6
6
 
7
7
  import { defineConfig } from "eslint/config"
8
- import markdown from "@eslint/markdown"
9
8
  import md from "eslint-markdown"
10
9
 
11
10
  export default defineConfig([
12
- // markdown.configs.recommended,
13
11
  md.configs.recommended,
14
12
  {
15
13
  files: [
@@ -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 else.
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.2 above, reusing the already-built
144
- <text/> from step 2.2.1 unchanged (do *NOT* re-enter step 2.2.1
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 *very precise* as possible description of the overall change. In
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 feature
53
- crafting specification was created. The
54
- <timestamp-modified/> is the timestamp when this feature
55
- specification was last modified. Both use an ISO-style format
56
- value. The value of both can be determined by
57
- a call to the `ase_timestamp(format: "yyyy-LL-dd HH:mm")`
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 start with an option)">
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
@@ -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).
@@ -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": "http://github.com/rse/ase",
6
+ "homepage": "https://ase.tools",
7
7
  "repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
8
- "bugs": { "url": "http://github.com/rse/ase/issues" },
9
- "version": "0.9.43",
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": "http://engelschall.com"
14
+ "url": "https://engelschall.com"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@rse/stx": "1.1.6",
18
- "markdownlint": "0.41.0",
19
- "markdownlint-cli2": "0.23.0",
20
- "eslint": "10.6.0",
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.0"
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 *inter-
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 subagent to *generally*
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 subagent to *generally*
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 searched per source and retained
37
- in the final ranking (default: 12). Raise it for a broader, more
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-6 below are allowed to produce output, and only if
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 (perform
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 optionally,
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 step 1.
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 step 2.
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 'true' and <ase-project-boxing/> is not equal `black`">
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 'true'">
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 shown in the <diff/>. The operation will be
371
- auto-approved by the ASE `pre-tool-use` hook (which
372
- tracks the active skill), so *no* interactive permission
373
- prompt will appear. After applying the changes, just
374
- continue with the next <item/>.
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", or "change" the code base.
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-6 below are allowed to produce output, and only if
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 (perform
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*, including
151
- optionally, some *alternative* refactoring approaches. Do *not*
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-off to `ase-task-edit`
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-6 below are allowed to produce output, and only if
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 (perform
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 optionally,
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-off to `ase-task-edit`
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
- ## ARGUMENTS
40
+ ## OPTIONS
41
41
 
42
- `--top`, `-t` *N*:
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 5 key points:
63
+ Distill only the top 3 key points:
62
64
 
63
65
  ```text
64
- ❯ /ase-docs-distill --top 5 doc/architecture.md
66
+ ❯ /ase-docs-distill --top 3 doc/architecture.md
65
67
  ```
66
68
 
67
69
  Distill a pasted block of text: