@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
@@ -1,264 +0,0 @@
1
- ---
2
- name: ase-code-craft
3
- argument-hint: "[--help|-h] [--auto|-a] [--dry|-d] [--direct|-D] [--interactive|-i] [--quick|-Q] [--next|-n <option>[,...]] [<task-id>:] <feature>"
4
- description: >
5
- Craft Source Code:
6
- Use when user wants to "create", "add", or "craft" a new feature from scratch.
7
- user-invocable: true
8
- disable-model-invocation: false
9
- effort: xhigh
10
- allowed-tools:
11
- - "Skill"
12
- - "Agent"
13
- - "Read"
14
- ---
15
-
16
- @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
17
- @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
18
- @${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md
19
- @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
20
-
21
- <purpose name="ase-code-craft">
22
- Craft Source Code
23
- </purpose>
24
-
25
- <expand name="getopt"
26
- arg1="ase-code-craft"
27
- arg2="--auto|-a --dry|-d --direct|-D --interactive|-i --quick|-Q --next|-n=(none|DONE|EDIT|GRILL|PREFLIGHT|IMPLEMENT)...">
28
- $ARGUMENTS
29
- </expand>
30
-
31
- <if condition="<getopt-option-quick/> is equal `true`">
32
- The `--quick`/`-Q` flag is a *shorthand alias*: set <getopt-option-auto/>
33
- to `true`, <getopt-option-dry/> to `true`, and <getopt-option-next/> to
34
- `IMPLEMENT,DELETE`. Do not output anything.
35
- </if>
36
-
37
- <if condition="<getopt-option-interactive/> is equal `true`">
38
- The `--interactive`/`-i` flag *implies* the `--direct`/`-D` mode: set
39
- <getopt-option-direct/> to `true`. Do not output anything.
40
- </if>
41
-
42
- <objective>
43
- From scratch *craft* the following feature:
44
- <feature><getopt-arguments/></feature>
45
- </objective>
46
-
47
- @${CLAUDE_SKILL_DIR}/../../meta/ase-format-task.md
48
- @${CLAUDE_SKILL_DIR}/../../meta/ase-tenets.md
49
- @${CLAUDE_SKILL_DIR}/../../meta/ase-common-code.md
50
-
51
- Procedure
52
- ---------
53
-
54
- <if condition="<getopt-option-direct/> is not equal to 'true'">
55
- You *MUST* *NOT* call `Edit`, `Write`, `NotebookEdit`, or any
56
- filesystem-modifying tool, nor execute any filesystem-modifying
57
- shell command, during this entire skill. The *only* permitted way
58
- to persist artifacts is via the `ase_task_save(...)` MCP tool.
59
- </if>
60
- <else>
61
- The `--direct`/`-D` mode applies the crafting *in place*, so STEP 4
62
- below *requires* `Edit` and `Write` to modify the affected artifacts.
63
- Every modification *MUST* still stay restricted to the artifacts the
64
- crafting actually demands, and you *MUST* *NOT* call
65
- `ase_task_save(...)`, as no task plan is composed at all.
66
- </else>
67
-
68
- <flow>
69
-
70
- 1. <step id="STEP 1: Reason About Feature">
71
-
72
- 1. <if condition="
73
- <feature/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
74
- ">
75
- Set <ase-task-id><feature/></ase-task-id> (set task id to feature)
76
- and <feature></feature> (set feature empty), call the
77
- `ase_task_id(id: "<ase-task-id/>", session: "<ase-session-id/>")` tool
78
- from the `ase` MCP server to switch the task, and then only
79
- output the following <template/>:
80
-
81
- <template>
82
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task given**
83
- </template>
84
- </if>
85
-
86
- 2. <if condition="
87
- <feature/> has the format `<id/>: <text/>` AND
88
- <id/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
89
- ">
90
- Set <feature><text/></feature> and
91
- <ase-task-id><id/></ase-task-id> and call the `ase_task_id(id:
92
- "<ase-task-id/>", session: "<ase-session-id/>")` tool from the
93
- `ase` MCP server to implicitly switch the task. Do not output
94
- anything.
95
- </if>
96
-
97
- 3. <if condition="<feature/> is empty">
98
- Ask the user interactively, without a special tool, for the
99
- initial feature with a single question:
100
-
101
- `**No feature known yet. What is the feature you want to craft?**`
102
-
103
- Then set <feature/> to the response of the user.
104
- </if>
105
-
106
- 4. <if condition="
107
- <ase-task-id/> is equal `default` and
108
- <feature/> is not empty
109
- ">
110
- Set <ase-task-id/> to a unique task id, derived from <feature/>,
111
- which consists of two lower-case words concatenated with a
112
- `-` character. Then call the `ase_task_id(id: "<ase-task-id/>",
113
- session: "<ase-session-id/>")` tool from the `ase` MCP server to
114
- implicitly switch the task. Do not output anything.
115
- </if>
116
-
117
- 5. Report the task and feature with the following <template/>:
118
-
119
- <template>
120
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**
121
- ⧉ **ASE**: ⇌ feature: **<feature/>**
122
- </template>
123
-
124
- 6. Figure out what the requested <feature/> to be crafted is about.
125
-
126
- 7. Ask the user for clarification if the goal of this crafting is too
127
- unclear.
128
-
129
- 8. Do not output anything else in this step, unless you asked the user.
130
-
131
- </step>
132
-
133
- 2. <step id="STEP 2: Investigate Code Base">
134
-
135
- 1. Check the existing source files for all code which is related to the
136
- requested new <feature/>.
137
-
138
- 2. Check the architecture of the existing code base to understand the
139
- overall structures and dynamics.
140
-
141
- 3. Do not output anything in this STEP 2.
142
-
143
- </step>
144
-
145
- 3. <step id="STEP 3: Internalize Crafting Tenets">
146
-
147
- 1. <task-kind>CRAFTING</task-kind>
148
-
149
- 2. <expand name="code-tenets" arg1="<task-kind/>"></expand>
150
-
151
- 3. Do not output anything in this STEP 3.
152
-
153
- </step>
154
-
155
- 4. <if condition="<getopt-option-direct/> is equal to 'true'">
156
-
157
- <step id="STEP 4: Direct Feature Crafting">
158
-
159
- 1. Directly craft the <feature/> by modifying the affected
160
- *artifacts* with a corresponding, complete *change set*,
161
- based on your gathered knowledge about the code base and your
162
- internalized crafting tenets. Also, if a CHANGELOG.md
163
- file exists, make an appropriate entry there, too.
164
-
165
- 2. Output only the following <template/>:
166
-
167
- <template>
168
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **changes directly applied**
169
- </template>
170
-
171
- 3. <if condition="<getopt-option-interactive/> is equal `true`">
172
- Enter the *interactive crafting loop*:
173
-
174
- <while condition="`true`">
175
-
176
- 1. In the following, you *MUST* *NOT* use your built-in
177
- <user-dialog-tool/> tool! Instead, you *MUST* just show a
178
- custom dialog according to the expanded `custom-dialog`
179
- definition. You *MUST* closely follow this definition.
180
-
181
- Ask the user for the next change with the following
182
- custom dialog:
183
-
184
- <expand name="custom-dialog" arg1="--other">
185
- Next Change: What is the next change to craft?
186
- DONE: Finish the interactive crafting loop
187
- </expand>
188
-
189
- 2. If <result/> is `DONE` or `CANCEL`, <break/>.
190
-
191
- 3. Otherwise <result/> has the format `OTHER: <text/>`: set
192
- <feature/> to <text/>, then directly craft it and report
193
- it exactly as specified by the items 1 and 2 above
194
- (including the CHANGELOG.md entry).
195
-
196
- </while>
197
- </if>
198
-
199
- 4. Then *IMMEDIATELY* *STOP* all further skill processing. You
200
- *MUST* *NOT* output anything else in this STEP 4 or after it --
201
- *independent* of <ase-project-boxing/>, whose exposure rules
202
- are explicitly *overridden* here. Especially, do not output a
203
- change summary, a list of modified artifacts, a rationale, or
204
- a unified diff of the changes.
205
-
206
- </step>
207
-
208
- </if>
209
- <else>
210
-
211
- <step id="STEP 4: Choose Feature Crafting Approaches">
212
-
213
- <expand name="code-approaches" arg1="feature" arg2="crafting"></expand>
214
-
215
- </step>
216
-
217
- <step id="STEP 5: Compose Feature Crafting Plan">
218
-
219
- 1. *Compose a feature plan* for the chosen feature A<n/> by
220
- closely aligning to the existing architecture and the existing
221
- code base. Use the <format/> defined for a task plan and inject
222
- the information from feature A<n/> and all derived realization
223
- decisions into it. Store the resulting task plan in <task-content/>.
224
-
225
- If a `CHANGELOG.md` file exists in the project (or in any
226
- affected sub-package), the plan *MUST* include, as part of its
227
- `## CHANGES` section, an explicit bullet point describing
228
- the addition of a corresponding new entry to that `CHANGELOG.md`
229
- file, aligned with its existing style and conventions.
230
-
231
- <if condition="<getopt-option-dry/> is equal `true`">
232
- You *MUST* completely omit the `## VERIFICATION` section
233
- (including its heading and all of its bullet points) from
234
- <task-content/>.
235
- </if>
236
-
237
- You *MUST* *NOT* call `Edit`, `Write`, `NotebookEdit`, or any
238
- filesystem-modifying tool during this step.
239
-
240
- 2. Call the `ase_timestamp(format: "yyyy-LL-dd HH:mm")` tool of the
241
- `ase` MCP server and use the `text` field of its response for
242
- <timestamp-created/> and <timestamp-modified/> information. Then
243
- insert the current <ase-task-id/>, <timestamp-created/>,
244
- <timestamp-modified/>, and <task-kind/> information.
245
-
246
- 3. You then *MUST* *save* the resulting plan content with the
247
- `ase_task_save(id: "<ase-task-id/>", text: "<task-content/>")`
248
- MCP tool call only -- *NEVER* by executing a shell command.
249
-
250
- 4. Output a hint with the following <template/>:
251
-
252
- <template>
253
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **plan created**
254
- </template>
255
-
256
- 5. Directly pass-through control to the next skill:
257
-
258
- <expand name="code-next-dispatch"></expand>
259
-
260
- </step>
261
-
262
- </else>
263
-
264
- </flow>
@@ -1,122 +0,0 @@
1
-
2
- ## NAME
3
-
4
- `ase-code-craft` - Craft Source Code
5
-
6
- ## SYNOPSIS
7
-
8
- `ase-code-craft`
9
- [`--help`|`-h`]
10
- [`--auto`|`-a`]
11
- [`--dry`|`-d`]
12
- [`--direct`|`-D`]
13
- [`--interactive`|`-i`]
14
- [`--quick`|`-Q`]
15
- [`--next`|`-n` *option*[,...]]
16
- [*task-id*:] *feature*
17
-
18
- ## DESCRIPTION
19
-
20
- The `ase-code-craft` skill crafts a *new feature* from scratch by
21
- investigating the existing code base, internalizing crafting tenets
22
- (KISS, YAGNI, DRY, SRP, loose coupling, ...), proposing one or more
23
- *feature approaches* with pros and cons, letting the user pick the
24
- preferred approach, and composing a corresponding *task plan* aligned
25
- with the existing architecture.
26
-
27
- By default the skill does *not* directly modify source files. It
28
- persists the plan via `ase_task_save` and then hands off to
29
- `ase-task-edit`, `ase-task-preflight`, or `ase-task-implement`, as
30
- selected by `--next`. Only under `--direct` it skips the plan
31
- entirely and applies the change set to the affected artifacts itself.
32
-
33
- ## OPTIONS
34
-
35
- - `--auto`|`-a`:
36
- Automatically pick the recommended feature approach without
37
- asking the user via the interactive dialog.
38
-
39
- - `--dry`|`-d`:
40
- Compose the plan *without* the `## VERIFICATION` section. When
41
- `ase-task-implement` later applies such a plan, it strictly skips
42
- the entire verification phase (no build, tests, linter,
43
- type-checker, or program execution) once the source files have
44
- been modified.
45
-
46
- - `--direct`|`-D`:
47
- Craft the feature *immediately* and *in place*: skip the
48
- feature approaches, the interactive dialog, and the entire task
49
- plan ceremony, and directly apply the complete change set to the
50
- affected artifacts, including a corresponding entry in an existing
51
- `CHANGELOG.md` file. In this mode `--auto`, `--dry`, `--quick`, and
52
- `--next` have no effect, as neither approaches are proposed nor a
53
- plan is composed.
54
-
55
- - `--interactive`|`-i`:
56
- Craft *interactively*: implies `--direct` and, once the initial
57
- *feature* has been applied, repeatedly asks for the *next change*
58
- with a free-text dialog and immediately applies it in place, too,
59
- until the user stops the loop by answering `DONE`.
60
-
61
- - `--quick`|`-Q`:
62
- Shorthand alias for `-a -d -n IMPLEMENT,DELETE`: automatically pick
63
- the recommended feature approach, compose the plan *without* the
64
- `## VERIFICATION` section, immediately hand off to `ase-task-implement`,
65
- and finally `ase-task-delete` the now-consumed plan. This gives a
66
- single, fast *one-shot* crafting mode.
67
-
68
- - `--next`|`-n` *option*[,...]:
69
- Automatically choose the next step after composing the plan.
70
- *option* is a single token or a *comma-separated chronological
71
- list* of tokens; an `IMPLEMENT`, `PREFLIGHT`, or `GRILL` head token
72
- is consumed by this skill (bypassing `ase-task-edit`), and any
73
- remaining tokens are *forwarded* (via `--next`) to the downstream
74
- skill. For all other head tokens, the *entire* list is forwarded
75
- to `ase-task-edit`, which consumes its head itself. This lets an
76
- entire pipeline be pre-scripted in one shot. Recognized tokens at
77
- this skill: `none` (default, hand off to `ase-task-edit`
78
- interactively), `DONE` (stop), `EDIT` (hand off to
79
- `ase-task-edit`), `GRILL` (hand off to `ase-task-grill`),
80
- `PREFLIGHT` (hand off to `ase-task-preflight`),
81
- or `IMPLEMENT` (hand off to `ase-task-implement`). Example:
82
- `--next PREFLIGHT,IMPLEMENT,DONE` crafts the plan, preflights it,
83
- implements it, and exits without further dialog.
84
-
85
- ## ARGUMENTS
86
-
87
- - [*task-id*:] *feature*:
88
- Description of the *feature* to craft. Optionally prefixed with
89
- a *task-id* followed by a colon to bind the resulting plan to
90
- a specific task id.
91
-
92
- ## SCENARIOS
93
-
94
- - You want to add a new feature to the code base
95
- - You want feature approaches with pros and cons before any code changes
96
- - You want a task plan composed for building something new
97
- - You want a fast one-shot crafting without any plan ceremony
98
-
99
- ## EXAMPLES
100
-
101
- Craft a new logging feature:
102
-
103
- ```text
104
- ❯ /ase-code-craft add structured JSON logging with log levels
105
- ```
106
-
107
- Craft a feature under a named task and directly hand off to implementation:
108
-
109
- ```text
110
- ❯ /ase-code-craft --next IMPLEMENT auth: add JWT authentication middleware
111
- ```
112
-
113
- Craft interactively, applying one change after the other in place:
114
-
115
- ```text
116
- ❯ /ase-code-craft -i add a --verbose option to the CLI
117
- ```
118
-
119
- ## SEE ALSO
120
-
121
- [`ase-code-refactor`](../ase-code-refactor/help.md), [`ase-code-resolve`](../ase-code-resolve/help.md), [`ase-task-edit`](../ase-task-edit/help.md),
122
- [`ase-task-grill`](../ase-task-grill/help.md), [`ase-task-preflight`](../ase-task-preflight/help.md), [`ase-task-implement`](../ase-task-implement/help.md).
@@ -1,232 +0,0 @@
1
- ---
2
- name: ase-code-refactor
3
- argument-hint: "[--help|-h] [--auto|-a] [--dry|-d] [--direct|-D] [--quick|-Q] [--next|-n <option>[,...]] [<task-id>:] <request>"
4
- description: >
5
- Refactor Code:
6
- Use when user wants to "refactor" or "change" the code base.
7
- user-invocable: true
8
- disable-model-invocation: false
9
- effort: xhigh
10
- allowed-tools:
11
- - "Skill"
12
- - "Agent"
13
- - "Read"
14
- ---
15
-
16
- @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
17
- @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
18
- @${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md
19
- @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
20
-
21
- <purpose name="ase-code-refactor">
22
- Refactor Source Code
23
- </purpose>
24
-
25
- <expand name="getopt"
26
- arg1="ase-code-refactor"
27
- arg2="--auto|-a --dry|-d --direct|-D --quick|-Q --next|-n=(none|DONE|EDIT|GRILL|PREFLIGHT|IMPLEMENT)...">
28
- $ARGUMENTS
29
- </expand>
30
-
31
- <if condition="<getopt-option-quick/> is equal `true`">
32
- The `--quick`/`-Q` flag is a *shorthand alias*: set <getopt-option-auto/>
33
- to `true`, <getopt-option-dry/> to `true`, and <getopt-option-next/> to
34
- `IMPLEMENT,DELETE`. Do not output anything.
35
- </if>
36
-
37
- <objective>
38
- *Refactor* existing artifacts the following way:
39
- <request><getopt-arguments/></request>
40
- </objective>
41
-
42
- @${CLAUDE_SKILL_DIR}/../../meta/ase-format-task.md
43
- @${CLAUDE_SKILL_DIR}/../../meta/ase-tenets.md
44
- @${CLAUDE_SKILL_DIR}/../../meta/ase-common-code.md
45
-
46
- Procedure
47
- ---------
48
-
49
- <if condition="<getopt-option-direct/> is not equal to 'true'">
50
- You *MUST* *NOT* call `Edit`, `Write`, `NotebookEdit`, or any
51
- filesystem-modifying tool, nor execute any filesystem-modifying
52
- shell command, during this entire skill. The *only* permitted way
53
- to persist artifacts is via the `ase_task_save(...)` MCP tool.
54
- </if>
55
- <else>
56
- The `--direct`/`-D` mode applies the refactoring *in place*, so STEP 4
57
- below *requires* `Edit` and `Write` to modify the affected artifacts.
58
- Every modification *MUST* still stay restricted to the artifacts the
59
- refactoring actually demands, and you *MUST* *NOT* call
60
- `ase_task_save(...)`, as no task plan is composed at all.
61
- </else>
62
-
63
- <flow>
64
-
65
- 1. <step id="STEP 1: Reason About Refactoring">
66
-
67
- 1. <if condition="
68
- <request/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
69
- ">
70
- Set <ase-task-id><request/></ase-task-id> (set task id to request)
71
- and <request></request> (set request empty), call the
72
- `ase_task_id(id: "<ase-task-id/>", session: "<ase-session-id/>")` tool
73
- from the `ase` MCP server to switch the task, and then only
74
- output the following <template/>:
75
-
76
- <template>
77
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task given**
78
- </template>
79
- </if>
80
-
81
- 2. <if condition="
82
- <request/> has the format `<id/>: <text/>` AND
83
- <id/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
84
- ">
85
- Set <request><text/></request> and
86
- <ase-task-id><id/></ase-task-id> and call the `ase_task_id(id:
87
- "<ase-task-id/>", session: "<ase-session-id/>")` tool from the
88
- `ase` MCP server to implicitly switch the task. Do not output
89
- anything.
90
- </if>
91
-
92
- 3. <if condition="<request/> is empty">
93
- Ask the user interactively, without a special tool, for the
94
- initial request with a single question:
95
-
96
- `**No refactoring details known yet. What is the refactoring you want to request?**`
97
-
98
- Then set <request/> to the response of the user.
99
- </if>
100
-
101
- 4. <if condition="
102
- <ase-task-id/> is equal `default` and
103
- <request/> is not empty
104
- ">
105
- Set <ase-task-id/> to a unique task id, derived from <request/>,
106
- which consists of two lower-case words concatenated with a
107
- `-` character. Then call the `ase_task_id(id: "<ase-task-id/>",
108
- session: "<ase-session-id/>")` tool from the `ase` MCP server to
109
- implicitly switch the task. Do not output anything.
110
- </if>
111
-
112
- 5. Report the task and request with the following <template/>:
113
-
114
- <template>
115
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**
116
- ⧉ **ASE**: ⇌ request: **<request/>**
117
- </template>
118
-
119
- 6. Figure out what the artifact refactoring <request/> is about.
120
-
121
- 7. Ask the user for clarification if the goal of this refactoring is
122
- too unclear.
123
-
124
- 8. Do not output anything else in this step, unless you asked the user.
125
-
126
- </step>
127
-
128
- 2. <step id="STEP 2: Investigate Code Base">
129
-
130
- 1. Check the existing source files for all code which is related to the
131
- refactoring <request/>.
132
-
133
- 2. Check the architecture of the existing code base to understand the
134
- overall structures and dynamics.
135
-
136
- 3. Do not output anything in this STEP 2.
137
-
138
- </step>
139
-
140
- 3. <step id="STEP 3: Internalize Refactoring Tenets">
141
-
142
- 1. <task-kind>REFACTORING</task-kind>
143
-
144
- 2. <expand name="code-tenets" arg1="<task-kind/>"></expand>
145
-
146
- 3. Do not output anything in this STEP 3.
147
-
148
- </step>
149
-
150
- 4. <if condition="<getopt-option-direct/> is equal to 'true'">
151
-
152
- <step id="STEP 4: Direct Refactoring">
153
-
154
- 1. Directly apply the refactoring <request/> by modifying the
155
- affected *artifacts* with a corresponding, complete *change set*,
156
- based on your gathered knowledge about the code base and your
157
- internalized refactoring tenets. Also, if a CHANGELOG.md
158
- file exists, make an appropriate entry there, too.
159
-
160
- 2. Output only the following <template/>:
161
-
162
- <template>
163
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **changes directly applied**
164
- </template>
165
-
166
- 3. Then *IMMEDIATELY* *STOP* all further skill processing. You
167
- *MUST* *NOT* output anything else in this STEP 4 or after it --
168
- *independent* of <ase-project-boxing/>, whose exposure rules
169
- are explicitly *overridden* here. Especially, do not output a
170
- change summary, a list of modified artifacts, a rationale, or
171
- a unified diff of the changes.
172
-
173
- </step>
174
-
175
- </if>
176
- <else>
177
-
178
- <step id="STEP 4: Choose Refactoring Approaches">
179
-
180
- <expand name="code-approaches" arg1="refactoring" arg2="refactoring"></expand>
181
-
182
- </step>
183
-
184
- <step id="STEP 5: Compose Refactoring Plan">
185
-
186
- 1. *Compose a refactoring plan* for the chosen refactoring A<n/> by
187
- closely aligning to the existing architecture and the existing
188
- code base. Use the <format/> defined for a task plan and inject
189
- the information from refactoring A<n/> and all derived realization
190
- decisions into it. Store the resulting task plan in <task-content/>.
191
-
192
- If a `CHANGELOG.md` file exists in the project (or in any
193
- affected sub-package), the plan *MUST* include, as part of its
194
- `## CHANGES` section, an explicit bullet point describing
195
- the addition of a corresponding new entry to that `CHANGELOG.md`
196
- file, aligned with its existing style and conventions.
197
-
198
- <if condition="<getopt-option-dry/> is equal `true`">
199
- You *MUST* completely omit the `## VERIFICATION` section
200
- (including its heading and all of its bullet points) from
201
- <task-content/>.
202
- </if>
203
-
204
- You *MUST* *NOT* call `Edit`, `Write`, `NotebookEdit`, or any
205
- filesystem-modifying tool during this step.
206
-
207
- 2. Call the `ase_timestamp(format: "yyyy-LL-dd HH:mm")` tool of the
208
- `ase` MCP server and use the `text` field of its response for
209
- <timestamp-created/> and <timestamp-modified/> information. Then
210
- insert the current <ase-task-id/>, <timestamp-created/>,
211
- <timestamp-modified/>, and <task-kind/> information.
212
-
213
- 3. You then *MUST* *save* the resulting plan content with the
214
- `ase_task_save(id: "<ase-task-id/>", text: "<task-content/>")`
215
- MCP tool call only -- *NEVER* by executing a shell command.
216
-
217
- 4. Output a hint with the following <template/>:
218
-
219
- <template>
220
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **plan created**
221
- </template>
222
-
223
- 5. Directly pass through control to the next skill:
224
-
225
- <expand name="code-next-dispatch"></expand>
226
-
227
- </step>
228
-
229
- </else>
230
-
231
- </flow>
232
-