@rse/ase 2.0.1 → 2.0.3
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.
- package/dst/ase-agent-definition-core.js +111 -87
- package/dst/ase-agent-fleet.js +1 -1
- package/dst/ase-agent-runtime-claim.js +5 -3
- package/dst/ase-agent-runtime-engine.js +1 -1
- package/dst/ase-agent-runtime-phase.js +1 -1
- package/dst/ase-agent-runtime-request.js +1 -1
- package/dst/ase-agent-runtime.js +3 -5
- package/dst/ase-artifact.js +3 -3
- package/dst/ase-config-core.js +2 -16
- package/dst/ase-config-schema.js +1 -3
- package/dst/ase-config.js +4 -1
- package/dst/ase-hook.js +14 -19
- package/dst/ase-lib-daemon-cli.js +117 -4
- package/dst/ase-lib-server-cli.js +10 -10
- package/dst/ase-mcp.js +4 -4
- package/dst/ase-service-getopt.js +2 -2
- package/dst/ase-service-otel.js +4 -4
- package/dst/ase-service-skills.js +5 -15
- package/dst/ase-service.js +87 -210
- package/dst/ase-setup-common.js +1 -2
- package/dst/ase-setup-settings.js +6 -9
- package/dst/ase-setup.js +2 -3
- package/dst/ase-statusline.js +170 -170
- package/dst/ase-task-board-core.js +1 -1
- package/dst/ase-task-board-flow.js +7 -6
- package/dst/ase-task-board-graph.js +5 -4
- package/dst/ase-task-board-tui-control.js +51 -45
- package/dst/ase-task-board-tui-model.js +195 -181
- package/dst/ase-task-board-tui-popup.js +2 -3
- package/dst/ase-task-board-tui-view.js +88 -79
- package/dst/ase-task-board-web-client.css +1 -1
- package/dst/ase-task-board-web-client.js +2 -2
- package/dst/ase-task-board-web-server.js +4 -27
- package/dst/ase-task-board.js +1 -1
- package/dst/ase-task-format.js +1 -1
- package/dst/ase-task-store-client.js +17 -5
- package/dst/ase-task-store-core.js +5 -7
- package/dst/ase-task-store-issues.js +91 -0
- package/dst/ase-task-store-plugin-ase.js +7 -3
- package/dst/ase-task-store-plugin-gitea.js +11 -97
- package/dst/ase-task-store-plugin-github.js +5 -77
- package/dst/ase-task-store-plugin-gitlab.js +4 -83
- package/dst/ase-task.js +51 -23
- package/dst/ase-util-compat.js +1 -1
- package/dst/ase-util-diagram.js +16 -42
- package/dst/ase.js +5 -5
- package/dst/man/ase-agent-adhoc.1 +1 -1
- package/dst/man/ase-agent-condenser.1 +1 -1
- package/dst/man/ase-agent-editor.1 +1 -1
- package/dst/man/ase-agent-estimator.1 +1 -1
- package/dst/man/ase-agent-fleet.1 +1 -1
- package/dst/man/ase-agent-implementer.1 +1 -1
- package/dst/man/ase-agent-integrator.1 +1 -1
- package/dst/man/ase-agent-qualifier.1 +1 -1
- package/dst/man/ase-agent-rebooter.1 +1 -1
- package/dst/man/ase-agent-relay.1 +1 -1
- package/dst/man/ase-agent-researcher.1 +1 -1
- package/dst/man/ase-agent.1 +1 -1
- package/dst/man/ase-artifact-list.1 +1 -1
- package/dst/man/ase-artifact-name.1 +1 -1
- package/dst/man/ase-artifact.1 +1 -1
- package/dst/man/ase-config-delete.1 +1 -1
- package/dst/man/ase-config-edit.1 +1 -1
- package/dst/man/ase-config-get.1 +1 -1
- package/dst/man/ase-config-init.1 +1 -1
- package/dst/man/ase-config-list.1 +1 -1
- package/dst/man/ase-config-set.1 +1 -1
- package/dst/man/ase-config.1 +1 -1
- package/dst/man/ase-hook-permission-request.1 +1 -1
- package/dst/man/ase-hook-pre-tool-use.1 +1 -1
- package/dst/man/ase-hook-session-end.1 +1 -1
- package/dst/man/ase-hook-session-persona.1 +1 -1
- package/dst/man/ase-hook-session-start.1 +1 -1
- package/dst/man/ase-hook-stop.1 +1 -1
- package/dst/man/ase-hook-user-prompt-submit.1 +1 -1
- package/dst/man/ase-hook.1 +1 -1
- package/dst/man/ase-man.1 +1 -1
- package/dst/man/ase-mcp.1 +1 -1
- package/dst/man/ase-service-log.1 +1 -1
- package/dst/man/ase-service-send.1 +1 -1
- package/dst/man/ase-service-start.1 +1 -1
- package/dst/man/ase-service-status.1 +1 -1
- package/dst/man/ase-service-stop.1 +1 -1
- package/dst/man/ase-service.1 +1 -1
- package/dst/man/ase-setup-disable.1 +1 -1
- package/dst/man/ase-setup-enable.1 +1 -1
- package/dst/man/ase-setup-install.1 +1 -1
- package/dst/man/ase-setup-mcp.1 +1 -1
- package/dst/man/ase-setup-status.1 +1 -1
- package/dst/man/ase-setup-statusline.1 +1 -1
- package/dst/man/ase-setup-telemetry.1 +1 -1
- package/dst/man/ase-setup-uninstall.1 +1 -1
- package/dst/man/ase-setup-update.1 +1 -1
- package/dst/man/ase-setup.1 +1 -1
- package/dst/man/ase-spec-export.1 +1 -1
- package/dst/man/ase-spec-lint.1 +1 -1
- package/dst/man/ase-spec-preview.1 +1 -1
- package/dst/man/ase-spec.1 +1 -1
- package/dst/man/ase-statusline.1 +1 -1
- package/dst/man/ase-task-assign.1 +1 -1
- package/dst/man/ase-task-board.1 +3 -3
- package/dst/man/ase-task-delete.1 +1 -1
- package/dst/man/ase-task-edit.1 +1 -1
- package/dst/man/ase-task-idscheme.1 +1 -1
- package/dst/man/ase-task-lifecycle.1 +1 -1
- package/dst/man/ase-task-list.1 +1 -1
- package/dst/man/ase-task-load.1 +1 -1
- package/dst/man/ase-task-newid.1 +1 -1
- package/dst/man/ase-task-purge.1 +1 -1
- package/dst/man/ase-task-rename.1 +1 -1
- package/dst/man/ase-task-request.1 +1 -1
- package/dst/man/ase-task-save.1 +1 -1
- package/dst/man/ase-task-status.1 +1 -1
- package/dst/man/ase-task-store.1 +1 -1
- package/dst/man/ase-task-view.1 +1 -1
- package/dst/man/ase-task.1 +1 -1
- package/dst/man/ase-util-compat.1 +1 -1
- package/dst/man/ase-util-diagram.1 +1 -1
- package/dst/man/ase-util-meta.1 +1 -1
- package/dst/man/ase-util-metric.1 +1 -1
- package/dst/man/ase-util-mint.1 +1 -1
- package/dst/man/ase-util-worktree.1 +1 -1
- package/dst/man/ase-util.1 +1 -1
- package/dst/man/ase.1 +1 -1
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/.github/plugin/plugin.json +1 -1
- package/plugin/meta/ase-common-resolve.md +2 -2
- package/plugin/meta/ase-skill.md +7 -0
- package/plugin/mods/ase-mods.ts +16 -12
- package/plugin/skills/ase-arch-analyze/SKILL.md +3 -1
- package/plugin/skills/ase-code-analyze/SKILL.md +26 -10
- package/plugin/skills/ase-code-analyze/help.md +11 -6
- package/plugin/skills/ase-code-edit/SKILL.md +5 -4
- package/plugin/skills/ase-code-edit/help.md +1 -1
- package/plugin/skills/ase-code-lint/SKILL.md +52 -27
- package/plugin/skills/ase-code-lint/help.md +10 -5
- package/plugin/skills/ase-help-intent/data.md +60 -30
- package/plugin/skills/ase-help-skill/help.md +3 -4
- package/plugin/skills/ase-meta-quorum/SKILL.md +9 -0
- package/plugin/skills/ase-meta-quorum/help.md +5 -3
- package/plugin/skills/ase-meta-workflow/sample.md +5 -3
- package/plugin/skills/ase-repo-changelog/SKILL.md +8 -9
- package/plugin/skills/ase-repo-changelog/help.md +2 -2
- package/plugin/skills/ase-repo-review/SKILL.md +5 -3
- package/plugin/skills/ase-repo-review/help.md +3 -1
- package/plugin/skills/ase-spec-edit/SKILL.md +2 -1
- package/plugin/skills/ase-spec-edit/help.md +2 -1
- package/plugin/skills/ase-sync-reconcile/help.md +4 -4
- package/plugin/skills/ase-task-dissect/SKILL.md +10 -6
- package/plugin/skills/ase-task-grill/help.md +1 -1
- package/plugin/skills/ase-task-implement/SKILL.md +58 -1
- package/plugin/skills/ase-task-implement/help.md +16 -0
- package/plugin/skills/ase-task-list/help.md +2 -2
|
@@ -58,10 +58,9 @@ related changes:
|
|
|
58
58
|
The <artifact-kind/> is one or more of the following *artifact* tags,
|
|
59
59
|
classifying which kind of artifact the change primarily touches. If
|
|
60
60
|
multiple artifact kinds apply, comma-separate them
|
|
61
|
-
(e.g. `[
|
|
61
|
+
(e.g. `[code, docs]`):
|
|
62
62
|
|
|
63
63
|
- `spec`: requirement/specification artifacts
|
|
64
|
-
- `arch`: architecture/design artifacts
|
|
65
64
|
- `code`: source code artifacts
|
|
66
65
|
- `docs`: documentation artifacts
|
|
67
66
|
- `infr`: infrastructure/build/tooling artifacts
|
|
@@ -114,14 +113,14 @@ Processing
|
|
|
114
113
|
level-2 section (next patch version, current date) *above* it, which
|
|
115
114
|
then becomes the *first* (most recent) section all subsequent steps
|
|
116
115
|
operate on - the already released section *MUST* *NOT* be modified.
|
|
117
|
-
If this command produces *no* output, the
|
|
118
|
-
|
|
119
|
-
|
|
116
|
+
If this command produces *no* output, the first section is still
|
|
117
|
+
in-progress/untagged, so use the `N.M.K` from the *second* level-2
|
|
118
|
+
header as the baseline tag instead. Then check all Git commits
|
|
119
|
+
between `HEAD` and this baseline tag with the command
|
|
120
|
+
`git log N.M.K..HEAD --numstat --pretty=format:'%h: %s'`. If *no*
|
|
120
121
|
second level-2 header exists (very first, still untagged release),
|
|
121
122
|
skip the baseline tag and check *all* Git commits with the command
|
|
122
|
-
`git log HEAD --numstat --pretty=format:'%h: %s'` instead.
|
|
123
|
-
check all Git commits between `HEAD` and this baseline tag with the
|
|
124
|
-
command `git log N.M.K..HEAD --numstat --pretty=format:'%h: %s'`.
|
|
123
|
+
`git log HEAD --numstat --pretty=format:'%h: %s'` instead.
|
|
125
124
|
|
|
126
125
|
For finding the corresponding staged Git *changes* in the Git
|
|
127
126
|
*index*, use the command `git diff --cached --numstat`, but silently
|
|
@@ -152,7 +151,7 @@ Processing
|
|
|
152
151
|
tag(s) from the paths of the changed files. To classify a changed
|
|
153
152
|
file to its artifact class, call the `ase_artifact_list(kind: [
|
|
154
153
|
... ])` tool of the `ase` MCP server *once*, passing the `kind`
|
|
155
|
-
tokens (`spec`, `
|
|
154
|
+
tokens (`spec`, `code`, `docs`, `infr`, `othr`), and read
|
|
156
155
|
the returned `artifacts` array of `{ kind, files }` objects to match
|
|
157
156
|
each changed file to its kind. Use the matched lower-cased kind
|
|
158
157
|
directly as its <artifact-kind/> tag, and comma-separate multiple
|
|
@@ -18,8 +18,8 @@ changes in the Git *index*.
|
|
|
18
18
|
Each entry is formatted as `<change-type> [<artifact-kind>]: <summary>`
|
|
19
19
|
where *change-type* is one of `FEATURE`, `IMPROVEMENT`, `BUGFIX`,
|
|
20
20
|
`UPDATE`, `CLEANUP`, or `REFACTOR`, and *artifact-kind* is one or more
|
|
21
|
-
comma-separated *artifact class* tags out of `spec`, `
|
|
22
|
-
`
|
|
21
|
+
comma-separated *artifact class* tags out of `spec`, `code`, `docs`,
|
|
22
|
+
`infr`, or `othr`. Entries are grouped and sorted by this
|
|
23
23
|
prefix. The date in the section header is also updated to the current
|
|
24
24
|
date.
|
|
25
25
|
|
|
@@ -224,11 +224,12 @@ Procedure
|
|
|
224
224
|
|
|
225
225
|
2. <step id="STEP 2: Review Investigation">
|
|
226
226
|
|
|
227
|
-
<if condition="<ase-project-boxing/> is equal `black`">
|
|
227
|
+
<if condition="<ase-project-boxing/> is equal `black` and <getopt-option-severity/> is equal `AUTO`">
|
|
228
228
|
|
|
229
229
|
The project source artifacts are classified as a *black box*, so
|
|
230
230
|
the user does *not* want the changes scrutinized or their
|
|
231
|
-
findings surfaced
|
|
231
|
+
findings surfaced (an *explicitly* given severity floor lifts this
|
|
232
|
+
skip). *Skip* the entire review investigation: do
|
|
232
233
|
*not* invoke the `Agent` tool and do *not* read any change, set
|
|
233
234
|
<findings/> to the *empty* list, set <hidden/> to `0`, set
|
|
234
235
|
<verdict/> to `SKIPPED (boxing: black)`, set <summary/> to a
|
|
@@ -288,7 +289,8 @@ Procedure
|
|
|
288
289
|
<else>
|
|
289
290
|
Set <floor><getopt-option-severity/></floor> and
|
|
290
291
|
<floor-origin>--severity <getopt-option-severity/></floor-origin>:
|
|
291
|
-
an *explicitly* given severity floor always *wins* over the boxing
|
|
292
|
+
an *explicitly* given severity floor always *wins* over the boxing,
|
|
293
|
+
both over the `grey` floor and over the `black` skip.
|
|
292
294
|
</else>
|
|
293
295
|
|
|
294
296
|
Then *apply the effective severity floor* <floor/>: *Keep* a finding
|
|
@@ -75,7 +75,9 @@ before it is committed or merged.
|
|
|
75
75
|
threshold are suppressed, ordered `LOW` < `MEDIUM` < `HIGH`. The
|
|
76
76
|
default `AUTO` means `MEDIUM` for a project with `grey` boxing and
|
|
77
77
|
`LOW` (keep all findings) otherwise; an explicitly given floor always
|
|
78
|
-
wins over the boxing.
|
|
78
|
+
wins over the boxing, i.e. it also reviews a project with `black`
|
|
79
|
+
boxing and, e.g. with `LOW`, shows all findings of a project with
|
|
80
|
+
`grey` boxing. `ACCEPTED` findings are never suppressed, and
|
|
79
81
|
the number of suppressed findings is always reported. Surviving
|
|
80
82
|
findings are rendered in *descending severity* order `HIGH`,
|
|
81
83
|
`MEDIUM`, `LOW`, `ACCEPTED`. The floor only affects the rendered
|
|
@@ -47,7 +47,8 @@ and *MUST* *NOT* call `ase_task_save(...)`. Instead, it applies the
|
|
|
47
47
|
requested edit *in place*, so the *implementing* state *requires* `Edit`
|
|
48
48
|
and `Write` to modify the affected artifacts. Every modification *MUST*
|
|
49
49
|
stay restricted to the `SPEC` artifacts the edit actually demands -- the
|
|
50
|
-
kinds `CODE`, `DOCS`, `TASK`, `INFR`, and `OTHR` are *never* touched
|
|
50
|
+
kinds `CODE`, `DOCS`, `TASK`, `INFR`, and `OTHR` are *never* touched,
|
|
51
|
+
except for an entry in an already existing `CHANGELOG.md` file.
|
|
51
52
|
|
|
52
53
|
<define name="todo-box">
|
|
53
54
|
|
|
@@ -44,7 +44,8 @@ approach selection close with an `EDIT TODO` box showing the established
|
|
|
44
44
|
|
|
45
45
|
The change set stays strictly restricted to the `SPEC` artifacts -- the
|
|
46
46
|
artifact kinds `CODE`, `DOCS`, `TASK`, `INFR`, and `OTHR` are never
|
|
47
|
-
touched
|
|
47
|
+
touched, except for an entry in an already existing `CHANGELOG.md`
|
|
48
|
+
file. Every generated artifact carries the current `Created:` and
|
|
48
49
|
`Modified:` timestamps, and every changed artifact gets its `Modified:`
|
|
49
50
|
timestamp refreshed.
|
|
50
51
|
|
|
@@ -70,13 +70,13 @@ a unified diff instead.
|
|
|
70
70
|
as nothing is written to disk.
|
|
71
71
|
|
|
72
72
|
- `--target`|`-t` *target*[,...]:
|
|
73
|
-
The comma-separated list of artifact kinds to update
|
|
74
|
-
|
|
73
|
+
The comma-separated list of artifact kinds to update (default:
|
|
74
|
+
`CODE,DOCS,INFR,OTHR`). An empty target lets the skill error out.
|
|
75
75
|
|
|
76
76
|
- `--source`|`-s` *source*[,...]:
|
|
77
77
|
The comma-separated list of artifact kinds to update *from*. The
|
|
78
|
-
special value `auto` resolves to all recognized kinds
|
|
79
|
-
in *target*.
|
|
78
|
+
special value `auto` (the default) resolves to all recognized kinds
|
|
79
|
+
except those in *target*.
|
|
80
80
|
|
|
81
81
|
## ARGUMENTS
|
|
82
82
|
|
|
@@ -142,7 +142,8 @@ Procedure
|
|
|
142
142
|
|
|
143
143
|
2. *Identify the parts* according to the task id scheme of the
|
|
144
144
|
project: for *every* part in <parts/>, in their derived order,
|
|
145
|
-
|
|
145
|
+
remember its <part-id/> as its <part-proposal/> and call the
|
|
146
|
+
`ase_task_newid(title: "<scope/>", proposal:
|
|
146
147
|
"<part-id/>", taken: [ <previous/> ])` tool of the `ase` MCP
|
|
147
148
|
server, where <previous/> lists the already re-identified
|
|
148
149
|
<part-id/> of all preceding parts (as the tool reserves ids for
|
|
@@ -175,8 +176,9 @@ Procedure
|
|
|
175
176
|
Call the `ase_task_list(verbose: false)` tool of the `ase` MCP
|
|
176
177
|
server and set <existing/> to the `id` fields of the returned
|
|
177
178
|
`tasks` array. Do not output anything related to this MCP tool
|
|
178
|
-
call. Set <collisions/> to all <part-
|
|
179
|
-
already present in <existing
|
|
179
|
+
call. Set <collisions/> to all <part-proposal/> of <parts/> which
|
|
180
|
+
are already present in <existing/> (as each <part-id/> itself was
|
|
181
|
+
re-identified to a free id in step 3.2).
|
|
180
182
|
|
|
181
183
|
<if condition="<collisions/> is not empty AND <getopt-option-force/> is not equal `true`">
|
|
182
184
|
Only output the following <template/> -- with <collisions/>
|
|
@@ -200,8 +202,9 @@ Procedure
|
|
|
200
202
|
</if>
|
|
201
203
|
|
|
202
204
|
<if condition="<collisions/> is not empty AND <getopt-option-force/> is equal `true`">
|
|
203
|
-
|
|
204
|
-
|
|
205
|
+
Set the <part-id/> of every colliding part back to its
|
|
206
|
+
<part-proposal/>, so the colliding sub-task plans are
|
|
207
|
+
*overwritten* in sub-step 4.3 below. Do not output anything.
|
|
205
208
|
</if>
|
|
206
209
|
|
|
207
210
|
3. *Compose and persist one sub-task plan per part*:
|
|
@@ -263,7 +266,8 @@ Procedure
|
|
|
263
266
|
</elseif>
|
|
264
267
|
|
|
265
268
|
2. Call the `ase_task_save(id: "<part-id/>", text:
|
|
266
|
-
"<part-content/>", create: true)` tool of the `ase` MCP server
|
|
269
|
+
"<part-content/>", create: true)` tool of the `ase` MCP server -- for
|
|
270
|
+
a part of <collisions/> *without* the `create` argument -- to persist
|
|
267
271
|
the sub-task plan -- this MCP tool call is the *only*
|
|
268
272
|
permitted way to persist it, *NEVER* write the plan file
|
|
269
273
|
via `Write`/`Edit` or by executing a shell command. If this
|
|
@@ -152,7 +152,7 @@ in state `[-]` (cancelled) or `[>]` (deferred) are never questioned.
|
|
|
152
152
|
## ARGUMENTS
|
|
153
153
|
|
|
154
154
|
- *id*:
|
|
155
|
-
Grill the task with the unique identifier *id* (default:
|
|
155
|
+
Grill the task with the unique identifier *id* (default: the current task).
|
|
156
156
|
The skill accepts *only* an optional *id* argument and never a
|
|
157
157
|
free-text instruction.
|
|
158
158
|
|
|
@@ -409,6 +409,32 @@ Procedure
|
|
|
409
409
|
here. Do not output anything.
|
|
410
410
|
</if>
|
|
411
411
|
|
|
412
|
+
Set <decisions></decisions> (empty) and
|
|
413
|
+
<open-points></open-points> (empty). They collect, one entry
|
|
414
|
+
each, the decisions you take on your own while implementing and
|
|
415
|
+
whatever ends up waiting for the *user*.
|
|
416
|
+
|
|
417
|
+
The implementation is *complete or it is not done*: you *MUST*
|
|
418
|
+
*NEVER* conclude this step while any point of the task plan is
|
|
419
|
+
still unimplemented -- not because the change set already grew
|
|
420
|
+
large, not because the remaining points look secondary or
|
|
421
|
+
cosmetic, and not because an open question stands in the way.
|
|
422
|
+
Work through *every* point of the plan within this single run.
|
|
423
|
+
|
|
424
|
+
Open questions therefore *MUST* *NOT* end the run: whenever the
|
|
425
|
+
plan leaves a detail undecided or admits several defensible
|
|
426
|
+
alternatives, *decide it yourself* -- picking what best fits the
|
|
427
|
+
surrounding artifacts and the internalized tenets -- and append
|
|
428
|
+
the decision plus a half-sentence rationale to <decisions/>,
|
|
429
|
+
instead of asking the user and stopping. Only a *genuine
|
|
430
|
+
blocker*, which no defensible assumption can bridge (a missing
|
|
431
|
+
credential, an inaccessible external system), may leave a point
|
|
432
|
+
unimplemented; append such a point to <open-points/> instead,
|
|
433
|
+
naming what remains open and why. Append to <open-points/> as
|
|
434
|
+
well whatever else now waits for the user once this run ends --
|
|
435
|
+
follow-ups you deliberately left out of scope, each with its
|
|
436
|
+
reason, and results which genuinely need their review.
|
|
437
|
+
|
|
412
438
|
You *MUST* *skip* every bullet-point of <task-content/> in
|
|
413
439
|
checkbox state `[-]` (cancelled) or `[>]` (deferred): neither
|
|
414
440
|
realize its <text/> in the change set nor perform its check, and
|
|
@@ -594,7 +620,38 @@ Procedure
|
|
|
594
620
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ⇢ changeset: **<task-changeset/>**, ▶ status: **plan implemented**
|
|
595
621
|
</template>
|
|
596
622
|
|
|
597
|
-
7.
|
|
623
|
+
7. Close the implementation with the boxed summary of what this run
|
|
624
|
+
left open and what it decided on its own. Both boxes are written
|
|
625
|
+
in the conversation language and the active persona style, list
|
|
626
|
+
*one entry per line*, and are *omitted entirely* when they carry
|
|
627
|
+
no content -- a run which implemented every point and took no
|
|
628
|
+
decision of its own outputs no box at all.
|
|
629
|
+
|
|
630
|
+
<if condition="<open-points/> is not empty">
|
|
631
|
+
Output everything which now waits for the *user* with the
|
|
632
|
+
following <template/>:
|
|
633
|
+
|
|
634
|
+
<template>
|
|
635
|
+
<ase-tpl-boxed title="OPEN POINTS">
|
|
636
|
+
○ <open-point/>
|
|
637
|
+
</ase-tpl-boxed>
|
|
638
|
+
</template>
|
|
639
|
+
</if>
|
|
640
|
+
|
|
641
|
+
<if condition="<decisions/> is not empty">
|
|
642
|
+
The run decided open questions *on the user's behalf*, so they
|
|
643
|
+
*MUST* be able to revisit or overrule each of them. Output the
|
|
644
|
+
collected decisions -- each naming the chosen option and its
|
|
645
|
+
rationale -- directly below, with the following <template/>:
|
|
646
|
+
|
|
647
|
+
<template>
|
|
648
|
+
<ase-tpl-boxed title="DECISIONS">
|
|
649
|
+
○ <decision/> -- <rationale/>
|
|
650
|
+
</ase-tpl-boxed>
|
|
651
|
+
</template>
|
|
652
|
+
</if>
|
|
653
|
+
|
|
654
|
+
8. Give the closing hint by expanding the following (which,
|
|
598
655
|
depending on the configured <ase-guidance-level/>, may expand
|
|
599
656
|
into nothing and hence emit no output at all):
|
|
600
657
|
|
|
@@ -102,6 +102,22 @@ the entire verification phase is strictly skipped: no build, tests,
|
|
|
102
102
|
linter, type-checker, or program execution is performed once the
|
|
103
103
|
source files have been modified.
|
|
104
104
|
|
|
105
|
+
The implementation runs to *completion*: the skill never concludes
|
|
106
|
+
while any point of the plan is still unimplemented, neither because the
|
|
107
|
+
change set grew large nor because an open question stands in the way.
|
|
108
|
+
Undecided details and defensible alternatives are therefore *decided by
|
|
109
|
+
the skill itself*, guided by the surrounding artifacts and the
|
|
110
|
+
internalized tenets, instead of interrupting the run with a question.
|
|
111
|
+
Once the change set is applied, the run closes with up to two boxed
|
|
112
|
+
summaries: `OPEN POINTS` lists everything now waiting for the user --
|
|
113
|
+
points left unimplemented on a *genuine blocker* no assumption can
|
|
114
|
+
bridge, follow-ups deliberately left out of scope with their reason,
|
|
115
|
+
and results needing review -- and `DECISIONS` lists each decision the
|
|
116
|
+
skill took on its own together with its rationale, so it can be
|
|
117
|
+
revisited or overruled. Either box is omitted entirely when it has no
|
|
118
|
+
content; a run which implemented every point and decided nothing on its
|
|
119
|
+
own emits no box at all.
|
|
120
|
+
|
|
105
121
|
After implementation, the user is asked whether to stop, hand off to
|
|
106
122
|
`ase-task-edit`, hand off to `ase-task-integrate`, or delete the task
|
|
107
123
|
plan, unless `--next` pre-selects this choice.
|
|
@@ -68,8 +68,8 @@ DEFERRED INTEGRATING INTEGRATED CANCELLED
|
|
|
68
68
|
- `--include`|`-i`=*state*[`,`...]:
|
|
69
69
|
Restrict the listed task plans to the given comma-separated list of
|
|
70
70
|
lifecycle states (e.g. `IMPLEMENTING,STALLED`). Without this option,
|
|
71
|
-
all states are listed. The `none` sentinel
|
|
72
|
-
the `finished` sentinel selects the finished states.
|
|
71
|
+
all states are listed. The `none` sentinel (the default) imposes no
|
|
72
|
+
restriction, the `finished` sentinel selects the finished states.
|
|
73
73
|
|
|
74
74
|
- `--exclude`|`-e`=*state*[`,`...]:
|
|
75
75
|
Remove the given comma-separated list of lifecycle states from the
|