@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.
- package/dst/ase-agent-definition-core.js +111 -87
- package/dst/ase-agent-fleet.js +1 -1
- package/dst/ase-agent-runtime-claim.js +5 -3
- package/dst/ase-agent-runtime-engine.js +1 -1
- package/dst/ase-agent-runtime-phase.js +1 -1
- package/dst/ase-agent-runtime-request.js +1 -1
- package/dst/ase-agent-runtime.js +3 -5
- package/dst/ase-artifact.js +3 -3
- package/dst/ase-config-core.js +2 -16
- package/dst/ase-config-schema.js +1 -3
- package/dst/ase-config.js +2 -0
- package/dst/ase-hook.js +13 -13
- package/dst/ase-lib-daemon-cli.js +117 -4
- package/dst/ase-lib-server-cli.js +4 -5
- package/dst/ase-lib-version.js +14 -5
- package/dst/ase-man-catalog.js +229 -0
- package/dst/ase-man-render.js +278 -0
- package/dst/ase-man-tui.js +636 -0
- package/dst/ase-man.js +33 -27
- package/dst/ase-mcp.js +4 -4
- package/dst/ase-service-getopt.js +2 -2
- package/dst/ase-service-otel.js +4 -4
- package/dst/ase-service-skills.js +5 -15
- package/dst/ase-service.js +87 -210
- package/dst/ase-setup-common.js +1 -2
- package/dst/ase-setup-settings.js +6 -9
- package/dst/ase-setup.js +4 -5
- package/dst/ase-spec.js +103 -20
- package/dst/ase-statusline.js +170 -170
- package/dst/ase-task-board-filter.js +5 -4
- package/dst/ase-task-board-flow.js +7 -6
- package/dst/ase-task-board-graph.js +5 -4
- package/dst/ase-task-board-tui-control.js +41 -35
- package/dst/ase-task-board-tui-model.js +185 -167
- package/dst/ase-task-board-tui-popup.js +2 -3
- package/dst/ase-task-board-tui-view.js +74 -70
- package/dst/ase-task-board-web-client.js +27 -27
- package/dst/ase-task-board-web-server.js +2 -2
- package/dst/ase-task-board.js +1 -1
- package/dst/ase-task-format.js +1 -1
- package/dst/ase-task-store-client.js +17 -5
- package/dst/ase-task-store-core.js +5 -7
- package/dst/ase-task-store-issues.js +16 -1
- package/dst/ase-task-store-plugin-ase.js +7 -3
- package/dst/ase-task-store-plugin-gitea.js +9 -32
- package/dst/ase-task-store-plugin-github.js +3 -12
- package/dst/ase-task-store-plugin-gitlab.js +2 -18
- package/dst/ase-task.js +51 -23
- package/dst/ase-util-compat.js +1 -1
- package/dst/ase-util-diagram.js +13 -37
- package/dst/ase.js +5 -5
- package/dst/man/ase-agent-adhoc.md +1165 -0
- package/dst/man/ase-agent-condenser.md +383 -0
- package/dst/man/ase-agent-editor.md +441 -0
- package/dst/man/ase-agent-estimator.md +477 -0
- package/dst/man/ase-agent-fleet.md +358 -0
- package/dst/man/ase-agent-implementer.md +521 -0
- package/dst/man/ase-agent-integrator.md +449 -0
- package/dst/man/ase-agent-qualifier.md +426 -0
- package/dst/man/ase-agent-rebooter.md +384 -0
- package/dst/man/ase-agent-relay.md +262 -0
- package/dst/man/ase-agent-researcher.md +478 -0
- package/dst/man/ase-agent.md +628 -0
- package/dst/man/ase-artifact-list.md +57 -0
- package/dst/man/ase-artifact-name.md +56 -0
- package/dst/man/ase-artifact.md +92 -0
- package/dst/man/ase-config-delete.md +74 -0
- package/dst/man/ase-config-edit.md +83 -0
- package/dst/man/ase-config-get.md +70 -0
- package/dst/man/ase-config-init.md +110 -0
- package/dst/man/ase-config-list.md +68 -0
- package/dst/man/ase-config-set.md +92 -0
- package/dst/man/ase-config.md +426 -0
- package/dst/man/ase-hook-permission-request.md +61 -0
- package/dst/man/ase-hook-pre-tool-use.md +96 -0
- package/dst/man/ase-hook-session-end.md +71 -0
- package/dst/man/ase-hook-session-persona.md +65 -0
- package/dst/man/ase-hook-session-start.md +184 -0
- package/dst/man/ase-hook-stop.md +52 -0
- package/dst/man/ase-hook-user-prompt-submit.md +54 -0
- package/dst/man/ase-hook.md +93 -0
- package/dst/man/ase-man.md +195 -0
- package/dst/man/ase-mcp.md +102 -0
- package/dst/man/ase-service-log.md +59 -0
- package/dst/man/ase-service-send.md +60 -0
- package/dst/man/ase-service-start.md +93 -0
- package/dst/man/ase-service-status.md +58 -0
- package/dst/man/ase-service-stop.md +52 -0
- package/dst/man/ase-service.md +124 -0
- package/dst/man/ase-setup-disable.md +67 -0
- package/dst/man/ase-setup-enable.md +66 -0
- package/dst/man/ase-setup-install.md +116 -0
- package/dst/man/ase-setup-mcp.md +213 -0
- package/dst/man/ase-setup-status.md +101 -0
- package/dst/man/ase-setup-statusline.md +162 -0
- package/dst/man/ase-setup-telemetry.md +166 -0
- package/dst/man/ase-setup-uninstall.md +85 -0
- package/dst/man/ase-setup-update.md +117 -0
- package/dst/man/ase-setup.md +156 -0
- package/dst/man/ase-spec-export.md +99 -0
- package/dst/man/ase-spec-init.md +57 -0
- package/dst/man/ase-spec-lint.md +74 -0
- package/dst/man/ase-spec-preview.md +57 -0
- package/dst/man/ase-spec.md +85 -0
- package/dst/man/ase-statusline.md +330 -0
- package/dst/man/ase-task-assign.md +138 -0
- package/dst/man/ase-task-board.md +651 -0
- package/dst/man/ase-task-delete.md +46 -0
- package/dst/man/ase-task-edit.md +73 -0
- package/dst/man/ase-task-idscheme.md +92 -0
- package/dst/man/ase-task-lifecycle.md +92 -0
- package/dst/man/ase-task-list.md +86 -0
- package/dst/man/ase-task-load.md +48 -0
- package/dst/man/ase-task-newid.md +100 -0
- package/dst/man/ase-task-purge.md +49 -0
- package/dst/man/ase-task-rename.md +69 -0
- package/dst/man/ase-task-request.md +108 -0
- package/dst/man/ase-task-save.md +78 -0
- package/dst/man/ase-task-status.md +79 -0
- package/dst/man/ase-task-store.md +377 -0
- package/dst/man/ase-task-view.md +50 -0
- package/dst/man/ase-task.md +335 -0
- package/dst/man/ase-util-compat.md +38 -0
- package/dst/man/ase-util-diagram.md +140 -0
- package/dst/man/ase-util-meta.md +68 -0
- package/dst/man/ase-util-metric.md +74 -0
- package/dst/man/ase-util-mint.md +85 -0
- package/dst/man/ase-util-worktree.md +109 -0
- package/dst/man/ase-util.md +81 -0
- package/dst/man/ase.md +228 -0
- package/package.json +12 -17
- 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/agents/ase-code-lint.md +3 -3
- package/plugin/agents/ase-docs-proofread.md +3 -3
- package/plugin/agents/ase-docs-refine.md +3 -3
- package/plugin/agents/ase-spec-lint.md +338 -0
- package/plugin/meta/ase-skill.md +7 -0
- package/plugin/mods/ase-mods.ts +10 -7
- package/plugin/mods/claude-code.d.ts +26 -3
- package/plugin/skills/ase-code-analyze/SKILL.md +18 -10
- package/plugin/skills/ase-code-analyze/help.md +11 -6
- package/plugin/skills/ase-code-lint/SKILL.md +37 -23
- package/plugin/skills/ase-code-lint/help.md +10 -5
- package/plugin/skills/ase-help-intent/data.md +204 -13
- package/plugin/skills/ase-help-skill/catalog.md +1 -0
- package/plugin/skills/ase-meta-workflow/workflow.txt +2 -0
- package/plugin/skills/ase-repo-commit/SKILL.md +1 -0
- package/plugin/skills/ase-repo-merge/SKILL.md +1 -0
- package/plugin/skills/ase-repo-review/SKILL.md +5 -3
- package/plugin/skills/ase-repo-review/help.md +3 -1
- package/plugin/skills/ase-spec-edit/SKILL.md +3 -3
- package/plugin/skills/ase-spec-edit/help.md +1 -1
- package/plugin/skills/ase-spec-lint/SKILL.md +695 -0
- package/plugin/skills/ase-spec-lint/help.md +171 -0
- package/plugin/skills/ase-task-implement/SKILL.md +24 -6
- package/plugin/skills/ase-task-implement/help.md +11 -1
- package/dst/man/ase-agent-adhoc.1 +0 -515
- package/dst/man/ase-agent-condenser.1 +0 -193
- package/dst/man/ase-agent-editor.1 +0 -212
- package/dst/man/ase-agent-estimator.1 +0 -214
- package/dst/man/ase-agent-fleet.1 +0 -185
- package/dst/man/ase-agent-implementer.1 +0 -233
- package/dst/man/ase-agent-integrator.1 +0 -213
- package/dst/man/ase-agent-qualifier.1 +0 -214
- package/dst/man/ase-agent-rebooter.1 +0 -193
- package/dst/man/ase-agent-relay.1 +0 -128
- package/dst/man/ase-agent-researcher.1 +0 -217
- package/dst/man/ase-agent.1 +0 -264
- package/dst/man/ase-artifact-list.1 +0 -38
- package/dst/man/ase-artifact-name.1 +0 -39
- package/dst/man/ase-artifact.1 +0 -56
- package/dst/man/ase-config-delete.1 +0 -45
- package/dst/man/ase-config-edit.1 +0 -48
- package/dst/man/ase-config-get.1 +0 -46
- package/dst/man/ase-config-init.1 +0 -60
- package/dst/man/ase-config-list.1 +0 -42
- package/dst/man/ase-config-set.1 +0 -52
- package/dst/man/ase-config.1 +0 -231
- package/dst/man/ase-hook-permission-request.1 +0 -36
- package/dst/man/ase-hook-pre-tool-use.1 +0 -59
- package/dst/man/ase-hook-session-end.1 +0 -47
- package/dst/man/ase-hook-session-persona.1 +0 -37
- package/dst/man/ase-hook-session-start.1 +0 -81
- package/dst/man/ase-hook-stop.1 +0 -34
- package/dst/man/ase-hook-user-prompt-submit.1 +0 -34
- package/dst/man/ase-hook.1 +0 -51
- package/dst/man/ase-man.1 +0 -67
- package/dst/man/ase-mcp.1 +0 -61
- package/dst/man/ase-service-log.1 +0 -43
- package/dst/man/ase-service-send.1 +0 -47
- package/dst/man/ase-service-start.1 +0 -54
- package/dst/man/ase-service-status.1 +0 -46
- package/dst/man/ase-service-stop.1 +0 -37
- package/dst/man/ase-service.1 +0 -85
- package/dst/man/ase-setup-disable.1 +0 -44
- package/dst/man/ase-setup-enable.1 +0 -45
- package/dst/man/ase-setup-install.1 +0 -73
- package/dst/man/ase-setup-mcp.1 +0 -124
- package/dst/man/ase-setup-status.1 +0 -60
- package/dst/man/ase-setup-statusline.1 +0 -92
- package/dst/man/ase-setup-telemetry.1 +0 -92
- package/dst/man/ase-setup-uninstall.1 +0 -59
- package/dst/man/ase-setup-update.1 +0 -64
- package/dst/man/ase-setup.1 +0 -93
- package/dst/man/ase-spec-export.1 +0 -62
- package/dst/man/ase-spec-lint.1 +0 -40
- package/dst/man/ase-spec-preview.1 +0 -40
- package/dst/man/ase-spec.1 +0 -46
- package/dst/man/ase-statusline.1 +0 -189
- package/dst/man/ase-task-assign.1 +0 -71
- package/dst/man/ase-task-board.1 +0 -384
- package/dst/man/ase-task-delete.1 +0 -35
- package/dst/man/ase-task-edit.1 +0 -46
- package/dst/man/ase-task-idscheme.1 +0 -65
- package/dst/man/ase-task-lifecycle.1 +0 -57
- package/dst/man/ase-task-list.1 +0 -47
- package/dst/man/ase-task-load.1 +0 -36
- package/dst/man/ase-task-newid.1 +0 -61
- package/dst/man/ase-task-purge.1 +0 -37
- package/dst/man/ase-task-rename.1 +0 -44
- package/dst/man/ase-task-request.1 +0 -61
- package/dst/man/ase-task-save.1 +0 -48
- package/dst/man/ase-task-status.1 +0 -55
- package/dst/man/ase-task-store.1 +0 -194
- package/dst/man/ase-task-view.1 +0 -40
- package/dst/man/ase-task.1 +0 -160
- package/dst/man/ase-util-compat.1 +0 -25
- package/dst/man/ase-util-diagram.1 +0 -76
- package/dst/man/ase-util-meta.1 +0 -45
- package/dst/man/ase-util-metric.1 +0 -54
- package/dst/man/ase-util-mint.1 +0 -59
- package/dst/man/ase-util-worktree.1 +0 -72
- package/dst/man/ase-util.1 +0 -50
- 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>
|