@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,383 @@
1
+ # ase-agent-condenser(1) -- Plan Condensing Agent
2
+
3
+ ## SYNOPSIS
4
+
5
+ `ase agent condenser 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
+ \[`--`*group*`-`*item* *value* \[...\]\]
13
+ \[`-f`|`--foreground`\]
14
+
15
+ `ase agent condenser status`
16
+ \[`-n`|`--name` *name*\]
17
+
18
+ `ase agent condenser log`
19
+ \[`-f`|`--follow`\]
20
+ \[`-n`|`--lines` *n*\]
21
+ \[`--name` *name*\]
22
+
23
+ `ase agent condenser stop`
24
+ \[`-n`|`--name` *name*\]
25
+
26
+ ## DESCRIPTION
27
+
28
+ **ase agent condenser** compresses the wording of the plans of tasks in
29
+ the `Planning` phase of the `enterprise` task lifecycle model (refused
30
+ for any other model), while preserving all their semantics.
31
+
32
+ As a plan is condensed only on the explicit request of a human, the
33
+ condenser claims only the tasks in the state `DRAFTED` whose `Assignee:`
34
+ frontmatter key already is its agent name (default: `condenser`), i.e.,
35
+ which a human assigned to the condenser. Such a task is claimed
36
+ immediately, without waiting for its `After:` predecessors (and, for an
37
+ explicit epic, its group members), except for a predecessor still being
38
+ processed by a condenser or a cancelled `After:` predecessor.
39
+
40
+ The condenser moves each claimed task into `PLANNING`, tags it with
41
+ `ase-agent-condenser:active`, and condenses its plan via the skill
42
+ invocation `ase-task-condense --next DONE` *id*. The processing succeeds
43
+ if the agent tool succeeded and the skill reported no error, which
44
+ includes an already condensed plan, left untouched by the skill.
45
+ Afterwards, on success as well as on failure, the condenser puts the
46
+ task back into `DRAFTED`, removes its tag, and unassigns it. As the
47
+ task is no longer assigned to the condenser, it is not claimed again,
48
+ while assigning it to the condenser again requests another condensing.
49
+
50
+ On an interrupt, a task being processed is put back, untagged and with
51
+ its previous assignee (i.e., still assigned to the condenser), into
52
+ `DRAFTED`. The condenser works in the project root only, so it
53
+ neither requires a Git working copy nor `git`, and it accepts no
54
+ `--repo` and `--tempdir`. See `ase-agent`(1) for the common mechanics of
55
+ all agents.
56
+
57
+ ## OPTIONS
58
+
59
+ - \[`-h`|`--help`\]: Show usage information of `ase agent condenser` (or
60
+ of the given sub-command) only.
61
+
62
+ All other options belong to the sub-commands (see **COMMANDS**).
63
+
64
+ ## COMMANDS
65
+
66
+ - `ase agent condenser start` \[*options*\]: Start the condenser agent in
67
+ the background, logging into `.ase/agent/`*name*`.log`. The agent is
68
+ validated and initialized (e.g., its agent tool is looked up and the
69
+ task lifecycle model is checked) before the command returns (waiting
70
+ up to 30 seconds), so a failing agent is reported together with the
71
+ tail of its log. An agent of the same name already running is left
72
+ alone. The options are:
73
+
74
+ - \[`-n`|`--name` *name*\]: The name of the agent (default:
75
+ `condenser`): up to 64 letters, digits, underscores, and dashes,
76
+ starting with a letter or digit, other than the name of another
77
+ agent kind, `relay`, or `fleet`.
78
+
79
+ It names the agent in its log lines (also in the shared processing
80
+ log attachment `agent`), the `Assignee:` of the tasks it
81
+ processes, and its process files `.ase/agent/`*name*`.yaml` and
82
+ `.ase/agent/`*name*`.log`. Agents of the kind `condenser` under
83
+ different names form a pool, competing for the same tasks, but each
84
+ claims only the tasks explicitly assigned to its own name.
85
+
86
+ - \[`-t`|`--tool` *tool*\]: The headless agent tool processing the
87
+ tasks: `claude` (*Anthropic Claude Code CLI*), `copilot` (*GitHub
88
+ Copilot CLI*), or `codex` (*OpenAI Codex CLI*) (default:
89
+ `$ASE_TOOL`, else `claude`). Its command has to be found in
90
+ `$PATH`.
91
+
92
+ - \[`-p`|`--parallel` *num*\]: The maximum number of tasks processed
93
+ in parallel by this agent (default: `1`), a positive integer.
94
+
95
+ - \[`-T`|`--timeout` *duration*\]: The maximum duration of
96
+ processing a task (the run of the agent tool), as *number* *unit*
97
+ (without a space) with *unit* `s` (seconds), `m` (minutes), or `h`
98
+ (hours) (default: `60m`). A processing exceeding it is aborted and
99
+ counts as failed.
100
+
101
+ - \[`-o`|`--one-shot`\]: Terminate the agent, instead of observing
102
+ for further tasks, once a check of the task store finds no
103
+ dispatchable task while the agent processes no task anymore --
104
+ intended for CI contexts like GitHub Actions, and not allowed in a
105
+ fleet. A task still waiting for its predecessors at that time is
106
+ left for a later run. A check of the task store failing three
107
+ times in a row then terminates the agent with a non-zero exit
108
+ status (instead of being retried endlessly after a growing delay).
109
+
110
+ - \[`--agent-relay` *url*\]: The agent relay to pass the live
111
+ presence of the agent to, as `ase://`*addr*`:`*port*\[`/`*token*\]
112
+ resp. `ases://`*addr*`:`*port*\[`/`*token*\]\[`?insecure`\] for
113
+ HTTPS (default: the configured `project.relay.url`, else none).
114
+ See **AGENT RELAY** in `ase-agent`(1).
115
+
116
+ - \[`--title` *text*\]: The one-line title of the operation of the
117
+ agent (at most 80 characters), shown on the task boards. Built-in:
118
+ `Condense the plans of assigned tasks`.
119
+
120
+ - \[`--description` *text*\]: The brief description of the operation
121
+ of the agent (about 3-6 lines, at most 600 characters, with its
122
+ whitespace collapsed), shown on the task boards. Built-in: a
123
+ description of the operation.
124
+
125
+ - \[`--type` `phase`|`request`\]: The processing type: `phase`
126
+ claims the tasks by their lifecycle status, `request` processes
127
+ the prompt requests attached to the tasks. Generic default:
128
+ `phase`. Built-in: `phase`.
129
+
130
+ - \[`--workdir` *kind*\]: The working directory of the agent tool:
131
+ `project`, `source`, `changeset`, `changeset-read`, or `target`.
132
+ Generic default: `project`. Built-in: `project`.
133
+
134
+ - \[`--lifecycle` *model*\]: A supported task lifecycle model
135
+ (`solo`, `team`, or `enterprise`, repeatable). Generic default:
136
+ every model containing all given states, resp. all models for
137
+ `request` and with `--unclaimed`. Built-in: `enterprise`.
138
+
139
+ - \[`--serial`\]: Process the tasks serially only, ignoring
140
+ `--parallel`. Built-in: not set.
141
+
142
+ - \[`--unclaimed`\]: Process the tasks of the incoming states
143
+ without claiming them, independent of their assignee and
144
+ predecessors, and without ever changing their status and assignee
145
+ (`phase` only). Built-in: not set. Not allowed, as the condenser
146
+ claims the tasks into its activity state.
147
+
148
+ - \[`--params` *name*`=`*value*\]: The value of a parameter
149
+ declared by the definition (repeatable). Built-in: none declared.
150
+
151
+ - \[`--state-incoming` *state*\]: A state of the tasks to claim
152
+ (mandatory for `phase`, repeatable with `--unclaimed` or
153
+ `--state-activity` only). Built-in: `DRAFTED`.
154
+
155
+ - \[`--state-activity` *state*\]: The state of a task during its
156
+ processing. Generic default: the incoming state. Built-in:
157
+ `PLANNING`.
158
+
159
+ - \[`--state-success` *state*\]: The target state on success, or
160
+ `previous` for the incoming state of the claim. Generic default:
161
+ the incoming state. Built-in: `DRAFTED`.
162
+
163
+ - \[`--state-failure` *state*\]: The target state on failure, or
164
+ `previous` for the incoming state of the claim. Generic default:
165
+ the incoming state. Built-in: `DRAFTED`.
166
+
167
+ - \[`--state-phase` *state*\]: The phase success state, into which
168
+ the skill itself can move a task. Generic default: the success
169
+ state, resp. the activity state for a `previous` success state.
170
+ Built-in: not set (hence `DRAFTED`).
171
+
172
+ - \[`--state-passed` *state*\]: The first state from which on a task
173
+ has passed the phase for its `After:` successors. Generic default:
174
+ the phase success state. Built-in: not set (hence `DRAFTED`, the
175
+ first state, so the predecessors impose no gate).
176
+
177
+ - \[`--state-verdict` *VERDICT*`=`*state*\]: The target state per
178
+ verdict (repeatable). Built-in: not set.
179
+
180
+ - \[`--tag-name` *tag*\]: The tag of the processed tasks
181
+ (`ase-agent-`*word*). Generic default: `ase-agent-`*name*, resp.
182
+ for `request` always `ase-agent-`*request-name*. Built-in: not set.
183
+
184
+ - \[`--tag-success` *tag*\]: The tag on success: *tag-name*,
185
+ *tag-name*`:`*value*, or `none` (`phase` only). Generic default:
186
+ *tag-name*. Built-in: `none`.
187
+
188
+ - \[`--tag-failure` *tag*\]: The tag on failure: *tag-name*,
189
+ *tag-name*`:`*value*, or `none` (`phase` only). Generic default:
190
+ *tag-name*. Built-in: `none`.
191
+
192
+ - \[`--tag-require` *tag*\]: A tag a claimable task has to carry
193
+ (repeatable). Built-in: not set.
194
+
195
+ - \[`--tag-exclude` *tag*\]: A tag a claimable task must not carry
196
+ (repeatable). Built-in: not set.
197
+
198
+ - \[`--tag-retry`\]: A shorthand for `--tag-failure none`, so a
199
+ failed task is claimed again after a growing delay (`phase` only).
200
+ Built-in: not set.
201
+
202
+ - \[`--assign-name` *who*\]: The assignee under which the tasks are
203
+ claimed, held, recognized, and released, and which names the
204
+ agent-owned worktrees. Generic default: the agent name. Built-in:
205
+ not set.
206
+
207
+ - \[`--assign-required`\]: Claim only the tasks explicitly assigned
208
+ to *who* of `--assign-name` (`phase` only). Built-in: enabled.
209
+
210
+ - \[`--assign-success` *who*\]: The assignee of a task after its
211
+ successful processing: a name, `none`, or `previous`. Generic
212
+ default: `none` for `phase`, `previous` for `request`. Built-in:
213
+ not set.
214
+
215
+ - \[`--assign-failure` *who*\]: The assignee of a task after its
216
+ failed processing: a name, `none`, or `previous`. Generic default:
217
+ `none` for `phase`, `previous` for `request`. Built-in: not set.
218
+
219
+ - \[`--request-name` *name*\]: The name of the processed requests
220
+ (`request` only). Generic default: the agent name. Built-in: not
221
+ set. Not allowed, as the condenser is of type `phase`.
222
+
223
+ - \[`--request-done` *word*\]: The word naming a processed task in
224
+ the log lines (`request` only). Generic default: `processed`.
225
+ Built-in: not set. Not allowed, as the condenser is of type `phase`.
226
+
227
+ - \[`--prompt-skill` *name*\]: The skill to invoke (mutually
228
+ exclusive with `--prompt-text` and `--prompt-file`). Built-in:
229
+ `ase-task-condense`.
230
+
231
+ - \[`--prompt-args` *template*\]: The argument template of the
232
+ skill. Generic default: `{id}` for `phase`, `{id}: {prompt}` for
233
+ `request`. Built-in: `--next DONE {id}`.
234
+
235
+ - \[`--prompt-text` *template*\]: The prompt text template to invoke
236
+ instead of a skill. Built-in: not set.
237
+
238
+ - \[`--prompt-file` *file*\]: The file with the prompt text template
239
+ to invoke instead of a skill. Built-in: not set.
240
+
241
+ - \[`--prepare-run` *cmd*\]: A shell command run in the working
242
+ directory before the prompt (repeatable). Built-in: not set.
243
+
244
+ - \[`--success-criterion` *criterion*\]: A success criterion:
245
+ `exit`, `clean`, `changed`, `verdict`, `attachment`, or `status`
246
+ (repeatable). Generic default: `exit` and `clean` for `phase`,
247
+ `clean` and `changed` for `request`. Built-in: `exit` and `clean`.
248
+
249
+ - \[`--success-match` *regex*\]: A regular expression an output line
250
+ has to match (repeatable). Built-in: not set.
251
+
252
+ - \[`--verdict-label` *label*\]: The label after which the verdict
253
+ is given in the output. Built-in: not set.
254
+
255
+ - \[`--verdict-allow` *VERDICT*\]: An accepted verdict (repeatable).
256
+ Generic default: the verdicts of `--state-verdict`, else any.
257
+ Built-in: not set.
258
+
259
+ - \[`--attach-output` *kind*\]: The kind of the attachment storing
260
+ the output lines of the prompt. Built-in: not set.
261
+
262
+ - \[`--attach-expect` *spec*\]: The attachment
263
+ \[*mime-type*`;`\]*kind* to be created or changed by the
264
+ processing for the success criterion `attachment`. Built-in: not
265
+ set.
266
+
267
+ - \[`--attach-skip` *spec*\]: The attachment
268
+ \[*mime-type*`;`\]*kind* leaving a task unclaimed (`phase` only).
269
+ Built-in: not set.
270
+
271
+ - \[`--attach-changeset` *kind*\]: The kind of the attachment
272
+ `text/x-diff;`*kind* storing the change set snapshot of the task
273
+ (with `--workdir changeset` or `target` only). Built-in: not set.
274
+
275
+ - \[`--finish-commit`\]: Commit the work onto a `branch:` changeset
276
+ and publish it (with `--workdir changeset` only). Built-in: not
277
+ set. Not allowed, as the condenser works in the project root.
278
+
279
+ - \[`--finish-success` *cmd*\]: A shell command run in the working
280
+ directory after a successful processing. Built-in: not set.
281
+
282
+ - \[`--finish-failure` *cmd*\]: A shell command run in the working
283
+ directory after a failed processing. Built-in: not set.
284
+
285
+ - \[`-f`|`--foreground`\]: Run the agent in the current process
286
+ instead, logging to the terminal, until it is interrupted (e.g.,
287
+ via `CTRL+C`) or stopped, where an agent of the same name already
288
+ running is an error.
289
+
290
+ - \[`-h`|`--help`\]: Show the usage information of the sub-command
291
+ only.
292
+
293
+ The options `--`*group*`-`*item* above override the built-in
294
+ definition of the agent (where an option also replaces its mutually
295
+ exclusive alternatives, e.g., `--prompt-text` replaces the skill of
296
+ `--prompt-skill`), while the agent keeps the identity of its kind (its
297
+ runs, its presence, and its agent-owned worktrees are named after
298
+ `condenser`). See `ase-agent-adhoc`(1) for their full semantics.
299
+
300
+ - `ase agent condenser status` \[`-n`|`--name` *name*\]: Report whether
301
+ the condenser agent of the name *name* (default: `condenser`) is
302
+ running, as `agent` *name*`: running (pid` *pid*`)` resp. `agent`
303
+ *name*`: not running` (exit status 1).
304
+
305
+ - `ase agent condenser log` \[`-f`|`--follow`\] \[`-n`|`--lines` *n*\]
306
+ \[`--name` *name*\]: Show the log `.ase/agent/`*name*`.log` of the
307
+ condenser agent of the name *name* (default: `condenser`) run in the
308
+ background, where an agent of a fleet logs into the log of the fleet
309
+ instead (see `ase-agent-fleet`(1)). Without a log file, an
310
+ informational message is shown only. The options are:
311
+
312
+ - \[`-f`|`--follow`\]: Show the last *n* lines (default: 10) and
313
+ then follow all newly appended lines, in the style of `tail -f`,
314
+ until interrupted.
315
+
316
+ - \[`-n`|`--lines` *n*\]: Show the last *n* lines only (default:
317
+ all, or 10 with `--follow`).
318
+
319
+ - \[`--name` *name*\]: The name of the agent (default: `condenser`),
320
+ given in its long form only, as `-n` is the short form of
321
+ `--lines`.
322
+
323
+ - `ase agent condenser stop` \[`-n`|`--name` *name*\]: Stop the condenser
324
+ agent of the name *name* (default: `condenser`) by `SIGTERM`, waiting
325
+ (up to 5 minutes) until it aborted its running processings and put
326
+ their tasks back. An agent not running is reported informationally
327
+ only.
328
+
329
+ ## ENVIRONMENT
330
+
331
+ - `ASE_TOOL`: The default agent tool of `--tool` (default: `claude`).
332
+
333
+ - `ASE_AGENT_RELAY_TOKEN`: The bearer token of the agent relay, if not
334
+ embedded in the URL of `--agent-relay` resp. `project.relay.url`.
335
+
336
+ - `ASE_HEADLESS`: Set to `true` for the agent tool processes spawned by
337
+ the agent.
338
+
339
+ ## FILES
340
+
341
+ - `.ase/agent/`*name*`.yaml`: The process state (kind, process id, and
342
+ process start time) of the agent, existing while it runs.
343
+
344
+ - `.ase/agent/`*name*`.log`: The log of the agent run in the background.
345
+
346
+ - *per-user state
347
+ directory*`/agent-condenser/`*store-hash*`/`*run-id*`.lock` and `.json`:
348
+ The run lock and the run record of each condenser agent process, used
349
+ to recover the tasks of terminated agent processes (see **INTERRUPTS
350
+ AND RECOVERY** in `ase-agent`(1)).
351
+
352
+ ## EXIT STATUS
353
+
354
+ `ase agent condenser start` exits with status `0` once the agent started
355
+ (or was already running), resp. once a foreground agent terminated
356
+ regularly, and with status `1` on any error (e.g., an invalid option, a
357
+ task lifecycle model other than `enterprise`, or a missing agent tool).
358
+ `ase agent condenser status` exits with status `1` if the agent is not
359
+ running.
360
+
361
+ ## EXAMPLES
362
+
363
+ ```sh
364
+ # start the condenser, condensing the plans of the tasks assigned to it
365
+ $ ase agent condenser start
366
+
367
+ # request the condensing of a drafted task by assigning it to the condenser
368
+ $ ase task assign FOO-42 condenser
369
+ ```
370
+
371
+ ## SEE ALSO
372
+
373
+ `ase`(1), `ase-agent`(1), `ase-agent-rebooter`(1),
374
+ `ase-agent-researcher`(1), `ase-agent-implementer`(1),
375
+ `ase-agent-qualifier`(1), `ase-agent-integrator`(1),
376
+ `ase-agent-editor`(1), `ase-agent-estimator`(1), `ase-agent-adhoc`(1),
377
+ `ase-agent-fleet`(1), `ase-agent-relay`(1), `ase-task`(1),
378
+ `ase-task-board`(1).
379
+
380
+ ## AUTHOR
381
+
382
+ Dr. Ralf S. Engelschall <rse@engelschall.com>
383
+