@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,184 @@
1
+
2
+ ## NAME
3
+
4
+ `ase-spec-lint` - Lint Specification
5
+
6
+ ## SYNOPSIS
7
+
8
+ `ase-spec-lint`
9
+ [`--help`|`-h`]
10
+ [`--auto`|`-a`]
11
+ [`--severity`|`-S`=(`AUTO`|`LOW`|`MEDIUM`|`HIGH`)]
12
+ [`--force`|`-f`]
13
+ [`--include`|`-i`=*aspect*[`,`...]]
14
+ [`--exclude`|`-e`=*aspect*[`,`...]]
15
+ [`--staged`]
16
+ [`--unstaged`]
17
+ [*spec-reference*]
18
+
19
+ ## DESCRIPTION
20
+
21
+ The `ase-spec-lint` skill lints the *SpecBook*-based specification
22
+ (SPEC) for *potential quality problems* related to a fixed set of
23
+ specification quality aspects: from its syntax and formatting, over
24
+ its individual statements, up to the logical gaps of its model and its
25
+ completeness for an implementation. The investigation is dispatched to
26
+ sub-agents (`ase:ase-spec-lint`) so that scanning details do not leak
27
+ into the user-visible transcript.
28
+
29
+ For each detected problem, the skill renders a unified-diff *SOLUTION*
30
+ preview and either asks the user to `ACCEPT` or `REJECT` the proposed
31
+ correction interactively (or refine it via a free-text hint, which
32
+ re-proposes the correction without limit) or - with `--auto` - applies
33
+ all corrections automatically. Every applied correction refreshes the
34
+ `Modified:` timestamp of the changed specification files.
35
+
36
+ By default all ten specification quality aspects are checked. The
37
+ `--include` and `--exclude` options narrow this to an *effective aspect
38
+ set*: with `--include` only, exactly the listed aspects are checked;
39
+ with `--exclude` only, all aspects except the listed ones; with both,
40
+ the included ones minus the excluded ones. An unknown aspect id, or a
41
+ combination which cancels out to an empty set, aborts the skill with an
42
+ error. The ten aspect ids are:
43
+
44
+ ```text
45
+ S01 SYNTAX S04 AMBIGUITY S07 REDUNDANCY S10 COMPLETENESS
46
+ S02 FORMAT S05 ATOMICITY S08 CONSISTENCY
47
+ S03 RATIONALE S06 REALIZATION S09 LOGIC
48
+ ```
49
+
50
+ The `S01 SYNTAX` aspect reports the diagnostics of the specification
51
+ linting against the *SpecBook* schema configuration of the project and
52
+ of the generic Markdown linting via *markdownlint* (both as with `ase
53
+ spec lint --markdown`), mapping the severity `error` onto `HIGH` and
54
+ `warning` onto `MEDIUM`. The `S02 FORMAT` aspect checks the formatting
55
+ against the *SpecBook* format variants and the prevailing conventions
56
+ of the specification itself. The aspects `S03 RATIONALE` up to `S07
57
+ REDUNDANCY` check the statements against the *Specifying Tenets* of
58
+ *ASE*: a `, BECAUSE` rationale per statement, unambiguous and
59
+ verifiable statements, atomic statements, intent instead of
60
+ realization, and a single source of truth per fact.
61
+
62
+ The *model-wide* aspects `S07 REDUNDANCY` up to `S10 COMPLETENESS` are
63
+ judged on the *entire* specification, even if only parts of it are
64
+ linted: `S08 CONSISTENCY` checks for contradictions and drifting
65
+ terminology, `S09 LOGIC` for logical gaps in the specification model
66
+ (like unreachable states or entities without any relationship), and
67
+ `S10 COMPLETENESS` for open ends which would force an implementer to
68
+ guess. As the corrections of `S09 LOGIC` and `S10 COMPLETENESS` fill
69
+ gaps with *best-guess* content, they are proposed for review only and
70
+ are *never* applied under `--auto`.
71
+
72
+ ## OPTIONS
73
+
74
+ - `--auto`|`-a`:
75
+ Automatically apply every proposed correction without asking the
76
+ user via the interactive dialog, except for the best-guess
77
+ corrections of the aspects `S09 LOGIC` and `S10 COMPLETENESS`,
78
+ which are only reported.
79
+
80
+ - `--severity`|`-S`=(`AUTO`|`LOW`|`MEDIUM`|`HIGH`):
81
+ Set the *severity floor* (default `AUTO`): findings below the chosen
82
+ threshold are silently suppressed, ordered `LOW` < `MEDIUM` <
83
+ `HIGH`. The default `AUTO` means `MEDIUM` for a project with `grey`
84
+ boxing (unless `--force` is given) and `LOW` (keep all findings)
85
+ otherwise; an explicitly given floor always wins over the `grey`
86
+ boxing, i.e. e.g. with `LOW`, it acts on all findings of a project
87
+ with `grey` boxing. `ACCEPTED` findings are never suppressed.
88
+ Surviving findings are reported in *descending severity* order
89
+ `HIGH`, `MEDIUM`, `LOW`, `ACCEPTED`, keeping the `file`/`line` order
90
+ within the same severity.
91
+
92
+ - `--force`|`-f`:
93
+ Ignore the project boxing entirely: lint a project with `black`
94
+ boxing (which is otherwise not linted at all), and show the full
95
+ unified diffs and the default `LOW` severity floor for a project
96
+ with `grey` boxing (which otherwise shows only condensed one-line
97
+ diffs and defaults to the `MEDIUM` severity floor).
98
+
99
+ - `--include`|`-i`=*aspect*[`,`...]:
100
+ Restrict the checked specification quality aspects to the given
101
+ comma-separated list of aspect ids (e.g. `S01,S02`). Without this
102
+ option, all ten aspects are checked.
103
+
104
+ - `--exclude`|`-e`=*aspect*[`,`...]:
105
+ Remove the given comma-separated list of aspect ids from the checked
106
+ specification quality aspects. Applied *after* `--include`, so
107
+ `-i S09,S10 -e S10` checks `S09` only.
108
+
109
+ - `--staged`:
110
+ Restrict the linting to the specification files with *staged* Git
111
+ changes. Deleted files are skipped, and the files are linted in
112
+ their current working copy state. Combined with `--unstaged`, lint
113
+ the specification files with *any* uncommitted Git changes.
114
+
115
+ - `--unstaged`:
116
+ Restrict the linting to the specification files with *unstaged* Git
117
+ changes plus the *untracked* specification files. Deleted files are
118
+ skipped. Combined with `--staged`, lint the specification files with
119
+ *any* uncommitted Git changes.
120
+
121
+ ## ARGUMENTS
122
+
123
+ - *spec-reference*:
124
+ A file, directory, or wildcard reference to the specification files
125
+ to lint. Without it, the *entire* specification is linted, resp.
126
+ under `--staged` or `--unstaged` all changed specification files.
127
+
128
+ ## SCENARIOS
129
+
130
+ - You want your specification checked for specification quality problems
131
+ - You want to know whether your specification is sufficient for an implementation
132
+ - You want logical gaps in your specification model detected
133
+ - You want corrections proposed which you accept or reject one by one
134
+ - You want all mechanical corrections applied automatically
135
+ - You want only your staged or unstaged specification changes linted before committing
136
+
137
+ ## EXAMPLES
138
+
139
+ Lint the entire specification interactively:
140
+
141
+ ```text
142
+ ❯ /ase-spec-lint
143
+ ```
144
+
145
+ Lint a single specification file and automatically apply all corrections:
146
+
147
+ ```text
148
+ ❯ /ase-spec-lint --auto docs/spec/data-model.md
149
+ ```
150
+
151
+ Lint the specification for its syntax and formatting only:
152
+
153
+ ```text
154
+ ❯ /ase-spec-lint -i S01,S02
155
+ ```
156
+
157
+ Check the specification model for logical gaps and completeness only:
158
+
159
+ ```text
160
+ ❯ /ase-spec-lint -i S09,S10
161
+ ```
162
+
163
+ Lint the specification, reporting only `MEDIUM` and `HIGH` findings:
164
+
165
+ ```text
166
+ ❯ /ase-spec-lint -S MEDIUM
167
+ ```
168
+
169
+ Lint the specification regardless of the project boxing:
170
+
171
+ ```text
172
+ ❯ /ase-spec-lint --force
173
+ ```
174
+
175
+ Lint only the specification files with staged Git changes:
176
+
177
+ ```text
178
+ ❯ /ase-spec-lint --staged
179
+ ```
180
+
181
+ ## SEE ALSO
182
+
183
+ [`ase-spec-edit`](../ase-spec-edit/help.md), [`ase-spec-activate`](../ase-spec-activate/help.md),
184
+ [`ase-code-lint`](../ase-code-lint/help.md), [`ase-sync-export`](../ase-sync-export/help.md).
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ase-task-implement
3
- argument-hint: "[--help|-h] [--next|-n <option>[,...]] [--worktree|-w <name>] [--source|-s <source>] [--changeset|-c <changeset>] [--draft|-d] [--stateless|-S] [<id>]"
3
+ argument-hint: "[--help|-h] [--next|-n <option>[,...]] [--worktree|-w <name>] [--source|-s <source>] [--changeset|-c <changeset>] [--draft|-d] [--no-cleanup|-K] [--stateless|-S] [<id>]"
4
4
  description: >
5
5
  Implement current or given task plan, optionally as an implementation
6
6
  draft attachment only. Use when the user calls to "implement", "realize",
@@ -22,7 +22,7 @@ Implement a Task Plan
22
22
 
23
23
  <expand name="getopt"
24
24
  arg1="ase-task-implement"
25
- arg2="--next|-n=(none|DONE|EDIT|INTEGRATE|DELETE)... --worktree|-w= --source|-s= --changeset|-c= --draft|-d --stateless|-S --int-reuse-task">
25
+ arg2="--next|-n=(none|DONE|EDIT|INTEGRATE|DELETE)... --worktree|-w= --source|-s= --changeset|-c= --draft|-d --no-cleanup|-K --stateless|-S --int-reuse-task">
26
26
  $ARGUMENTS
27
27
  </expand>
28
28
 
@@ -233,8 +233,10 @@ Procedure
233
233
  `git worktree list --porcelain` (taken exactly as given).
234
234
 
235
235
  - If the branch <changeset-name/> is checked out in a
236
- registered worktree, set <work-dir/> to its directory and
237
- <work-label/> to its path. If the command
236
+ registered worktree, set <work-dir/> to its directory,
237
+ <work-label/> to its path, and
238
+ <work-created>false</work-created>, as this *pre-existing*
239
+ worktree is never removed by this skill. If the command
238
240
  `git -C "<work-dir/>" status --porcelain` reports any
239
241
  output, the change set could not be committed separately,
240
242
  so only output the following <template/> and then
@@ -271,7 +273,8 @@ Procedure
271
273
  (each taken exactly as given). If the command fails, only
272
274
  output the same error <template/> as above and then
273
275
  immediately *STOP* processing the entire current skill.
274
- Otherwise, only output the following <template/>:
276
+ Otherwise, set <work-created>true</work-created> and only
277
+ output the following <template/>:
275
278
 
276
279
  <template>
277
280
  ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ◉ worktree: **<work-label/>**, ⎇ branch: **<changeset-name/>**, ▶ status: **worktree created**
@@ -486,8 +489,18 @@ Procedure
486
489
  double-quote (`"`), backtick (`` ` ``), dollar (`$`), or
487
490
  backslash (`\`) characters, and commit the change set by
488
491
  running the command
489
- `git -C "<work-dir/>" commit -m "<message/>"`. If the commit
492
+ `git -C "<work-dir/>" commit -m "<message/>"`. Never add
493
+ `Co-Authored-By` trailers to commit messages. If the commit
490
494
  fails, treat the change set as *not* applied successfully.
495
+ Set <work-removed>false</work-removed>. If
496
+ <getopt-option-no-cleanup/> is not equal `true`,
497
+ <work-created/> is `true`, and the commit (if any) succeeded,
498
+ the change set lives on the branch alone, so remove the
499
+ worktree created by this run by running the commands
500
+ `git worktree remove "<work-dir/>"` and `git worktree prune`
501
+ (taken exactly as given, *never* with `--force`, so a
502
+ worktree with uncommitted changes is kept), and set
503
+ <work-removed>true</work-removed> if the removal succeeded.
491
504
  Do not output anything.
492
505
 
493
506
  - `attachment`: Capture the *cumulative* change set into
@@ -660,6 +673,11 @@ Procedure
660
673
  The change set is uncommitted in `<context-label/>` -- review it there, then use `/ase-task-integrate` to deliver it.
661
674
  </ase-tpl-hint>
662
675
  </if>
676
+ <elseif condition="<changeset-type/> is `branch` and <work-removed/> is `true`">
677
+ <ase-tpl-hint level="minimal">
678
+ The change set is committed on branch `<changeset-name/>` -- review it via `git diff <source-commit/>...<changeset-name/>`, then use `/ase-task-integrate` to deliver it.
679
+ </ase-tpl-hint>
680
+ </elseif>
663
681
  <elseif condition="<changeset-type/> is `branch`">
664
682
  <ase-tpl-hint level="minimal">
665
683
  The change set is committed on branch `<changeset-name/>` in `<work-label/>` -- review it there, then use `/ase-task-integrate` to deliver it.
@@ -12,6 +12,7 @@
12
12
  [`--source`|`-s` *source*]
13
13
  [`--changeset`|`-c` *changeset*]
14
14
  [`--draft`|`-d`]
15
+ [`--no-cleanup`|`-K`]
15
16
  [`--stateless`|`-S`]
16
17
  [*id*]
17
18
 
@@ -54,7 +55,9 @@ overridable via `--changeset`:
54
55
  - `branch:`*name*: the change set is *committed* onto the branch
55
56
  *name* -- created from the source if missing -- inside the worktree
56
57
  in which this branch is checked out, or inside a newly created
57
- worktree `.ase/worktree/<name>`.
58
+ worktree `.ase/worktree/<name>`, which is removed again after the
59
+ commit (unless `--no-cleanup` is given), while an already existing
60
+ worktree is always kept.
58
61
  - `attachment:`*name*: the change set is made and verified in a
59
62
  *temporary* worktree, detached at the source commit, and stored as
60
63
  the attachment block of type `text/x-diff; charset=utf-8;
@@ -161,6 +164,13 @@ plan, unless `--next` pre-selects this choice.
161
164
  *implementation draft* of the plan only, leaving all artifacts
162
165
  untouched (a dry-run). Mutually exclusive with `--changeset`.
163
166
 
167
+ - `--no-cleanup`|`-K`:
168
+ For a `branch:` changeset, keep the worktree `.ase/worktree/<name>`
169
+ newly created by this run, instead of removing it after the commit,
170
+ so the change set can be reviewed, built, and tested there. Without
171
+ this option, the worktree is removed only if it has no uncommitted
172
+ changes, as the change set lives on the branch alone.
173
+
164
174
  - `--stateless`|`-S`:
165
175
  Leave the plan's `Status:` key untouched.
166
176