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