@rse/ase 1.0.6 → 2.0.0

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 +351 -0
  29. package/dst/ase-config-scope.js +172 -0
  30. package/dst/ase-config.js +25 -585
  31. package/dst/ase-hook.js +230 -116
  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} +3 -0
  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 +251 -76
  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 +225 -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 +79 -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
@@ -0,0 +1,111 @@
1
+ ---
2
+ name: ase-task-assign
3
+ argument-hint: "[--help|-h] [<id>:] <assignee>"
4
+ description: >
5
+ Assign the current or given task plan to oneself or to somebody else,
6
+ with assigning it to oneself tracking the AI usage (time, tokens, and
7
+ costs) of the session until the task is given back, which adds the
8
+ accumulated usage to the usage attachment of the task. Use when the user
9
+ wants to "assign", "take", "pick up", "give back", "hand over", or
10
+ "unassign" the "task" or "plan".
11
+ user-invocable: true
12
+ disable-model-invocation: false
13
+ effort: high
14
+ ---
15
+
16
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
17
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
18
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
19
+
20
+ <purpose name="ase-task-assign">
21
+ Assign a Task Plan
22
+ </purpose>
23
+
24
+ <expand name="getopt" arg1="ase-task-assign">
25
+ $ARGUMENTS
26
+ </expand>
27
+
28
+ <objective>
29
+ *Assign* the task plan and *account* the AI usage of the session onto it.
30
+ </objective>
31
+
32
+ Procedure
33
+ ---------
34
+
35
+ 1. **Determine Task and Assignee:**
36
+
37
+ 1. Parse <arguments><getopt-arguments/></arguments> (with any
38
+ leading and trailing whitespace stripped) into a
39
+ whitespace-separated list of tokens. Inherit the always
40
+ existing <ase-task-id/>, <ase-session-id/>, <ase-user-id/>, and
41
+ <ase-agent-tool/> from the current context. Set
42
+ <id><ase-task-id/></id> and <assignee></assignee> (empty).
43
+ Do not output anything.
44
+
45
+ 2. <if condition="<arguments/> contains two tokens and the first token ends with `:`">
46
+ Set <id/> to the first token with the trailing `:` removed and
47
+ <assignee/> to the second token. Do not output anything.
48
+ </if>
49
+
50
+ 3. <elseif condition="<arguments/> contains exactly one token which does NOT end with `:`">
51
+ Set <assignee/> to the token. Do not output anything.
52
+ </elseif>
53
+
54
+ 4. <else>
55
+ Only output the following <template/> and then immediately
56
+ *STOP* processing the entire current skill:
57
+
58
+ <template>
59
+ ⧉ **ASE**: ☻ skill: **ase-task-assign**, ▶ ERROR: expected `[<id>:] <assignee>` arguments (use `none` to unassign)
60
+ </template>
61
+ </else>
62
+
63
+ 5. <if condition="<id/> does NOT match the regexp `^[a-zA-Z0-9#][a-zA-Z0-9#_-]*$`">
64
+ Only output the following <template/> and then immediately
65
+ *STOP* processing the entire current skill:
66
+
67
+ <template>
68
+ ⧉ **ASE**: ☻ skill: **ase-task-assign**, ▶ ERROR: invalid task id `<id/>` (expected `^[a-zA-Z0-9#][a-zA-Z0-9#_-]*$`)
69
+ </template>
70
+ </if>
71
+
72
+ 2. **Perform Assignment:**
73
+
74
+ 1. Call the `ase_task_assign(id: "<id/>", assignee: "<assignee/>",
75
+ session: "<ase-session-id/>", tool: "<ase-agent-tool/>")` tool
76
+ of the `ase` MCP server and set <text/> to the `text` output
77
+ field of this tool call. As giving a task back waits for late
78
+ telemetry, this call takes about 10 seconds then. Do not output
79
+ anything related to this MCP tool call.
80
+
81
+ 2. - If <text/> starts with `ERROR:`:
82
+ Only output the following <template/>:
83
+
84
+ <template>
85
+ ⧉ **ASE**: ◉ task: **<id/>**, ▶ status: **<text/>**
86
+ </template>
87
+
88
+ - If <text/> starts NOT with `ERROR:`:
89
+ <if condition="<assignee/> is equal `me` or <ase-user-id/>, and <id/> is NOT equal <ase-task-id/>">
90
+ Call the `ase_task_id(id: "<id/>", session: "<ase-session-id/>")`
91
+ tool of the `ase` MCP server to switch the task, so the usage
92
+ window of the task observes assignee changes made elsewhere, and
93
+ set <ase-task-id><id/></ase-task-id>. Do not output anything
94
+ related to this MCP tool call.
95
+ </if>
96
+
97
+ Set <result/> to the first line of <text/> with the leading
98
+ `OK: ` prefix stripped and only output the following
99
+ <template/>:
100
+
101
+ <template>
102
+ ⧉ **ASE**: ◉ task: **<id/>**, ☺ assignee: **<assignee/>** (*updated*), ▶ <result/>
103
+ </template>
104
+
105
+ If <text/> carries a line `NOTICE: <info/>`, additionally
106
+ output:
107
+
108
+ <template>
109
+ ⧉ **ASE**: ◉ task: **<id/>**, ▶ NOTICE: <info/>
110
+ </template>
111
+
@@ -0,0 +1,119 @@
1
+
2
+ ## NAME
3
+
4
+ `ase-task-assign` - Assign a Task Plan
5
+
6
+ ## SYNOPSIS
7
+
8
+ `ase-task-assign`
9
+ [`--help`|`-h`]
10
+ [*id*`:`] *assignee*
11
+
12
+ ## DESCRIPTION
13
+
14
+ The `ase-task-assign` skill assigns a *task plan* to an *assignee*, i.e.
15
+ sets its `Assignee:` frontmatter key, via the `ase_task_assign` MCP tool,
16
+ leaving its `Modified:` key alone, as that key tracks changes of the plan
17
+ body only. Additionally, it *accounts* the *AI usage* of the session onto
18
+ the task:
19
+
20
+ - Assigning the task to *oneself* (`me` or the current user id) opens
21
+ the *usage window* of the task, or attaches the session to an already
22
+ open one (e.g. of a previous session). From then on, all turns of the
23
+ session are accounted: the AI request time, the cache read, cache
24
+ write, input, and output tokens, and the costs, as reported by the
25
+ agent tool via *OpenTelemetry* to the ASE service, plus, in addition,
26
+ the human time (the whole real time of the window, as the engineer
27
+ costs money even while waiting for the AI) and its costs at the
28
+ hourly rate of the assignee in `telemetry.prices.hr` (default: 110 USD).
29
+
30
+ - Assigning the task to *anybody else*, or to *nobody* with `none`
31
+ (removing the `Assignee:` key), *gives it back*: it closes the usage
32
+ window and, after a grace period of 10 seconds for late telemetry,
33
+ adds the accumulated usage to the usage attachment of the task
34
+ (`Type: application/yaml; kind="usage"`), whose YAML data carries the
35
+ amounts `time: { ai, hr, real }` (minutes), `token: { cread, cwrite,
36
+ input, output }` (counts), and `cost: { ai, hr }` (USD). Each
37
+ booking *adds* to the existing amounts, atomically, so concurrent
38
+ changes of the task (e.g. by the agents of `ase agent`) are never lost.
39
+
40
+ A usage window also closes and books when its last session *ends*, and
41
+ when the `Assignee:` of the task is changed *elsewhere* (e.g. on the task
42
+ board) while the task is the current task of the session. Conversely,
43
+ changing the `Assignee:` of a task to oneself *elsewhere* (e.g. on the
44
+ task board) opens its usage window, too, and attaches every session of
45
+ the project whose current task it is (also a session switching to it,
46
+ or starting with it, later on), with the window starting *paused*, i.e.,
47
+ accounting from the next AI request of its sessions on. An *unassigned*
48
+ task is even accounted *implicitly*, without any assignment: while it is
49
+ the current task of a session, the session is attached to its usage
50
+ window in the same way, until the session switches to another task, the
51
+ task gets assigned to anybody else, or the session ends (configurable via
52
+ `telemetry.implicit`, default: `true`, never for task `default`), so
53
+ explicitly assigning a task to oneself is needed only for claiming it,
54
+ e.g. against the agents of `ase agent`. Long windows
55
+ additionally book every `telemetry.service.interval` minutes (default: 10).
56
+ Without any AI request for `telemetry.service.idle` minutes (default: 30),
57
+ a usage window *pauses*, and the next AI request (of any kind, not just
58
+ ASE skills) silently *resumes* it, so forgetting a task assigned to
59
+ oneself does not account an idle session endlessly. A usage window without
60
+ any AI request for 7 days is closed and booked.
61
+
62
+ The accounting is *opt-in*: it requires the configuration key
63
+ `telemetry.enabled` to be `true` (via `ase config set telemetry.enabled
64
+ true`) and the telemetry export of the agent tool to be activated once
65
+ via `ase setup telemetry activate --tool` *tool*, otherwise only the
66
+ assignee is set and a `NOTICE` is reported. If *id*`:` is omitted, the *current* task id
67
+ (inherited from the session context) is used, otherwise, on a successful
68
+ assignment to *oneself*, the current task id of the session is switched
69
+ to *id*.
70
+
71
+ ## ARGUMENTS
72
+
73
+ - *id*`:`:
74
+ The unique identifier of the task plan, with a trailing colon.
75
+ If omitted, the current task id is used.
76
+
77
+ - *assignee*:
78
+ The assignee: `me` for oneself, `none` for nobody, or any other
79
+ name of a human or agent. If the configuration key `project.users`
80
+ lists the known users, a name which is neither one of them nor the
81
+ name of an agent present at the agent relay is still assigned, but
82
+ reported with a `NOTICE`.
83
+
84
+ ## SCENARIOS
85
+
86
+ - You start working on a task and want its AI usage tracked
87
+ - You hand a task over to a colleague or an agent, booking your usage
88
+ - You want to know the AI time, tokens, and costs spent on a task
89
+
90
+ ## EXAMPLES
91
+
92
+ Take the current task plan and track the AI usage of the session:
93
+
94
+ ```text
95
+ ❯ /ase-task-assign me
96
+ ```
97
+
98
+ Take a specific task plan:
99
+
100
+ ```text
101
+ ❯ /ase-task-assign hello: me
102
+ ```
103
+
104
+ Give the task plan back to a colleague, booking the AI usage:
105
+
106
+ ```text
107
+ ❯ /ase-task-assign alice
108
+ ```
109
+
110
+ Unassign the task plan, booking the AI usage:
111
+
112
+ ```text
113
+ ❯ /ase-task-assign hello: none
114
+ ```
115
+
116
+ ## SEE ALSO
117
+
118
+ [`ase-task-status`](../ase-task-status/help.md), [`ase-task-id`](../ase-task-id/help.md), [`ase-task-view`](../ase-task-view/help.md),
119
+ [`ase-task-list`](../ase-task-list/help.md).
@@ -21,7 +21,7 @@ Condense a Task Plan
21
21
 
22
22
  <expand name="getopt"
23
23
  arg1="ase-task-condense"
24
- arg2="--next|-n=(none|DONE|EDIT|IMPLEMENT|PREFLIGHT)... --int-reuse-task">
24
+ arg2="--next|-n=(none|DONE|EDIT|IMPLEMENT|DRAFT)... --int-reuse-task">
25
25
  $ARGUMENTS
26
26
  </expand>
27
27
 
@@ -74,8 +74,7 @@ Set <args></args> (set args to empty).
74
74
  </if>
75
75
 
76
76
  2. <if condition="<task-content/> is empty">
77
- Complain and tell the user to use the `ase-code-resolve`,
78
- `ase-code-refactor`, `ase-code-craft`, or `ase-task-edit` skills
77
+ Complain and tell the user to use the `ase-task-edit` skill
79
78
  first to create a task plan. Then immediately stop processing
80
79
  this skill.
81
80
  </if>
@@ -88,17 +87,17 @@ Set <args></args> (set args to empty).
88
87
  and unchanged*. Honor the following ruleset *strictly*:
89
88
 
90
89
  1. *Preserve-exactly (never alter)*: the plan <format/>
91
- structure (the frontmatter block with its `Id:`, `Created:`,
92
- `Modified:`, `Status:`, `Properties:`, and `Kind:` keys,
93
- the headings `#`/`##`, all
94
- three `## CONTEXT`, `## CHANGES`, and `## VERIFICATION`
95
- sections, and the `- **<aspect/>**:` bullet labels), all *code spans* and
96
- code blocks, technical terms, file paths, identifiers,
97
- numbers, severities (`LOW`/`MEDIUM`/`HIGH`/`ACCEPTED`), and
98
- the `*<aspect/>*` emphasis highlighting convention.
99
-
100
- 2. *Compress free-text only* (the `**WHAT**`/`**WHY**` prose and
101
- each bullet's `<specification/>` text):
90
+ structure (the entire frontmatter block with all of its keys,
91
+ the headings `#`/`##`, all three `## SPECIFICATION (WHAT)`,
92
+ `## DESIGN (HOW)`, and `## VERIFICATION (WHEN)` sections,
93
+ the `- <box/> <type/>:` bullet-point prefixes with their
94
+ checkbox states, and the entire "backmatter" with all of its
95
+ attachment blocks), all *code spans* and code blocks,
96
+ technical terms, file paths, identifiers, numbers,
97
+ severities (`LOW`/`MEDIUM`/`HIGH`/`ACCEPTED`), and the
98
+ `*<aspect/>*` emphasis highlighting convention.
99
+
100
+ 2. *Compress free-text only* (each bullet-point's <text/>):
102
101
  - *Drop* filler ("just", "really", "basically", "simply"),
103
102
  pleasantries, and hedging ("I think", "maybe", "perhaps").
104
103
  - *Use* shorter synonyms and common abbreviations.
@@ -151,11 +150,11 @@ Set <args></args> (set args to empty).
151
150
 
152
151
  <expand name="task-next-select"
153
152
  arg1="ase-task-condense"
154
- arg2="DONE|EDIT|IMPLEMENT|PREFLIGHT">
153
+ arg2="DONE|EDIT|IMPLEMENT|DRAFT">
155
154
  Next Step: How would you like to proceed with the plan?
156
155
  DONE: Stop processing.
157
156
  EDIT: Hand off plan to editing.
158
- PREFLIGHT: Hand off plan to pre-flighting.
157
+ DRAFT: Hand off plan to implementation drafting.
159
158
  IMPLEMENT: Hand off plan to implementation.
160
159
  </expand>
161
160
 
@@ -190,12 +189,13 @@ Set <args></args> (set args to empty).
190
189
  ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **plan condensed -- hand-off to implementation**
191
190
  </template>
192
191
 
193
- - If <result/> is `PREFLIGHT`:
192
+ - If <result/> is `DRAFT`:
194
193
  <expand name="handoff-args"/>
195
- Only output the following <template/> and then call the
196
- `Skill(skill: "ase:ase-task-preflight", args: "<args/>")` tool
197
- to *apply* the plan.
194
+ Set <args><args/> --draft</args>. Only output the following
195
+ <template/> and then call the
196
+ `Skill(skill: "ase:ase-task-implement", args: "<args/>")` tool
197
+ to *draft* the implementation of the plan.
198
198
 
199
199
  <template>
200
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **plan condensed -- hand-off to pre-flight**
200
+ ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **plan condensed -- hand-off to implementation draft**
201
201
  </template>
@@ -16,13 +16,15 @@ The `ase-task-condense` skill *compresses* the wording of an existing
16
16
  task plan to make it require as little reading as possible, while
17
17
  keeping *all semantics fully preserved and unchanged*. It loads the
18
18
  current (or given) plan, applies a self-contained, telegrapher-like
19
- "remove-fluff" ruleset to the *free-text* parts only (the `**WHAT**` /
20
- `**WHY**` prose and each bullet's specification text), and writes the
21
- shorter plan back via `ase_task_save`.
22
-
23
- The plan *structure* is never altered: all headings, section markers,
24
- `- **<aspect>**:` bullet labels, code spans, technical terms, file
25
- paths, numbers, and severities are kept exactly. Only genuinely
19
+ "remove-fluff" ruleset to the *free-text* parts only (the text of each
20
+ `DOM`, `IFC`, `ARC`, `IMP`, `REG`, and `CON` bullet point), and writes
21
+ the shorter plan back via `ase_task_save`.
22
+
23
+ The plan *structure* is never altered: the frontmatter, all headings,
24
+ the `SPECIFICATION (WHAT)`, `DESIGN (HOW)`, and `VERIFICATION (WHEN)`
25
+ sections, the `- [ ] DOM:`-style bullet prefixes with their checkbox
26
+ states, all attachments, code spans, technical terms, file paths,
27
+ numbers, and severities are kept exactly. Only genuinely
26
28
  redundant bullets may be merged, and a shortening that would change
27
29
  meaning is always rejected in favor of the longer wording. The condense
28
30
  ruleset *overrides* the active session persona, so the plan is compressed
@@ -33,8 +35,8 @@ further reduction is possible, the plan is left untouched (including its
33
35
  `Modified:` frontmatter timestamp) and reported as *already condensed*.
34
36
 
35
37
  After condensing, the user is asked whether to stop or hand off to
36
- `ase-task-edit`, `ase-task-implement`, or `ase-task-preflight`, unless
37
- `--next` pre-selects this choice.
38
+ `ase-task-edit` or `ase-task-implement` (optionally with `--draft`),
39
+ unless `--next` pre-selects this choice.
38
40
 
39
41
  ## OPTIONS
40
42
 
@@ -47,7 +49,7 @@ After condensing, the user is asked whether to stop or hand off to
47
49
  Recognized tokens at this skill: `none` (default, interactive
48
50
  answer required), `DONE` (stop), `EDIT` (hand off to
49
51
  `ase-task-edit`), `IMPLEMENT` (hand off to `ase-task-implement`),
50
- or `PREFLIGHT` (hand off to `ase-task-preflight`). Example:
52
+ or `DRAFT` (hand off to `ase-task-implement --draft`). Example:
51
53
  `--next EDIT,DONE` condenses, hands off to editing, and the editing
52
54
  loop will exit immediately.
53
55
 
@@ -42,7 +42,7 @@ Procedure
42
42
  Do not output anything.
43
43
  </if>
44
44
 
45
- 3. <if condition="<id/> does NOT match the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`">
45
+ 3. <if condition="<id/> does NOT match the regexp `^[a-zA-Z0-9#][a-zA-Z0-9#_-]*$`">
46
46
  Only output the following <template/> and then immediately
47
47
  *STOP* processing the entire current skill:
48
48
 
@@ -50,7 +50,7 @@ Procedure
50
50
  2. React on the task id:
51
51
 
52
52
  <if condition="
53
- <instruction/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*:?$`
53
+ <instruction/> matches the regexp `^[a-zA-Z0-9#][a-zA-Z0-9#_-]*:?$`
54
54
  ">
55
55
  The lone token is the *task id* (with an optional and ignored
56
56
  trailing `:`), never a hint. Set
@@ -68,7 +68,7 @@ Procedure
68
68
 
69
69
  <elseif condition="
70
70
  <instruction/> has the format `<id/>: <text/>` where
71
- <id/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
71
+ <id/> matches the regexp `^[a-zA-Z0-9#][a-zA-Z0-9#_-]*$`
72
72
  ">
73
73
  Set <instruction><text/></instruction> (set instruction to
74
74
  text) and <ase-task-id><id/></ase-task-id> (set task id to
@@ -106,8 +106,7 @@ Procedure
106
106
  <expand name="task-load-content"></expand>
107
107
 
108
108
  2. If the <task-content/> is still empty, complain and tell
109
- the user to use the `ase-code-resolve`, `ase-code-refactor`,
110
- `ase-code-craft`, or `ase-task-edit` skills first to create a
109
+ the user to use the `ase-task-edit` skill first to create a
111
110
  task plan. Then immediately stop processing this skill.
112
111
 
113
112
  3. **Dissect Task Plan:**
@@ -120,12 +119,16 @@ Procedure
120
119
  arg2="<dissect-hint/>"
121
120
  arg3="<ase-task-id/>"
122
121
  >
123
- the individual bullet points of the `## CHANGES` and
124
- `## VERIFICATION` sections of the loaded plan <task-content/>
122
+ the individual bullet points of the `## SPECIFICATION (WHAT)`,
123
+ `## DESIGN (HOW)`, and `## VERIFICATION (WHEN)` sections of the
124
+ loaded plan <task-content/>
125
125
  </expand>
126
126
 
127
- Each `## VERIFICATION` bullet point *MUST* land in the very part
128
- which carries the `## CHANGES` bullet points it verifies.
127
+ Each `## DESIGN (HOW)` bullet point *MUST* land in the very part
128
+ which carries the `## SPECIFICATION (WHAT)` bullet points it
129
+ realizes, and each `## VERIFICATION (WHEN)` bullet point *MUST*
130
+ land in the very part which carries the `## SPECIFICATION (WHAT)`
131
+ and `## DESIGN (HOW)` bullet points it verifies.
129
132
 
130
133
  A *single* bullet point is *not* the smallest unit here: a bullet
131
134
  point which itself covers *multiple* domains or concerns *MAY* be
@@ -133,11 +136,21 @@ Procedure
133
136
  each of which is a complete bullet point of its own, is formed
134
137
  *exclusively* from the wording of the original bullet point, and
135
138
  is then assigned to a part like an ordinary bullet point. A split
136
- `## VERIFICATION` bullet point follows the `## CHANGES` bullet
137
- points its fragments verify, so its fragments *MAY* land in
138
- *different* parts.
139
-
140
- 2. *Report the parts*:
139
+ `## DESIGN (HOW)` or `## VERIFICATION (WHEN)` bullet point
140
+ follows the bullet points its fragments realize or verify, so its
141
+ fragments *MAY* land in *different* parts.
142
+
143
+ 2. *Identify the parts* according to the task id scheme of the
144
+ project: for *every* part in <parts/>, in their derived order,
145
+ call the `ase_task_newid(title: "<scope/>", proposal:
146
+ "<part-id/>", taken: [ <previous/> ])` tool of the `ase` MCP
147
+ server, where <previous/> lists the already re-identified
148
+ <part-id/> of all preceding parts (as the tool reserves ids for
149
+ scheme `seq` only), and replace the <part-id/> of the part with the `id` field
150
+ of its response -- you *MUST* *NEVER* assemble such an id
151
+ yourself. Do not output anything related to these MCP tool calls.
152
+
153
+ 3. *Report the parts*:
141
154
 
142
155
  <expand name="dissect-report" arg1="<ase-task-id/>"></expand>
143
156
 
@@ -204,50 +217,60 @@ Procedure
204
217
  following the plan <format/>, where:
205
218
 
206
219
  - the <task-id/> is <part-id/>,
207
- - the <task-status/> is `DRAFTED` and the <task-properties/>
208
- is `none`, as every part is a *newly created* plan,
209
- - the <task-kind/> is taken over from the epic *verbatim*,
210
- or inferred from the part content if the epic carries no
211
- `Kind:` key,
212
- - the <title/> is derived from the part's <scope/>,
213
- - the `## CONTEXT` section carries a part-local
214
- <summary-what/> and <summary-why/>, derived from the
215
- part's own input elements plus the `## CONTEXT` section
216
- of the epic,
217
- - the `## CHANGES` section carries *exactly* the
218
- `## CHANGES` bullet points assigned to this part,
219
- keeping their original wording, and
220
- - the `## VERIFICATION` section carries *exactly* the
221
- `## VERIFICATION` bullet points assigned to this part,
222
- keeping their original wording.
220
+ - the <task-status/> is the *default* state of the task
221
+ lifecycle model <ase-project-task-lifecycle/>, as every
222
+ part is a *newly created* plan,
223
+ - the `Group:` key carries <ase-task-id/>, the id of the
224
+ epic, so all parts are grouped under it,
225
+ - the `Kind:`, `Phase:`, `Tags:`, `Source:`, `Changeset:`,
226
+ and `Target:` keys are taken over from the epic
227
+ *verbatim* (the kind being
228
+ inferred from the part content if the epic carries no
229
+ `Kind:` key), while the `After:` key of a part lists the
230
+ parts it depends on, if any,
231
+ - the <task-title/> is derived from the part's <scope/>,
232
+ - the `## SPECIFICATION (WHAT)` section carries *exactly*
233
+ the `DOM` and `IFC` bullet points assigned to this part,
234
+ - the `## DESIGN (HOW)` section carries *exactly* the
235
+ `ARC` and `IMP` bullet points assigned to this part, and
236
+ - the `## VERIFICATION (WHEN)` section carries *exactly*
237
+ the `REG` and `CON` bullet points assigned to this part,
238
+
239
+ all bullet points keeping their original wording, checkbox
240
+ state, and type, and no "backmatter" being carried over from
241
+ the epic.
223
242
 
224
243
  For a bullet point which was *split* into fragments, the part
225
- carries *only* its own fragment: the <specification/> keeps
226
- the *original* wording of the portion this fragment covers,
227
- with *no* re-interpretation and *no* added scope, and the
228
- `**<aspect/>**` label is *narrowed* to exactly that portion.
229
- Across all parts, the fragments of a split bullet point
230
- *MUST* still reproduce the original bullet point *completely*
231
- and *without* duplication.
232
-
233
- <if condition="<task-content/> does NOT contain a `## VERIFICATION` section heading">
234
- The epic itself deliberately *omits* the `## VERIFICATION`
235
- section, so you *MUST* omit this section (including its
236
- heading) from <part-content/>, too.
244
+ carries *only* its own fragment: the <text/> keeps the
245
+ *original* wording of the portion this fragment covers, with
246
+ *no* re-interpretation and *no* added scope, and the
247
+ `<box/> <type/>:` prefix is kept *unchanged*. Across all
248
+ parts, the fragments of a split bullet point *MUST* still
249
+ reproduce the original bullet point *completely* and
250
+ *without* duplication.
251
+
252
+ <if condition="<task-content/> does NOT contain a `## VERIFICATION (WHEN)` section heading">
253
+ The epic itself deliberately *omits* the `## VERIFICATION
254
+ (WHEN)` section, so you *MUST* omit this section (including
255
+ its heading) from <part-content/>, too.
237
256
  </if>
238
- <elseif condition="no `## VERIFICATION` bullet point was assigned to this part">
257
+ <elseif condition="no `## VERIFICATION (WHEN)` bullet point was assigned to this part">
239
258
  This part carries *no* verification of its own, so you *MUST*
240
- omit the `## VERIFICATION` section (including its heading)
241
- from <part-content/>, too -- an *empty* section would violate
242
- the plan <format/>, and rule 5 forbids inventing a bullet
243
- point.
259
+ omit the `## VERIFICATION (WHEN)` section (including its
260
+ heading) from <part-content/>, too -- an *empty* section
261
+ would violate the plan <format/>, and rule 5 forbids
262
+ inventing a bullet point.
244
263
  </elseif>
245
264
 
246
265
  2. Call the `ase_task_save(id: "<part-id/>", text:
247
- "<part-content/>")` tool of the `ase` MCP server to persist
266
+ "<part-content/>", create: true)` tool of the `ase` MCP server to persist
248
267
  the sub-task plan -- this MCP tool call is the *only*
249
268
  permitted way to persist it, *NEVER* write the plan file
250
- via `Write`/`Edit` or by executing a shell command. Do not
269
+ via `Write`/`Edit` or by executing a shell command. If this
270
+ call fails because the task already exists (a concurrent
271
+ session took the same id), re-identify this part as in step
272
+ 3.2, replace its <part-id/> in <part-content/>, and save
273
+ again. Do not
251
274
  output anything related to this MCP tool call except the
252
275
  following <template/>:
253
276
 
@@ -22,8 +22,9 @@ it can be implemented, reviewed, and committed entirely on its own.
22
22
 
23
23
  The dissection follows a strict ruleset: at least *2* and at most
24
24
  *count* parts are derived, *every* bullet point of the epic's
25
- `## CHANGES` and `## VERIFICATION` sections is assigned to *exactly
26
- one* part, mutually dependent bullet points are kept together, and
25
+ `## SPECIFICATION (WHAT)`, `## DESIGN (HOW)`, and
26
+ `## VERIFICATION (WHEN)` sections is assigned to *exactly one* part,
27
+ mutually dependent bullet points are kept together, and
27
28
  nothing beyond the epic's own content is invented. A bullet point which
28
29
  itself covers *multiple* domains is *split* into fragments, which are
29
30
  then assigned individually -- together they still reproduce the original
@@ -42,9 +43,11 @@ never the ruleset itself.
42
43
  The derived parts are first reported as a *dissection table* (part
43
44
  number, sub-task id, scope, and rationale). Then -- unless `--dry` is
44
45
  given -- each part is materialized as its own *complete* sub-task plan
45
- (with its own `## CONTEXT`, `## CHANGES`, and `## VERIFICATION`
46
- sections) and persisted under the task id `<task-id>-<feature-slug>`.
47
- The epic plan itself always stays *untouched*.
46
+ (with its own `## SPECIFICATION (WHAT)`, `## DESIGN (HOW)`, and
47
+ `## VERIFICATION (WHEN)` sections, grouped under the epic via its
48
+ `Group:` frontmatter key) and persisted under the task id
49
+ `<task-id>-<feature-slug>`. The epic plan itself always stays
50
+ *untouched*.
48
51
 
49
52
  ## OPTIONS
50
53
 
@@ -54,9 +57,7 @@ The epic plan itself always stays *untouched*.
54
57
 
55
58
  - `--dry`|`-d`:
56
59
  *Report only* -- print the dissection table but create *no*
57
- artifacts at all, so the decision stays fully reversible. Note that
58
- this meaning differs from `--dry`/`-d` in `ase-code-craft`, where it
59
- instead omits the `## VERIFICATION` section of the composed plan.
60
+ artifacts at all, so the decision stays fully reversible.
60
61
 
61
62
  - `--force`|`-f`:
62
63
  Overwrite already existing sub-task plans. Without this option, the
@@ -117,5 +118,5 @@ Dissect a specific task plan with a hint:
117
118
 
118
119
  ## SEE ALSO
119
120
 
120
- [`ase-code-dissect`](../ase-code-dissect/help.md), [`ase-task-edit`](../ase-task-edit/help.md), [`ase-task-condense`](../ase-task-condense/help.md),
121
+ [`ase-repo-dissect`](../ase-repo-dissect/help.md), [`ase-task-edit`](../ase-task-edit/help.md), [`ase-task-condense`](../ase-task-condense/help.md),
121
122
  [`ase-task-implement`](../ase-task-implement/help.md), [`ase-task-list`](../ase-task-list/help.md), [`ase-task-delete`](../ase-task-delete/help.md).