@rse/ase 2.0.5 → 2.0.7

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 (74) hide show
  1. package/dst/ase-agent-definition-api.d.ts +2 -0
  2. package/dst/ase-agent-definition-core.js +24 -3
  3. package/dst/ase-agent-fleet.js +2 -1
  4. package/dst/ase-agent-runtime-engine.js +22 -4
  5. package/dst/ase-agent-runtime-tool.js +10 -8
  6. package/dst/ase-agent-runtime.js +8 -4
  7. package/dst/ase-config-schema.js +1 -1
  8. package/dst/ase-man-catalog.js +1 -1
  9. package/dst/ase-setup-settings.js +111 -1
  10. package/dst/ase-setup.js +19 -7
  11. package/dst/ase-spec.js +184 -49
  12. package/dst/ase-task-board-tui-model.js +8 -1
  13. package/dst/ase-task-board-tui.js +26 -2
  14. package/dst/ase-task-board-web-client.js +10 -10
  15. package/dst/ase-task-store-plugin-gitea.js +3 -3
  16. package/dst/man/ase-agent-adhoc.md +25 -6
  17. package/dst/man/ase-agent-condenser.md +7 -0
  18. package/dst/man/ase-agent-editor.md +7 -0
  19. package/dst/man/ase-agent-estimator.md +7 -0
  20. package/dst/man/ase-agent-fleet.md +7 -4
  21. package/dst/man/ase-agent-implementer.md +7 -0
  22. package/dst/man/ase-agent-integrator.md +7 -0
  23. package/dst/man/ase-agent-qualifier.md +7 -0
  24. package/dst/man/ase-agent-rebooter.md +7 -0
  25. package/dst/man/ase-agent-researcher.md +7 -0
  26. package/dst/man/ase-artifact.md +1 -1
  27. package/dst/man/ase-config.md +5 -3
  28. package/dst/man/ase-mcp.md +1 -1
  29. package/dst/man/ase-setup-install.md +10 -1
  30. package/dst/man/ase-setup-status.md +6 -0
  31. package/dst/man/ase-setup-uninstall.md +3 -1
  32. package/dst/man/ase-setup-update.md +3 -0
  33. package/dst/man/ase-setup.md +4 -4
  34. package/dst/man/ase-spec-export.md +14 -3
  35. package/dst/man/ase-spec-init.md +10 -1
  36. package/dst/man/ase-spec-lint.md +2 -1
  37. package/dst/man/ase-spec-preview.md +10 -1
  38. package/dst/man/ase-spec-query.md +96 -0
  39. package/dst/man/ase-spec.md +32 -11
  40. package/dst/man/ase.md +3 -3
  41. package/package.json +20 -17
  42. package/plugin/.claude-plugin/icon.png +0 -0
  43. package/plugin/.claude-plugin/plugin.json +1 -1
  44. package/plugin/.codex-plugin/plugin.json +1 -1
  45. package/plugin/.github/plugin/plugin.json +1 -1
  46. package/plugin/meta/ase-common-task.md +9 -1
  47. package/plugin/meta/ase-control.md +14 -0
  48. package/plugin/meta/ase-format-spec.md +29 -5
  49. package/plugin/meta/ase-format-specbook.md +427 -47
  50. package/plugin/meta/ase-format-specbook.yaml +189 -87
  51. package/plugin/meta/ase-skill.md +7 -0
  52. package/plugin/mods/ase-mods-common.ts +36 -6
  53. package/plugin/mods/ase-mods-evaluate.ts +227 -0
  54. package/plugin/mods/ase-mods-grill.ts +1 -30
  55. package/plugin/mods/ase-mods-help-browse.ts +18 -13
  56. package/plugin/mods/ase-mods-help-find.ts +17 -9
  57. package/plugin/mods/ase-mods-help-hint.ts +1 -1
  58. package/plugin/mods/ase-mods.ts +23 -17
  59. package/plugin/skills/ase-code-edit/SKILL.md +53 -16
  60. package/plugin/skills/ase-code-edit/help.md +26 -13
  61. package/plugin/skills/ase-code-lint/SKILL.md +7 -3
  62. package/plugin/skills/ase-help-intent/data.md +170 -28
  63. package/plugin/skills/ase-help-skill/catalog.md +1 -0
  64. package/plugin/skills/ase-meta-workflow/workflow.txt +2 -0
  65. package/plugin/skills/ase-repo-changelog/SKILL.md +29 -10
  66. package/plugin/skills/ase-repo-changelog/help.md +5 -1
  67. package/plugin/skills/ase-repo-commit/SKILL.md +4 -1
  68. package/plugin/skills/ase-repo-dissect/help.md +2 -1
  69. package/plugin/skills/ase-repo-stage/SKILL.md +459 -0
  70. package/plugin/skills/ase-repo-stage/help.md +120 -0
  71. package/plugin/skills/ase-spec-activate/SKILL.md +4 -1
  72. package/plugin/skills/ase-spec-edit/SKILL.md +20 -12
  73. package/plugin/skills/ase-spec-edit/help.md +22 -14
  74. package/plugin/mods/claude-code.d.ts +0 -13440
@@ -1,4 +1,4 @@
1
- # ase-spec(1) -- Initialize, Lint, Export, and Preview the Project Specification
1
+ # ase-spec(1) -- Initialize, Lint, Export, Query, and Preview the Project Specification
2
2
 
3
3
  ## SYNOPSIS
4
4
 
@@ -6,6 +6,7 @@
6
6
  \[`-h`|`--help`\]
7
7
 
8
8
  `ase spec init`
9
+ \[`-s`|`--sample`\]
9
10
 
10
11
  `ase spec lint`
11
12
  \[`-m`|`--markdown`\]
@@ -14,27 +15,42 @@
14
15
  `ase spec export`
15
16
  \[`-o`|`--output` \[*format*`:`\]*file*\] \[...\]
16
17
  \[`-w`|`--watch`\]
18
+ \[`-S`|`--schema`\]
19
+
20
+ `ase spec query`
21
+ \[`-P`|`--param` *name*`=`*value*\] \[...\]
22
+ \[`-f`|`--format` *format*\]
23
+ \[`-o`|`--output` \[*format*`:`\]*file*\]
24
+ \[`-S`|`--schema`\]
25
+ *selector*
17
26
 
18
27
  `ase spec preview`
19
28
  \[`-a`|`--addr` *ip-addr*\]
20
29
  \[`-p`|`--port` *tcp-port*\]
30
+ \[`-S`|`--schema`\]
21
31
 
22
32
  ## DESCRIPTION
23
33
 
24
34
  **ase spec** is the entry point group for initializing, linting,
25
- exporting, and previewing the *SpecBook*-based project specification
26
- (SPEC), i.e., the Markdown files (plus their embedded assets) of the
27
- artifact kind `spec` below the base directory
35
+ exporting, querying, and previewing the *SpecBook*-based project
36
+ specification (SPEC), i.e., the Markdown files (plus their embedded
37
+ assets) of the artifact kind `spec` below the base directory
28
38
  `project.artifact.spec.basedir` (default: `docs/specbook`, relative to
29
- the project root).
39
+ the project root). Every `.md` file below the base directory
40
+ (recursively, except below `.`-prefixed entries), whatever its name,
41
+ is taken as a specification file.
30
42
 
31
43
  The specification is governed by the *SpecBook* YAML schema
32
44
  configuration `project.artifact.spec.schema`: a whitespace-separated
33
45
  list of schema files, merged in the given order, where the entry `std`
34
46
  names the full standard schema bundled with *SpecBook* (not its
35
47
  compressed variant `ase-format-specbook.yaml` bundled with the plugin
36
- for the agents, see `ase-util-meta`(1)) and every other entry is a file
37
- path relative to the project root. An unset or empty value means `std`.
48
+ for the agents, see `ase-util-meta`(1)), the entries `meta` and `pm`
49
+ name the meta and project management schemas bundled with *SpecBook*,
50
+ the entries prefixed with `npm:`, `github:`, `http://`, or `https://`
51
+ name remote schemas (fetched and cached by *SpecBook*), and every other
52
+ entry is a file path or glob pattern relative to the project root. An
53
+ unset or empty value means `std`.
38
54
 
39
55
  All reading specification commands honor the Git exclude rules exactly
40
56
  like `ase artifact list` does (see `ase-artifact`(1)): an artifact file
@@ -55,7 +71,7 @@ exits with status `1`.
55
71
 
56
72
  ## COMMANDS
57
73
 
58
- - `ase spec init`:
74
+ - `ase spec init` \[`-s`|`--sample`\]:
59
75
  Initialize the absent specification Markdown files of the schema
60
76
  configuration. See `ase-spec-init`(1).
61
77
 
@@ -63,11 +79,15 @@ exits with status `1`.
63
79
  Lint the specification against the schema configuration, and
64
80
  optionally for its generic Markdown formatting. See `ase-spec-lint`(1).
65
81
 
66
- - `ase spec export` \[`-o`|`--output` \[*format*`:`\]*file*\] \[...\] \[`-w`|`--watch`\]:
82
+ - `ase spec export` \[`-o`|`--output` \[*format*`:`\]*file*\] \[...\] \[`-w`|`--watch`\] \[`-S`|`--schema`\]:
67
83
  Export the specification as JSON, JSON5, YAML, TOON, HTML, PDF, or
68
84
  normalized Markdown. See `ase-spec-export`(1).
69
85
 
70
- - `ase spec preview` \[`-a`|`--addr` *ip-addr*\] \[`-p`|`--port` *tcp-port*\]:
86
+ - `ase spec query` \[`-P`|`--param` *name*`=`*value*\] \[...\] \[`-f`|`--format` *format*\] \[`-o`|`--output` \[*format*`:`\]*file*\] \[`-S`|`--schema`\] *selector*:
87
+ Query the specification with an *ASTq* selector, writing the matched
88
+ nodes as JSON, JSON5, YAML, or TOON. See `ase-spec-query`(1).
89
+
90
+ - `ase spec preview` \[`-a`|`--addr` *ip-addr*\] \[`-p`|`--port` *tcp-port*\] \[`-S`|`--schema`\]:
71
91
  Serve the HTML export of the specification as a live preview. See
72
92
  `ase-spec-preview`(1).
73
93
 
@@ -78,7 +98,8 @@ The group command without a sub-command exits with status `1`.
78
98
  ## SEE ALSO
79
99
 
80
100
  `ase`(1), `ase-spec-init`(1), `ase-spec-lint`(1), `ase-spec-export`(1),
81
- `ase-spec-preview`(1), `ase-artifact`(1), `ase-config`(1).
101
+ `ase-spec-query`(1), `ase-spec-preview`(1), `ase-artifact`(1),
102
+ `ase-config`(1).
82
103
 
83
104
  ## AUTHOR
84
105
 
package/dst/man/ase.md CHANGED
@@ -25,8 +25,8 @@ hook handlers, the statusline rendering, the persisted task plan
25
25
  management (including a task store server and an interactive task
26
26
  board), the autonomous task lifecycle agents (plus their agent relay
27
27
  and fleet supervisor), the project artifact resolution, the
28
- *SpecBook*-based specification initializing, linting, exporting and
29
- previewing, and miscellaneous utilities like diagram rendering,
28
+ *SpecBook*-based specification initializing, linting, exporting,
29
+ querying, and previewing, and miscellaneous utilities like diagram rendering,
30
30
  identifier minting, and text measuring.
31
31
 
32
32
  Most commands are sub-command groups. Each group and each command has
@@ -100,7 +100,7 @@ The following top-level commands exist:
100
100
  `ase-artifact`(1).
101
101
 
102
102
  - `ase spec` *command* \[...\]:
103
- Initialize, lint, export, and preview the *SpecBook*-based project
103
+ Initialize, lint, export, query, and preview the *SpecBook*-based project
104
104
  specification. See `ase-spec`(1).
105
105
 
106
106
  - `ase util` *command* \[...\]:
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "homepage": "https://ase.tools",
7
7
  "repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
8
8
  "bugs": { "url": "https://github.com/rse/ase/issues" },
9
- "version": "2.0.5",
9
+ "version": "2.0.7",
10
10
  "license": "Apache-2.0",
11
11
  "author": {
12
12
  "name": "Dr. Ralf S. Engelschall",
@@ -21,22 +21,23 @@
21
21
  "./package.json": "./package.json"
22
22
  },
23
23
  "devDependencies": {
24
- "eslint": "10.13.0",
24
+ "eslint": "10.14.0",
25
25
  "@eslint/js": "10.0.1",
26
- "@typescript-eslint/parser": "8.72.0",
27
- "@typescript-eslint/eslint-plugin": "8.72.0",
28
- "typescript-eslint": "8.72.0",
26
+ "@typescript-eslint/parser": "8.72.1",
27
+ "@typescript-eslint/eslint-plugin": "8.72.1",
28
+ "typescript-eslint": "8.72.1",
29
29
  "eslint-plugin-promise": "7.3.0",
30
30
  "neostandard": "0.14.1",
31
- "globals": "17.13.0",
31
+ "globals": "17.14.0",
32
32
  "typescript": "6.0.3",
33
- "eslint-plugin-vue": "10.11.1",
33
+ "eslint-plugin-vue": "10.12.0",
34
34
  "vue-eslint-parser": "10.4.1",
35
- "vue-tsc": "3.3.13",
35
+ "vue-tsc": "3.3.14",
36
36
 
37
37
  "@rse/stx": "1.1.7",
38
38
  "nodemon": "3.1.14",
39
39
  "shx": "0.4.0",
40
+ "sync-directory": "6.0.6",
40
41
  "stylus": "0.64.0",
41
42
  "vite": "8.3.5",
42
43
  "@vitejs/plugin-vue": "6.0.10",
@@ -55,10 +56,10 @@
55
56
  "source-sans": "3.52.0",
56
57
  "@fontsource/dejavu-mono": "5.3.0",
57
58
 
58
- "@types/node": "26.6.5",
59
+ "@types/node": "26.6.6",
59
60
  "@types/luxon": "3.7.6",
60
61
  "@types/which": "3.0.4",
61
- "@types/update-notifier": "6.0.8",
62
+ "@types/update-notifier": "6.0.9",
62
63
  "@types/semver": "7.8.0",
63
64
  "@types/shell-quote": "1.7.5",
64
65
  "@types/proper-lockfile": "4.1.4",
@@ -77,15 +78,16 @@
77
78
  "valibot": "1.5.0",
78
79
  "execa": "10.2.1",
79
80
  "mkdirp": "3.0.1",
80
- "@hapi/hapi": "21.4.11",
81
+ "@hapi/hapi": "21.4.12",
81
82
  "beautiful-mermaid": "1.1.3",
82
83
  "@d2lang/d2": "0.1.34",
83
- "elkjs": "0.12.0",
84
+ "elkjs": "0.12.1",
84
85
  "ink": "8.0.0",
86
+ "string-width": "8.3.0",
85
87
  "react": "19.3.1",
86
88
  "chokidar": "6.0.0",
87
- "marked": "18.1.1",
88
- "shiki": "4.5.0",
89
+ "marked": "18.1.3",
90
+ "shiki": "4.6.0",
89
91
  "cli-table3": "0.6.5",
90
92
  "chalk": "6.0.1",
91
93
  "pretty-ms": "10.0.0",
@@ -95,7 +97,7 @@
95
97
  "zod": "4.6.7",
96
98
  "which": "7.0.0",
97
99
  "update-notifier": "7.3.1",
98
- "semver": "7.8.5",
100
+ "semver": "7.8.6",
99
101
  "shell-quote": "1.12.0",
100
102
  "get-stdin": "10.0.0",
101
103
  "proper-lockfile": "4.1.2",
@@ -106,12 +108,12 @@
106
108
  "undici": "8.12.3",
107
109
  "picomatch": "4.0.7",
108
110
  "lru-cache": "11.5.3",
109
- "@rse/specbook": "1.5.2",
111
+ "@rse/specbook": "1.6.2",
110
112
  "markdownlint": "0.42.0",
111
113
  "tail": "2.2.6",
112
114
  "source-code-error": "1.2.0",
113
115
  "pure-uuid": "2.0.0",
114
- "ws": "8.22.0",
116
+ "ws": "8.22.1",
115
117
  "@rse/mrcs": "0.9.2",
116
118
  "@octokit/core": "7.0.8",
117
119
  "@octokit/plugin-rest-endpoint-methods": "18.0.0",
@@ -142,6 +144,7 @@
142
144
  "!plugin/node_modules/**",
143
145
  "!plugin/package.json",
144
146
  "!plugin/etc/**",
147
+ "!plugin/mods/claude-code.d.ts",
145
148
  ".claude-plugin/**/*",
146
149
  "README.md"
147
150
  ],
Binary file
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ase",
3
- "version": "2.0.5",
3
+ "version": "2.0.7",
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": "2.0.5",
3
+ "version": "2.0.7",
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": "2.0.5",
3
+ "version": "2.0.7",
4
4
  "description": "Agentic Software Engineering (ASE)",
5
5
  "keywords": [ "agentic", "software", "engineering" ],
6
6
  "homepage": "https://ase.tools",
@@ -227,10 +227,18 @@ related to this MCP call except the following <template/>:
227
227
  custom dialog according to the expanded `custom-dialog`
228
228
  definition. You *MUST* closely follow this definition:
229
229
 
230
- <expand name="custom-dialog" arg1="--no-other">
230
+ <expand name="custom-dialog" arg1="--other">
231
231
  <content/>
232
232
  </expand>
233
233
 
234
+ If <result/> matches `OTHER: <text/>`, the user typed a free-text
235
+ request instead of choosing an option: treat it as an implicit
236
+ `DONE`, i.e., set <result>DONE</result>, and let the calling skill
237
+ finish along its `DONE` dispatch (output its `DONE` template).
238
+ Its *STOP* then ends only the skill, *not* the current turn:
239
+ immediately afterwards, handle <text/> as a regular user request,
240
+ outside of any skill, without re-opening this dialog.
241
+
234
242
  </define>
235
243
 
236
244
  <define name="task-next-handoff">
@@ -187,3 +187,17 @@ Control Flow Constructs
187
187
  the order of their occurrence in <parallel-body/>. This construct is
188
188
  expanded to its <parallel-body/>. Do not output anything else.
189
189
 
190
+ - *IMPORTANT*: You *MUST* honor the following rule for *all*
191
+ concurrently dispatched sub-agents -- whether invoked through
192
+ <parallel/> or through multiple `Agent` tool invocations emitted in
193
+ one single message:
194
+
195
+ The agent tool may run sub-agents in the *background* (e.g.
196
+ *Anthropic Claude Code CLI* ignores `run_in_background: false`) and
197
+ then notifies you of each returned sub-agent individually. While
198
+ these notifications arrive, you *MUST* *NOT* output anything -- no
199
+ progress messages (like `Batch 3 of 8 is back, 5 still running`),
200
+ no intermediate results, and no waiting notices -- but silently wait
201
+ for the remaining sub-agents. Only once *all* of them have returned,
202
+ continue with the processing which consumes their results.
203
+
@@ -20,16 +20,40 @@ SpecBook Project Instantiation
20
20
  with **ASE** in the file `meta/ase-format-specbook.yaml`
21
21
  (relative to the plugin root).
22
22
 
23
+ - For each entry `meta`, `pm`, or `npm:...`, `github:...`,
24
+ `http://...`, or `https://...` in the list:
25
+
26
+ The entry names a YAML schema configuration bundled with or
27
+ fetched by **SpecBook** itself (the meta, the project
28
+ management, or a remote one), which has no file to read.
29
+ Instead, obtain the *effective* (merged) schema configuration
30
+ once via the `ase_specbook_query(schema: true, selector: "/
31
+ artifact", format: "yaml")` tool of the `ase` MCP server, which
32
+ describes it as a **SpecBook** document.
33
+
23
34
  - For each *other* entry in the list:
24
35
 
25
- The entry names a custom YAML schema configuration file of the
26
- project (relative to the project root).
36
+ The entry names a custom YAML schema configuration file (or
37
+ glob pattern of files) of the project (relative to the project
38
+ root).
27
39
 
28
40
  You *MUST* read all resulting schema configuration files via the
29
41
  `Read` tool before working on the specification of the **SpecBook
30
42
  SPEC Model**.
31
43
 
32
44
  - The **SpecBook SPEC Model** of this project is the set of specification
33
- Markdown files in the directory <ase-spec-basedir/> (relative
34
- to the project root), whose files are resolved via the
35
- `ase_artifact_list(kind: [ "spec" ])` tool of the `ase` MCP server.
45
+ Markdown files below the directory <ase-spec-basedir/> (relative
46
+ to the project root, recursively, where every `.md` file is a
47
+ specification file, whatever its name), whose files are resolved
48
+ via the `ase_artifact_list(kind: [ "spec" ])` tool of the `ase` MCP
49
+ server.
50
+
51
+ - The **SpecBook SPEC Model** of this project can be queried
52
+ *structurally* via the `ase_specbook_query(selector: "<selector/>")`
53
+ tool of the `ase` MCP server, with an XPath-like *ASTq* selector
54
+ like `// USE-CASE [ @STATUS == 'Done' ]` (object nodes typed by
55
+ their kind with whitespace dashed, attributes `id`, `name`,
56
+ `description`, `rationale`, and one per property key, and the
57
+ function `refs()` yielding the objects referenced by an object).
58
+ Prefer it over reading many artifact files when a question spans
59
+ objects of entire kinds, property values, or reference relations.