@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.
- package/dst/ase-agent-definition-api.d.ts +2 -0
- package/dst/ase-agent-definition-core.js +24 -3
- package/dst/ase-agent-fleet.js +2 -1
- package/dst/ase-agent-runtime-engine.js +22 -4
- package/dst/ase-agent-runtime-tool.js +10 -8
- package/dst/ase-agent-runtime.js +8 -4
- package/dst/ase-config-schema.js +1 -1
- package/dst/ase-man-catalog.js +1 -1
- package/dst/ase-setup-settings.js +111 -1
- package/dst/ase-setup.js +19 -7
- package/dst/ase-spec.js +184 -49
- package/dst/ase-task-board-tui-model.js +8 -1
- package/dst/ase-task-board-tui.js +26 -2
- package/dst/ase-task-board-web-client.js +10 -10
- package/dst/ase-task-store-plugin-gitea.js +3 -3
- package/dst/man/ase-agent-adhoc.md +25 -6
- package/dst/man/ase-agent-condenser.md +7 -0
- package/dst/man/ase-agent-editor.md +7 -0
- package/dst/man/ase-agent-estimator.md +7 -0
- package/dst/man/ase-agent-fleet.md +7 -4
- package/dst/man/ase-agent-implementer.md +7 -0
- package/dst/man/ase-agent-integrator.md +7 -0
- package/dst/man/ase-agent-qualifier.md +7 -0
- package/dst/man/ase-agent-rebooter.md +7 -0
- package/dst/man/ase-agent-researcher.md +7 -0
- package/dst/man/ase-artifact.md +1 -1
- package/dst/man/ase-config.md +5 -3
- package/dst/man/ase-mcp.md +1 -1
- package/dst/man/ase-setup-install.md +10 -1
- package/dst/man/ase-setup-status.md +6 -0
- package/dst/man/ase-setup-uninstall.md +3 -1
- package/dst/man/ase-setup-update.md +3 -0
- package/dst/man/ase-setup.md +4 -4
- package/dst/man/ase-spec-export.md +14 -3
- package/dst/man/ase-spec-init.md +10 -1
- package/dst/man/ase-spec-lint.md +2 -1
- package/dst/man/ase-spec-preview.md +10 -1
- package/dst/man/ase-spec-query.md +96 -0
- package/dst/man/ase-spec.md +32 -11
- package/dst/man/ase.md +3 -3
- package/package.json +20 -17
- package/plugin/.claude-plugin/icon.png +0 -0
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/.github/plugin/plugin.json +1 -1
- package/plugin/meta/ase-common-task.md +9 -1
- package/plugin/meta/ase-control.md +14 -0
- package/plugin/meta/ase-format-spec.md +29 -5
- package/plugin/meta/ase-format-specbook.md +427 -47
- package/plugin/meta/ase-format-specbook.yaml +189 -87
- package/plugin/meta/ase-skill.md +7 -0
- package/plugin/mods/ase-mods-common.ts +36 -6
- package/plugin/mods/ase-mods-evaluate.ts +227 -0
- package/plugin/mods/ase-mods-grill.ts +1 -30
- package/plugin/mods/ase-mods-help-browse.ts +18 -13
- package/plugin/mods/ase-mods-help-find.ts +17 -9
- package/plugin/mods/ase-mods-help-hint.ts +1 -1
- package/plugin/mods/ase-mods.ts +23 -17
- package/plugin/skills/ase-code-edit/SKILL.md +53 -16
- package/plugin/skills/ase-code-edit/help.md +26 -13
- package/plugin/skills/ase-code-lint/SKILL.md +7 -3
- package/plugin/skills/ase-help-intent/data.md +170 -28
- package/plugin/skills/ase-help-skill/catalog.md +1 -0
- package/plugin/skills/ase-meta-workflow/workflow.txt +2 -0
- package/plugin/skills/ase-repo-changelog/SKILL.md +29 -10
- package/plugin/skills/ase-repo-changelog/help.md +5 -1
- package/plugin/skills/ase-repo-commit/SKILL.md +4 -1
- package/plugin/skills/ase-repo-dissect/help.md +2 -1
- package/plugin/skills/ase-repo-stage/SKILL.md +459 -0
- package/plugin/skills/ase-repo-stage/help.md +120 -0
- package/plugin/skills/ase-spec-activate/SKILL.md +4 -1
- package/plugin/skills/ase-spec-edit/SKILL.md +20 -12
- package/plugin/skills/ase-spec-edit/help.md +22 -14
- package/plugin/mods/claude-code.d.ts +0 -13440
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
** Copyright (c) 2025-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
4
4
|
** Licensed under Apache 2.0 <https://spdx.org/licenses/Apache-2.0>
|
|
5
5
|
*/
|
|
6
|
-
import { giteaApi } from "gitea-js";
|
|
6
|
+
import { giteaApi, ContentType } from "gitea-js";
|
|
7
7
|
import { LRUCache } from "lru-cache";
|
|
8
8
|
import * as TaskFormat from "./ase-task-format.js";
|
|
9
9
|
import * as TaskIssues from "./ase-task-store-issues.js";
|
|
@@ -396,7 +396,7 @@ class GiteaTaskStoragePlugin extends TaskIssues.IssueTaskStoragePlugin {
|
|
|
396
396
|
for (const blocker of after) {
|
|
397
397
|
if (have.has(blocker.number))
|
|
398
398
|
continue;
|
|
399
|
-
await this.call(loc, this.gt.repos.issueCreateIssueDependencies(loc.owner, loc.repo, String(issue.number), meta(blocker)))
|
|
399
|
+
await this.call(loc, this.gt.repos.issueCreateIssueDependencies(loc.owner, loc.repo, String(issue.number), meta(blocker), { type: ContentType.Json }))
|
|
400
400
|
.catch((err) => {
|
|
401
401
|
if (statusOf(err) === 404)
|
|
402
402
|
throw new Error(`Gitea rejected the dependency of issue #${issue.number} on issue #${blocker.number} ` +
|
|
@@ -406,7 +406,7 @@ class GiteaTaskStoragePlugin extends TaskIssues.IssueTaskStoragePlugin {
|
|
|
406
406
|
}
|
|
407
407
|
for (const blocker of current)
|
|
408
408
|
if (!want.has(blocker.number))
|
|
409
|
-
await found(this.call(loc, this.gt.repos.issueRemoveIssueDependencies(loc.owner, loc.repo, String(issue.number), meta(blocker))));
|
|
409
|
+
await found(this.call(loc, this.gt.repos.issueRemoveIssueDependencies(loc.owner, loc.repo, String(issue.number), meta(blocker), { type: ContentType.Json })));
|
|
410
410
|
}
|
|
411
411
|
/* synchronize the comments with the attachments, touching changed ones only
|
|
412
412
|
(see the common issue tracker parts) */
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
\[`--lifecycle` *model*\]
|
|
20
20
|
\[`--serial`\]
|
|
21
21
|
\[`--unclaimed`\]
|
|
22
|
+
\[`-M`|`--model` *model*\]
|
|
22
23
|
\[`--params` *name*`=`*value*\]
|
|
23
24
|
\[`--state-`*item* *state*\]
|
|
24
25
|
\[`--tag-`*item* *tag*\]
|
|
@@ -169,12 +170,12 @@ tags (except the request state tag) and, by default, gets its previous
|
|
|
169
170
|
assignee back. An agent consumes the request prompts if its prompt
|
|
170
171
|
template references `{prompt}` (except within the conditional
|
|
171
172
|
`{?prompt:`*text*`}` only, which makes the prompt *optional*) or it
|
|
172
|
-
has a hook `prepare`, `prompt`, or `finish` (which receive
|
|
173
|
-
prompt in their *job*), where it then refuses a request
|
|
174
|
-
prompt as failed, else it accepts requests with an empty
|
|
175
|
-
an agent with an optional prompt still passes on if
|
|
176
|
-
announces this to the agent relay, so the task boards
|
|
177
|
-
prompt for its requests, too.
|
|
173
|
+
has a hook `prepare`, `prompt`, `model`, or `finish` (which receive
|
|
174
|
+
the request prompt in their *job*), where it then refuses a request
|
|
175
|
+
with an empty prompt as failed, else it accepts requests with an empty
|
|
176
|
+
prompt (which an agent with an optional prompt still passes on if
|
|
177
|
+
non-empty), and announces this to the agent relay, so the task boards
|
|
178
|
+
accept an empty prompt for its requests, too.
|
|
178
179
|
|
|
179
180
|
Only the prompt (and `--state-incoming` for `--type phase`) is
|
|
180
181
|
mandatory, while all other options default to the safe *annotate*
|
|
@@ -431,6 +432,16 @@ and `--prompt-skill` with `--prompt-args`, and `--tag-retry` and
|
|
|
431
432
|
`passes`, and `--workdir changeset` resp. `target` (as the task can
|
|
432
433
|
be claimed by another agent meanwhile).
|
|
433
434
|
|
|
435
|
+
- \[`-M`|`--model` *model*\]:
|
|
436
|
+
The model of the agent tool, passed to it as `--model` *model*
|
|
437
|
+
verbatim (e.g., an alias like `sonnet` or a full model name), either a
|
|
438
|
+
*model* for all tasks, or comma-separated *size*`=`*model* pairs per
|
|
439
|
+
`Effort:` size of the task (`XS`, `S`, `M`, `L`, `XL`, or `*` for all
|
|
440
|
+
other tasks, e.g., `XS=haiku,S=haiku,M=sonnet,*=opus`), where a task
|
|
441
|
+
without a matching pair gets the default model of the agent tool (the
|
|
442
|
+
default for all tasks). The hook `model` can override it per task (see
|
|
443
|
+
**HOOKS**).
|
|
444
|
+
|
|
434
445
|
- \[`--params` *name*`=`*value*\]:
|
|
435
446
|
(repeatable) The value of the parameter *name* declared by the
|
|
436
447
|
definition (see **PARAMETERS**), where a later value of the same
|
|
@@ -986,6 +997,14 @@ invocation:
|
|
|
986
997
|
`{ text }`, a plain prompt text, or `undefined` to keep the
|
|
987
998
|
configured one, where a thrown error fails the processing.
|
|
988
999
|
|
|
1000
|
+
- `model(task, model, job, ctx)`:
|
|
1001
|
+
The model of the agent tool for the job, given the configured *model*
|
|
1002
|
+
of `--model` for the `Effort:` size of the task (empty for the default
|
|
1003
|
+
model of the agent tool): a model (empty for the default one), or
|
|
1004
|
+
`undefined` to keep the configured one, where a thrown error fails the
|
|
1005
|
+
processing. This allows choosing the model per task by any means,
|
|
1006
|
+
e.g., by asking a cheap model via `ctx.exec`.
|
|
1007
|
+
|
|
989
1008
|
- `verdict(task, result, ctx)`:
|
|
990
1009
|
(after a successful agent tool only) The verdict of the result (an
|
|
991
1010
|
upper-case word, accepted only if listed by `--verdict-allow`), an
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
\[`-T`|`--timeout` *duration*\]
|
|
10
10
|
\[`-o`|`--one-shot`\]
|
|
11
11
|
\[`--agent-relay` *url*\]
|
|
12
|
+
\[`-M`|`--model` *model*\]
|
|
12
13
|
\[`--`*group*`-`*item* *value* \[...\]\]
|
|
13
14
|
\[`-f`|`--foreground`\]
|
|
14
15
|
|
|
@@ -145,6 +146,12 @@ All other options belong to the sub-commands (see **COMMANDS**).
|
|
|
145
146
|
(`phase` only). Built-in: not set. Not allowed, as the condenser
|
|
146
147
|
claims the tasks into its activity state.
|
|
147
148
|
|
|
149
|
+
- \[`-M`|`--model` *model*\]: The model of the agent tool: a model
|
|
150
|
+
for all tasks, or comma-separated *size*`=`*model* pairs per
|
|
151
|
+
`Effort:` size (`XS`, `S`, `M`, `L`, `XL`, or `*` for all other
|
|
152
|
+
tasks), see `ase-agent-adhoc`(1). Generic default: the default
|
|
153
|
+
model of the agent tool. Built-in: none.
|
|
154
|
+
|
|
148
155
|
- \[`--params` *name*`=`*value*\]: The value of a parameter
|
|
149
156
|
declared by the definition (repeatable). Built-in: none declared.
|
|
150
157
|
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
\[`--agent-relay` *url*\]
|
|
12
12
|
\[`-r`|`--repo` *url*\]
|
|
13
13
|
\[`-d`|`--tempdir` *dir*\]
|
|
14
|
+
\[`-M`|`--model` *model*\]
|
|
14
15
|
\[`--`*group*`-`*item* *value* \[...\]\]
|
|
15
16
|
\[`-f`|`--foreground`\]
|
|
16
17
|
|
|
@@ -192,6 +193,12 @@ All other options belong to the sub-commands (see **COMMANDS**).
|
|
|
192
193
|
(`phase` only). Built-in: not set. Not allowed, as the editor is
|
|
193
194
|
of type `request`.
|
|
194
195
|
|
|
196
|
+
- \[`-M`|`--model` *model*\]: The model of the agent tool: a model
|
|
197
|
+
for all tasks, or comma-separated *size*`=`*model* pairs per
|
|
198
|
+
`Effort:` size (`XS`, `S`, `M`, `L`, `XL`, or `*` for all other
|
|
199
|
+
tasks), see `ase-agent-adhoc`(1). Generic default: the default
|
|
200
|
+
model of the agent tool. Built-in: none.
|
|
201
|
+
|
|
195
202
|
- \[`--params` *name*`=`*value*\]: The value of a parameter
|
|
196
203
|
declared by the definition (repeatable). Built-in: none declared.
|
|
197
204
|
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
\[`-o`|`--one-shot`\]
|
|
11
11
|
\[`--agent-relay` *url*\]
|
|
12
12
|
\[`-m`|`--mode` `phase`|`request`\]
|
|
13
|
+
\[`-M`|`--model` *model*\]
|
|
13
14
|
\[`--`*group*`-`*item* *value* \[...\]\]
|
|
14
15
|
\[`-f`|`--foreground`\]
|
|
15
16
|
|
|
@@ -204,6 +205,12 @@ All other options belong to the sub-commands (see **COMMANDS**).
|
|
|
204
205
|
(`phase` only). Built-in: enabled (mode `phase`) resp. not set
|
|
205
206
|
(mode `request`).
|
|
206
207
|
|
|
208
|
+
- \[`-M`|`--model` *model*\]: The model of the agent tool: a model
|
|
209
|
+
for all tasks, or comma-separated *size*`=`*model* pairs per
|
|
210
|
+
`Effort:` size (`XS`, `S`, `M`, `L`, `XL`, or `*` for all other
|
|
211
|
+
tasks), see `ase-agent-adhoc`(1). Generic default: the default
|
|
212
|
+
model of the agent tool. Built-in: none.
|
|
213
|
+
|
|
207
214
|
- \[`--params` *name*`=`*value*\]: The value of a parameter
|
|
208
215
|
declared by the definition (repeatable). Built-in: none declared.
|
|
209
216
|
|
|
@@ -79,7 +79,7 @@ members) or `ase agent fleet stop`.
|
|
|
79
79
|
(with all its options commented out, so they fall back to
|
|
80
80
|
`project.relay.url`, `project.relay.crt`, and `project.relay.key`),
|
|
81
81
|
the section `default` (with `tool`, `parallel: 1`, and `timeout: 60m`,
|
|
82
|
-
plus `repo
|
|
82
|
+
plus `model`, `repo`, and `tempdir` commented out), the edit request agent
|
|
83
83
|
`editor`, the effort estimation agent `estimator` (mode `phase`,
|
|
84
84
|
estimating the planned tasks, i.e., the `OPEN` tasks for `solo`, the
|
|
85
85
|
`PLANNING` tasks for `team`, and the `PLANNED` tasks for `enterprise`,
|
|
@@ -201,8 +201,9 @@ value omits an option, and a list repeats an option:
|
|
|
201
201
|
`project.relay.url` selecting HTTPS requires both.
|
|
202
202
|
|
|
203
203
|
- `default`:
|
|
204
|
-
(optional) The default options of all agents: `tool`, `
|
|
205
|
-
`timeout`, `repo`, `tempdir`, and `agent-relay` (see
|
|
204
|
+
(optional) The default options of all agents: `tool`, `model`,
|
|
205
|
+
`parallel`, `timeout`, `repo`, `tempdir`, and `agent-relay` (see
|
|
206
|
+
`ase-agent`(1) and `ase-agent-adhoc`(1)),
|
|
206
207
|
each one applied only to the agents supporting it (e.g., `repo` not to
|
|
207
208
|
`rebooter`), and overridden by the section of an agent. The option
|
|
208
209
|
`agent-relay` is not allowed together with the section `relay`.
|
|
@@ -315,7 +316,8 @@ $ ase agent fleet stop
|
|
|
315
316
|
```
|
|
316
317
|
|
|
317
318
|
A configuration `.ase/fleet.yaml` with the agent relay, the built-in
|
|
318
|
-
agents
|
|
319
|
+
agents (with an implementer using cheaper models for smaller tasks),
|
|
320
|
+
two editors of different agent tools, an agent of the
|
|
319
321
|
definition file `.ase/agents/reviewer.mts`, and an ad-hoc request
|
|
320
322
|
agent:
|
|
321
323
|
|
|
@@ -329,6 +331,7 @@ default:
|
|
|
329
331
|
rebooter:
|
|
330
332
|
implementer:
|
|
331
333
|
parallel: 2
|
|
334
|
+
model: XS=haiku,S=haiku,*=sonnet
|
|
332
335
|
editor-claude:
|
|
333
336
|
kind: editor
|
|
334
337
|
editor-codex:
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
\[`-r`|`--repo` *url*\]
|
|
13
13
|
\[`-d`|`--tempdir` *dir*\]
|
|
14
14
|
\[`-m`|`--mode` `implement`|`draft`\]
|
|
15
|
+
\[`-M`|`--model` *model*\]
|
|
15
16
|
\[`--`*group*`-`*item* *value* \[...\]\]
|
|
16
17
|
\[`-f`|`--foreground`\]
|
|
17
18
|
|
|
@@ -260,6 +261,12 @@ All other options belong to the sub-commands (see **COMMANDS**).
|
|
|
260
261
|
(`phase` only). Built-in: not set. Not allowed, as the implementer
|
|
261
262
|
claims the tasks into its activity state.
|
|
262
263
|
|
|
264
|
+
- \[`-M`|`--model` *model*\]: The model of the agent tool: a model
|
|
265
|
+
for all tasks, or comma-separated *size*`=`*model* pairs per
|
|
266
|
+
`Effort:` size (`XS`, `S`, `M`, `L`, `XL`, or `*` for all other
|
|
267
|
+
tasks), see `ase-agent-adhoc`(1). Generic default: the default
|
|
268
|
+
model of the agent tool. Built-in: none.
|
|
269
|
+
|
|
263
270
|
- \[`--params` *name*`=`*value*\]: The value of a parameter
|
|
264
271
|
declared by the definition (repeatable). Built-in: `effort-wait`
|
|
265
272
|
(`true` or `false`, default: `true`), whether to wait for the
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
\[`-r`|`--repo` *url*\]
|
|
13
13
|
\[`-d`|`--tempdir` *dir*\]
|
|
14
14
|
\[`-m`|`--mode` `merge`|`rebase`|`squash`\]
|
|
15
|
+
\[`-M`|`--model` *model*\]
|
|
15
16
|
\[`--`*group*`-`*item* *value* \[...\]\]
|
|
16
17
|
\[`-f`|`--foreground`\]
|
|
17
18
|
|
|
@@ -206,6 +207,12 @@ All other options belong to the sub-commands (see **COMMANDS**).
|
|
|
206
207
|
(`phase` only). Built-in: not set. Not allowed, as the integrator
|
|
207
208
|
claims the tasks into its activity state.
|
|
208
209
|
|
|
210
|
+
- \[`-M`|`--model` *model*\]: The model of the agent tool: a model
|
|
211
|
+
for all tasks, or comma-separated *size*`=`*model* pairs per
|
|
212
|
+
`Effort:` size (`XS`, `S`, `M`, `L`, `XL`, or `*` for all other
|
|
213
|
+
tasks), see `ase-agent-adhoc`(1). Generic default: the default
|
|
214
|
+
model of the agent tool. Built-in: none.
|
|
215
|
+
|
|
209
216
|
- \[`--params` *name*`=`*value*\]: The value of a parameter
|
|
210
217
|
declared by the definition (repeatable). Built-in: none declared.
|
|
211
218
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
\[`-r`|`--repo` *url*\]
|
|
13
13
|
\[`-d`|`--tempdir` *dir*\]
|
|
14
14
|
\[`-m`|`--mode` `judge`|`qualify`\]
|
|
15
|
+
\[`-M`|`--model` *model*\]
|
|
15
16
|
\[`--`*group*`-`*item* *value* \[...\]\]
|
|
16
17
|
\[`-f`|`--foreground`\]
|
|
17
18
|
|
|
@@ -187,6 +188,12 @@ All other options belong to the sub-commands (see **COMMANDS**).
|
|
|
187
188
|
(`phase` only). Built-in: not set. Not allowed, as the qualifier
|
|
188
189
|
claims the tasks into its activity state.
|
|
189
190
|
|
|
191
|
+
- \[`-M`|`--model` *model*\]: The model of the agent tool: a model
|
|
192
|
+
for all tasks, or comma-separated *size*`=`*model* pairs per
|
|
193
|
+
`Effort:` size (`XS`, `S`, `M`, `L`, `XL`, or `*` for all other
|
|
194
|
+
tasks), see `ase-agent-adhoc`(1). Generic default: the default
|
|
195
|
+
model of the agent tool. Built-in: none.
|
|
196
|
+
|
|
190
197
|
- \[`--params` *name*`=`*value*\]: The value of a parameter
|
|
191
198
|
declared by the definition (repeatable). Built-in: none declared.
|
|
192
199
|
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
\[`-T`|`--timeout` *duration*\]
|
|
10
10
|
\[`-o`|`--one-shot`\]
|
|
11
11
|
\[`--agent-relay` *url*\]
|
|
12
|
+
\[`-M`|`--model` *model*\]
|
|
12
13
|
\[`--`*group*`-`*item* *value* \[...\]\]
|
|
13
14
|
\[`-f`|`--foreground`\]
|
|
14
15
|
|
|
@@ -145,6 +146,12 @@ All other options belong to the sub-commands (see **COMMANDS**).
|
|
|
145
146
|
(`phase` only). Built-in: not set. Not allowed, as the rebooter
|
|
146
147
|
claims the tasks into its activity state.
|
|
147
148
|
|
|
149
|
+
- \[`-M`|`--model` *model*\]: The model of the agent tool: a model
|
|
150
|
+
for all tasks, or comma-separated *size*`=`*model* pairs per
|
|
151
|
+
`Effort:` size (`XS`, `S`, `M`, `L`, `XL`, or `*` for all other
|
|
152
|
+
tasks), see `ase-agent-adhoc`(1). Generic default: the default
|
|
153
|
+
model of the agent tool. Built-in: none.
|
|
154
|
+
|
|
148
155
|
- \[`--params` *name*`=`*value*\]: The value of a parameter
|
|
149
156
|
declared by the definition (repeatable). Built-in: none declared.
|
|
150
157
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
\[`-r`|`--repo` *url*\]
|
|
13
13
|
\[`-d`|`--tempdir` *dir*\]
|
|
14
14
|
\[`-m`|`--mode` `phase`|`request`\]
|
|
15
|
+
\[`-M`|`--model` *model*\]
|
|
15
16
|
\[`--`*group*`-`*item* *value* \[...\]\]
|
|
16
17
|
\[`-f`|`--foreground`\]
|
|
17
18
|
|
|
@@ -246,6 +247,12 @@ All other options belong to the sub-commands (see **COMMANDS**).
|
|
|
246
247
|
- \[`--unclaimed`\]: Process the tasks of the incoming states
|
|
247
248
|
without claiming them (`phase` only). Built-in: not set.
|
|
248
249
|
|
|
250
|
+
- \[`-M`|`--model` *model*\]: The model of the agent tool: a model
|
|
251
|
+
for all tasks, or comma-separated *size*`=`*model* pairs per
|
|
252
|
+
`Effort:` size (`XS`, `S`, `M`, `L`, `XL`, or `*` for all other
|
|
253
|
+
tasks), see `ase-agent-adhoc`(1). Generic default: the default
|
|
254
|
+
model of the agent tool. Built-in: none.
|
|
255
|
+
|
|
249
256
|
- \[`--params` *name*`=`*value*\]: The value of a parameter
|
|
250
257
|
declared by the definition (repeatable). Built-in: none declared.
|
|
251
258
|
|
package/dst/man/ase-artifact.md
CHANGED
|
@@ -21,7 +21,7 @@ which provide the same) to locate the files of a kind. The recognized
|
|
|
21
21
|
kinds are:
|
|
22
22
|
|
|
23
23
|
- `spec`: the specification (by default below `docs/specbook`,
|
|
24
|
-
the files
|
|
24
|
+
the files `**/*.{md,txt,svg,png,jpg}`).
|
|
25
25
|
- `code`: the source code (by default below `src`, all files
|
|
26
26
|
except `**/etc/**` and `**/{.gitignore,.npmignore,package.json}`).
|
|
27
27
|
- `docs`: the documentation (by default below `doc`, all files plus
|
package/dst/man/ase-config.md
CHANGED
|
@@ -259,12 +259,14 @@ glob). See `ase-artifact`(1):
|
|
|
259
259
|
|
|
260
260
|
- `project.artifact.spec.basedir`, `project.artifact.spec.files`:
|
|
261
261
|
The specification files (default: `docs/specbook` and
|
|
262
|
-
|
|
262
|
+
`**/*.{md,txt,svg,png,jpg}`).
|
|
263
263
|
|
|
264
264
|
- `project.artifact.spec.schema` (*string*):
|
|
265
265
|
The whitespace-separated list of *SpecBook* schema configuration
|
|
266
|
-
files, where `std`
|
|
267
|
-
|
|
266
|
+
files, where `std`, `meta`, and `pm` name the bundled standard, meta,
|
|
267
|
+
and project management ones, `npm:`, `github:`, `http:`, and
|
|
268
|
+
`https:` references name remote ones, and every other entry is a file
|
|
269
|
+
or glob pattern relative to the project root (default: empty, i.e.,
|
|
268
270
|
`std`). See `ase-spec`(1).
|
|
269
271
|
|
|
270
272
|
- `project.artifact.code.basedir`, `project.artifact.code.files`:
|
package/dst/man/ase-mcp.md
CHANGED
|
@@ -53,7 +53,7 @@ The service provides the `ase_*` MCP tools of the skills, e.g.,
|
|
|
53
53
|
`ase_config_list`, `ase_state_get`, `ase_state_set`,
|
|
54
54
|
`ase_state_delete`, `ase_kv_get`, `ase_kv_set`, `ase_kv_delete`,
|
|
55
55
|
`ase_kv_clear`, `ase_kv_batch`, the `ase_task_*` tools, `ase_artifact_list`,
|
|
56
|
-
`ase_artifact_name`, `ase_specbook_lint`, `ase_specbook_export`,
|
|
56
|
+
`ase_artifact_name`, `ase_specbook_lint`, `ase_specbook_export`, `ase_specbook_query`,
|
|
57
57
|
`ase_diagram`, `ase_worktree_path`, `ase_mint`, `ase_text_metric`,
|
|
58
58
|
`ase_getopt`, `ase_markdown_prepare`, `ase_timestamp`, `ase_sleep`,
|
|
59
59
|
`ase_compat`, `ase_component_info`, and `ase_decision_matrix`.
|
|
@@ -34,6 +34,14 @@ and `--tool codex`, which have no output style concept, the `ase hook
|
|
|
34
34
|
session-start` handler injects the identical style instructions into
|
|
35
35
|
the session context instead (see `ase-hook`(1)).
|
|
36
36
|
|
|
37
|
+
For `--tool claude`, the function hooks of the plugin-shipped
|
|
38
|
+
*Claude Code* mods (e.g., the clickable grilling table and the help
|
|
39
|
+
bands above the prompt) are additionally enabled by writing
|
|
40
|
+
`"CLAUDE_CODE_ENABLE_FUNCTION_HOOKS": "1"` into the `env` of the
|
|
41
|
+
`settings.json` of the installation scope, unless the variable is
|
|
42
|
+
already present there: an *ASE* one (value `1`) is left as is, and a
|
|
43
|
+
foreign one (any other value) is preserved with a warning.
|
|
44
|
+
|
|
37
45
|
The *ASE* tool itself is not installed by this command, as it is
|
|
38
46
|
already installed when running it (e.g., via `npm install -g
|
|
39
47
|
@rse/ase`).
|
|
@@ -82,7 +90,8 @@ already installed when running it (e.g., via `npm install -g
|
|
|
82
90
|
|
|
83
91
|
- `~/.claude/settings.json`, `.claude/settings.json`, `.claude/settings.local.json`:
|
|
84
92
|
The settings file of the `user`, `project`, resp. `local` scope,
|
|
85
|
-
receiving the `outputStyle` selection
|
|
93
|
+
receiving the `outputStyle` selection and the
|
|
94
|
+
`CLAUDE_CODE_ENABLE_FUNCTION_HOOKS` variable for `--tool claude`.
|
|
86
95
|
|
|
87
96
|
## EXIT STATUS
|
|
88
97
|
|
|
@@ -33,6 +33,12 @@ the agent tool to be found in `$PATH`. The rows are:
|
|
|
33
33
|
(the *ASE* output style `ase:ase-terse`) or `foreign`
|
|
34
34
|
(hand-selected).
|
|
35
35
|
|
|
36
|
+
- `FUNCTIONHOOKS` (`--tool claude` only):
|
|
37
|
+
One row per settings file (of the scopes `user`, `project`, and
|
|
38
|
+
`local`) carrying a `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS` variable in
|
|
39
|
+
its `env`, with the status `enabled` (value `1`) or `foreign` (any
|
|
40
|
+
other value).
|
|
41
|
+
|
|
36
42
|
- `STATUSLINE` (`--tool claude` and `--tool copilot` only):
|
|
37
43
|
One row per settings file carrying a `statusLine` entry, with the
|
|
38
44
|
status `activated` (its command starts with `ase statusline`, i.e.,
|
|
@@ -20,7 +20,9 @@ steps are:
|
|
|
20
20
|
2. For `--tool claude`, the selection of the output style
|
|
21
21
|
`ase:ase-terse` is removed from the `settings.json` of the
|
|
22
22
|
installation scope, while a foreign `outputStyle` is preserved with
|
|
23
|
-
a warning.
|
|
23
|
+
a warning. Likewise, the variable `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS`
|
|
24
|
+
(value `1`) is removed from its `env` (together with an `env` which
|
|
25
|
+
became empty), while a foreign value is preserved with a warning.
|
|
24
26
|
3. The plugin `ase@ase` is uninstalled (`<cli> plugin uninstall
|
|
25
27
|
ase@ase`, resp. `codex plugin remove ase@ase`) and the plugin
|
|
26
28
|
marketplace `ase` is removed (`<cli> plugin marketplace remove
|
|
@@ -42,6 +42,9 @@ carry no version change in the plugin manifest.
|
|
|
42
42
|
Like `ase setup install`, for `--tool claude`, the output style
|
|
43
43
|
`ase:ase-terse` is finally selected in the `settings.json` of the
|
|
44
44
|
installation scope, unless a foreign `outputStyle` is already selected
|
|
45
|
+
there, which is preserved with a warning, and the function hooks are
|
|
46
|
+
enabled through `"CLAUDE_CODE_ENABLE_FUNCTION_HOOKS": "1"` in its
|
|
47
|
+
`env`, unless a foreign value of the variable is already present
|
|
45
48
|
there, which is preserved with a warning.
|
|
46
49
|
|
|
47
50
|
## OPTIONS
|
package/dst/man/ase-setup.md
CHANGED
|
@@ -23,8 +23,8 @@ The target agent tool is either *Anthropic Claude Code CLI*
|
|
|
23
23
|
(`codex`). All operations are performed through the plugin and MCP
|
|
24
24
|
commands of the respective agent tool CLI (e.g., `claude plugin
|
|
25
25
|
install`), which hence has to be found in `$PATH`, and through direct
|
|
26
|
-
edits of its settings files (for the output style, the
|
|
27
|
-
and the telemetry). Every sub-process command is logged (with API keys
|
|
26
|
+
edits of its settings files (for the output style, the function
|
|
27
|
+
hooks, the statusline, and the telemetry). Every sub-process command is logged (with API keys
|
|
28
28
|
masked) and its output is shown only on failure.
|
|
29
29
|
|
|
30
30
|
## OPTIONS
|
|
@@ -79,8 +79,8 @@ individual manual pages for the exact applicability):
|
|
|
79
79
|
`ase-setup-disable`(1).
|
|
80
80
|
|
|
81
81
|
- `ase setup status` \[`-t`|`--tool` *tool*\]:
|
|
82
|
-
Report the plugin, MCP server, output style,
|
|
83
|
-
telemetry registrations of all scopes. See `ase-setup-status`(1).
|
|
82
|
+
Report the plugin, MCP server, output style, function hooks,
|
|
83
|
+
statusline, and telemetry registrations of all scopes. See `ase-setup-status`(1).
|
|
84
84
|
|
|
85
85
|
- `ase setup mcp` `list`|`activate`|`deactivate` \[...\]:
|
|
86
86
|
List, activate, or deactivate the pre-defined foreign MCP servers.
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
\[`-h`|`--help`\]
|
|
7
7
|
\[`-o`|`--output` \[*format*`:`\]*file*\] \[...\]
|
|
8
8
|
\[`-w`|`--watch`\]
|
|
9
|
+
\[`-S`|`--schema`\]
|
|
9
10
|
|
|
10
11
|
## DESCRIPTION
|
|
11
12
|
|
|
@@ -55,8 +56,10 @@ The MCP tool `ase_specbook_export` provides the same to the skills.
|
|
|
55
56
|
mixes into the export on standard output. An unknown format prefix and
|
|
56
57
|
a not inferable format are errors. A relative *file* is relative to the
|
|
57
58
|
current working directory. Default: the HTML rendering into
|
|
58
|
-
`index.html`
|
|
59
|
-
`docs/specbook/index.html`).
|
|
59
|
+
`index.html` (resp. `schema.html` under `--schema`) inside the
|
|
60
|
+
specification base directory (e.g., `docs/specbook/index.html`).
|
|
61
|
+
A `md` output inside the specification base directory is refused,
|
|
62
|
+
as it would be parsed as a specification file itself.
|
|
60
63
|
|
|
61
64
|
- \[`-w`|`--watch`\]:
|
|
62
65
|
Do not terminate after the initial export, but keep the outputs in
|
|
@@ -67,6 +70,10 @@ The MCP tool `ase_specbook_export` provides the same to the skills.
|
|
|
67
70
|
`--watch` rejects the `-` standard output. The command then runs
|
|
68
71
|
until it is interrupted (e.g., via `CTRL+C`).
|
|
69
72
|
|
|
73
|
+
- \[`-S`|`--schema`\]:
|
|
74
|
+
Export the effective schema configuration `project.artifact.spec.schema`
|
|
75
|
+
itself, rendered as a *SpecBook* document, instead of the specification.
|
|
76
|
+
|
|
70
77
|
## EXIT STATUS
|
|
71
78
|
|
|
72
79
|
Exits with status `0` on success, and with status `1` on any lint
|
|
@@ -88,11 +95,15 @@ $ ase spec export -o md:-
|
|
|
88
95
|
|
|
89
96
|
# keep an HTML export in sync with the sources
|
|
90
97
|
$ ase spec export -o /tmp/spec.html -w
|
|
98
|
+
|
|
99
|
+
# export the schema configuration as PDF
|
|
100
|
+
$ ase spec export -S -o schema.pdf
|
|
91
101
|
```
|
|
92
102
|
|
|
93
103
|
## SEE ALSO
|
|
94
104
|
|
|
95
|
-
`ase`(1), `ase-spec`(1), `ase-spec-lint`(1), `ase-spec-
|
|
105
|
+
`ase`(1), `ase-spec`(1), `ase-spec-lint`(1), `ase-spec-query`(1),
|
|
106
|
+
`ase-spec-preview`(1).
|
|
96
107
|
|
|
97
108
|
## AUTHOR
|
|
98
109
|
|
package/dst/man/ase-spec-init.md
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
`ase spec init`
|
|
6
6
|
\[`-h`|`--help`\]
|
|
7
|
+
\[`-s`|`--sample`\]
|
|
7
8
|
|
|
8
9
|
## DESCRIPTION
|
|
9
10
|
|
|
@@ -31,6 +32,11 @@ configuration are taken from the *ASE* configuration (see
|
|
|
31
32
|
- \[`-h`|`--help`\]:
|
|
32
33
|
Show usage information and exit.
|
|
33
34
|
|
|
35
|
+
- \[`-s`|`--sample`\]:
|
|
36
|
+
Additionally scaffold one lint-clean sample object per allowed object
|
|
37
|
+
kind into the created files, with placeholder values satisfying the
|
|
38
|
+
schema configuration, so the format is learnable from them.
|
|
39
|
+
|
|
34
40
|
## EXIT STATUS
|
|
35
41
|
|
|
36
42
|
Exits with status `0` on success, and with status `1` if the
|
|
@@ -44,12 +50,15 @@ $ ase spec init
|
|
|
44
50
|
|
|
45
51
|
# initialize and then lint the specification
|
|
46
52
|
$ ase spec init && ase spec lint
|
|
53
|
+
|
|
54
|
+
# initialize the specification with sample objects
|
|
55
|
+
$ ase spec init -s
|
|
47
56
|
```
|
|
48
57
|
|
|
49
58
|
## SEE ALSO
|
|
50
59
|
|
|
51
60
|
`ase`(1), `ase-spec`(1), `ase-spec-lint`(1), `ase-spec-export`(1),
|
|
52
|
-
`ase-spec-preview`(1), `ase-config`(1).
|
|
61
|
+
`ase-spec-query`(1), `ase-spec-preview`(1), `ase-config`(1).
|
|
53
62
|
|
|
54
63
|
## AUTHOR
|
|
55
64
|
|
package/dst/man/ase-spec-lint.md
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
\[`-h`|`--help`\]
|
|
7
7
|
\[`-a`|`--addr` *ip-addr*\]
|
|
8
8
|
\[`-p`|`--port` *tcp-port*\]
|
|
9
|
+
\[`-S`|`--schema`\]
|
|
9
10
|
|
|
10
11
|
## DESCRIPTION
|
|
11
12
|
|
|
@@ -33,6 +34,10 @@ interrupted (e.g., via `CTRL+C`).
|
|
|
33
34
|
The TCP port to listen on, an integer in the range `1`..`65535`
|
|
34
35
|
(default: `12345`).
|
|
35
36
|
|
|
37
|
+
- \[`-S`|`--schema`\]:
|
|
38
|
+
Preview the effective schema configuration `project.artifact.spec.schema`
|
|
39
|
+
itself, rendered as a *SpecBook* document, instead of the specification.
|
|
40
|
+
|
|
36
41
|
## EXIT STATUS
|
|
37
42
|
|
|
38
43
|
Runs until interrupted. Exits with status `1` on an invalid TCP port
|
|
@@ -46,11 +51,15 @@ $ ase spec preview
|
|
|
46
51
|
|
|
47
52
|
# serve the live preview on all interfaces on port 8080
|
|
48
53
|
$ ase spec preview -a 0.0.0.0 -p 8080
|
|
54
|
+
|
|
55
|
+
# serve the live preview of the schema configuration
|
|
56
|
+
$ ase spec preview -S
|
|
49
57
|
```
|
|
50
58
|
|
|
51
59
|
## SEE ALSO
|
|
52
60
|
|
|
53
|
-
`ase`(1), `ase-spec`(1), `ase-spec-export`(1), `ase-spec-lint`(1)
|
|
61
|
+
`ase`(1), `ase-spec`(1), `ase-spec-export`(1), `ase-spec-lint`(1),
|
|
62
|
+
`ase-spec-query`(1).
|
|
54
63
|
|
|
55
64
|
## AUTHOR
|
|
56
65
|
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# ase-spec-query(1) -- Query the Project Specification
|
|
2
|
+
|
|
3
|
+
## SYNOPSIS
|
|
4
|
+
|
|
5
|
+
`ase spec query`
|
|
6
|
+
\[`-h`|`--help`\]
|
|
7
|
+
\[`-P`|`--param` *name*`=`*value*\] \[...\]
|
|
8
|
+
\[`-f`|`--format` *format*\]
|
|
9
|
+
\[`-o`|`--output` \[*format*`:`\]*file*\]
|
|
10
|
+
\[`-S`|`--schema`\]
|
|
11
|
+
*selector*
|
|
12
|
+
|
|
13
|
+
## DESCRIPTION
|
|
14
|
+
|
|
15
|
+
**ase spec query** loads the *SpecBook*-based specification Markdown
|
|
16
|
+
files below `project.artifact.spec.basedir` (see `ase-spec`(1)),
|
|
17
|
+
strictly validated like for `ase spec export` (see `ase-spec-export`(1)),
|
|
18
|
+
and queries its Abstract Syntax Tree (AST) with the XPath-like *ASTq*
|
|
19
|
+
*selector*, e.g., `// USE-CASE [ @STATUS == 'Done' ]`. The matched
|
|
20
|
+
nodes are written as a JSON, JSON5, YAML, or TOON array, their subtrees
|
|
21
|
+
included and the embedded file contents dropped.
|
|
22
|
+
|
|
23
|
+
The queried tree consists of:
|
|
24
|
+
|
|
25
|
+
- the root node of type `specification`,
|
|
26
|
+
- its children of type `artifact`, with the attributes `created`,
|
|
27
|
+
`modified`, and `file`, and
|
|
28
|
+
- the objects below, typed by their kind (with whitespace dashed),
|
|
29
|
+
with the attributes `kind`, `id`, `anchor`, `paren`, `name`,
|
|
30
|
+
`primary`, `description`, `rationale`, `elaboration`, and one per
|
|
31
|
+
property key.
|
|
32
|
+
|
|
33
|
+
The query function `refs()` yields the objects the references of the
|
|
34
|
+
current object resolve to, e.g., `// USE-CASE [ count(refs()) == 0 ]`.
|
|
35
|
+
|
|
36
|
+
The query fails on any lint diagnostic of `error` severity (see
|
|
37
|
+
`ase-spec-lint`(1)), while warnings are only logged, so a partial or
|
|
38
|
+
invalid specification is never queried.
|
|
39
|
+
|
|
40
|
+
The MCP tool `ase_specbook_query` provides the same to the skills.
|
|
41
|
+
|
|
42
|
+
## OPTIONS
|
|
43
|
+
|
|
44
|
+
- \[`-h`|`--help`\]:
|
|
45
|
+
Show usage information and exit.
|
|
46
|
+
|
|
47
|
+
- \[`-P`|`--param` *name*`=`*value*\]:
|
|
48
|
+
Substitute the value *value* for the parameter `{`*name*`}` of the
|
|
49
|
+
*selector*. The option is repeatable, one per parameter.
|
|
50
|
+
|
|
51
|
+
- \[`-f`|`--format` *format*\]:
|
|
52
|
+
The output format `json`, `json5`, `yaml`, or `toon` (default:
|
|
53
|
+
inferred from the *file* of `--output` like for `ase spec export`,
|
|
54
|
+
else `json`).
|
|
55
|
+
|
|
56
|
+
- \[`-o`|`--output` \[*format*`:`\]*file*\]:
|
|
57
|
+
Write the result into *file*, or to standard output for `-`
|
|
58
|
+
(default: `-`). A relative *file* is relative to the current working
|
|
59
|
+
directory.
|
|
60
|
+
|
|
61
|
+
- \[`-S`|`--schema`\]:
|
|
62
|
+
Query the effective schema configuration `project.artifact.spec.schema`
|
|
63
|
+
itself, described as a *SpecBook* document of the bundled meta schema
|
|
64
|
+
configuration, instead of the specification.
|
|
65
|
+
|
|
66
|
+
## EXIT STATUS
|
|
67
|
+
|
|
68
|
+
Exits with status `0` on success, and with status `1` on any lint
|
|
69
|
+
diagnostic of `error` severity, an invalid *selector* or parameter, an
|
|
70
|
+
unsupported output format, or an unwritable output file.
|
|
71
|
+
|
|
72
|
+
## EXAMPLES
|
|
73
|
+
|
|
74
|
+
```sh
|
|
75
|
+
# list all use cases as JSON
|
|
76
|
+
$ ase spec query "// USE-CASE"
|
|
77
|
+
|
|
78
|
+
# list the finished use cases as YAML
|
|
79
|
+
$ ase spec query -f yaml "// USE-CASE [ @STATUS == 'Done' ]"
|
|
80
|
+
|
|
81
|
+
# list the objects of a given kind into a TOON file
|
|
82
|
+
$ ase spec query -P kind=ROLE -o roles.toon "// * [ @kind == {kind} ]"
|
|
83
|
+
|
|
84
|
+
# list the artifacts of the schema configuration itself
|
|
85
|
+
$ ase spec query -S "/ artifact"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## SEE ALSO
|
|
89
|
+
|
|
90
|
+
`ase`(1), `ase-spec`(1), `ase-spec-lint`(1), `ase-spec-export`(1),
|
|
91
|
+
`ase-spec-preview`(1).
|
|
92
|
+
|
|
93
|
+
## AUTHOR
|
|
94
|
+
|
|
95
|
+
Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
96
|
+
|