@rse/ase 2.0.5 → 2.0.6
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-config-schema.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/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 +18 -15
- 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-format-spec.md +29 -5
- package/plugin/meta/ase-format-specbook.md +427 -47
- package/plugin/meta/ase-format-specbook.yaml +180 -78
- 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.ts +23 -17
- package/plugin/skills/ase-spec-activate/SKILL.md +4 -1
- package/plugin/mods/claude-code.d.ts +0 -13440
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
|
+
|
package/dst/man/ase-spec.md
CHANGED
|
@@ -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
|
|
26
|
-
(SPEC), i.e., the Markdown files (plus their embedded
|
|
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))
|
|
37
|
-
|
|
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
|
|
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-
|
|
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
|
|
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.
|
|
9
|
+
"version": "2.0.6",
|
|
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.
|
|
24
|
+
"eslint": "10.14.0",
|
|
25
25
|
"@eslint/js": "10.0.1",
|
|
26
|
-
"@typescript-eslint/parser": "8.72.
|
|
27
|
-
"@typescript-eslint/eslint-plugin": "8.72.
|
|
28
|
-
"typescript-eslint": "8.72.
|
|
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.
|
|
31
|
+
"globals": "17.14.0",
|
|
32
32
|
"typescript": "6.0.3",
|
|
33
|
-
"eslint-plugin-vue": "10.
|
|
33
|
+
"eslint-plugin-vue": "10.12.0",
|
|
34
34
|
"vue-eslint-parser": "10.4.1",
|
|
35
|
-
"vue-tsc": "3.3.
|
|
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.
|
|
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.
|
|
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,14 +78,15 @@
|
|
|
77
78
|
"valibot": "1.5.0",
|
|
78
79
|
"execa": "10.2.1",
|
|
79
80
|
"mkdirp": "3.0.1",
|
|
80
|
-
"@hapi/hapi": "21.4.
|
|
81
|
+
"@hapi/hapi": "21.4.12",
|
|
81
82
|
"beautiful-mermaid": "1.1.3",
|
|
82
83
|
"@d2lang/d2": "0.1.34",
|
|
83
|
-
"elkjs": "0.12.
|
|
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.
|
|
89
|
+
"marked": "18.1.2",
|
|
88
90
|
"shiki": "4.5.0",
|
|
89
91
|
"cli-table3": "0.6.5",
|
|
90
92
|
"chalk": "6.0.1",
|
|
@@ -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.
|
|
111
|
+
"@rse/specbook": "1.6.1",
|
|
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.
|
|
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
|
|
@@ -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
|
|
26
|
-
project (relative to the project
|
|
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
|
|
34
|
-
to the project root
|
|
35
|
-
|
|
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.
|