@rse/ase 1.0.7 → 2.0.1

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 (279) hide show
  1. package/dst/ase-agent-definition-api.d.ts +184 -0
  2. package/dst/ase-agent-definition-api.js +6 -0
  3. package/dst/ase-agent-definition-builtin/condenser.js +42 -0
  4. package/dst/ase-agent-definition-builtin/editor.js +45 -0
  5. package/dst/ase-agent-definition-builtin/estimator.js +98 -0
  6. package/dst/ase-agent-definition-builtin/implementer.js +121 -0
  7. package/dst/ase-agent-definition-builtin/integrator.js +56 -0
  8. package/dst/ase-agent-definition-builtin/qualifier.js +61 -0
  9. package/dst/ase-agent-definition-builtin/rebooter.js +41 -0
  10. package/dst/ase-agent-definition-builtin/researcher.js +77 -0
  11. package/dst/ase-agent-definition-core.js +827 -0
  12. package/dst/ase-agent-fleet.js +772 -0
  13. package/dst/ase-agent-process.js +232 -0
  14. package/dst/ase-agent-relay-client.js +509 -0
  15. package/dst/ase-agent-relay-core.js +213 -0
  16. package/dst/ase-agent-relay-server-bind.js +242 -0
  17. package/dst/ase-agent-relay-server-cli.js +50 -0
  18. package/dst/ase-agent-runtime-claim.js +189 -0
  19. package/dst/ase-agent-runtime-engine.js +1100 -0
  20. package/dst/ase-agent-runtime-exec.js +275 -0
  21. package/dst/ase-agent-runtime-phase.js +581 -0
  22. package/dst/ase-agent-runtime-request.js +272 -0
  23. package/dst/ase-agent-runtime-tool.js +207 -0
  24. package/dst/ase-agent-runtime.js +1316 -0
  25. package/dst/ase-agent.js +65 -0
  26. package/dst/ase-artifact.js +6 -5
  27. package/dst/ase-config-core.js +465 -0
  28. package/dst/ase-config-schema.js +357 -0
  29. package/dst/ase-config-scope.js +172 -0
  30. package/dst/ase-config.js +25 -585
  31. package/dst/ase-hook.js +228 -111
  32. package/dst/ase-lib-daemon-cli.js +130 -0
  33. package/dst/ase-lib-hash.js +20 -0
  34. package/dst/{ase-log.js → ase-lib-log.js} +40 -7
  35. package/dst/ase-lib-server-bind.js +115 -0
  36. package/dst/ase-lib-server-cli.js +474 -0
  37. package/dst/{ase-table.js → ase-lib-table.js} +1 -1
  38. package/dst/{ase-version.js → ase-lib-version.js} +8 -1
  39. package/dst/ase-man.js +96 -0
  40. package/dst/ase-mcp.js +166 -13
  41. package/dst/{ase-getopt.js → ase-service-getopt.js} +82 -80
  42. package/dst/{ase-markdown.js → ase-service-markdown.js} +18 -11
  43. package/dst/ase-service-otel.js +1246 -0
  44. package/dst/{ase-skills.js → ase-service-skills.js} +29 -64
  45. package/dst/ase-service-state.js +101 -0
  46. package/dst/ase-service.js +269 -81
  47. package/dst/ase-setup-common.js +141 -0
  48. package/dst/ase-setup-mcp.js +359 -0
  49. package/dst/ase-setup-settings.js +837 -0
  50. package/dst/ase-setup.js +113 -869
  51. package/dst/ase-spec.js +31 -19
  52. package/dst/ase-statusline.js +108 -43
  53. package/dst/ase-task-board-core.js +739 -0
  54. package/dst/ase-task-board-filter.js +127 -0
  55. package/dst/ase-task-board-flow.js +237 -0
  56. package/dst/ase-task-board-graph.js +497 -0
  57. package/dst/ase-task-board-stats.js +263 -0
  58. package/dst/ase-task-board-tui-control.js +775 -0
  59. package/dst/ase-task-board-tui-model.js +1008 -0
  60. package/dst/ase-task-board-tui-popup.js +626 -0
  61. package/dst/ase-task-board-tui-style.js +106 -0
  62. package/dst/ase-task-board-tui-view.js +847 -0
  63. package/dst/ase-task-board-tui.js +189 -0
  64. package/dst/ase-task-board-web-client.css +1 -0
  65. package/dst/ase-task-board-web-client.html +20 -0
  66. package/dst/ase-task-board-web-client.js +81 -0
  67. package/dst/ase-task-board-web-server.js +823 -0
  68. package/dst/ase-task-board.js +134 -0
  69. package/dst/ase-task-format.js +757 -0
  70. package/dst/ase-task-request.js +208 -0
  71. package/dst/ase-task-store-client.js +495 -0
  72. package/dst/ase-task-store-core.js +804 -0
  73. package/dst/ase-task-store-issues.js +237 -0
  74. package/dst/ase-task-store-plugin-api.js +6 -0
  75. package/dst/ase-task-store-plugin-ase.js +484 -0
  76. package/dst/ase-task-store-plugin-delegate.js +137 -0
  77. package/dst/ase-task-store-plugin-gitea.js +666 -0
  78. package/dst/ase-task-store-plugin-github.js +696 -0
  79. package/dst/ase-task-store-plugin-gitlab.js +668 -0
  80. package/dst/ase-task-store-server-bind.js +538 -0
  81. package/dst/ase-task-store-server-cli.js +154 -0
  82. package/dst/ase-task.js +1335 -357
  83. package/dst/{ase-compat.js → ase-util-compat.js} +2 -2
  84. package/dst/{ase-diagram.js → ase-util-diagram.js} +107 -32
  85. package/dst/{ase-meta.js → ase-util-meta.js} +2 -2
  86. package/dst/{ase-metric.js → ase-util-metric.js} +2 -2
  87. package/dst/{ase-mint.js → ase-util-mint.js} +19 -12
  88. package/dst/{ase-worktree.js → ase-util-worktree.js} +30 -19
  89. package/dst/ase-util.js +20 -0
  90. package/dst/ase.js +108 -32
  91. package/dst/man/ase-agent-adhoc.1 +515 -0
  92. package/dst/man/ase-agent-condenser.1 +193 -0
  93. package/dst/man/ase-agent-editor.1 +212 -0
  94. package/dst/man/ase-agent-estimator.1 +214 -0
  95. package/dst/man/ase-agent-fleet.1 +185 -0
  96. package/dst/man/ase-agent-implementer.1 +233 -0
  97. package/dst/man/ase-agent-integrator.1 +213 -0
  98. package/dst/man/ase-agent-qualifier.1 +214 -0
  99. package/dst/man/ase-agent-rebooter.1 +193 -0
  100. package/dst/man/ase-agent-relay.1 +128 -0
  101. package/dst/man/ase-agent-researcher.1 +217 -0
  102. package/dst/man/ase-agent.1 +264 -0
  103. package/dst/man/ase-artifact-list.1 +38 -0
  104. package/dst/man/ase-artifact-name.1 +39 -0
  105. package/dst/man/ase-artifact.1 +56 -0
  106. package/dst/man/ase-config-delete.1 +45 -0
  107. package/dst/man/ase-config-edit.1 +48 -0
  108. package/dst/man/ase-config-get.1 +46 -0
  109. package/dst/man/ase-config-init.1 +60 -0
  110. package/dst/man/ase-config-list.1 +42 -0
  111. package/dst/man/ase-config-set.1 +52 -0
  112. package/dst/man/ase-config.1 +231 -0
  113. package/dst/man/ase-hook-permission-request.1 +36 -0
  114. package/dst/man/ase-hook-pre-tool-use.1 +59 -0
  115. package/dst/man/ase-hook-session-end.1 +47 -0
  116. package/dst/man/ase-hook-session-persona.1 +37 -0
  117. package/dst/man/ase-hook-session-start.1 +81 -0
  118. package/dst/man/ase-hook-stop.1 +34 -0
  119. package/dst/man/ase-hook-user-prompt-submit.1 +34 -0
  120. package/dst/man/ase-hook.1 +51 -0
  121. package/dst/man/ase-man.1 +67 -0
  122. package/dst/man/ase-mcp.1 +61 -0
  123. package/dst/man/ase-service-log.1 +43 -0
  124. package/dst/man/ase-service-send.1 +47 -0
  125. package/dst/man/ase-service-start.1 +54 -0
  126. package/dst/man/ase-service-status.1 +46 -0
  127. package/dst/man/ase-service-stop.1 +37 -0
  128. package/dst/man/ase-service.1 +85 -0
  129. package/dst/man/ase-setup-disable.1 +44 -0
  130. package/dst/man/ase-setup-enable.1 +45 -0
  131. package/dst/man/ase-setup-install.1 +73 -0
  132. package/dst/man/ase-setup-mcp.1 +124 -0
  133. package/dst/man/ase-setup-status.1 +60 -0
  134. package/dst/man/ase-setup-statusline.1 +92 -0
  135. package/dst/man/ase-setup-telemetry.1 +92 -0
  136. package/dst/man/ase-setup-uninstall.1 +59 -0
  137. package/dst/man/ase-setup-update.1 +64 -0
  138. package/dst/man/ase-setup.1 +93 -0
  139. package/dst/man/ase-spec-export.1 +62 -0
  140. package/dst/man/ase-spec-lint.1 +40 -0
  141. package/dst/man/ase-spec-preview.1 +40 -0
  142. package/dst/man/ase-spec.1 +46 -0
  143. package/dst/man/ase-statusline.1 +189 -0
  144. package/dst/man/ase-task-assign.1 +71 -0
  145. package/dst/man/ase-task-board.1 +384 -0
  146. package/dst/man/ase-task-delete.1 +35 -0
  147. package/dst/man/ase-task-edit.1 +46 -0
  148. package/dst/man/ase-task-idscheme.1 +65 -0
  149. package/dst/man/ase-task-lifecycle.1 +57 -0
  150. package/dst/man/ase-task-list.1 +47 -0
  151. package/dst/man/ase-task-load.1 +36 -0
  152. package/dst/man/ase-task-newid.1 +61 -0
  153. package/dst/man/ase-task-purge.1 +37 -0
  154. package/dst/man/ase-task-rename.1 +44 -0
  155. package/dst/man/ase-task-request.1 +61 -0
  156. package/dst/man/ase-task-save.1 +48 -0
  157. package/dst/man/ase-task-status.1 +55 -0
  158. package/dst/man/ase-task-store.1 +194 -0
  159. package/dst/man/ase-task-view.1 +40 -0
  160. package/dst/man/ase-task.1 +160 -0
  161. package/dst/man/ase-util-compat.1 +25 -0
  162. package/dst/man/ase-util-diagram.1 +76 -0
  163. package/dst/man/ase-util-meta.1 +45 -0
  164. package/dst/man/ase-util-metric.1 +54 -0
  165. package/dst/man/ase-util-mint.1 +59 -0
  166. package/dst/man/ase-util-worktree.1 +72 -0
  167. package/dst/man/ase-util.1 +50 -0
  168. package/dst/man/ase.1 +124 -0
  169. package/package.json +81 -21
  170. package/plugin/.claude-plugin/plugin.json +1 -1
  171. package/plugin/.codex-plugin/plugin.json +1 -1
  172. package/plugin/.github/plugin/plugin.json +1 -1
  173. package/plugin/agents/ase-meta-diagram.md +12 -8
  174. package/plugin/agents/ase-repo-review.md +322 -0
  175. package/plugin/hooks/hooks-codex.json +5 -0
  176. package/plugin/hooks/hooks-copilot.json +5 -0
  177. package/plugin/hooks/hooks.json +8 -0
  178. package/plugin/meta/ase-common-approach.md +117 -0
  179. package/plugin/meta/ase-common-changeset.md +256 -0
  180. package/plugin/meta/ase-common-code.md +10 -173
  181. package/plugin/meta/ase-common-grill.md +317 -0
  182. package/plugin/meta/ase-common-resolve.md +305 -0
  183. package/plugin/meta/ase-common-task.md +83 -4
  184. package/plugin/meta/ase-constitution.md +0 -2
  185. package/plugin/meta/ase-format-specbook.md +208 -25
  186. package/plugin/meta/ase-format-specbook.yaml +242 -851
  187. package/plugin/meta/ase-format-task.md +669 -125
  188. package/plugin/meta/ase-persona.md +3 -4
  189. package/plugin/meta/ase-skill.md +9 -0
  190. package/plugin/mods/ase-mods.ts +409 -0
  191. package/plugin/mods/claude-code.d.ts +13417 -0
  192. package/plugin/skills/ase-arch-analyze/SKILL.md +1 -1
  193. package/plugin/skills/ase-arch-analyze/help.md +2 -2
  194. package/plugin/skills/ase-code-analyze/SKILL.md +59 -8
  195. package/plugin/skills/ase-code-analyze/help.md +29 -4
  196. package/plugin/skills/ase-code-edit/SKILL.md +107 -181
  197. package/plugin/skills/ase-code-edit/help.md +118 -31
  198. package/plugin/skills/ase-code-lint/SKILL.md +64 -13
  199. package/plugin/skills/ase-code-lint/help.md +32 -2
  200. package/plugin/skills/ase-docs-proofread/SKILL.md +4 -4
  201. package/plugin/skills/ase-docs-proofread/help.md +1 -1
  202. package/plugin/skills/ase-docs-refine/SKILL.md +4 -4
  203. package/plugin/skills/ase-docs-shorten/SKILL.md +4 -4
  204. package/plugin/skills/ase-help-intent/data.md +2164 -1087
  205. package/plugin/skills/ase-help-intent/help.md +1 -1
  206. package/plugin/skills/ase-help-skill/catalog.md +12 -9
  207. package/plugin/skills/ase-meta-brainstorm/SKILL.md +1 -1
  208. package/plugin/skills/ase-meta-config/SKILL.md +3 -4
  209. package/plugin/skills/ase-meta-config/help.md +31 -10
  210. package/plugin/skills/ase-meta-mint/SKILL.md +5 -5
  211. package/plugin/skills/ase-meta-mint/help.md +10 -5
  212. package/plugin/skills/ase-meta-why/help.md +1 -1
  213. package/plugin/skills/ase-meta-workflow/SKILL.md +7 -7
  214. package/plugin/skills/ase-meta-workflow/help.md +4 -4
  215. package/plugin/skills/ase-meta-workflow/sample.md +3 -3
  216. package/plugin/skills/ase-meta-workflow/workflow.txt +22 -18
  217. package/plugin/skills/{ase-meta-changelog → ase-repo-changelog}/SKILL.md +4 -3
  218. package/plugin/skills/{ase-meta-changelog → ase-repo-changelog}/help.md +5 -5
  219. package/plugin/skills/{ase-meta-commit → ase-repo-commit}/SKILL.md +6 -6
  220. package/plugin/skills/{ase-meta-commit → ase-repo-commit}/help.md +5 -5
  221. package/plugin/skills/{ase-meta-diff → ase-repo-diff}/SKILL.md +6 -6
  222. package/plugin/skills/{ase-meta-diff → ase-repo-diff}/help.md +8 -8
  223. package/plugin/skills/{ase-code-dissect → ase-repo-dissect}/SKILL.md +19 -19
  224. package/plugin/skills/{ase-code-dissect → ase-repo-dissect}/help.md +10 -12
  225. package/plugin/skills/ase-repo-merge/SKILL.md +346 -0
  226. package/plugin/skills/ase-repo-merge/help.md +107 -0
  227. package/plugin/skills/ase-repo-resolve/SKILL.md +158 -0
  228. package/plugin/skills/ase-repo-resolve/help.md +102 -0
  229. package/plugin/skills/ase-repo-review/SKILL.md +406 -0
  230. package/plugin/skills/ase-repo-review/help.md +181 -0
  231. package/plugin/skills/ase-spec-edit/SKILL.md +117 -183
  232. package/plugin/skills/ase-spec-edit/help.md +107 -26
  233. package/plugin/skills/ase-sync-reconcile/help.md +1 -1
  234. package/plugin/skills/ase-task-assign/SKILL.md +111 -0
  235. package/plugin/skills/ase-task-assign/help.md +119 -0
  236. package/plugin/skills/ase-task-condense/SKILL.md +21 -21
  237. package/plugin/skills/ase-task-condense/help.md +12 -10
  238. package/plugin/skills/ase-task-delete/SKILL.md +1 -1
  239. package/plugin/skills/ase-task-dissect/SKILL.md +71 -48
  240. package/plugin/skills/ase-task-dissect/help.md +10 -9
  241. package/plugin/skills/ase-task-edit/SKILL.md +379 -94
  242. package/plugin/skills/ase-task-edit/help.md +95 -22
  243. package/plugin/skills/ase-task-estimate/SKILL.md +492 -0
  244. package/plugin/skills/ase-task-estimate/help.md +158 -0
  245. package/plugin/skills/ase-task-grill/SKILL.md +246 -138
  246. package/plugin/skills/ase-task-grill/help.md +129 -26
  247. package/plugin/skills/ase-task-id/SKILL.md +8 -1
  248. package/plugin/skills/ase-task-id/help.md +6 -3
  249. package/plugin/skills/ase-task-implement/SKILL.md +535 -145
  250. package/plugin/skills/ase-task-implement/help.md +138 -47
  251. package/plugin/skills/ase-task-integrate/SKILL.md +549 -0
  252. package/plugin/skills/ase-task-integrate/help.md +187 -0
  253. package/plugin/skills/ase-task-list/SKILL.md +55 -23
  254. package/plugin/skills/ase-task-list/help.md +45 -21
  255. package/plugin/skills/ase-task-reboot/SKILL.md +84 -43
  256. package/plugin/skills/ase-task-reboot/help.md +28 -8
  257. package/plugin/skills/ase-task-rename/SKILL.md +10 -2
  258. package/plugin/skills/ase-task-research/SKILL.md +386 -0
  259. package/plugin/skills/ase-task-research/help.md +102 -0
  260. package/plugin/skills/ase-task-status/SKILL.md +137 -0
  261. package/plugin/skills/ase-task-status/help.md +80 -0
  262. package/plugin/skills/ase-task-view/SKILL.md +49 -24
  263. package/plugin/skills/ase-task-view/help.md +19 -9
  264. package/plugin/agents/ase-meta-review.md +0 -187
  265. package/plugin/skills/ase-code-craft/SKILL.md +0 -264
  266. package/plugin/skills/ase-code-craft/help.md +0 -122
  267. package/plugin/skills/ase-code-refactor/SKILL.md +0 -232
  268. package/plugin/skills/ase-code-refactor/help.md +0 -109
  269. package/plugin/skills/ase-code-resolve/SKILL.md +0 -289
  270. package/plugin/skills/ase-code-resolve/help.md +0 -116
  271. package/plugin/skills/ase-meta-review/SKILL.md +0 -210
  272. package/plugin/skills/ase-meta-review/help.md +0 -96
  273. package/plugin/skills/ase-task-preflight/SKILL.md +0 -166
  274. package/plugin/skills/ase-task-preflight/help.md +0 -82
  275. /package/dst/{ase-ignore.js → ase-lib-ignore.js} +0 -0
  276. /package/dst/{ase-stdio.js → ase-lib-stdio.js} +0 -0
  277. /package/dst/{ase-kv.js → ase-service-kv.js} +0 -0
  278. /package/dst/{ase-sleep.js → ase-service-sleep.js} +0 -0
  279. /package/dst/{ase-timestamp.js → ase-service-timestamp.js} +0 -0
@@ -8,50 +8,103 @@
8
8
  `ase-task-implement`
9
9
  [`--help`|`-h`]
10
10
  [`--next`|`-n` *option*[,...]]
11
- [`--worktree`|`-w`]
11
+ [`--worktree`|`-w` *name*]
12
+ [`--source`|`-s` *source*]
13
+ [`--changeset`|`-c` *changeset*]
14
+ [`--draft`|`-d`]
15
+ [`--stateless`|`-S`]
12
16
  [*id*]
13
17
 
14
18
  ## DESCRIPTION
15
19
 
16
20
  The `ase-task-implement` skill performs the *final implementation* of
17
- a task plan by modifying the corresponding *artifacts* with a complete
18
- *change set*. The plan is loaded and any optional `IMPLEMENTATION DRAFT`
19
- section produced by `ase-task-preflight` is taken over *1:1* as the
20
- change set -- the draft is assumed to be user-reviewed, so no fresh
21
- implementation is created and only parts which actually fail are
22
- adjusted, guided by the plain plan content. Afterwards the plan's
23
- `Properties:` frontmatter key gains the value `implemented` (plus
24
- `verified`, if the verification phase actually ran and succeeded), and
25
- its `Status:` key becomes `COMPLETED` if the change set was applied
26
- completely and successfully.
21
+ a task plan by creating a complete *change set* from the plan's
22
+ *source* (the code basis) into the plan's *changeset* (the location of
23
+ the change set). Delivering the change set from there into the plan's
24
+ *target* is the separate concern of `ase-task-integrate`. Afterwards
25
+ the checkboxes of the realized `DOM`/`IFC`/`ARC`/`IMP` bullet-points
26
+ and of the performed and succeeded `REG`/`CON` bullet-points are ticked
27
+ to `[x]` (or `[/]` if only partially realized or succeeded), refreshing
28
+ the plan's `Modified:` key. Bullet-points in state `[-]` (cancelled) or
29
+ `[>]` (deferred) are *skipped*: they are neither realized nor checked,
30
+ do not count against completeness, and keep their checkbox untouched.
31
+
32
+ The *source* is selected by the plan's `Source:` frontmatter key
33
+ (if absent, the configured default `project.task.default.source`),
34
+ overridable via `--source`:
35
+
36
+ - `worktree` (default): the *origin* working copy (the one the skill
37
+ was started in) with its checked-out branch.
38
+ - `branch:`*name*: the existing branch *name*. For a `worktree`
39
+ changeset without `--worktree`, the origin working copy is
40
+ *switched* to it in place first, but only if it has *no*
41
+ uncommitted changes, otherwise the skill stops and touches nothing.
42
+
43
+ A context worktree created by `--worktree` carries its *own* branch
44
+ *name*, which starts at the source (so the source branch itself is never
45
+ checked out there and stays available as the integration target), while
46
+ a reused one keeps its own base, so earlier work in it is continued.
47
+
48
+ The *changeset* is selected by the plan's `Changeset:` frontmatter
49
+ key (if absent, the configured default `project.task.default.changeset`),
50
+ overridable via `--changeset`:
51
+
52
+ - `worktree` (default): the change set stays *uncommitted* in the
53
+ context worktree.
54
+ - `branch:`*name*: the change set is *committed* onto the branch
55
+ *name* -- created from the source if missing -- inside the worktree
56
+ in which this branch is checked out, or inside a newly created
57
+ worktree `.ase/worktree/<name>`.
58
+ - `attachment:`*name*: the change set is made and verified in a
59
+ *temporary* worktree, detached at the source commit, and stored as
60
+ the attachment block of type `text/x-diff; charset=utf-8;
61
+ kind="<name>"` (with its base commit in the `Desc:` key) of the
62
+ plan only, leaving all artifacts untouched. An already existing
63
+ attachment of this kind is re-applied first, so re-runs build the
64
+ change set *cumulatively*. A *stale* one -- older than the plan --
65
+ stops the skill with an error, and an already *delivered* one --
66
+ marked `merged` in its `Desc:` key by `ase-task-integrate
67
+ --no-cleanup` -- is not re-applied, but replaced by a fresh change
68
+ set. The `--draft` shorthand selects
69
+ `attachment:draft`, the *implementation draft* of the plan, which
70
+ can be reviewed via `ase-task-view --full` and delivered via
71
+ `ase-task-integrate --draft`. An undelivered draft is *ignored* by
72
+ any other changeset (with a warning), as only `attachment:draft`
73
+ builds upon it.
74
+
75
+ For derived changesets (`branch:` and `attachment:`), *uncommitted*
76
+ changes of a `worktree` source are *not* carried over, as they start
77
+ at its `HEAD`.
78
+
79
+ The skill does *not* maintain the *change set snapshot* of the plan
80
+ (the attachment block of type `text/x-diff; charset=utf-8;
81
+ kind="changeset"`), which only the `implementer` agent of `ase agent`
82
+ attaches after its implementation, but passes an existing one through
83
+ unchanged.
84
+
85
+ Unless `--stateless` is given, the plan's `Status:` key follows the
86
+ task lifecycle model: for `solo` it stays untouched (as the task is
87
+ closed by `ase-task-integrate`), and for `team` and `enterprise` it
88
+ becomes `IMPLEMENTING` before and `IMPLEMENTED` (if the change set was
89
+ applied completely and successfully) or `STALLED` (otherwise) after
90
+ the implementation.
27
91
 
28
92
  The *kind of change* stated by the plan's `Kind:` frontmatter key
29
- (`CRAFTING`, `REFACTORING`, or `RESOLVING`) selects which
93
+ (`SPECIFYING`, `CRAFTING`, `REFACTORING`, or `RESOLVING`) selects which
30
94
  *operation-specific tenet set* of the **ASE Tenets** is internalized
31
95
  before any artifact is touched, in addition to the always applying
32
96
  **GENERIC TENETS**. If a plan carries no such key, the kind is
33
97
  *inferred* from the plan content, defaulting to `CRAFTING`.
34
98
 
35
- If the task plan deliberately *omits* the `## VERIFICATION` section
36
- (as produced by `ase-code-craft`, `ase-code-refactor`,
37
- `ase-code-resolve`, or `ase-task-edit` when invoked with `--dry`),
99
+ If the task plan deliberately *omits* the `## VERIFICATION (WHEN)` section
100
+ (as produced by `ase-task-edit` when invoked with `--unverified`),
38
101
  the entire verification phase is strictly skipped: no build, tests,
39
102
  linter, type-checker, or program execution is performed once the
40
103
  source files have been modified.
41
104
 
42
- With `--worktree`|`-w`, the change set is *not* applied to the current
43
- working copy: a *fresh Git WorkTree* `.ase/worktree/<id>` and its
44
- equally named branch are created from `HEAD` *before* any artifact is
45
- touched, and the entire implementation -- including all verification
46
- runs -- then happens *inside* that worktree, which is left
47
- *uncommitted*. The worktree is *not* named by an option value: it
48
- always carries the unique *task id*, so worktree and branch stay tied
49
- to the very task plan implemented in them. As the worktree branches off
50
- `HEAD`, *uncommitted* changes of the current working copy are *not*
51
- carried over into it.
52
-
53
- After implementation, the user is asked whether to preserve or
54
- delete the task plan, unless `--next` pre-selects this choice.
105
+ After implementation, the user is asked whether to stop, hand off to
106
+ `ase-task-edit`, hand off to `ase-task-integrate`, or delete the task
107
+ plan, unless `--next` pre-selects this choice.
55
108
 
56
109
  ## OPTIONS
57
110
 
@@ -59,19 +112,41 @@ delete the task plan, unless `--next` pre-selects this choice.
59
112
  Automatically answer the user dialog for the next step. *option*
60
113
  is a single token or a *comma-separated chronological list* of
61
114
  tokens; the *first* token is consumed by this skill, and any
62
- remaining tokens are intentionally *discarded*, because the
63
- downstream `ase-task-delete` skill accepts no `--next` option.
64
- Recognized tokens at this skill: `none` (default, interactive
65
- answer required), `DONE` (preserve task plan and stop), or
66
- `DELETE` (hand off to `ase-task-delete`).
67
-
68
- - `--worktree`|`-w`:
69
- Apply the change set inside a dedicated *Git WorkTree* instead of
70
- the current working copy. The worktree directory `.ase/worktree/<id>`
71
- and its equally named branch are derived from the *task id* and
72
- created from `HEAD`. If either the directory or the branch already
73
- exists, the skill stops and touches nothing. By default, the change
74
- set is applied to the current working copy.
115
+ remaining tokens are *forwarded* (via `--next`) to the downstream
116
+ skill. Recognized tokens at this skill: `none` (default,
117
+ interactive answer required), `DONE` (preserve task plan and stop),
118
+ `EDIT` (hand off to `ase-task-edit`), `INTEGRATE` (hand off to
119
+ `ase-task-integrate`, forwarding `--worktree`, `--changeset`, and
120
+ `--stateless`), or `DELETE` (hand off to `ase-task-delete`).
121
+
122
+ - `--worktree`|`-w` *name*:
123
+ Operate in the *context worktree* `.ase/worktree/<name>` instead
124
+ of the current working copy: it is *reused* if it already exists,
125
+ otherwise it is *created* with its own branch *name* (checked out if
126
+ it exists, created at the source commit otherwise, so the source
127
+ branch itself is never checked out there). The `worktree` value of the
128
+ changeset refers to it, while the `worktree` value of the source
129
+ (and of the target of a subsequent integration) keeps referring to
130
+ the origin working copy, so an integration delivers the change set
131
+ from the context worktree back into the origin branch. The option
132
+ is permitted for a `worktree` changeset only, as a `branch:` or
133
+ `attachment:` changeset would leave the context worktree unused.
134
+
135
+ - `--source`|`-s` *source*:
136
+ Override the plan's `Source:` key (`worktree` or `branch:`*name*)
137
+ for this run, without changing the plan.
138
+
139
+ - `--changeset`|`-c` *changeset*:
140
+ Override the plan's `Changeset:` key (`worktree`, `branch:`*name*,
141
+ or `attachment:`*name*) for this run, without changing the plan.
142
+
143
+ - `--draft`|`-d`:
144
+ Shorthand for `--changeset attachment:draft`: create the
145
+ *implementation draft* of the plan only, leaving all artifacts
146
+ untouched (a dry-run). Mutually exclusive with `--changeset`.
147
+
148
+ - `--stateless`|`-S`:
149
+ Leave the plan's `Status:` key untouched.
75
150
 
76
151
  ## ARGUMENTS
77
152
 
@@ -83,12 +158,14 @@ delete the task plan, unless `--next` pre-selects this choice.
83
158
 
84
159
  - You want a task plan turned into actual changes
85
160
  - You want the planned change set applied and verified
86
- - You want a reviewed implementation draft applied 1:1
161
+ - You want the change set committed onto a dedicated branch
162
+ - You want the change set attached to the plan for review only
163
+ - You want a dry-run of the implementation as a reviewable draft
87
164
  - You want the implementation isolated in a Git worktree
88
165
 
89
166
  ## EXAMPLES
90
167
 
91
- Implement the current task plan:
168
+ Implement the current task plan in the current working copy:
92
169
 
93
170
  ```text
94
171
  ❯ /ase-task-implement
@@ -100,15 +177,29 @@ Implement a specific task and delete the plan when done:
100
177
  ❯ /ase-task-implement --next DELETE hello
101
178
  ```
102
179
 
103
- Implement the task `hello` inside the isolated Git WorkTree
104
- `.ase/worktree/hello`:
180
+ Draft the implementation of the task `hello` and apply the draft when
181
+ done:
182
+
183
+ ```text
184
+ ❯ /ase-task-implement --draft --next INTEGRATE hello
185
+ ```
186
+
187
+ Implement the task `hello` inside the isolated Git worktree
188
+ `.ase/worktree/hello` and integrate it afterwards:
189
+
190
+ ```text
191
+ ❯ /ase-task-implement --worktree hello --next INTEGRATE,DONE hello
192
+ ```
193
+
194
+ Implement the task `hello` by committing its change set onto the
195
+ branch `feature-hello`:
105
196
 
106
197
  ```text
107
- ❯ /ase-task-implement --worktree hello
198
+ ❯ /ase-task-implement --changeset branch:feature-hello hello
108
199
  ```
109
200
 
110
201
  ## SEE ALSO
111
202
 
112
- [`ase-task-edit`](../ase-task-edit/help.md), [`ase-task-preflight`](../ase-task-preflight/help.md), [`ase-task-reboot`](../ase-task-reboot/help.md),
203
+ [`ase-task-edit`](../ase-task-edit/help.md), [`ase-task-integrate`](../ase-task-integrate/help.md),
113
204
  [`ase-task-view`](../ase-task-view/help.md), [`ase-task-delete`](../ase-task-delete/help.md).
114
205