@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,109 +0,0 @@
1
-
2
- ## NAME
3
-
4
- `ase-code-refactor` - Refactor Artifacts
5
-
6
- ## SYNOPSIS
7
-
8
- `ase-code-refactor`
9
- [`--help`|`-h`]
10
- [`--auto`|`-a`]
11
- [`--dry`|`-d`]
12
- [`--direct`|`-D`]
13
- [`--quick`|`-Q`]
14
- [`--next`|`-n` *option*[,...]]
15
- [*task-id*:] *request*
16
-
17
- ## DESCRIPTION
18
-
19
- The `ase-code-refactor` skill refactors existing artifacts by
20
- investigating the related code, internalizing refactoring tenets
21
- (Behavior Preservation, Boy Scout Rule, DRY, SRP, loose coupling,
22
- clear interfaces, ...), proposing one or more *refactoring approaches*
23
- with pros and cons, letting the user pick the preferred approach,
24
- and composing a corresponding *task plan*.
25
-
26
- By default the skill does *not* directly modify source files. It
27
- persists the plan via `ase_task_save` and then hands off to
28
- `ase-task-edit`, `ase-task-preflight`, or `ase-task-implement`, as
29
- selected by `--next`. Only under `--direct` it skips the plan
30
- entirely and applies the change set to the affected artifacts itself.
31
-
32
- ## OPTIONS
33
-
34
- - `--auto`|`-a`:
35
- Automatically pick the recommended refactoring approach without
36
- asking the user via the interactive dialog.
37
-
38
- - `--dry`|`-d`:
39
- Compose the plan *without* the `## VERIFICATION` section. When
40
- `ase-task-implement` later applies such a plan, it strictly skips
41
- the entire verification phase (no build, tests, linter,
42
- type-checker, or program execution) once the source files have
43
- been modified.
44
-
45
- - `--direct`|`-D`:
46
- Apply the refactoring *immediately* and *in place*: skip the
47
- refactoring approaches, the interactive dialog, and the entire task
48
- plan ceremony, and directly apply the complete change set to the
49
- affected artifacts, including a corresponding entry in an existing
50
- `CHANGELOG.md` file. In this mode `--auto`, `--dry`, `--quick`, and
51
- `--next` have no effect, as neither approaches are proposed nor a
52
- plan is composed.
53
-
54
- - `--quick`|`-Q`:
55
- Shorthand alias for `-a -d -n IMPLEMENT,DELETE`: automatically pick
56
- the recommended refactoring approach, compose the plan *without* the
57
- `## VERIFICATION` section, immediately hand off to `ase-task-implement`,
58
- and finally `ase-task-delete` the now-consumed plan. This gives a
59
- single, fast *one-shot* refactoring mode.
60
-
61
- - `--next`|`-n` *option*[,...]:
62
- Automatically choose the next step after composing the plan.
63
- *option* is a single token or a *comma-separated chronological
64
- list* of tokens; an `IMPLEMENT`, `PREFLIGHT`, or `GRILL` head token
65
- is consumed by this skill (bypassing `ase-task-edit`), and any
66
- remaining tokens are *forwarded* (via `--next`) to the downstream
67
- skill. For all other head tokens, the *entire* list is forwarded
68
- to `ase-task-edit`, which consumes its head itself. This lets an
69
- entire pipeline be pre-scripted in one shot. Recognized tokens at
70
- this skill: `none` (default, hand off to `ase-task-edit`
71
- interactively), `DONE` (stop), `EDIT` (hand off to
72
- `ase-task-edit`), `GRILL` (hand off to `ase-task-grill`),
73
- `PREFLIGHT` (hand off to `ase-task-preflight`),
74
- or `IMPLEMENT` (hand off to `ase-task-implement`). Example:
75
- `--next PREFLIGHT,IMPLEMENT,DONE` refactors, preflights, implements,
76
- and exits without further dialog.
77
-
78
- ## ARGUMENTS
79
-
80
- - [*task-id*:] *request*:
81
- Description of the refactoring *request*. Optionally prefixed
82
- with a *task-id* followed by a colon to bind the resulting plan
83
- to a specific task id.
84
-
85
- ## SCENARIOS
86
-
87
- - You want existing code restructured without changing its behavior
88
- - You want refactoring approaches with pros and cons before any changes
89
- - You want a task plan composed for a cleanup
90
- - You want a one-shot refactoring applied directly in place
91
-
92
- ## EXAMPLES
93
-
94
- Refactor a module into smaller files:
95
-
96
- ```text
97
- ❯ /ase-code-refactor split src/handlers.ts into per-route modules
98
- ```
99
-
100
- Refactor under a named task and directly hand off to implementation:
101
-
102
- ```text
103
- ❯ /ase-code-refactor --next IMPLEMENT cleanup: extract HTTP client into its own class
104
- ```
105
-
106
- ## SEE ALSO
107
-
108
- [`ase-code-craft`](../ase-code-craft/help.md), [`ase-code-resolve`](../ase-code-resolve/help.md), [`ase-task-edit`](../ase-task-edit/help.md),
109
- [`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,289 +0,0 @@
1
- ---
2
- name: ase-code-resolve
3
- argument-hint: "[--help|-h] [--auto|-a] [--dry|-d] [--direct|-D] [--quick|-Q] [--next|-n <option>[,...]] [<task-id>:] <problem>"
4
- description: >
5
- Resolve Problem:
6
- Use when user wants to "bugfix" or "fix" code or "resolve" a problem.
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-resolve">
22
- Resolve Problem
23
- </purpose>
24
-
25
- <expand name="getopt"
26
- arg1="ase-code-resolve"
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
- *Resolve* the following problem:
39
- <problem><getopt-arguments/></problem>
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 resolution *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
- resolution 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 Problem">
66
-
67
- 1. If <problem/> matches the regexp `^[PT]\d+$` (i.e. a bare issue
68
- identifier like `P1`, `P2`, `T1`, `T2`, ...),
69
- set <problem-id><problem/></problem-id> and
70
- <ase-task-id><problem/></ase-task-id>, then call the
71
- `ase_kv_get(key: "ase-issue-<problem-id/>")` tool of
72
- the `ase` MCP server to retrieve the previously persisted
73
- problem description. If the returned `text` is non-empty, set
74
- <problem><text/></problem> and call the `ase_task_id(id:
75
- "<ase-task-id/>", session: "<ase-session-id/>")` tool from the
76
- `ase` MCP server to implicitly switch the task, otherwise
77
- complain to the user that no analyzer result exists for
78
- <problem-id/> and stop processing.
79
-
80
- 2. <if condition="
81
- <problem-id/> is not set AND
82
- <problem/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
83
- ">
84
- Set <ase-task-id><problem/></ase-task-id> (set task id to problem)
85
- and <problem></problem> (set problem empty), call the
86
- `ase_task_id(id: "<ase-task-id/>", session: "<ase-session-id/>")` tool
87
- from the `ase` MCP server to switch the task, and then only
88
- output the following <template/>:
89
-
90
- <template>
91
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task given**
92
- </template>
93
- </if>
94
-
95
- 3. <if condition="
96
- <problem-id/> is not set AND
97
- <problem/> has the format `<id/>: <text/>` AND
98
- <id/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
99
- ">
100
- Set <problem><text/></problem> and
101
- <ase-task-id><id/></ase-task-id> and call the `ase_task_id(id:
102
- "<ase-task-id/>", session: "<ase-session-id/>")` tool from the
103
- `ase` MCP server to implicitly switch the task. Do not output
104
- anything.
105
- </if>
106
-
107
- 4. <if condition="<problem/> is empty">
108
- Ask the user interactively, without a special tool, for the
109
- initial problem with a single question:
110
-
111
- `**No problem details known yet. What is the problem you want to resolve?**`
112
-
113
- Then set <problem/> to the response of the user.
114
- </if>
115
-
116
- 5. <if condition="
117
- <ase-task-id/> is equal `default` and
118
- <problem/> is not empty
119
- ">
120
- Set <ase-task-id/> to a unique task id, derived from <problem/>,
121
- which consists of two lower-case words concatenated with a
122
- `-` character. Then call the `ase_task_id(id: "<ase-task-id/>",
123
- session: "<ase-session-id/>")` tool from the `ase` MCP server to
124
- implicitly switch the task. Do not output anything.
125
- </if>
126
-
127
- 6. Report the task and problem with the following <template/>:
128
-
129
- <template>
130
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**
131
- ⧉ **ASE**: ⇌ problem: **<problem/>**
132
- </template>
133
-
134
- </step>
135
-
136
- 2. <step id="STEP 2: Investigate Code Base">
137
-
138
- 1. Check the existing source files for all code which is related to the
139
- requested <problem/> resolution.
140
-
141
- 2. Check the architecture of the existing code base to understand the
142
- overall structures and dynamics.
143
-
144
- 3. Investigate and *figure out details* related to this problem.
145
-
146
- <if condition="<getopt-option-direct/> is not equal to 'true'">
147
- Report those details with the following <template/>:
148
-
149
- <template>
150
- <ase-tpl-bullet-signal/> **PROBLEM CONTEXT**: *<context/>*
151
- <affected-code-excerpt/>
152
- <optional-diagram/>
153
-
154
- <ase-tpl-bullet-signal/> **PROBLEM DETAILS**: *<summary/>*
155
- ● [...]
156
- ● [...]
157
- ● [...]
158
- </template>
159
-
160
- Hints:
161
-
162
- - Give a short one-sentence <context/> of the <problem/> plus
163
- a short excerpt of the affected code <affected-code-excerpt/>.
164
-
165
- - Give a short one-sentence <summary/> of the <problem/> plus *precise*
166
- but *brief* code processing information to understand the problem.
167
- Try to keep the number of bullet points (●) in the range of 1-4.
168
-
169
- - In case of a *complex context situation* with complex *structure*
170
- (layout, components, dependencies, etc.), complex *control flow*
171
- (branching, concurrency, etc.), complex *state machine* (states,
172
- transitions, etc.), complex *data flow* (actors, messages, etc.), or
173
- complex *data structure* (classes, entities, relationships, etc.),
174
- visualize it with an optional diagram <optional-diagram/> by
175
- building a Mermaid specification <mermaid-spec/> (e.g. `flowchart
176
- TB`, `stateDiagram-v2`, `sequenceDiagram`, `classDiagram`, or
177
- `erDiagram`, depending on intent) and dispatching the rendering
178
- to the `ase-meta-diagram` sub-agent by calling the tool
179
- `Agent(description: "Diagram Rendering", subagent_type:
180
- "ase:ase-meta-diagram", prompt: <mermaid-spec/>,
181
- run_in_background: false)`, reproducing its
182
- returned fenced code block verbatim. Omit <optional-diagram/>
183
- entirely for simple or purely local situations.
184
- </if>
185
-
186
- 4. Do not output anything else in this STEP 2.
187
-
188
- </step>
189
-
190
- 3. <step id="STEP 3: Internalize Problem Resolution Tenets">
191
-
192
- 1. <task-kind>RESOLVING</task-kind>
193
-
194
- 2. <expand name="code-tenets" arg1="<task-kind/>"></expand>
195
-
196
- 3. Do not output anything in this STEP 3.
197
-
198
- </step>
199
-
200
- 4. <if condition="<getopt-option-direct/> is equal to 'true'">
201
-
202
- <step id="STEP 4: Direct Problem Resolution">
203
-
204
- 1. Directly resolve the <problem/> by modifying the affected
205
- *artifacts* with a corresponding, complete *change set*,
206
- based on your gathered knowledge about the code base and your
207
- internalized problem resolution tenets. Also, if a CHANGELOG.md
208
- file exists, make an appropriate entry there, too.
209
-
210
- 2. Output only the following <template/>:
211
-
212
- <template>
213
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **changes directly applied**
214
- </template>
215
-
216
- 3. Then *IMMEDIATELY* *STOP* all further skill processing. You
217
- *MUST* *NOT* output anything else in this STEP 4 or after it --
218
- *independent* of <ase-project-boxing/>, whose exposure rules
219
- are explicitly *overridden* here. Especially, do not output a
220
- change summary, a list of modified artifacts, a rationale, or
221
- a unified diff of the changes.
222
-
223
- </step>
224
-
225
- </if>
226
- <else>
227
-
228
- <step id="STEP 4: Choose Problem Resolution Approaches">
229
-
230
- <expand name="code-approaches" arg1="resolution" arg2="resolution"></expand>
231
-
232
- </step>
233
-
234
- <step id="STEP 5: Compose Problem Resolution Plan">
235
-
236
- 1. *Compose a plan* with code references, a precise description of the
237
- problem, the chosen resolution approach, a preview of the *unified
238
- diff* of the necessary code changes, and a possible way to verify
239
- the success of the resolution, by using the <format/> defined for a
240
- task plan. Store the resulting task plan in <task-content/>.
241
-
242
- If a `CHANGELOG.md` file exists in the project (or in any
243
- affected sub-package), the plan *MUST* include, as part of its
244
- `## CHANGES` section, an explicit bullet point describing
245
- the addition of a corresponding new entry to that `CHANGELOG.md`
246
- file, aligned with its existing style and conventions.
247
-
248
- <if condition="<getopt-option-dry/> is equal `true`">
249
- You *MUST* completely omit the `## VERIFICATION` section
250
- (including its heading and all of its bullet points) from
251
- <task-content/>.
252
- </if>
253
-
254
- You *MUST* *NOT* call `Edit`, `Write`, `NotebookEdit`, or any
255
- filesystem-modifying tool during this step.
256
-
257
- 2. Call the `ase_timestamp(format: "yyyy-LL-dd HH:mm")` tool of the
258
- `ase` MCP server and use the `text` field of its response for
259
- <timestamp-created/> and <timestamp-modified/> information. Then
260
- insert the current <ase-task-id/>, <timestamp-created/>,
261
- <timestamp-modified/>, and <task-kind/> information.
262
-
263
- 3. You then *MUST* *save* the resulting plan content with the
264
- `ase_task_save(id: "<ase-task-id/>", text: "<task-content/>")`
265
- MCP tool call only -- *NEVER* by executing a shell command.
266
-
267
- 4. If <problem-id/> is set (i.e. the <problem/> was retrieved from
268
- `ase_kv_get` in STEP 1.1 via key `ase-issue-<problem-id/>`),
269
- you *MUST* additionally call the `ase_kv_delete(key:
270
- "ase-issue-<problem-id/>")` tool of the `ase` MCP
271
- server to remove the now-resolved analyzer result from the
272
- in-memory key/value store.
273
-
274
- 5. Output a hint with the following <template/>:
275
-
276
- <template>
277
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **plan created**
278
- </template>
279
-
280
- 6. Directly pass through control to the next skill:
281
-
282
- <expand name="code-next-dispatch"></expand>
283
-
284
- </step>
285
-
286
- </else>
287
-
288
- </flow>
289
-
@@ -1,116 +0,0 @@
1
-
2
- ## NAME
3
-
4
- `ase-code-resolve` - Resolve Problem
5
-
6
- ## SYNOPSIS
7
-
8
- `ase-code-resolve`
9
- [`--help`|`-h`]
10
- [`--auto`|`-a`]
11
- [`--dry`|`-d`]
12
- [`--direct`|`-D`]
13
- [`--quick`|`-Q`]
14
- [`--next`|`-n` *option*[,...]]
15
- [*task-id*:] *problem*
16
-
17
- ## DESCRIPTION
18
-
19
- The `ase-code-resolve` skill resolves a *bug* or *problem* by
20
- investigating the related code, internalizing resolution tenets
21
- (Surgical Changes, No Cleanups, Minimum Flags, Code Adequacy, Origin
22
- Proximity, ...), proposing one or more *resolution approaches* with
23
- pros and cons, letting the user pick the preferred approach, and
24
- composing a corresponding *task plan*.
25
-
26
- The *problem* may also be given as a bare issue identifier (e.g. `P1`
27
- or `T1`) previously produced by `ase-code-analyze` or
28
- `ase-arch-analyze` and persisted in the `ase` MCP key/value store
29
- under `ase-issue-<id>`.
30
-
31
- By default the skill does *not* directly modify source files. It
32
- persists the plan via `ase_task_save` and then hands off to
33
- `ase-task-edit`, `ase-task-preflight`, or `ase-task-implement`, as
34
- selected by `--next`. Only under `--direct` it skips the plan
35
- entirely and applies the change set to the affected artifacts itself.
36
-
37
- ## OPTIONS
38
-
39
- - `--auto`|`-a`:
40
- Automatically pick the recommended resolution approach without
41
- asking the user via the interactive dialog.
42
-
43
- - `--dry`|`-d`:
44
- Compose the plan *without* the `## VERIFICATION` section. When
45
- `ase-task-implement` later applies such a plan, it strictly skips
46
- the entire verification phase (no build, tests, linter,
47
- type-checker, or program execution) once the source files have
48
- been modified.
49
-
50
- - `--direct`|`-D`:
51
- Resolve the problem *immediately* and *in place*: skip the
52
- resolution approaches, the interactive dialog, and the entire task
53
- plan ceremony, and directly apply the complete change set to the
54
- affected artifacts, including a corresponding entry in an existing
55
- `CHANGELOG.md` file. In this mode `--auto`, `--dry`, `--quick`, and
56
- `--next` have no effect, as neither approaches are proposed nor a
57
- plan is composed.
58
-
59
- - `--quick`|`-Q`:
60
- Shorthand alias for `-a -d -n IMPLEMENT,DELETE`: automatically pick
61
- the recommended resolution approach, compose the plan *without* the
62
- `## VERIFICATION` section, immediately hand off to `ase-task-implement`,
63
- and finally `ase-task-delete` the now-consumed plan. This gives a
64
- single, fast *one-shot* resolution mode.
65
-
66
- - `--next`|`-n` *option*[,...]:
67
- Automatically choose the next step after composing the plan.
68
- *option* is a single token or a *comma-separated chronological
69
- list* of tokens; an `IMPLEMENT`, `PREFLIGHT`, or `GRILL` head token
70
- is consumed by this skill (bypassing `ase-task-edit`), and any
71
- remaining tokens are *forwarded* (via `--next`) to the downstream
72
- skill. For all other head tokens, the *entire* list is forwarded
73
- to `ase-task-edit`, which consumes its head itself. This lets an
74
- entire pipeline be pre-scripted in one shot. Recognized tokens at
75
- this skill: `none` (default, hand off to `ase-task-edit`
76
- interactively), `DONE` (stop), `EDIT` (hand off to
77
- `ase-task-edit`), `GRILL` (hand off to `ase-task-grill`),
78
- `PREFLIGHT` (hand off to `ase-task-preflight`),
79
- or `IMPLEMENT` (hand off to `ase-task-implement`). Example:
80
- `--next IMPLEMENT,DONE` resolves the problem, implements it, and
81
- exits without further dialog.
82
-
83
- ## ARGUMENTS
84
-
85
- - [*task-id*:] *problem*:
86
- Description of the *problem* to resolve, or a bare issue
87
- identifier like `P1` or `T1` previously produced by an analyzer
88
- skill. Optionally prefixed with a *task-id* followed by a colon
89
- to bind the resulting plan to a specific task id.
90
-
91
- ## SCENARIOS
92
-
93
- - You want a bug fixed or a problem resolved in the code
94
- - You want an issue like `P1` reported by an analyzer resolved
95
- - You want resolution approaches with pros and cons before any changes
96
- - You want a task plan composed for a bugfix
97
-
98
- ## EXAMPLES
99
-
100
- Resolve a free-text problem:
101
-
102
- ```text
103
- ❯ /ase-code-resolve fix race condition in cache invalidation
104
- ```
105
-
106
- Resolve a previously analyzed issue and hand off to implementation:
107
-
108
- ```text
109
- ❯ /ase-code-resolve --next IMPLEMENT P1
110
- ```
111
-
112
- ## SEE ALSO
113
-
114
- [`ase-code-craft`](../ase-code-craft/help.md), [`ase-code-refactor`](../ase-code-refactor/help.md), [`ase-code-analyze`](../ase-code-analyze/help.md),
115
- [`ase-arch-analyze`](../ase-arch-analyze/help.md), [`ase-task-edit`](../ase-task-edit/help.md), [`ase-task-grill`](../ase-task-grill/help.md),
116
- [`ase-task-preflight`](../ase-task-preflight/help.md), [`ase-task-implement`](../ase-task-implement/help.md).