@rse/ase 2.0.3 → 2.0.5

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 (198) hide show
  1. package/dst/ase-hook.js +13 -4
  2. package/dst/ase-lib-version.js +14 -5
  3. package/dst/ase-man-catalog.js +229 -0
  4. package/dst/ase-man-render.js +278 -0
  5. package/dst/ase-man-tui.js +636 -0
  6. package/dst/ase-man.js +33 -27
  7. package/dst/ase-setup.js +2 -2
  8. package/dst/ase-spec.js +103 -20
  9. package/dst/ase-task-board-filter.js +5 -4
  10. package/dst/ase-task-board-web-client.js +26 -26
  11. package/dst/man/ase-agent-adhoc.md +1165 -0
  12. package/dst/man/ase-agent-condenser.md +383 -0
  13. package/dst/man/ase-agent-editor.md +441 -0
  14. package/dst/man/ase-agent-estimator.md +477 -0
  15. package/dst/man/ase-agent-fleet.md +358 -0
  16. package/dst/man/ase-agent-implementer.md +521 -0
  17. package/dst/man/ase-agent-integrator.md +449 -0
  18. package/dst/man/ase-agent-qualifier.md +426 -0
  19. package/dst/man/ase-agent-rebooter.md +384 -0
  20. package/dst/man/ase-agent-relay.md +262 -0
  21. package/dst/man/ase-agent-researcher.md +478 -0
  22. package/dst/man/ase-agent.md +628 -0
  23. package/dst/man/ase-artifact-list.md +57 -0
  24. package/dst/man/ase-artifact-name.md +56 -0
  25. package/dst/man/ase-artifact.md +92 -0
  26. package/dst/man/ase-config-delete.md +74 -0
  27. package/dst/man/ase-config-edit.md +83 -0
  28. package/dst/man/ase-config-get.md +70 -0
  29. package/dst/man/ase-config-init.md +110 -0
  30. package/dst/man/ase-config-list.md +68 -0
  31. package/dst/man/ase-config-set.md +92 -0
  32. package/dst/man/ase-config.md +426 -0
  33. package/dst/man/ase-hook-permission-request.md +61 -0
  34. package/dst/man/ase-hook-pre-tool-use.md +96 -0
  35. package/dst/man/ase-hook-session-end.md +71 -0
  36. package/dst/man/ase-hook-session-persona.md +65 -0
  37. package/dst/man/ase-hook-session-start.md +184 -0
  38. package/dst/man/ase-hook-stop.md +52 -0
  39. package/dst/man/ase-hook-user-prompt-submit.md +54 -0
  40. package/dst/man/ase-hook.md +93 -0
  41. package/dst/man/ase-man.md +195 -0
  42. package/dst/man/ase-mcp.md +102 -0
  43. package/dst/man/ase-service-log.md +59 -0
  44. package/dst/man/ase-service-send.md +60 -0
  45. package/dst/man/ase-service-start.md +93 -0
  46. package/dst/man/ase-service-status.md +58 -0
  47. package/dst/man/ase-service-stop.md +52 -0
  48. package/dst/man/ase-service.md +124 -0
  49. package/dst/man/ase-setup-disable.md +67 -0
  50. package/dst/man/ase-setup-enable.md +66 -0
  51. package/dst/man/ase-setup-install.md +116 -0
  52. package/dst/man/ase-setup-mcp.md +213 -0
  53. package/dst/man/ase-setup-status.md +101 -0
  54. package/dst/man/ase-setup-statusline.md +162 -0
  55. package/dst/man/ase-setup-telemetry.md +166 -0
  56. package/dst/man/ase-setup-uninstall.md +85 -0
  57. package/dst/man/ase-setup-update.md +117 -0
  58. package/dst/man/ase-setup.md +156 -0
  59. package/dst/man/ase-spec-export.md +99 -0
  60. package/dst/man/ase-spec-init.md +57 -0
  61. package/dst/man/ase-spec-lint.md +74 -0
  62. package/dst/man/ase-spec-preview.md +57 -0
  63. package/dst/man/ase-spec.md +85 -0
  64. package/dst/man/ase-statusline.md +330 -0
  65. package/dst/man/ase-task-assign.md +138 -0
  66. package/dst/man/ase-task-board.md +651 -0
  67. package/dst/man/ase-task-delete.md +46 -0
  68. package/dst/man/ase-task-edit.md +73 -0
  69. package/dst/man/ase-task-idscheme.md +92 -0
  70. package/dst/man/ase-task-lifecycle.md +92 -0
  71. package/dst/man/ase-task-list.md +86 -0
  72. package/dst/man/ase-task-load.md +48 -0
  73. package/dst/man/ase-task-newid.md +100 -0
  74. package/dst/man/ase-task-purge.md +49 -0
  75. package/dst/man/ase-task-rename.md +69 -0
  76. package/dst/man/ase-task-request.md +108 -0
  77. package/dst/man/ase-task-save.md +78 -0
  78. package/dst/man/ase-task-status.md +79 -0
  79. package/dst/man/ase-task-store.md +377 -0
  80. package/dst/man/ase-task-view.md +50 -0
  81. package/dst/man/ase-task.md +335 -0
  82. package/dst/man/ase-util-compat.md +38 -0
  83. package/dst/man/ase-util-diagram.md +140 -0
  84. package/dst/man/ase-util-meta.md +68 -0
  85. package/dst/man/ase-util-metric.md +74 -0
  86. package/dst/man/ase-util-mint.md +85 -0
  87. package/dst/man/ase-util-worktree.md +109 -0
  88. package/dst/man/ase-util.md +81 -0
  89. package/dst/man/ase.md +228 -0
  90. package/package.json +16 -21
  91. package/plugin/.claude-plugin/plugin.json +1 -1
  92. package/plugin/.codex-plugin/plugin.json +1 -1
  93. package/plugin/.github/plugin/plugin.json +1 -1
  94. package/plugin/agents/ase-code-lint.md +3 -3
  95. package/plugin/agents/ase-docs-proofread.md +3 -3
  96. package/plugin/agents/ase-docs-refine.md +3 -3
  97. package/plugin/agents/ase-spec-lint.md +338 -0
  98. package/plugin/mods/ase-mods-common.ts +444 -0
  99. package/plugin/mods/ase-mods-grill.ts +312 -0
  100. package/plugin/mods/ase-mods-help-browse.ts +405 -0
  101. package/plugin/mods/ase-mods-help-compose.ts +561 -0
  102. package/plugin/mods/ase-mods-help-find.ts +426 -0
  103. package/plugin/mods/ase-mods-help-hint.ts +134 -0
  104. package/plugin/mods/ase-mods-help-show.ts +142 -0
  105. package/plugin/mods/ase-mods.ts +214 -381
  106. package/plugin/mods/claude-code.d.ts +26 -3
  107. package/plugin/skills/ase-code-lint/SKILL.md +15 -15
  108. package/plugin/skills/ase-code-lint/help.md +21 -8
  109. package/plugin/skills/ase-help-intent/SKILL.md +2 -1
  110. package/plugin/skills/ase-help-intent/data.md +214 -9
  111. package/plugin/skills/ase-help-skill/catalog.md +1 -0
  112. package/plugin/skills/ase-meta-workflow/workflow.txt +2 -0
  113. package/plugin/skills/ase-repo-commit/SKILL.md +1 -0
  114. package/plugin/skills/ase-repo-merge/SKILL.md +1 -0
  115. package/plugin/skills/ase-spec-edit/SKILL.md +3 -3
  116. package/plugin/skills/ase-spec-edit/help.md +1 -1
  117. package/plugin/skills/ase-spec-lint/SKILL.md +695 -0
  118. package/plugin/skills/ase-spec-lint/help.md +184 -0
  119. package/plugin/skills/ase-task-implement/SKILL.md +24 -6
  120. package/plugin/skills/ase-task-implement/help.md +11 -1
  121. package/dst/man/ase-agent-adhoc.1 +0 -515
  122. package/dst/man/ase-agent-condenser.1 +0 -193
  123. package/dst/man/ase-agent-editor.1 +0 -212
  124. package/dst/man/ase-agent-estimator.1 +0 -214
  125. package/dst/man/ase-agent-fleet.1 +0 -185
  126. package/dst/man/ase-agent-implementer.1 +0 -233
  127. package/dst/man/ase-agent-integrator.1 +0 -213
  128. package/dst/man/ase-agent-qualifier.1 +0 -214
  129. package/dst/man/ase-agent-rebooter.1 +0 -193
  130. package/dst/man/ase-agent-relay.1 +0 -128
  131. package/dst/man/ase-agent-researcher.1 +0 -217
  132. package/dst/man/ase-agent.1 +0 -264
  133. package/dst/man/ase-artifact-list.1 +0 -38
  134. package/dst/man/ase-artifact-name.1 +0 -39
  135. package/dst/man/ase-artifact.1 +0 -56
  136. package/dst/man/ase-config-delete.1 +0 -45
  137. package/dst/man/ase-config-edit.1 +0 -48
  138. package/dst/man/ase-config-get.1 +0 -46
  139. package/dst/man/ase-config-init.1 +0 -60
  140. package/dst/man/ase-config-list.1 +0 -42
  141. package/dst/man/ase-config-set.1 +0 -52
  142. package/dst/man/ase-config.1 +0 -231
  143. package/dst/man/ase-hook-permission-request.1 +0 -36
  144. package/dst/man/ase-hook-pre-tool-use.1 +0 -59
  145. package/dst/man/ase-hook-session-end.1 +0 -47
  146. package/dst/man/ase-hook-session-persona.1 +0 -37
  147. package/dst/man/ase-hook-session-start.1 +0 -81
  148. package/dst/man/ase-hook-stop.1 +0 -34
  149. package/dst/man/ase-hook-user-prompt-submit.1 +0 -34
  150. package/dst/man/ase-hook.1 +0 -51
  151. package/dst/man/ase-man.1 +0 -67
  152. package/dst/man/ase-mcp.1 +0 -61
  153. package/dst/man/ase-service-log.1 +0 -43
  154. package/dst/man/ase-service-send.1 +0 -47
  155. package/dst/man/ase-service-start.1 +0 -54
  156. package/dst/man/ase-service-status.1 +0 -46
  157. package/dst/man/ase-service-stop.1 +0 -37
  158. package/dst/man/ase-service.1 +0 -85
  159. package/dst/man/ase-setup-disable.1 +0 -44
  160. package/dst/man/ase-setup-enable.1 +0 -45
  161. package/dst/man/ase-setup-install.1 +0 -73
  162. package/dst/man/ase-setup-mcp.1 +0 -124
  163. package/dst/man/ase-setup-status.1 +0 -60
  164. package/dst/man/ase-setup-statusline.1 +0 -92
  165. package/dst/man/ase-setup-telemetry.1 +0 -92
  166. package/dst/man/ase-setup-uninstall.1 +0 -59
  167. package/dst/man/ase-setup-update.1 +0 -64
  168. package/dst/man/ase-setup.1 +0 -93
  169. package/dst/man/ase-spec-export.1 +0 -62
  170. package/dst/man/ase-spec-lint.1 +0 -40
  171. package/dst/man/ase-spec-preview.1 +0 -40
  172. package/dst/man/ase-spec.1 +0 -46
  173. package/dst/man/ase-statusline.1 +0 -189
  174. package/dst/man/ase-task-assign.1 +0 -71
  175. package/dst/man/ase-task-board.1 +0 -384
  176. package/dst/man/ase-task-delete.1 +0 -35
  177. package/dst/man/ase-task-edit.1 +0 -46
  178. package/dst/man/ase-task-idscheme.1 +0 -65
  179. package/dst/man/ase-task-lifecycle.1 +0 -57
  180. package/dst/man/ase-task-list.1 +0 -47
  181. package/dst/man/ase-task-load.1 +0 -36
  182. package/dst/man/ase-task-newid.1 +0 -61
  183. package/dst/man/ase-task-purge.1 +0 -37
  184. package/dst/man/ase-task-rename.1 +0 -44
  185. package/dst/man/ase-task-request.1 +0 -61
  186. package/dst/man/ase-task-save.1 +0 -48
  187. package/dst/man/ase-task-status.1 +0 -55
  188. package/dst/man/ase-task-store.1 +0 -194
  189. package/dst/man/ase-task-view.1 +0 -40
  190. package/dst/man/ase-task.1 +0 -160
  191. package/dst/man/ase-util-compat.1 +0 -25
  192. package/dst/man/ase-util-diagram.1 +0 -76
  193. package/dst/man/ase-util-meta.1 +0 -45
  194. package/dst/man/ase-util-metric.1 +0 -54
  195. package/dst/man/ase-util-mint.1 +0 -59
  196. package/dst/man/ase-util-worktree.1 +0 -72
  197. package/dst/man/ase-util.1 +0 -50
  198. package/dst/man/ase.1 +0 -124
@@ -0,0 +1,426 @@
1
+ # ase-agent-qualifier(1) -- Qualification Phase Agent
2
+
3
+ ## SYNOPSIS
4
+
5
+ `ase agent qualifier start`
6
+ \[`-n`|`--name` *name*\]
7
+ \[`-t`|`--tool` `claude`|`copilot`|`codex`\]
8
+ \[`-p`|`--parallel` *num*\]
9
+ \[`-T`|`--timeout` *duration*\]
10
+ \[`-o`|`--one-shot`\]
11
+ \[`--agent-relay` *url*\]
12
+ \[`-r`|`--repo` *url*\]
13
+ \[`-d`|`--tempdir` *dir*\]
14
+ \[`-m`|`--mode` `judge`|`qualify`\]
15
+ \[`--`*group*`-`*item* *value* \[...\]\]
16
+ \[`-f`|`--foreground`\]
17
+
18
+ `ase agent qualifier status`
19
+ \[`-n`|`--name` *name*\]
20
+
21
+ `ase agent qualifier log`
22
+ \[`-f`|`--follow`\]
23
+ \[`-n`|`--lines` *n*\]
24
+ \[`--name` *name*\]
25
+
26
+ `ase agent qualifier stop`
27
+ \[`-n`|`--name` *name*\]
28
+
29
+ ## DESCRIPTION
30
+
31
+ **ase agent qualifier** drives the `Qualification` phase of the
32
+ `enterprise` task lifecycle model (refused for any other model).
33
+
34
+ It claims every task in the state `IMPLEMENTED` which is unassigned or
35
+ assigned to the agent, which does not carry any tag `ase-agent-qualifier`
36
+ yet (i.e., without its verdict yet, so a task already carrying a
37
+ verdict of the qualifier is never picked up again), and whose `After:`
38
+ predecessors (and, for an explicit epic, its group members) are
39
+ `QUALIFIED` or later, moves it into `QUALIFYING`, and reviews its
40
+ `Changeset:` (or the configured `project.task.default.changeset`) via
41
+ the skill `ase-repo-review`:
42
+
43
+ - `worktree`: The change set staged in its working copy, i.e., the Git
44
+ worktree `.ase/worktree/`*id* of a parallel implementer if existing,
45
+ else the working copy of the project.
46
+
47
+ - `branch:`*name*: The branch against its base, via `ase-repo-review
48
+ --branch` *name*.
49
+
50
+ - `attachment:`*name*: The change set staged in a temporary Git
51
+ worktree, detached at the `base` commit of the attachment and removed
52
+ afterwards.
53
+
54
+ The verdict `APPROVE` resp. `REJECT` of the review (the last upper-case
55
+ word after the label `REVIEW VERDICT` in the output of the successfully
56
+ exited agent tool) is added as the tag `ase-agent-qualifier:approve`
57
+ resp. `ase-agent-qualifier:reject`, while a failed or skipped review,
58
+ which yields no verdict, adds the plain tag `ase-agent-qualifier`.
59
+
60
+ In the default mode `judge`, the task is then put back into `IMPLEMENTED`
61
+ for a human decision, while in mode `qualify`, it is put into `QUALIFIED`
62
+ on the verdict `APPROVE`, into `DECLINED` on the verdict `REJECT`, and
63
+ back into `IMPLEMENTED` without a verdict. In both modes, the task is
64
+ unassigned afterwards.
65
+
66
+ On an interrupt, a task being processed is put back, untagged and with
67
+ its previous assignee, into `IMPLEMENTED`. See `ase-agent`(1) for the
68
+ common mechanics of all agents.
69
+
70
+ ## OPTIONS
71
+
72
+ - \[`-h`|`--help`\]: Show usage information of `ase agent qualifier` (or
73
+ of the given sub-command) only.
74
+
75
+ All other options belong to the sub-commands (see **COMMANDS**).
76
+
77
+ ## COMMANDS
78
+
79
+ - `ase agent qualifier start` \[*options*\]: Start the qualifier agent in
80
+ the background, logging into `.ase/agent/`*name*`.log`. The agent is
81
+ validated and initialized (e.g., its agent tool is looked up and the
82
+ task lifecycle model is checked) before the command returns (waiting
83
+ up to 30 seconds), so a failing agent is reported together with the
84
+ tail of its log. An agent of the same name already running is left
85
+ alone. The options are:
86
+
87
+ - \[`-n`|`--name` *name*\]: The name of the agent (default:
88
+ `qualifier`): up to 64 letters, digits, underscores, and dashes,
89
+ starting with a letter or digit, other than the name of another
90
+ agent kind, `relay`, or `fleet`. It names the agent in its log
91
+ lines (also in the shared processing log attachment `agent`), the
92
+ `Assignee:` of the tasks it processes, its temporary directory,
93
+ and its process files `.ase/agent/`*name*`.yaml` and
94
+ `.ase/agent/`*name*`.log`.
95
+
96
+ Agents of the kind `qualifier` under different names form a pool,
97
+ competing for the same tasks and processing them in parallel to
98
+ each other.
99
+
100
+ - \[`-t`|`--tool` *tool*\]: The headless agent tool processing the
101
+ tasks: `claude` (*Anthropic Claude Code CLI*), `copilot` (*GitHub
102
+ Copilot CLI*), or `codex` (*OpenAI Codex CLI*) (default:
103
+ `$ASE_TOOL`, else `claude`). Its command has to be found in
104
+ `$PATH`.
105
+
106
+ - \[`-p`|`--parallel` *num*\]: The maximum number of tasks processed
107
+ in parallel by this agent (default: `1`), a positive integer.
108
+
109
+ - \[`-T`|`--timeout` *duration*\]: The maximum duration of
110
+ processing a task (the run of the agent tool), as *number* *unit*
111
+ (without a space) with *unit* `s` (seconds), `m` (minutes), or `h`
112
+ (hours) (default: `60m`). A processing exceeding it is aborted and
113
+ counts as failed.
114
+
115
+ - \[`-o`|`--one-shot`\]: Terminate the agent, instead of observing
116
+ for further tasks, once a check of the task store finds no
117
+ dispatchable task while the agent processes no task anymore --
118
+ intended for CI contexts like GitHub Actions, and not allowed in a
119
+ fleet. A task still waiting for its predecessors at that time is
120
+ left for a later run. A check of the task store failing three
121
+ times in a row then terminates the agent with a non-zero exit
122
+ status (instead of being retried endlessly after a growing delay).
123
+
124
+ - \[`--agent-relay` *url*\]: The agent relay to pass the live
125
+ presence of the agent to, as `ase://`*addr*`:`*port*\[`/`*token*\]
126
+ resp. `ases://`*addr*`:`*port*\[`/`*token*\]\[`?insecure`\] for
127
+ HTTPS (default: the configured `project.relay.url`, else none).
128
+ See **AGENT RELAY** in `ase-agent`(1).
129
+
130
+ - \[`-r`|`--repo` *url*\]: The Git repository to clone once into the
131
+ temporary directory of the agent, where every task without a
132
+ `worktree` value is processed in its own temporary Git worktree of
133
+ this clone, and changed branches are pushed back to its origin
134
+ (default: none, i.e., all tasks are processed in the Git working
135
+ copy the agent is started in, which is hence mandatory).
136
+
137
+ Requires a task store not located in the working copy (i.e., not a
138
+ local `ase:`*path* one). See **WORKING COPY, CLONES, AND WORKTREES**
139
+ in `ase-agent`(1).
140
+
141
+ - \[`-d`|`--tempdir` *dir*\]: Create the temporary directory of the
142
+ agent as the sub-directory *name* of *dir*, where `%p` is expanded
143
+ to the process id of the agent, `%h` to a hash value unique to the
144
+ process, and `%%` to `%` (default: a fresh, private directory
145
+ below the system temporary directory). A missing *dir* is created
146
+ private to the current user, while an existing *dir* has to be a
147
+ directory (no symbolic link) owned by the current user.
148
+
149
+ - \[`-m`|`--mode` *mode*\]: The mode of the agent (default:
150
+ `judge`): `judge` just adds the verdict tag and puts the task back
151
+ into `IMPLEMENTED` for a human decision, while `qualify`
152
+ additionally qualifies resp. declines the task by its verdict,
153
+ i.e., puts it into `QUALIFIED` on the verdict `APPROVE`, into
154
+ `DECLINED` on the verdict `REJECT`, and back into `IMPLEMENTED`
155
+ without a verdict. An invalid mode is an error.
156
+
157
+ - \[`--title` *text*\]: The one-line title of the operation of the
158
+ agent (at most 80 characters), shown on the task boards. Built-in:
159
+ `Review implemented tasks and tag their verdict` (`judge`) resp.
160
+ `Review implemented tasks and decide by verdict` (`qualify`).
161
+
162
+ - \[`--description` *text*\]: The brief description of the operation
163
+ of the agent (about 3-6 lines, at most 600 characters, with its
164
+ whitespace collapsed), shown on the task boards. Built-in: a
165
+ description of the operation of the mode.
166
+
167
+ - \[`--type` `phase`|`request`\]: The processing type: `phase`
168
+ claims the tasks by their lifecycle status, `request` processes
169
+ the prompt requests attached to the tasks. Generic default:
170
+ `phase`. Built-in: `phase`.
171
+
172
+ - \[`--workdir` *kind*\]: The working directory of the agent tool:
173
+ `project`, `source`, `changeset`, `changeset-read`, or `target`.
174
+ Generic default: `project`. Built-in: `changeset-read`.
175
+
176
+ - \[`--lifecycle` *model*\]: A supported task lifecycle model
177
+ (`solo`, `team`, or `enterprise`, repeatable). Generic default:
178
+ every model containing all given states, resp. all models for
179
+ `request` and with `--unclaimed`. Built-in: `enterprise`.
180
+
181
+ - \[`--serial`\]: Process the tasks serially only, ignoring
182
+ `--parallel`. Built-in: not set.
183
+
184
+ - \[`--unclaimed`\]: Process the tasks of the incoming states
185
+ without claiming them, independent of their assignee and
186
+ predecessors, and without ever changing their status and assignee
187
+ (`phase` only). Built-in: not set. Not allowed, as the qualifier
188
+ claims the tasks into its activity state.
189
+
190
+ - \[`--params` *name*`=`*value*\]: The value of a parameter
191
+ declared by the definition (repeatable). Built-in: none declared.
192
+
193
+ - \[`--state-incoming` *state*\]: The state of the tasks to claim
194
+ (mandatory for `phase`, repeatable with `--unclaimed` only).
195
+ Built-in: `IMPLEMENTED`.
196
+
197
+ - \[`--state-activity` *state*\]: The state of a task during its
198
+ processing. Generic default: the incoming state. Built-in:
199
+ `QUALIFYING`.
200
+
201
+ - \[`--state-success` *state*\]: The target state on success.
202
+ Generic default: the incoming state. Built-in: `IMPLEMENTED`.
203
+
204
+ - \[`--state-failure` *state*\]: The target state on failure.
205
+ Generic default: the incoming state. Built-in: `IMPLEMENTED`.
206
+
207
+ - \[`--state-phase` *state*\]: The phase success state, into which
208
+ the skill itself can move a task. Generic default: the success
209
+ state. Built-in: `QUALIFIED`.
210
+
211
+ - \[`--state-passed` *state*\]: The first state from which on a task
212
+ has passed the phase for its `After:` successors. Generic default:
213
+ the phase success state. Built-in: `QUALIFIED`.
214
+
215
+ - \[`--state-verdict` *VERDICT*`=`*state*\]: The target state per
216
+ verdict (repeatable). Built-in: not set (mode `judge`),
217
+ `APPROVE=QUALIFIED` and `REJECT=DECLINED` (mode `qualify`).
218
+
219
+ - \[`--tag-name` *tag*\]: The tag of the processed tasks
220
+ (`ase-agent-`*word*). Generic default: `ase-agent-`*name*, resp.
221
+ for `request` always `ase-agent-`*request-name*. Built-in:
222
+ `ase-agent-qualifier`.
223
+
224
+ - \[`--tag-success` *tag*\]: The tag on success: *tag-name*,
225
+ *tag-name*`:`*value*, or `none` (`phase` only). Generic default:
226
+ *tag-name*. Built-in: not set.
227
+
228
+ - \[`--tag-failure` *tag*\]: The tag on failure: *tag-name*,
229
+ *tag-name*`:`*value*, or `none` (`phase` only). Generic default:
230
+ *tag-name*. Built-in: not set.
231
+
232
+ - \[`--tag-require` *tag*\]: A tag a claimable task has to carry
233
+ (repeatable). Built-in: not set.
234
+
235
+ - \[`--tag-exclude` *tag*\]: A tag a claimable task must not carry
236
+ (repeatable). Built-in: not set.
237
+
238
+ - \[`--tag-retry`\]: A shorthand for `--tag-failure none`, so a
239
+ failed task is claimed again after a growing delay (`phase` only).
240
+ Built-in: not set.
241
+
242
+ - \[`--assign-name` *who*\]: The assignee under which the tasks are
243
+ claimed, held, recognized, and released, and which names the
244
+ agent-owned worktrees. Generic default: the agent name. Built-in:
245
+ not set.
246
+
247
+ - \[`--assign-required`\]: Claim only the tasks explicitly assigned
248
+ to *who* of `--assign-name` (`phase` only). Built-in: not set.
249
+
250
+ - \[`--assign-success` *who*\]: The assignee of a task after its
251
+ successful processing: a name, `none`, or `previous`. Generic
252
+ default: `none` for `phase`, `previous` for `request`. Built-in:
253
+ not set.
254
+
255
+ - \[`--assign-failure` *who*\]: The assignee of a task after its
256
+ failed processing: a name, `none`, or `previous`. Generic default:
257
+ `none` for `phase`, `previous` for `request`. Built-in: not set.
258
+
259
+ - \[`--request-name` *name*\]: The name of the processed requests
260
+ (`request` only). Generic default: the agent name. Built-in: not
261
+ set. Not allowed, as the qualifier is of type `phase`.
262
+
263
+ - \[`--request-done` *word*\]: The word naming a processed task in
264
+ the log lines (`request` only). Generic default: `processed`.
265
+ Built-in: not set. Not allowed, as the qualifier is of type
266
+ `phase`.
267
+
268
+ - \[`--prompt-skill` *name*\]: The skill to invoke (mutually
269
+ exclusive with `--prompt-text` and `--prompt-file`). Built-in:
270
+ `ase-repo-review`.
271
+
272
+ - \[`--prompt-args` *template*\]: The argument template of the
273
+ skill. Generic default: `{id}` for `phase`, `{id}: {prompt}` for
274
+ `request`. Built-in: `{?changeset-type=branch:--branch
275
+ {changeset-name}}`.
276
+
277
+ - \[`--prompt-text` *template*\]: The prompt text template to invoke
278
+ instead of a skill. Built-in: not set.
279
+
280
+ - \[`--prompt-file` *file*\]: The file with the prompt text template
281
+ to invoke instead of a skill. Built-in: not set.
282
+
283
+ - \[`--prepare-run` *cmd*\]: A shell command run in the working
284
+ directory before the prompt (repeatable). Built-in: not set.
285
+
286
+ - \[`--success-criterion` *criterion*\]: A success criterion:
287
+ `exit`, `clean`, `changed`, `verdict`, `attachment`, or `status`
288
+ (repeatable). Generic default: `exit` and `clean` for `phase`,
289
+ `clean` and `changed` for `request`. Built-in: `exit` and
290
+ `verdict`.
291
+
292
+ - \[`--success-match` *regex*\]: A regular expression an output line
293
+ has to match (repeatable). Built-in: not set.
294
+
295
+ - \[`--verdict-label` *label*\]: The label after which the verdict
296
+ is given in the output. Built-in: `REVIEW VERDICT`.
297
+
298
+ - \[`--verdict-allow` *VERDICT*\]: An accepted verdict (repeatable).
299
+ Generic default: the verdicts of `--state-verdict`, else any.
300
+ Built-in: `APPROVE` and `REJECT`.
301
+
302
+ - \[`--attach-output` *kind*\]: The kind of the attachment storing
303
+ the output lines of the prompt. Built-in: not set.
304
+
305
+ - \[`--attach-expect` *spec*\]: The attachment
306
+ \[*mime-type*`;`\]*kind* to be created or changed by the
307
+ processing for the success criterion `attachment`. Built-in: not
308
+ set.
309
+
310
+ - \[`--attach-skip` *spec*\]: The attachment
311
+ \[*mime-type*`;`\]*kind* leaving a task unclaimed (`phase` only).
312
+ Built-in: not set.
313
+
314
+ - \[`--attach-changeset` *kind*\]: The kind of the attachment
315
+ `text/x-diff;`*kind* storing the change set snapshot of the task
316
+ (with `--workdir changeset` or `target` only). Built-in: not set.
317
+
318
+ - \[`--finish-commit`\]: Commit the work onto a `branch:` changeset
319
+ and publish it (with `--workdir changeset` only). Built-in: not
320
+ set. Not allowed, as the qualifier works with `--workdir
321
+ changeset-read`.
322
+
323
+ - \[`--finish-success` *cmd*\]: A shell command run in the working
324
+ directory after a successful processing. Built-in: not set.
325
+
326
+ - \[`--finish-failure` *cmd*\]: A shell command run in the working
327
+ directory after a failed processing. Built-in: not set.
328
+
329
+ - \[`-f`|`--foreground`\]: Run the agent in the current process
330
+ instead, logging to the terminal, until it is interrupted (e.g.,
331
+ via `CTRL+C`) or stopped, where an agent of the same name already
332
+ running is an error.
333
+
334
+ - \[`-h`|`--help`\]: Show the usage information of the sub-command
335
+ only.
336
+
337
+ The options `--`*group*`-`*item* above override the built-in
338
+ definition of the mode of the agent (where an option also replaces its
339
+ mutually exclusive alternatives, e.g., `--prompt-text` replaces the
340
+ skill of `--prompt-skill`), while the agent keeps the identity of its
341
+ kind (its runs, its presence, and its agent-owned worktrees are named
342
+ after `qualifier`). See `ase-agent-adhoc`(1) for their full semantics.
343
+
344
+ - `ase agent qualifier status` \[`-n`|`--name` *name*\]: Report whether
345
+ the qualifier agent of the name *name* (default: `qualifier`) is
346
+ running, as `agent` *name*`: running (pid` *pid*`)` resp. `agent`
347
+ *name*`: not running` (exit status 1).
348
+
349
+ - `ase agent qualifier log` \[`-f`|`--follow`\] \[`-n`|`--lines` *n*\]
350
+ \[`--name` *name*\]: Show the log `.ase/agent/`*name*`.log` of the
351
+ qualifier agent of the name *name* (default: `qualifier`) run in the
352
+ background, where an agent of a fleet logs into the log of the fleet
353
+ instead (see `ase-agent-fleet`(1)). Without a log file, an
354
+ informational message is shown only. The options are:
355
+
356
+ - \[`-f`|`--follow`\]: Show the last *n* lines (default: 10) and
357
+ then follow all newly appended lines, in the style of `tail -f`,
358
+ until interrupted.
359
+
360
+ - \[`-n`|`--lines` *n*\]: Show the last *n* lines only (default:
361
+ all, or 10 with `--follow`).
362
+
363
+ - \[`--name` *name*\]: The name of the agent (default: `qualifier`),
364
+ given in its long form only, as `-n` is the short form of
365
+ `--lines`.
366
+
367
+ - `ase agent qualifier stop` \[`-n`|`--name` *name*\]: Stop the qualifier
368
+ agent of the name *name* (default: `qualifier`) by `SIGTERM`, waiting
369
+ (up to 5 minutes) until it aborted its running processings and put
370
+ their tasks back. An agent not running is reported informationally
371
+ only.
372
+
373
+ ## ENVIRONMENT
374
+
375
+ - `ASE_TOOL`: The default agent tool of `--tool` (default: `claude`).
376
+
377
+ - `ASE_AGENT_RELAY_TOKEN`: The bearer token of the agent relay, if not
378
+ embedded in the URL of `--agent-relay` resp. `project.relay.url`.
379
+
380
+ - `ASE_HEADLESS`: Set to `true` for the agent tool processes spawned by
381
+ the agent.
382
+
383
+ ## FILES
384
+
385
+ - `.ase/agent/`*name*`.yaml`: The process state (kind, process id, and
386
+ process start time) of the agent, existing while it runs.
387
+
388
+ - `.ase/agent/`*name*`.log`: The log of the agent run in the background.
389
+
390
+ - *per-user state
391
+ directory*`/agent-qualifier/`*store-hash*`/`*run-id*`.lock` and
392
+ `.json`: The run lock and the run record of each qualifier agent
393
+ process, used to recover the tasks of terminated agent processes (see
394
+ **INTERRUPTS AND RECOVERY** in `ase-agent`(1)).
395
+
396
+ ## EXIT STATUS
397
+
398
+ `ase agent qualifier start` exits with status `0` once the agent started
399
+ (or was already running), resp. once a foreground agent terminated
400
+ regularly, and with status `1` on any error (e.g., an invalid option, a
401
+ task lifecycle model other than `enterprise`, or a missing agent tool).
402
+ `ase agent qualifier status` exits with status `1` if the agent is not
403
+ running.
404
+
405
+ ## EXAMPLES
406
+
407
+ ```sh
408
+ # review the implemented tasks, leaving the decision to a human
409
+ $ ase agent qualifier start -m judge -p 2
410
+
411
+ # review the implemented tasks and decide on them by the verdict
412
+ $ ase agent qualifier start -m qualify
413
+ ```
414
+
415
+ ## SEE ALSO
416
+
417
+ `ase`(1), `ase-agent`(1), `ase-agent-rebooter`(1),
418
+ `ase-agent-condenser`(1), `ase-agent-researcher`(1),
419
+ `ase-agent-implementer`(1), `ase-agent-integrator`(1),
420
+ `ase-agent-editor`(1), `ase-agent-estimator`(1), `ase-agent-adhoc`(1),
421
+ `ase-agent-fleet`(1), `ase-agent-relay`(1), `ase-task`(1),
422
+ `ase-task-board`(1).
423
+
424
+ ## AUTHOR
425
+
426
+ Dr. Ralf S. Engelschall <rse@engelschall.com>