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