@rse/ase 2.0.2 → 2.0.4

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 (236) hide show
  1. package/dst/ase-agent-definition-core.js +111 -87
  2. package/dst/ase-agent-fleet.js +1 -1
  3. package/dst/ase-agent-runtime-claim.js +5 -3
  4. package/dst/ase-agent-runtime-engine.js +1 -1
  5. package/dst/ase-agent-runtime-phase.js +1 -1
  6. package/dst/ase-agent-runtime-request.js +1 -1
  7. package/dst/ase-agent-runtime.js +3 -5
  8. package/dst/ase-artifact.js +3 -3
  9. package/dst/ase-config-core.js +2 -16
  10. package/dst/ase-config-schema.js +1 -3
  11. package/dst/ase-config.js +2 -0
  12. package/dst/ase-hook.js +13 -13
  13. package/dst/ase-lib-daemon-cli.js +117 -4
  14. package/dst/ase-lib-server-cli.js +4 -5
  15. package/dst/ase-lib-version.js +14 -5
  16. package/dst/ase-man-catalog.js +229 -0
  17. package/dst/ase-man-render.js +278 -0
  18. package/dst/ase-man-tui.js +636 -0
  19. package/dst/ase-man.js +33 -27
  20. package/dst/ase-mcp.js +4 -4
  21. package/dst/ase-service-getopt.js +2 -2
  22. package/dst/ase-service-otel.js +4 -4
  23. package/dst/ase-service-skills.js +5 -15
  24. package/dst/ase-service.js +87 -210
  25. package/dst/ase-setup-common.js +1 -2
  26. package/dst/ase-setup-settings.js +6 -9
  27. package/dst/ase-setup.js +4 -5
  28. package/dst/ase-spec.js +103 -20
  29. package/dst/ase-statusline.js +170 -170
  30. package/dst/ase-task-board-filter.js +5 -4
  31. package/dst/ase-task-board-flow.js +7 -6
  32. package/dst/ase-task-board-graph.js +5 -4
  33. package/dst/ase-task-board-tui-control.js +41 -35
  34. package/dst/ase-task-board-tui-model.js +185 -167
  35. package/dst/ase-task-board-tui-popup.js +2 -3
  36. package/dst/ase-task-board-tui-view.js +74 -70
  37. package/dst/ase-task-board-web-client.js +27 -27
  38. package/dst/ase-task-board-web-server.js +2 -2
  39. package/dst/ase-task-board.js +1 -1
  40. package/dst/ase-task-format.js +1 -1
  41. package/dst/ase-task-store-client.js +17 -5
  42. package/dst/ase-task-store-core.js +5 -7
  43. package/dst/ase-task-store-issues.js +16 -1
  44. package/dst/ase-task-store-plugin-ase.js +7 -3
  45. package/dst/ase-task-store-plugin-gitea.js +9 -32
  46. package/dst/ase-task-store-plugin-github.js +3 -12
  47. package/dst/ase-task-store-plugin-gitlab.js +2 -18
  48. package/dst/ase-task.js +51 -23
  49. package/dst/ase-util-compat.js +1 -1
  50. package/dst/ase-util-diagram.js +13 -37
  51. package/dst/ase.js +5 -5
  52. package/dst/man/ase-agent-adhoc.md +1165 -0
  53. package/dst/man/ase-agent-condenser.md +383 -0
  54. package/dst/man/ase-agent-editor.md +441 -0
  55. package/dst/man/ase-agent-estimator.md +477 -0
  56. package/dst/man/ase-agent-fleet.md +358 -0
  57. package/dst/man/ase-agent-implementer.md +521 -0
  58. package/dst/man/ase-agent-integrator.md +449 -0
  59. package/dst/man/ase-agent-qualifier.md +426 -0
  60. package/dst/man/ase-agent-rebooter.md +384 -0
  61. package/dst/man/ase-agent-relay.md +262 -0
  62. package/dst/man/ase-agent-researcher.md +478 -0
  63. package/dst/man/ase-agent.md +628 -0
  64. package/dst/man/ase-artifact-list.md +57 -0
  65. package/dst/man/ase-artifact-name.md +56 -0
  66. package/dst/man/ase-artifact.md +92 -0
  67. package/dst/man/ase-config-delete.md +74 -0
  68. package/dst/man/ase-config-edit.md +83 -0
  69. package/dst/man/ase-config-get.md +70 -0
  70. package/dst/man/ase-config-init.md +110 -0
  71. package/dst/man/ase-config-list.md +68 -0
  72. package/dst/man/ase-config-set.md +92 -0
  73. package/dst/man/ase-config.md +426 -0
  74. package/dst/man/ase-hook-permission-request.md +61 -0
  75. package/dst/man/ase-hook-pre-tool-use.md +96 -0
  76. package/dst/man/ase-hook-session-end.md +71 -0
  77. package/dst/man/ase-hook-session-persona.md +65 -0
  78. package/dst/man/ase-hook-session-start.md +184 -0
  79. package/dst/man/ase-hook-stop.md +52 -0
  80. package/dst/man/ase-hook-user-prompt-submit.md +54 -0
  81. package/dst/man/ase-hook.md +93 -0
  82. package/dst/man/ase-man.md +195 -0
  83. package/dst/man/ase-mcp.md +102 -0
  84. package/dst/man/ase-service-log.md +59 -0
  85. package/dst/man/ase-service-send.md +60 -0
  86. package/dst/man/ase-service-start.md +93 -0
  87. package/dst/man/ase-service-status.md +58 -0
  88. package/dst/man/ase-service-stop.md +52 -0
  89. package/dst/man/ase-service.md +124 -0
  90. package/dst/man/ase-setup-disable.md +67 -0
  91. package/dst/man/ase-setup-enable.md +66 -0
  92. package/dst/man/ase-setup-install.md +116 -0
  93. package/dst/man/ase-setup-mcp.md +213 -0
  94. package/dst/man/ase-setup-status.md +101 -0
  95. package/dst/man/ase-setup-statusline.md +162 -0
  96. package/dst/man/ase-setup-telemetry.md +166 -0
  97. package/dst/man/ase-setup-uninstall.md +85 -0
  98. package/dst/man/ase-setup-update.md +117 -0
  99. package/dst/man/ase-setup.md +156 -0
  100. package/dst/man/ase-spec-export.md +99 -0
  101. package/dst/man/ase-spec-init.md +57 -0
  102. package/dst/man/ase-spec-lint.md +74 -0
  103. package/dst/man/ase-spec-preview.md +57 -0
  104. package/dst/man/ase-spec.md +85 -0
  105. package/dst/man/ase-statusline.md +330 -0
  106. package/dst/man/ase-task-assign.md +138 -0
  107. package/dst/man/ase-task-board.md +651 -0
  108. package/dst/man/ase-task-delete.md +46 -0
  109. package/dst/man/ase-task-edit.md +73 -0
  110. package/dst/man/ase-task-idscheme.md +92 -0
  111. package/dst/man/ase-task-lifecycle.md +92 -0
  112. package/dst/man/ase-task-list.md +86 -0
  113. package/dst/man/ase-task-load.md +48 -0
  114. package/dst/man/ase-task-newid.md +100 -0
  115. package/dst/man/ase-task-purge.md +49 -0
  116. package/dst/man/ase-task-rename.md +69 -0
  117. package/dst/man/ase-task-request.md +108 -0
  118. package/dst/man/ase-task-save.md +78 -0
  119. package/dst/man/ase-task-status.md +79 -0
  120. package/dst/man/ase-task-store.md +377 -0
  121. package/dst/man/ase-task-view.md +50 -0
  122. package/dst/man/ase-task.md +335 -0
  123. package/dst/man/ase-util-compat.md +38 -0
  124. package/dst/man/ase-util-diagram.md +140 -0
  125. package/dst/man/ase-util-meta.md +68 -0
  126. package/dst/man/ase-util-metric.md +74 -0
  127. package/dst/man/ase-util-mint.md +85 -0
  128. package/dst/man/ase-util-worktree.md +109 -0
  129. package/dst/man/ase-util.md +81 -0
  130. package/dst/man/ase.md +228 -0
  131. package/package.json +12 -17
  132. package/plugin/.claude-plugin/plugin.json +1 -1
  133. package/plugin/.codex-plugin/plugin.json +1 -1
  134. package/plugin/.github/plugin/plugin.json +1 -1
  135. package/plugin/agents/ase-code-lint.md +3 -3
  136. package/plugin/agents/ase-docs-proofread.md +3 -3
  137. package/plugin/agents/ase-docs-refine.md +3 -3
  138. package/plugin/agents/ase-spec-lint.md +338 -0
  139. package/plugin/meta/ase-skill.md +7 -0
  140. package/plugin/mods/ase-mods.ts +10 -7
  141. package/plugin/mods/claude-code.d.ts +26 -3
  142. package/plugin/skills/ase-code-analyze/SKILL.md +18 -10
  143. package/plugin/skills/ase-code-analyze/help.md +11 -6
  144. package/plugin/skills/ase-code-lint/SKILL.md +37 -23
  145. package/plugin/skills/ase-code-lint/help.md +10 -5
  146. package/plugin/skills/ase-help-intent/data.md +204 -13
  147. package/plugin/skills/ase-help-skill/catalog.md +1 -0
  148. package/plugin/skills/ase-meta-workflow/workflow.txt +2 -0
  149. package/plugin/skills/ase-repo-commit/SKILL.md +1 -0
  150. package/plugin/skills/ase-repo-merge/SKILL.md +1 -0
  151. package/plugin/skills/ase-repo-review/SKILL.md +5 -3
  152. package/plugin/skills/ase-repo-review/help.md +3 -1
  153. package/plugin/skills/ase-spec-edit/SKILL.md +3 -3
  154. package/plugin/skills/ase-spec-edit/help.md +1 -1
  155. package/plugin/skills/ase-spec-lint/SKILL.md +695 -0
  156. package/plugin/skills/ase-spec-lint/help.md +171 -0
  157. package/plugin/skills/ase-task-implement/SKILL.md +24 -6
  158. package/plugin/skills/ase-task-implement/help.md +11 -1
  159. package/dst/man/ase-agent-adhoc.1 +0 -515
  160. package/dst/man/ase-agent-condenser.1 +0 -193
  161. package/dst/man/ase-agent-editor.1 +0 -212
  162. package/dst/man/ase-agent-estimator.1 +0 -214
  163. package/dst/man/ase-agent-fleet.1 +0 -185
  164. package/dst/man/ase-agent-implementer.1 +0 -233
  165. package/dst/man/ase-agent-integrator.1 +0 -213
  166. package/dst/man/ase-agent-qualifier.1 +0 -214
  167. package/dst/man/ase-agent-rebooter.1 +0 -193
  168. package/dst/man/ase-agent-relay.1 +0 -128
  169. package/dst/man/ase-agent-researcher.1 +0 -217
  170. package/dst/man/ase-agent.1 +0 -264
  171. package/dst/man/ase-artifact-list.1 +0 -38
  172. package/dst/man/ase-artifact-name.1 +0 -39
  173. package/dst/man/ase-artifact.1 +0 -56
  174. package/dst/man/ase-config-delete.1 +0 -45
  175. package/dst/man/ase-config-edit.1 +0 -48
  176. package/dst/man/ase-config-get.1 +0 -46
  177. package/dst/man/ase-config-init.1 +0 -60
  178. package/dst/man/ase-config-list.1 +0 -42
  179. package/dst/man/ase-config-set.1 +0 -52
  180. package/dst/man/ase-config.1 +0 -231
  181. package/dst/man/ase-hook-permission-request.1 +0 -36
  182. package/dst/man/ase-hook-pre-tool-use.1 +0 -59
  183. package/dst/man/ase-hook-session-end.1 +0 -47
  184. package/dst/man/ase-hook-session-persona.1 +0 -37
  185. package/dst/man/ase-hook-session-start.1 +0 -81
  186. package/dst/man/ase-hook-stop.1 +0 -34
  187. package/dst/man/ase-hook-user-prompt-submit.1 +0 -34
  188. package/dst/man/ase-hook.1 +0 -51
  189. package/dst/man/ase-man.1 +0 -67
  190. package/dst/man/ase-mcp.1 +0 -61
  191. package/dst/man/ase-service-log.1 +0 -43
  192. package/dst/man/ase-service-send.1 +0 -47
  193. package/dst/man/ase-service-start.1 +0 -54
  194. package/dst/man/ase-service-status.1 +0 -46
  195. package/dst/man/ase-service-stop.1 +0 -37
  196. package/dst/man/ase-service.1 +0 -85
  197. package/dst/man/ase-setup-disable.1 +0 -44
  198. package/dst/man/ase-setup-enable.1 +0 -45
  199. package/dst/man/ase-setup-install.1 +0 -73
  200. package/dst/man/ase-setup-mcp.1 +0 -124
  201. package/dst/man/ase-setup-status.1 +0 -60
  202. package/dst/man/ase-setup-statusline.1 +0 -92
  203. package/dst/man/ase-setup-telemetry.1 +0 -92
  204. package/dst/man/ase-setup-uninstall.1 +0 -59
  205. package/dst/man/ase-setup-update.1 +0 -64
  206. package/dst/man/ase-setup.1 +0 -93
  207. package/dst/man/ase-spec-export.1 +0 -62
  208. package/dst/man/ase-spec-lint.1 +0 -40
  209. package/dst/man/ase-spec-preview.1 +0 -40
  210. package/dst/man/ase-spec.1 +0 -46
  211. package/dst/man/ase-statusline.1 +0 -189
  212. package/dst/man/ase-task-assign.1 +0 -71
  213. package/dst/man/ase-task-board.1 +0 -384
  214. package/dst/man/ase-task-delete.1 +0 -35
  215. package/dst/man/ase-task-edit.1 +0 -46
  216. package/dst/man/ase-task-idscheme.1 +0 -65
  217. package/dst/man/ase-task-lifecycle.1 +0 -57
  218. package/dst/man/ase-task-list.1 +0 -47
  219. package/dst/man/ase-task-load.1 +0 -36
  220. package/dst/man/ase-task-newid.1 +0 -61
  221. package/dst/man/ase-task-purge.1 +0 -37
  222. package/dst/man/ase-task-rename.1 +0 -44
  223. package/dst/man/ase-task-request.1 +0 -61
  224. package/dst/man/ase-task-save.1 +0 -48
  225. package/dst/man/ase-task-status.1 +0 -55
  226. package/dst/man/ase-task-store.1 +0 -194
  227. package/dst/man/ase-task-view.1 +0 -40
  228. package/dst/man/ase-task.1 +0 -160
  229. package/dst/man/ase-util-compat.1 +0 -25
  230. package/dst/man/ase-util-diagram.1 +0 -76
  231. package/dst/man/ase-util-meta.1 +0 -45
  232. package/dst/man/ase-util-metric.1 +0 -54
  233. package/dst/man/ase-util-mint.1 +0 -59
  234. package/dst/man/ase-util-worktree.1 +0 -72
  235. package/dst/man/ase-util.1 +0 -50
  236. package/dst/man/ase.1 +0 -124
@@ -0,0 +1,85 @@
1
+ # ase-util-mint(1) -- Mint Hash-Derived Identifiers
2
+
3
+ ## SYNOPSIS
4
+
5
+ `ase util mint`
6
+ \[`-h`|`--help`\]
7
+ \[`-t`|`--type` `uuid`|`sha1`|`nanoid`\]
8
+ \[`-c`|`--count` *count*\]
9
+ \[*hint* \[...\]\]
10
+
11
+ ## DESCRIPTION
12
+
13
+ **ase util mint** mints one or more hash-derived identifiers out of the
14
+ *hint* formed by the remaining arguments (joined by single spaces), and
15
+ prints them to standard output, one identifier per line:
16
+
17
+ - With type `uuid`, a non-empty *hint* yields a deterministic *UUID
18
+ V5* over the *hint* within the fixed *ASE* namespace (itself the
19
+ *UUID V5* of the URL `https://ase.tools` within the standard URL
20
+ namespace), so the same *hint* always yields the same UUID, disjoint
21
+ from those of other applications. An empty *hint* yields random
22
+ *UUID V4* values instead.
23
+
24
+ - With type `sha1`, the *hint* yields its 40-character hexadecimal
25
+ *SHA-1* digest. This requires a non-empty *hint*.
26
+
27
+ - With type `nanoid`, the *hint* yields its 10-character, *NanoId*-style
28
+ *base62* hash (its *SHA-1* digest, *base62*-encoded and truncated),
29
+ a short but still reproducible identifier, as used for the content
30
+ binding of the `Effort` key of the task plans. This requires a
31
+ non-empty *hint*, too.
32
+
33
+ This backs the `uuid`, `sha1`, and `nanoid` types of the `ase-meta-mint` skill
34
+ (and the MCP tool `ase_mint`), while the language-level identifier
35
+ types of that skill require the AI and hence exist in the skill only.
36
+
37
+ ## OPTIONS
38
+
39
+ - \[`-h`|`--help`\]:
40
+ Show usage information and exit.
41
+
42
+ - \[`-t`|`--type` `uuid`|`sha1`|`nanoid`\]:
43
+ The identifier type (default: `uuid`).
44
+
45
+ - \[`-c`|`--count` *count*\]:
46
+ The number of identifiers to mint, a positive integer (default:
47
+ `1`). It is honored for an empty *hint* only, where random *UUID V4*
48
+ values are minted. As hashing a non-empty *hint* always yields
49
+ exactly one identifier, a larger *count* is then reduced to `1`, and a
50
+ warning is printed on standard error.
51
+
52
+ ## ARGUMENTS
53
+
54
+ - \[*hint* \[...\]\]:
55
+ The hint the identifiers are derived from, formed by all remaining
56
+ arguments joined by single spaces (default: empty).
57
+
58
+ ## EXIT STATUS
59
+
60
+ Exits with status `0` on success, and with status `1` on an invalid
61
+ *count* or type `sha1` or `nanoid` with an empty *hint*.
62
+
63
+ ## EXAMPLES
64
+
65
+ ```sh
66
+ # mint the deterministic UUID of a hint
67
+ $ ase util mint the user account entity
68
+
69
+ # mint three random UUIDs
70
+ $ ase util mint -c 3
71
+
72
+ # mint the SHA-1 digest of a hint
73
+ $ ase util mint -t sha1 the user account entity
74
+
75
+ # mint the short NanoId-style hash of a hint
76
+ $ ase util mint -t nanoid the user account entity
77
+ ```
78
+
79
+ ## SEE ALSO
80
+
81
+ `ase`(1), `ase-util`(1).
82
+
83
+ ## AUTHOR
84
+
85
+ Dr. Ralf S. Engelschall <rse@engelschall.com>
@@ -0,0 +1,109 @@
1
+ # ase-util-worktree(1) -- Resolve the ASE Worktree Directories
2
+
3
+ ## SYNOPSIS
4
+
5
+ `ase util worktree`
6
+ \[`-h`|`--help`\]
7
+
8
+ `ase util worktree base`
9
+ \[`-c`|`--create`\]
10
+ \[`-t`|`--temp`\]
11
+
12
+ `ase util worktree path`
13
+ \[`-c`|`--create`\]
14
+ \[`-t`|`--temp`\]
15
+ *id*
16
+
17
+ ## DESCRIPTION
18
+
19
+ **ase util worktree** safely resolves the directories of the Git
20
+ worktrees managed by *ASE* (e.g., the worktrees of the
21
+ `--worktree` option of the skills and of the agents), which all reside
22
+ below the base directory `<repo-root>/.ase/worktree`, where
23
+ *repo-root* is the fully resolved top-level directory of the Git
24
+ working tree of the current working directory. The *temporary*
25
+ worktrees reside below `<repo-root>/.ase/worktree/.temp`, a namespace
26
+ disjoint from all regular worktree ids (as ids never contain a `.`).
27
+
28
+ The resolution is *validated*: as `git worktree add` silently follows
29
+ a symbolic link, every already existing path component below the
30
+ repository root (`.ase`, `worktree`, `.temp`, and the *id* leaf) has
31
+ to be a real directory, neither a symbolic link, nor any other file,
32
+ nor an aliased path, so a repository carrying a committed `.ase`
33
+ symbolic link can never make a worktree be written outside of it. Not
34
+ yet existing components are fine, as they are created later on.
35
+
36
+ The resolved directory is printed to standard output. Without a
37
+ sub-command, the usage information is shown and the command exits
38
+ with status `1`.
39
+
40
+ ## OPTIONS
41
+
42
+ - \[`-h`|`--help`\]:
43
+ Show usage information and exit.
44
+
45
+ ## COMMANDS
46
+
47
+ - `ase util worktree base` \[`-c`|`--create`\] \[`-t`|`--temp`\]:
48
+ Print the validated base directory `<repo-root>/.ase/worktree` holding
49
+ all *ASE* worktrees. The options are:
50
+
51
+ - \[`-c`|`--create`\]:
52
+ Create the base directory (with all its missing parents) if it
53
+ does not exist yet, and validate it again afterwards.
54
+ - \[`-t`|`--temp`\]:
55
+ Print the base directory `<repo-root>/.ase/worktree/.temp` of the
56
+ temporary worktrees instead.
57
+ - \[`-h`|`--help`\]:
58
+ Show usage information and exit.
59
+
60
+ - `ase util worktree path` \[`-c`|`--create`\] \[`-t`|`--temp`\] *id*:
61
+ Print the validated worktree directory `<repo-root>/.ase/worktree/<id>`
62
+ of a single worktree *id*, which has to be non-empty and match
63
+ `[A-Za-z0-9_-]+`, so it is safe both as a single path component and
64
+ as the Git branch name derived from it. The worktree directory
65
+ itself is not created, as this is done by `git worktree add`. The
66
+ options are:
67
+
68
+ - \[`-c`|`--create`\]:
69
+ Create the base directory (not the worktree directory itself) if
70
+ it does not exist yet.
71
+ - \[`-t`|`--temp`\]:
72
+ Resolve the *id* below the base directory
73
+ `<repo-root>/.ase/worktree/.temp` of the temporary worktrees.
74
+ - \[`-h`|`--help`\]:
75
+ Show usage information and exit.
76
+
77
+ ## FILES
78
+
79
+ - `<repo-root>/.ase/worktree/`:
80
+ The base directory of all *ASE* worktrees, ignored by Git via the
81
+ self-ignoring `.ase/.gitignore`.
82
+
83
+ - `<repo-root>/.ase/worktree/.temp/`:
84
+ The base directory of the temporary *ASE* worktrees.
85
+
86
+ ## EXIT STATUS
87
+
88
+ Exits with status `0` on success, and with status `1` outside of a Git
89
+ working tree, on an invalid *id*, or if a path component is a symbolic
90
+ link, not a directory, or an aliased path. The group command without a
91
+ sub-command exits with status `1`.
92
+
93
+ ## EXAMPLES
94
+
95
+ ```sh
96
+ # print the base directory of all ASE worktrees, creating it if needed
97
+ $ ase util worktree base -c
98
+
99
+ # create a worktree for the id "FOO-42" at its validated location
100
+ $ git worktree add "$(ase util worktree path -c FOO-42)" -b FOO-42
101
+ ```
102
+
103
+ ## SEE ALSO
104
+
105
+ `ase`(1), `ase-util`(1), `git-worktree`(1).
106
+
107
+ ## AUTHOR
108
+
109
+ Dr. Ralf S. Engelschall <rse@engelschall.com>
@@ -0,0 +1,81 @@
1
+ # ase-util(1) -- Utility Commands
2
+
3
+ ## SYNOPSIS
4
+
5
+ `ase util`
6
+ \[`-h`|`--help`\]
7
+
8
+ `ase util meta`
9
+ *name* \[...\]
10
+
11
+ `ase util compat`
12
+
13
+ `ase util diagram`
14
+ \[*options*\]
15
+
16
+ `ase util worktree`
17
+ `base`|`path`
18
+ \[*options*\]
19
+ \[*id*\]
20
+
21
+ `ase util mint`
22
+ \[`-t`|`--type` *type*\]
23
+ \[`-c`|`--count` *count*\]
24
+ \[*hint* \[...\]\]
25
+
26
+ `ase util metric`
27
+ \[`-f`|`--file` *file*\]
28
+ \[*text* \[...\]\]
29
+
30
+ ## DESCRIPTION
31
+
32
+ **ase util** is the entry point group for miscellaneous utility
33
+ commands. Most of them back the MCP tools of the per-project *ASE*
34
+ service and the *ASE* skills, but can be used standalone, too. Without
35
+ a sub-command, the usage information is shown and the command exits
36
+ with status `1`.
37
+
38
+ ## OPTIONS
39
+
40
+ - \[`-h`|`--help`\]:
41
+ Show usage information and exit.
42
+
43
+ ## COMMANDS
44
+
45
+ - `ase util meta` *name* \[...\]:
46
+ Output the contents of one or more plugin meta files. See
47
+ `ase-util-meta`(1).
48
+
49
+ - `ase util compat`:
50
+ Output the expected probe values of the `ase-meta-compat` self-test
51
+ skill. See `ase-util-compat`(1).
52
+
53
+ - `ase util diagram` \[*options*\]:
54
+ Render a *Mermaid* or *D2* diagram specification as Unicode/ASCII art
55
+ or SVG. See `ase-util-diagram`(1).
56
+
57
+ - `ase util worktree` `base`|`path` \[*options*\] \[*id*\]:
58
+ Safely resolve the *ASE* worktree directories below
59
+ `<repo-root>/.ase/worktree`. See `ase-util-worktree`(1).
60
+
61
+ - `ase util mint` \[*options*\] \[*hint* \[...\]\]:
62
+ Mint hash-derived identifiers (UUID, SHA-1) out of a hint. See
63
+ `ase-util-mint`(1).
64
+
65
+ - `ase util metric` \[*options*\] \[*text* \[...\]\]:
66
+ Measure the words, lines, characters, and bytes of a file or a text.
67
+ See `ase-util-metric`(1).
68
+
69
+ ## EXIT STATUS
70
+
71
+ The group command without a sub-command exits with status `1`.
72
+
73
+ ## SEE ALSO
74
+
75
+ `ase`(1), `ase-util-meta`(1), `ase-util-compat`(1),
76
+ `ase-util-diagram`(1), `ase-util-worktree`(1), `ase-util-mint`(1),
77
+ `ase-util-metric`(1).
78
+
79
+ ## AUTHOR
80
+
81
+ Dr. Ralf S. Engelschall <rse@engelschall.com>
package/dst/man/ase.md ADDED
@@ -0,0 +1,228 @@
1
+ # ase(1) -- Agentic Software Engineering (ASE)
2
+
3
+ ## SYNOPSIS
4
+
5
+ `ase`
6
+ \[`-h`|`--help`\]
7
+ \[`-V`|`--version`\]
8
+ \[`-l`|`--log-level` *level*\]
9
+ \[`-L`|`--log-file` *file*\]
10
+ *command*
11
+ \[*options* \[...\]\]
12
+ \[*args* \[...\]\]
13
+
14
+ ## DESCRIPTION
15
+
16
+ **ase**, *Agentic Software Engineering (ASE)*, is the command-line
17
+ companion tool of the *ASE* agent tool plugin for
18
+ *Anthropic Claude Code CLI* (primary target), *GitHub Copilot CLI*,
19
+ and *OpenAI Codex CLI* (secondary targets).
20
+
21
+ It provides the plugin and tool setup, the layered configuration
22
+ management, a per-project background HTTP service (bridged into the
23
+ agent tool as a Model-Context-Protocol (MCP) server), the agent tool
24
+ hook handlers, the statusline rendering, the persisted task plan
25
+ management (including a task store server and an interactive task
26
+ board), the autonomous task lifecycle agents (plus their agent relay
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,
30
+ identifier minting, and text measuring.
31
+
32
+ Most commands are sub-command groups. Each group and each command has
33
+ its own manual page, named after the command path with dashes, e.g.,
34
+ `ase-task`(1) for `ase task` and `ase-task-board`(1) for `ase task
35
+ board`. They are shipped with **ase** and shown via `ase man`, e.g.,
36
+ `ase man task board`.
37
+
38
+ ## OPTIONS
39
+
40
+ The following top-level (global) options exist. They have to be given
41
+ *before* the *command*, as all options after the *command* belong to
42
+ the command itself.
43
+
44
+ - \[`-h`|`--help`\]:
45
+ Show program usage information, including the list of all top-level
46
+ commands, and exit. Every command and sub-command also accepts
47
+ `-h`|`--help` to show its own usage information. Alternatively, `ase
48
+ help` \[*command*\] shows the usage information of *command*.
49
+
50
+ - \[`-V`|`--version`\]:
51
+ Show program version information (as `ASE` *version*) and exit.
52
+
53
+ - \[`-l`|`--log-level` *level*\]:
54
+ Set the logging verbosity. Supported *level* values are `error`,
55
+ `warning`, `info` (default), and `debug`. Log messages of a level
56
+ above the selected one are suppressed. The level is passed on to all
57
+ background processes (like the service, the task store, the agent
58
+ relay, and the agents) started by the command.
59
+
60
+ - \[`-L`|`--log-file` *file*\]:
61
+ Redirect log output to *file* (appended). Use `-` (default) to write
62
+ log messages to standard error. If the log output is connected to a
63
+ terminal, it is colored.
64
+
65
+ ## COMMANDS
66
+
67
+ The following top-level commands exist:
68
+
69
+ - `ase setup` *command* \[...\]:
70
+ Install, update, uninstall, enable, disable, and report the *ASE*
71
+ tool and plugin for an agent tool, and activate or deactivate the
72
+ pre-defined foreign MCP servers, the *ASE* statusline, and the *ASE*
73
+ telemetry export. See `ase-setup`(1).
74
+
75
+ - `ase config` \[`--scope` *scope*\] *command* \[...\]:
76
+ Manage the layered *ASE* configuration of the scope chain `user` <
77
+ `project` < `task` < `session`. See `ase-config`(1).
78
+
79
+ - `ase mcp`:
80
+ Bridge stdio MCP to the per-project background service. Configured
81
+ as an MCP server in the agent tool. See `ase-mcp`(1).
82
+
83
+ - `ase service` *command* \[...\]:
84
+ Manage the per-project background HTTP service. See `ase-service`(1).
85
+
86
+ - `ase hook` *command* \[...\]:
87
+ Handle the hook events of the agent tool. Configured as hook
88
+ handlers in the agent tool. See `ase-hook`(1).
89
+
90
+ - `ase statusline` \[*options*\] \[*line* \[...\]\]:
91
+ Render the statusline of the agent tool. Configured as statusline
92
+ command in the agent tool. See `ase-statusline`(1).
93
+
94
+ - `ase task` *command* \[...\]:
95
+ Manage the persisted task plans in the task store, show the task
96
+ board, and run the task store server. See `ase-task`(1).
97
+
98
+ - `ase artifact` *command* \[...\]:
99
+ Resolve project artifact kinds to project-relative file lists. See
100
+ `ase-artifact`(1).
101
+
102
+ - `ase spec` *command* \[...\]:
103
+ Initialize, lint, export, and preview the *SpecBook*-based project
104
+ specification. See `ase-spec`(1).
105
+
106
+ - `ase util` *command* \[...\]:
107
+ Utility commands (meta files, compatibility probes, diagram rendering,
108
+ worktree resolution, identifier minting, and text measuring). See
109
+ `ase-util`(1).
110
+
111
+ - `ase agent` *agent* *command* \[...\]:
112
+ Run the autonomous agents driving the task lifecycle phases,
113
+ processing the requests of tasks, estimating the effort of tasks,
114
+ researching topics for tasks, or configured by definitions, individually or as a fleet, optionally
115
+ reporting to the agent relay. See `ase-agent`(1).
116
+
117
+ - `ase man` \[*page* \[...\]\]:
118
+ Browse the manual pages of all commands and skills interactively,
119
+ with *page* selected, e.g., `ase man agent fleet` for
120
+ `ase-agent-fleet`(1), or (outside a terminal) print one of them as
121
+ plain text. See `ase-man`(1).
122
+
123
+ - `ase help` \[*command*\]:
124
+ Show the usage information of *command* (or of `ase` itself).
125
+
126
+ ## ENVIRONMENT
127
+
128
+ The following environment variables are honored by multiple commands.
129
+ The command-specific ones are described in their own manual pages.
130
+
131
+ - `ASE_TOOL`:
132
+ The default target agent tool (`claude`, `copilot`, or `codex`) of
133
+ all commands accepting a `--tool` option (default: `claude`).
134
+
135
+ - `ASE_TASK_ID`:
136
+ The default task id of the `ase task` commands accepting an optional
137
+ task id (default: `default`).
138
+
139
+ - `ASE_HEADLESS`:
140
+ Set to `true` by the agents for the agent tool processes they spawn,
141
+ to signal the skills that they run without any user interaction.
142
+
143
+ - `ASE_SETUP_DEV`:
144
+ The default of the `--dev` option of `ase setup install`, `ase setup
145
+ update`, and `ase setup uninstall`.
146
+
147
+ - `EDITOR`, `VISUAL`:
148
+ The text editor used by `ase config edit`, `ase task edit`, and
149
+ `ase task board` (falling back to `vi`).
150
+
151
+ - `PAGER`:
152
+ The pager used by `ase task view` (falling back to `more`).
153
+
154
+ - `XDG_CONFIG_HOME`, `XDG_STATE_HOME`, `APPDATA`, `LOCALAPPDATA`:
155
+ The base directories of the *per-user configuration directory* and
156
+ the *per-user state directory* (see **FILES**).
157
+
158
+ ## FILES
159
+
160
+ - *per-user configuration directory*:
161
+ The per-user *ASE* configuration directory: `~/Library/Application
162
+ Support/ase` on macOS, `%APPDATA%\ase` on Windows, and
163
+ `$XDG_CONFIG_HOME/ase` (falling back to `~/.config/ase`) on Linux
164
+ and other Unix systems. It holds the `user` scope configuration
165
+ `config.yaml`, the user agent definitions `agents/`, and the state
166
+ of the task store server (`store.yaml`, `store.log`, `tasks/`) and
167
+ agent relay server (`relay.yaml`, `relay.log`).
168
+
169
+ - *per-user state directory*:
170
+ The machine-local per-user *ASE* state (session configurations, task
171
+ lifecycle deviation warnings, agent run records, and telemetry
172
+ state), never roamed or versioned: `~/Library/Application
173
+ Support/ase` on macOS, `%LOCALAPPDATA%\ase` on Windows, and
174
+ `$XDG_STATE_HOME/ase` (falling back to `~/.local/state/ase`) on Linux
175
+ and other Unix systems.
176
+
177
+ - `.ase/`:
178
+ The per-project *ASE* directory in the project root, holding the
179
+ `project` scope configuration `config.yaml`, the agent definitions
180
+ `agents/`, the fleet configuration `fleet.yaml`, the task plans
181
+ `task/` of the default local task store, and the machine-local
182
+ runtime files (`service.yaml`, `service.log`, `board.yaml`, `agent/`,
183
+ and `worktree/`), the latter covered by the self-ignoring
184
+ `.ase/.gitignore`.
185
+
186
+ ## EXIT STATUS
187
+
188
+ The **ase** command exits with status `0` on success and with status
189
+ `1` on any error (with the error message logged at level `error`),
190
+ unless a command documents otherwise. A usage error (an unknown
191
+ command or option, or a missing argument) is reported together with
192
+ the usage information and leads to exit status `1`.
193
+
194
+ ## EXAMPLES
195
+
196
+ ```sh
197
+ # install the ASE tool and plugin for Anthropic Claude Code CLI
198
+ $ ase setup install
199
+
200
+ # show the effective configuration of the current project
201
+ $ ase config list
202
+
203
+ # list all open task plans with their status and title
204
+ $ ase task list -v
205
+
206
+ # show the interactive task board
207
+ $ ase task board
208
+
209
+ # start the fleet of agents of ".ase/fleet.yaml"
210
+ $ ase agent fleet start
211
+ ```
212
+
213
+ ## SEE ALSO
214
+
215
+ `ase-setup`(1), `ase-config`(1), `ase-mcp`(1), `ase-service`(1),
216
+ `ase-hook`(1), `ase-statusline`(1), `ase-task`(1), `ase-artifact`(1),
217
+ `ase-spec`(1), `ase-util`(1), `ase-agent`(1), `ase-man`(1),
218
+ `claude`(1), `copilot`(1), `codex`(1), `git`(1).
219
+
220
+ <https://ase.tools>
221
+
222
+ ## HISTORY
223
+
224
+ Development of `ase`(1) started in October 2025.
225
+
226
+ ## AUTHOR
227
+
228
+ Dr. Ralf S. Engelschall <rse@engelschall.com>
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.2",
9
+ "version": "2.0.4",
10
10
  "license": "Apache-2.0",
11
11
  "author": {
12
12
  "name": "Dr. Ralf S. Engelschall",
@@ -15,7 +15,6 @@
15
15
  },
16
16
  "type": "module",
17
17
  "bin": { "ase": "bin/ase" },
18
- "directories": { "man": "dst/man" },
19
18
  "types": "dst/ase-agent-definition-api.d.ts",
20
19
  "exports": {
21
20
  ".": { "types": "./dst/ase-agent-definition-api.d.ts" },
@@ -24,9 +23,9 @@
24
23
  "devDependencies": {
25
24
  "eslint": "10.13.0",
26
25
  "@eslint/js": "10.0.1",
27
- "@typescript-eslint/parser": "8.71.2",
28
- "@typescript-eslint/eslint-plugin": "8.71.2",
29
- "typescript-eslint": "8.71.2",
26
+ "@typescript-eslint/parser": "8.72.0",
27
+ "@typescript-eslint/eslint-plugin": "8.72.0",
28
+ "typescript-eslint": "8.72.0",
30
29
  "eslint-plugin-promise": "7.3.0",
31
30
  "neostandard": "0.14.1",
32
31
  "globals": "17.13.0",
@@ -38,21 +37,19 @@
38
37
  "@rse/stx": "1.1.7",
39
38
  "nodemon": "3.1.14",
40
39
  "shx": "0.4.0",
41
- "remark-cli": "12.0.1",
42
- "remark-man": "9.0.0",
43
40
  "stylus": "0.64.0",
44
- "vite": "8.3.4",
41
+ "vite": "8.3.5",
45
42
  "@vitejs/plugin-vue": "6.0.10",
46
43
  "vue": "3.5.44",
47
44
  "mousetrap": "1.6.5",
48
- "@codemirror/view": "6.43.14",
45
+ "@codemirror/view": "6.43.15",
49
46
  "@codemirror/state": "6.7.6",
50
47
  "@codemirror/commands": "6.11.1",
51
48
  "@codemirror/language": "6.13.1",
52
49
  "@codemirror/lang-markdown": "6.5.2",
53
50
  "@lezer/highlight": "1.2.5",
54
51
  "@codemirror/search": "6.7.2",
55
- "@codemirror/autocomplete": "6.20.3",
52
+ "@codemirror/autocomplete": "6.20.4",
56
53
  "@replit/codemirror-vim": "6.4.0",
57
54
  "@replit/codemirror-emacs": "6.1.0",
58
55
  "source-sans": "3.52.0",
@@ -75,7 +72,7 @@
75
72
  },
76
73
  "dependencies": {
77
74
  "commander": "15.0.0",
78
- "@dotenvx/dotenvx": "2.38.0",
75
+ "@dotenvx/dotenvx": "2.38.2",
79
76
  "yaml": "2.9.1",
80
77
  "valibot": "1.5.0",
81
78
  "execa": "10.2.0",
@@ -86,7 +83,7 @@
86
83
  "elkjs": "0.12.0",
87
84
  "ink": "8.0.0",
88
85
  "react": "19.3.1",
89
- "chokidar": "5.0.0",
86
+ "chokidar": "6.0.0",
90
87
  "marked": "18.1.1",
91
88
  "shiki": "4.5.0",
92
89
  "cli-table3": "0.6.5",
@@ -106,10 +103,11 @@
106
103
  "p-queue": "10.0.0",
107
104
  "pacote": "22.0.0",
108
105
  "ofetch": "1.5.1",
109
- "undici": "8.12.2",
106
+ "undici": "8.12.3",
110
107
  "picomatch": "4.0.7",
111
108
  "lru-cache": "11.5.3",
112
109
  "@rse/specbook": "1.5.2",
110
+ "markdownlint": "0.42.0",
113
111
  "tail": "2.2.6",
114
112
  "source-code-error": "1.2.0",
115
113
  "pure-uuid": "2.0.0",
@@ -125,9 +123,6 @@
125
123
  "overrides": {
126
124
  "stylus": {
127
125
  "glob": "13.0.6"
128
- },
129
- "remark-cli": {
130
- "glob": "13.0.6"
131
126
  }
132
127
  },
133
128
  "allowScripts": {
@@ -135,7 +130,7 @@
135
130
  },
136
131
  "engines": {
137
132
  "npm": ">=10.0.0",
138
- "node": ">=22.18.0"
133
+ "node": ">=22.22.0"
139
134
  },
140
135
  "upd": [
141
136
  "!typescript"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ase",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
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.2",
3
+ "version": "2.0.4",
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.2",
3
+ "version": "2.0.4",
4
4
  "description": "Agentic Software Engineering (ASE)",
5
5
  "keywords": [ "agentic", "software", "engineering" ],
6
6
  "homepage": "https://ase.tools",
@@ -394,9 +394,9 @@ Workflow
394
394
 
395
395
  4. Set <context-after/> to exactly *up to two* lines of
396
396
  *unchanged* code content which occurs in <file/>
397
- directly *after* <old-text/>, i.e., the lines (<line/>
398
- + <n/>) and (<line/> + <n/> + 1), where <n/> is the
399
- number of lines in <old-text/>. Reduce to just one line
397
+ directly *after* <old-text/>, i.e., the lines
398
+ (<line/> + <n/>) and (<line/> + <n/> + 1), where <n/> is
399
+ the number of lines in <old-text/>. Reduce to just one line
400
400
  (<line/> + <n/>) if <old-text/> is the second-last
401
401
  line of the file. Set <context-after/> to empty if
402
402
  <old-text/> is the last line in the file.
@@ -81,9 +81,9 @@ Workflow
81
81
 
82
82
  6. Set <context-after/> to exactly *up to two* lines of
83
83
  *unchanged* text content which occurs in the document
84
- directly *after* <old-text/>, i.e., the lines (<line/>
85
- + <n/>) and (<line/> + <n/> + 1), where <n/> is the
86
- number of lines in <old-text/>. Reduce to just one line
84
+ directly *after* <old-text/>, i.e., the lines
85
+ (<line/> + <n/>) and (<line/> + <n/> + 1), where <n/> is
86
+ the number of lines in <old-text/>. Reduce to just one line
87
87
  (<line/> + <n/>) if <old-text/> is the second-last
88
88
  line of the document. Set <context-after/> to empty if
89
89
  <old-text/> is the last line in the document.
@@ -119,9 +119,9 @@ Workflow
119
119
 
120
120
  6. Set <context-after/> to exactly *up to two* lines of
121
121
  *unchanged* text content which occurs in the document
122
- directly *after* <old-text/>, i.e., the lines (<line/>
123
- + <n/>) and (<line/> + <n/> + 1), where <n/> is the
124
- number of lines in <old-text/>. Reduce to just one line
122
+ directly *after* <old-text/>, i.e., the lines
123
+ (<line/> + <n/>) and (<line/> + <n/> + 1), where <n/> is
124
+ the number of lines in <old-text/>. Reduce to just one line
125
125
  (<line/> + <n/>) if <old-text/> is the second-last
126
126
  line of the document. Set <context-after/> to empty if
127
127
  <old-text/> is the last line in the document.