@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,210 +0,0 @@
1
- ---
2
- name: ase-meta-review
3
- argument-hint: "[--help|-h] [--severity|-S=(LOW|MEDIUM|HIGH)]"
4
- description: >
5
- Perform a holistic, human-reviewer-style critique of the currently
6
- staged Git changes and emit an approve/reject verdict with
7
- prioritized, severity-tagged, line-cited findings. Use when the user
8
- wants the staged diff "reviewed", "critiqued", or "code-reviewed"
9
- before committing.
10
- user-invocable: true
11
- disable-model-invocation: false
12
- effort: high
13
- allowed-tools:
14
- - "Bash(git diff *)"
15
- - "Agent"
16
- ---
17
-
18
- @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
19
- @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
20
- @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
21
-
22
- <purpose name="ase-meta-review">
23
- Review Staged Changes
24
- </purpose>
25
-
26
- <expand name="getopt"
27
- arg1="ase-meta-review"
28
- arg2="--severity|-S=(LOW|MEDIUM|HIGH)">
29
- $ARGUMENTS
30
- </expand>
31
-
32
- <objective>
33
- Review the currently staged Git changes the way an *experienced human
34
- reviewer* would - judging them *holistically* against the change's *own
35
- intent* and against *correctness*, *design fit*, *clarity*, *robustness*,
36
- and *project-convention conformance* - and emit a single *approve /
37
- request-changes verdict* backed by *prioritized*, *severity-tagged*,
38
- *line-cited* findings. This is a *synthesizing critique*, not a mechanical
39
- scan: it complements `ase-code-lint` (mechanical quality), `ase-code-analyze`
40
- (logic/semantics), and `ase-meta-diff` (intent narrative and risk).
41
- </objective>
42
-
43
- Procedure
44
- ---------
45
-
46
- <flow>
47
-
48
- 1. <step id="STEP 1: Determine Change Set">
49
-
50
- 1. Determine *whether there are staged changes at all* by running the
51
- corresponding command (taken exactly as given) and capturing its
52
- output - the bare *list of staged file names* - into <diff/>. This
53
- is a lightweight gate; the full diff is fetched by the sub-agent
54
- in STEP 2, so capturing only the file-name list here is sufficient:
55
-
56
- `git diff --cached --name-only HEAD`
57
-
58
- 2. <if condition="<diff/> is empty">
59
- Only output the following <template/> and then *STOP* immediately:
60
-
61
- <template>
62
- ⧉ **ASE**: ✪ skill: **ase-meta-review**, ▶ status: **no changes to review**
63
- </template>
64
- </if>
65
-
66
- </step>
67
-
68
- 2. <step id="STEP 2: Review Investigation">
69
-
70
- <if condition="<ase-project-boxing/> is equal `black`">
71
-
72
- The project source artifacts are classified as a *black box*, so
73
- the user does *not* want the staged changes scrutinized or their
74
- findings surfaced. *Skip* the entire review investigation: do
75
- *not* invoke the `Agent` tool and do *not* read any change, set
76
- <findings/> to the *empty* list, set <verdict/> to `SKIPPED (boxing:
77
- black)`, set <summary/> to a *one-line* neutral restatement of the
78
- change intent derived solely from STEP 1, and proceed *directly* to
79
- STEP 3.
80
-
81
- </if>
82
-
83
- First, use the following <template/> to give a hint on this step:
84
-
85
- <template>
86
- <ase-tpl-bullet-secondary/> **REVIEW INVESTIGATION**
87
- </template>
88
-
89
- Dispatch the review investigation to a *sub-agent* via the `Agent`
90
- tool so that *no* investigation details leak into the user-visible
91
- transcript. The sub-agent performs the silent reading, the read-only
92
- repository probing, and the critique; only its final structured return
93
- value is consumed here.
94
-
95
- For this, invoke *exactly once* the tool:
96
-
97
- ```text
98
- Agent(
99
- description: "Review Investigation",
100
- subagent_type: "ase:ase-meta-review",
101
- prompt: "Review the staged changes.",
102
- run_in_background: false
103
- )
104
- ```
105
-
106
- Parse the single result message of the `Agent` tool as a JSON object,
107
- set <summary/> to its `summary` field (a single crisp sentence
108
- reconstructing the change's intent), and set <findings/> to its
109
- `findings` field (a list).
110
-
111
- Then *derive* the overall <verdict/> from <findings/>: set
112
- <verdict/> to `REJECT - DEMANDS CHANGES` if *any* finding in
113
- <findings/> has a `severity` field of `HIGH`; otherwise set
114
- <verdict/> to `APPROVE`. The verdict is derived *before* the
115
- severity floor below, so the floor only affects which findings are
116
- *rendered*, never the verdict.
117
-
118
- Then determine the *effective severity floor* <floor/>: define the
119
- ordinal rank `LOW`=1, `MEDIUM`=2, `HIGH`=3, start from
120
- <floor><getopt-option-severity/></floor> (default `LOW`), and - if
121
- <ase-project-boxing/> is equal `grey` - raise <floor/> to `MEDIUM`
122
- whenever its current rank is below `rank(MEDIUM)` (grey boxing
123
- surfaces only *material* findings of severity `MEDIUM` and above).
124
- The floor affects only which findings are *rendered*, never the
125
- <verdict/> derived above.
126
-
127
- Then *apply the effective severity floor* <floor/>: *Keep* a finding
128
- in <findings/> if and only if its `severity` field is `ACCEPTED` *or*
129
- `rank(severity)` is greater than or equal to `rank(<floor/>)`;
130
- *silently drop* all other findings. With the default floor `LOW`, all
131
- findings are kept. `ACCEPTED` findings are *never* dropped.
132
-
133
- You *MUST* *NOT* output anything else in this STEP 2.
134
-
135
- </step>
136
-
137
- 3. <step id="STEP 3: Verdict and Findings">
138
-
139
- 1. Use the following <template/> to output the overall review in
140
- <verdict/> and the reconstructed intent <summary/>:
141
-
142
- <template>
143
-
144
- <ase-tpl-bullet-signal/> **REVIEW VERDICT**: **<verdict/>**
145
-
146
- <ase-tpl-bullet-normal/> **CHANGE INTENT**: <summary/>
147
-
148
- </template>
149
-
150
- You *MUST* *NOT* output anything else in this STEP 3.1.
151
-
152
- 2. <if condition="<findings/> is empty">
153
- Only output the following <template/> - with <note/> set to `the
154
- change was not reviewed` if <verdict/> starts with `SKIPPED` and
155
- to `the change is clean` otherwise - and then *SKIP* the
156
- remainder of this STEP 3 (an empty finding list never yields the
157
- `REJECT` verdict, so the closing hint of substep 4 would expand
158
- into nothing anyway):
159
-
160
- <template>
161
-
162
- <ase-tpl-bullet-normal/> **NO FINDINGS**: <note/>, nothing to flag.
163
-
164
- </template>
165
- </if>
166
-
167
- 3. <if condition="<findings/> is NOT empty">
168
- Sort the findings by <severity/> from highest to lowest in the
169
- fixed order `HIGH`, `MEDIUM`, `LOW`, `ACCEPTED`. Within the same
170
- severity, keep the order returned by the sub-agent.
171
-
172
- Then render a *three-column table* with one row per finding by
173
- using the following output <template/>. For each finding, repeat
174
- the third line, set <severity/> to its `severity` field, set
175
- <dimension/> to its `dimension` field, set <location/> to its
176
- `location` field, and set <finding/> to its `finding` field.
177
-
178
- In the <location/> column, mark up the `file:line` reference
179
- as code (with backticks) and prepend it with `▢ ` - keep the
180
- sub-agent's own `:N` / `:N-M` line citation intact and do *not*
181
- append any further line-count decoration.
182
-
183
- Because the <finding/> text is free-form Markdown, *before*
184
- emitting any row you *MUST* escape every literal `|` pipe
185
- character inside <location/> and <finding/> as `\|` so it cannot
186
- break the table column structure.
187
-
188
- <template>
189
- | Severity | Dimension | Finding |
190
- | --------------- | ------------ | ----------------------- |
191
- | **<severity/>** | <dimension/> | <location/>: <finding/> |
192
- </template>
193
-
194
- Keep the overall report *concise* and *brief*.
195
- Do *not* output any further explanation.
196
- </if>
197
-
198
- 4. Finally, give the closing hint by expanding the following
199
- (which, depending on the configured <ase-guidance-level/>, may
200
- expand into nothing and hence emit no output at all):
201
-
202
- <if condition="<verdict/> starts with `REJECT`">
203
- <ase-tpl-hint level="normal">
204
- Use `/ase-code-resolve` to derive and apply a solution approach for the findings which demand changes.
205
- </ase-tpl-hint>
206
- </if>
207
-
208
- </step>
209
-
210
- </flow>
@@ -1,96 +0,0 @@
1
-
2
- ## NAME
3
-
4
- `ase-meta-review` - Review Staged Changes
5
-
6
- ## SYNOPSIS
7
-
8
- `ase-meta-review`
9
- [`--help`|`-h`]
10
- [`--severity`|`-S`=(`LOW`|`MEDIUM`|`HIGH`)]
11
-
12
- ## DESCRIPTION
13
-
14
- The `ase-meta-review` skill performs a *holistic*,
15
- *human-reviewer-style* critique of the *staged* Git changes and emits a
16
- single *approve* / *reject* **verdict** backed by *prioritized*,
17
- *severity-tagged*, *line-cited* **findings**. Rather than scanning the
18
- code mechanically, it first *reconstructs the change's own intent* and
19
- then judges the diff *as a whole* against that intent - the way an
20
- experienced reviewer would on a pull request.
21
-
22
- The critique spans a fixed set of reviewer *dimensions*: **intent**
23
- (does the diff do what it set out to, without scope creep or stray
24
- residue), **correctness** (latent bugs, edge cases, broken
25
- control/data flow), **design** (fit with the surrounding architecture,
26
- naming, abstraction level), **clarity** (readability and
27
- self-documentation for a future reader), **robustness** (error handling,
28
- resource and concurrency safety), **security** and **performance** (risks
29
- introduced by the change), **convention** (conformance to the
30
- project's documented conventions - code style and the plan/spec
31
- formats described in `AGENTS.md` and the `ase-format-*` meta documents),
32
- **testing** (inadequate coverage for the change - new or fixed behavior
33
- left untested, adjacent tests not updated, or existing tests silently
34
- broken, disabled, or weakened), and **documentation** (user- or
35
- developer-facing docs - `README`, `CHANGELOG`, help text, or AI
36
- guidance/meta documents - left stale by the change).
37
-
38
- Each finding carries a *severity* - **HIGH**, **MEDIUM**, **LOW**, or
39
- **ACCEPTED** (a concern that is contractually addressed or accepted as a
40
- documented priority conflict) - and is *evidence-grounded*: it cites the
41
- exact `file:line` location it stems from. The overall verdict is
42
- **REJECT - DEMANDS CHANGES** when any *HIGH* finding remains, and
43
- **APPROVE** otherwise. The work is performed by a dedicated `ase-meta-review`
44
- sub-agent so that the silent reading and read-only repository probing
45
- never leak into the transcript; only the structured verdict and findings
46
- are rendered.
47
-
48
- The skill *complements* rather than duplicates its neighbors:
49
- `ase-code-lint` flags *mechanical* code-quality issues, `ase-code-analyze`
50
- inspects *logic and semantics*, `ase-meta-diff` narrates *what changed*
51
- (with optional coherence, risk, and blast-radius reports), and
52
- `ase-meta-diaboli` *adversarially challenges a thesis* - whereas
53
- `ase-meta-review` renders a *reviewer's judgment* on a concrete diff
54
- before it is committed.
55
-
56
- ## OPTIONS
57
-
58
- - `--severity`|`-S`=(`LOW`|`MEDIUM`|`HIGH`):
59
- Set the *severity floor* (default `LOW`): findings below the chosen
60
- threshold are silently suppressed, ordered `LOW` < `MEDIUM` <
61
- `HIGH`. The default `LOW` keeps all findings; `ACCEPTED` findings are
62
- never suppressed. Surviving findings are rendered in *descending
63
- severity* order `HIGH`, `MEDIUM`, `LOW`, `ACCEPTED`. The floor only
64
- affects the rendered findings table, not the overall *verdict*, which
65
- is always derived from all findings before the floor is applied.
66
-
67
- ## ARGUMENTS
68
-
69
- The `ase-meta-review` skill takes no positional arguments; it always
70
- reviews the currently *staged* Git changes.
71
-
72
- ## SCENARIOS
73
-
74
- - You want the staged changes reviewed like a human reviewer would
75
- - You want an approve or reject verdict before committing
76
- - You want severity-tagged, line-cited findings on a diff
77
- - You want a holistic judgment instead of a mechanical lint
78
-
79
- ## EXAMPLES
80
-
81
- Review the currently staged changes before committing:
82
-
83
- ```text
84
- ❯ /ase-meta-review
85
- ```
86
-
87
- Review the staged changes, reporting only `MEDIUM` and `HIGH` findings:
88
-
89
- ```text
90
- ❯ /ase-meta-review -S MEDIUM
91
- ```
92
-
93
- ## SEE ALSO
94
-
95
- [`ase-meta-diff`](../ase-meta-diff/help.md), [`ase-meta-commit`](../ase-meta-commit/help.md), [`ase-code-lint`](../ase-code-lint/help.md), [`ase-code-analyze`](../ase-code-analyze/help.md),
96
- [`ase-meta-diaboli`](../ase-meta-diaboli/help.md).
@@ -1,166 +0,0 @@
1
- ---
2
- name: ase-task-preflight
3
- argument-hint: "[--help|-h] [--next|-n <option>[,...]] [<id>]"
4
- description: >
5
- Preflight the implementation of current or given task plan.
6
- Use when the user calls to "preflight", "dry-run" or "test-drive"
7
- the "task", "plan", "spec", or "specification".
8
- user-invocable: true
9
- disable-model-invocation: false
10
- effort: xhigh
11
- ---
12
-
13
- @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
14
- @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
15
- @${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md
16
- @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
17
-
18
- <purpose name="ase-task-preflight">
19
- Preflight a Task Plan
20
- </purpose>
21
-
22
- <expand name="getopt"
23
- arg1="ase-task-preflight"
24
- arg2="--next|-n=(none|DONE|EDIT|IMPLEMENT)... --int-reuse-task">
25
- $ARGUMENTS
26
- </expand>
27
-
28
- <objective>
29
- *Preflight* the implementation of a task plan by creating a draft
30
- for a corresponding, *complete source code change set*.
31
- </objective>
32
-
33
- @${CLAUDE_SKILL_DIR}/../../meta/ase-format-task.md
34
- @${CLAUDE_SKILL_DIR}/../../meta/ase-common-task.md
35
- @${CLAUDE_SKILL_DIR}/../../meta/ase-tenets.md
36
- @${CLAUDE_SKILL_DIR}/../../meta/ase-common-code.md
37
-
38
- Procedure
39
- ---------
40
-
41
- 1. **Determine Task:**
42
-
43
- 1. Set <instruction><getopt-arguments/></instruction> initially, with any
44
- leading and trailing whitespace stripped.
45
- Inherit the always existing <ase-task-id/> from the current context.
46
- Inherit the always existing <ase-session-id/> from the current context.
47
- Do not output anything.
48
-
49
- 2. React on task id:
50
-
51
- <expand name="task-react-id" arg1="ase-task-preflight"></expand>
52
-
53
- 2. **Determine Operation:**
54
-
55
- 1. Determine the current task plan content:
56
-
57
- <expand name="task-load-content"></expand>
58
-
59
- 2. If the <task-content/> is still empty, complain and tell the user to
60
- use the `ase-code-resolve`, `ase-code-refactor`, `ase-code-craft`,
61
- or `ase-task-edit` skills first to create a task plan. Then
62
- immediately stop processing this skill.
63
-
64
- 3. Internalize the tenets stated by the plan:
65
-
66
- <expand name="code-tenets-from-plan"></expand>
67
-
68
- 3. **Create Implementation Draft:**
69
-
70
- 1. Perform a *preflight* of the *implementation* of <task-content/> by creating a
71
- draft for a corresponding, *complete artifact change set*
72
- which *would* fully implement the task plan <task-content/>. Store
73
- this artifact change set in *unified diff* format in <unified-diff/>.
74
-
75
- Create this draft with the *same rigor* as the final
76
- implementation of the companion skill `ase-task-implement`,
77
- because that skill later takes the draft over *1:1* -- the user
78
- is assumed to review the draft in between. Hence *read* the
79
- current content of *every* artifact the draft touches before
80
- drafting its hunks, so all context lines match the artifacts
81
- *exactly* and the diff would apply *cleanly*, and honor the
82
- task plan and the internalized tenets just as the final
83
- implementation would. Only the actual modification of the
84
- artifacts and the verification phase are deferred to
85
- `ase-task-implement`.
86
-
87
- 2. Append this artifact change set <unified-diff/> to the end
88
- of the <task-content/> with the following <template/>. If a section
89
- named `## IMPLEMENTATION DRAFT` already exists from a
90
- previous run of this skill, *replace* this entire existing
91
- section.
92
-
93
- Set <fence/> to a run of backtick characters *one longer* than
94
- the longest backtick run occurring anywhere inside
95
- <unified-diff/>, but to at least three, so a diff which itself
96
- carries fenced code blocks (e.g. one over Markdown artifacts)
97
- cannot terminate the block prematurely.
98
-
99
- <template>
100
-
101
- ## IMPLEMENTATION DRAFT
102
-
103
- <fence/>text
104
- <unified-diff/>
105
- <fence/>
106
-
107
- </template>
108
-
109
- 3. Update <timestamp-modified/> with the current time in
110
- ISO-style format, which has to be determined by calling the
111
- `ase_timestamp(format: "yyyy-LL-dd HH:mm")` tool of the `ase`
112
- MCP server and using the `text` field of its response. Update
113
- the `Modified: ...` frontmatter key of <task-content/> with the
114
- new <timestamp-modified/> value, *creating* the whole key at its
115
- position in the key order of the plan <format/> if the plan does
116
- not carry it yet.
117
- Do not output anything.
118
-
119
- Additionally *add* the value `preflighted` to the `Properties:`
120
- frontmatter key of <task-content/> if it is still absent, keeping
121
- all already present values and *creating* the whole key (with the
122
- single value `preflighted`) if the plan carries none. Do not
123
- output anything.
124
-
125
- 4. Finally, call the `ase_task_save(id: "<ase-task-id/>",
126
- text: "<task-content/>")` tool of the `ase` MCP server to save the updated
127
- task plan content. This `ase_task_save` MCP tool call is the
128
- *only* permitted way to persist the plan -- *NEVER* write the
129
- plan file via `Write`/`Edit` or by executing a shell command.
130
- Do not output anything related to this MCP tool call
131
- except the following <template/>:
132
-
133
- <template>
134
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **plan updated**
135
- </template>
136
-
137
- 4. **Decide Next Step:**
138
-
139
- 1. *Determine next step*:
140
-
141
- <expand name="task-next-select"
142
- arg1="ase-task-preflight"
143
- arg2="DONE|EDIT|IMPLEMENT">
144
- Next Step: How would you like to proceed with the plan?
145
- DONE: Stop processing.
146
- EDIT: Hand processing off to editing.
147
- IMPLEMENT: Hand processing off to implementation.
148
- </expand>
149
-
150
- 2. Check the tool <result/> and dispatch accordingly:
151
-
152
- - If <result/> is `DONE` or `CANCEL`:
153
- Only output the following <template/> and then *STOP*.
154
-
155
- <template>
156
- ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **plan updated -- done**
157
- </template>
158
-
159
- - If <result/> is `EDIT`:
160
- <expand name="task-next-handoff" arg1="ase-task-edit"
161
- arg2="plan updated -- hand-off to edit"></expand>
162
-
163
- - If <result/> is `IMPLEMENT`:
164
- <expand name="task-next-handoff" arg1="ase-task-implement"
165
- arg2="plan updated -- hand-off to implementation"></expand>
166
-
@@ -1,82 +0,0 @@
1
-
2
- ## NAME
3
-
4
- `ase-task-preflight` - Preflight a Task Plan
5
-
6
- ## SYNOPSIS
7
-
8
- `ase-task-preflight`
9
- [`--help`|`-h`]
10
- [`--next`|`-n` *option*[,...]]
11
- [*id*]
12
-
13
- ## DESCRIPTION
14
-
15
- The `ase-task-preflight` skill performs a *preflight* (dry-run,
16
- test-drive) of the *implementation* of a task plan by creating a
17
- draft for a corresponding, complete *artifact change set* in
18
- *unified diff* format. The draft is appended to the task plan as
19
- an `IMPLEMENTATION DRAFT` section (replacing any previous draft) and
20
- the plan's `Properties:` frontmatter key gains the value `preflighted`.
21
- No source files are modified. The draft is produced under the *same
22
- tenets* and with the *same rigor* as a final implementation, because
23
- `ase-task-implement` later takes it over *1:1* after user review --
24
- only the actual artifact modification and the verification phase
25
- are deferred.
26
-
27
- The *kind of change* stated by the plan's `Kind:` frontmatter key
28
- (`CRAFTING`, `REFACTORING`, or `RESOLVING`) selects which
29
- *operation-specific tenet set* of the **ASE Tenets** is internalized
30
- before the draft is produced, in addition to the always applying
31
- **GENERIC TENETS**. If a plan carries no such key, the kind is
32
- *inferred* from the plan content, defaulting to `CRAFTING`.
33
-
34
- After the preflight, the user is asked whether to stop, hand
35
- off to `ase-task-edit`, or hand off to `ase-task-implement`,
36
- unless `--next` pre-selects this choice.
37
-
38
- ## OPTIONS
39
-
40
- - `--next`|`-n` *option*[,...]:
41
- Automatically answer the user dialog for the next step. *option*
42
- is a single token or a *comma-separated chronological list* of
43
- tokens; the *first* token is consumed by this skill, and any
44
- remaining tokens are *forwarded* (via `--next`) to the downstream
45
- skill so an entire pipeline can be pre-scripted in one shot.
46
- Recognized tokens at this skill: `none` (default, interactive
47
- answer required), `DONE` (stop), `EDIT` (hand off to
48
- `ase-task-edit`), or `IMPLEMENT` (hand off to
49
- `ase-task-implement`). Example: `--next IMPLEMENT,DONE` runs the
50
- preflight, hands off to implementation, then exits without asking.
51
-
52
- ## ARGUMENTS
53
-
54
- - *id*:
55
- The unique identifier of the task whose plan should be
56
- preflighted. If omitted, the *current* task id is used.
57
-
58
- ## SCENARIOS
59
-
60
- - You want a dry-run of a plan's implementation
61
- - You want the change set previewed as a unified diff before applying
62
- - You want an implementation draft to review before committing to it
63
- - You want a plan test-driven without touching any source files
64
-
65
- ## EXAMPLES
66
-
67
- Preflight the current task plan:
68
-
69
- ```text
70
- ❯ /ase-task-preflight
71
- ```
72
-
73
- Preflight a specific task and hand off to implementation when done:
74
-
75
- ```text
76
- ❯ /ase-task-preflight --next IMPLEMENT hello
77
- ```
78
-
79
- ## SEE ALSO
80
-
81
- [`ase-task-edit`](../ase-task-edit/help.md), [`ase-task-implement`](../ase-task-implement/help.md), [`ase-task-reboot`](../ase-task-reboot/help.md),
82
- [`ase-task-view`](../ase-task-view/help.md).
File without changes
File without changes
File without changes
File without changes