@rse/ase 2.0.6 → 2.0.8
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-api.d.ts +2 -0
- package/dst/ase-agent-definition-core.js +24 -3
- package/dst/ase-agent-fleet.js +2 -1
- package/dst/ase-agent-relay-client.js +3 -4
- package/dst/ase-agent-runtime-engine.js +22 -4
- package/dst/ase-agent-runtime-tool.js +10 -8
- package/dst/ase-agent-runtime.js +8 -4
- package/dst/ase-config-schema.js +4 -1
- package/dst/ase-lib-fetch.js +12 -0
- package/dst/ase-lib-server-cli.js +8 -5
- package/dst/ase-man-catalog.js +1 -1
- package/dst/ase-task-board-diff.js +120 -0
- package/dst/ase-task-board-tui-control.js +8 -5
- package/dst/ase-task-board-tui-model.js +54 -14
- package/dst/ase-task-board-tui-popup.js +41 -8
- package/dst/ase-task-board-tui.js +42 -27
- package/dst/ase-task-board-web-client.css +1 -1
- package/dst/ase-task-board-web-client.html +16 -0
- package/dst/ase-task-board-web-client.js +33 -33
- package/dst/ase-task-board-web-server.js +44 -9
- package/dst/ase-task-board.js +12 -4
- package/dst/ase-task-store-client.js +4 -5
- package/dst/ase-task-store-plugin-gitea.js +3 -3
- package/dst/man/ase-agent-adhoc.md +25 -6
- package/dst/man/ase-agent-condenser.md +7 -0
- package/dst/man/ase-agent-editor.md +7 -0
- package/dst/man/ase-agent-estimator.md +7 -0
- package/dst/man/ase-agent-fleet.md +7 -4
- package/dst/man/ase-agent-implementer.md +7 -0
- package/dst/man/ase-agent-integrator.md +7 -0
- package/dst/man/ase-agent-qualifier.md +7 -0
- package/dst/man/ase-agent-rebooter.md +7 -0
- package/dst/man/ase-agent-researcher.md +7 -0
- package/dst/man/ase-config-init.md +2 -1
- package/dst/man/ase-config.md +5 -0
- package/dst/man/ase-task-board.md +44 -2
- package/package.json +11 -10
- 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-task.md +33 -1
- package/plugin/meta/ase-control.md +14 -0
- package/plugin/meta/ase-format-specbook.yaml +9 -9
- package/plugin/meta/ase-skill.md +7 -0
- package/plugin/mods/ase-mods-common.ts +73 -42
- package/plugin/mods/ase-mods-help-hint.ts +1 -1
- package/plugin/mods/ase-mods-task-edit.ts +427 -0
- package/plugin/mods/ase-mods.ts +45 -14
- package/plugin/skills/ase-code-edit/SKILL.md +53 -16
- package/plugin/skills/ase-code-edit/help.md +26 -13
- package/plugin/skills/ase-code-lint/SKILL.md +7 -3
- package/plugin/skills/ase-help-intent/data.md +248 -36
- package/plugin/skills/ase-help-skill/catalog.md +1 -0
- package/plugin/skills/ase-meta-workflow/workflow.txt +2 -0
- package/plugin/skills/ase-repo-changelog/SKILL.md +29 -10
- package/plugin/skills/ase-repo-changelog/help.md +5 -1
- package/plugin/skills/ase-repo-commit/SKILL.md +4 -1
- package/plugin/skills/ase-repo-dissect/help.md +2 -1
- package/plugin/skills/ase-repo-stage/SKILL.md +459 -0
- package/plugin/skills/ase-repo-stage/help.md +120 -0
- package/plugin/skills/ase-spec-edit/SKILL.md +20 -12
- package/plugin/skills/ase-spec-edit/help.md +22 -14
- package/plugin/skills/ase-task-edit/SKILL.md +114 -9
- package/plugin/skills/ase-task-edit/help.md +60 -0
- package/plugin/skills/ase-task-grill/SKILL.md +35 -20
- package/plugin/skills/ase-task-grill/help.md +18 -8
- /package/plugin/mods/{ase-mods-evaluate.ts → ase-mods-meta-evaluate.ts} +0 -0
- /package/plugin/mods/{ase-mods-grill.ts → ase-mods-task-grill.ts} +0 -0
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
[`--grill-until`|`-u` `MUST`|`SHOULD`|`MAY`]
|
|
15
15
|
[`--grill-perspective`|`-p` *perspective*]
|
|
16
16
|
[`--grill-ground`|`-G`]
|
|
17
|
-
[`--verify`|`-v`]
|
|
17
|
+
[`--verify`|`-v` `light`|`none`|`full`]
|
|
18
18
|
[`--worktree`|`-w` *name*[`:`*branch*]]
|
|
19
19
|
[`--loop`|`-l`]
|
|
20
20
|
[*query*]
|
|
@@ -34,7 +34,8 @@ parts), *discovering* (read the source artifacts related to the query),
|
|
|
34
34
|
*grilling* (optionally stress-test the query with rounds of questions),
|
|
35
35
|
*implementing* (optionally select an approach, then apply the change
|
|
36
36
|
set in place, honoring the tenet set selected via `--mode`), and
|
|
37
|
-
*verifying* (
|
|
37
|
+
*verifying* (verify the implementation until it passes, unless
|
|
38
|
+
disabled via `--verify none`). The
|
|
38
39
|
*querying* state, every *grilling* round, and the approach selection
|
|
39
40
|
close with an `EDIT TODO` box showing the established `WHAT` and `HOW`
|
|
40
41
|
information.
|
|
@@ -69,8 +70,9 @@ information.
|
|
|
69
70
|
of a round are sorted by descending focus area importance
|
|
70
71
|
(`DOMAIN`, `INTERFACE`, `ARCHITECTURE`, `IMPLEMENTATION`,
|
|
71
72
|
`REGRESSION`, `CONFIRMATION`). Questions of focus area
|
|
72
|
-
`REGRESSION`
|
|
73
|
-
|
|
73
|
+
`REGRESSION` are raised only under `--verify light` or `full`, and
|
|
74
|
+
those of focus area `CONFIRMATION` only under `--verify full`, as
|
|
75
|
+
only then a verification honors their decisions.
|
|
74
76
|
All questions of a round are announced together below a
|
|
75
77
|
`GRILLING ROUND K/L` line (the round numbering is omitted when only
|
|
76
78
|
a single round is performed) as a `QUESTION`/`ANSWERS` table with
|
|
@@ -130,12 +132,17 @@ information.
|
|
|
130
132
|
no usable facts are found, a warning is shown and the grilling falls
|
|
131
133
|
back to model knowledge. Only effective together with `--grill`.
|
|
132
134
|
|
|
133
|
-
- `--verify`|`-v`:
|
|
134
|
-
Verify whether the implementation fulfills the requirements,
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
135
|
+
- `--verify`|`-v` `light`|`none`|`full`:
|
|
136
|
+
Verify whether the implementation fulfills the requirements, and
|
|
137
|
+
adjust the failing parts of the change set until the verification
|
|
138
|
+
passes, for at most ten rounds, listing any failures remaining after
|
|
139
|
+
the last round as `REMAINING FAILURES`. The default `light` runs the
|
|
140
|
+
available lint and build commands (including the type-checker) and
|
|
141
|
+
the already existing regression test suite, if any. The level `full`
|
|
142
|
+
additionally performs individual, change-specific manual tests
|
|
143
|
+
through ad-hoc scratch tests and program runs, which are cleaned up
|
|
144
|
+
afterwards. The level `none` strictly performs no verification at
|
|
145
|
+
all.
|
|
139
146
|
|
|
140
147
|
- `--worktree`|`-w` *name*[`:`*branch*]:
|
|
141
148
|
Apply the change sets inside the dedicated Git worktree
|
|
@@ -176,16 +183,22 @@ information.
|
|
|
176
183
|
|
|
177
184
|
## EXAMPLES
|
|
178
185
|
|
|
179
|
-
Edit in one shot, without any questions
|
|
186
|
+
Edit in one shot, without any questions, but with light verification:
|
|
180
187
|
|
|
181
188
|
```text
|
|
182
189
|
❯ /ase-code-edit add a --verbose option to the CLI
|
|
183
190
|
```
|
|
184
191
|
|
|
185
|
-
|
|
192
|
+
Edit in one shot, without any questions or verification:
|
|
193
|
+
|
|
194
|
+
```text
|
|
195
|
+
❯ /ase-code-edit -v none add a --verbose option to the CLI
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Grill the query with two rounds first, then implement and fully verify:
|
|
186
199
|
|
|
187
200
|
```text
|
|
188
|
-
❯ /ase-code-edit -g -r 2 -v refactor the config loading into layers
|
|
201
|
+
❯ /ase-code-edit -g -r 2 -v full refactor the config loading into layers
|
|
189
202
|
```
|
|
190
203
|
|
|
191
204
|
Let the user pick one of several resolution approaches first, then
|
|
@@ -10,6 +10,7 @@ effort: high
|
|
|
10
10
|
allowed-tools:
|
|
11
11
|
- "Bash(git rev-parse *)"
|
|
12
12
|
- "Bash(git -C *)"
|
|
13
|
+
- "Bash(find *)"
|
|
13
14
|
---
|
|
14
15
|
|
|
15
16
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
@@ -123,8 +124,9 @@ related to a set of code quality aspects.
|
|
|
123
124
|
`<repo-root/>/`. If `<getopt-arguments/>` is not empty, keep only
|
|
124
125
|
those files which lie within the source code referenced by it,
|
|
125
126
|
expanding any directory or wildcard references with the `Glob`
|
|
126
|
-
tool
|
|
127
|
-
|
|
127
|
+
tool (or, if the `Glob` tool is not available, with the `find`
|
|
128
|
+
command via the `Bash` tool). Set <sources/> to the resulting list
|
|
129
|
+
of individual source code files, preserving order.
|
|
128
130
|
|
|
129
131
|
If <sources/> is empty, only output the following <template/>
|
|
130
132
|
and then *SKIP* the rest of this STEP 1 and the remaining steps
|
|
@@ -139,7 +141,9 @@ related to a set of code quality aspects.
|
|
|
139
141
|
|
|
140
142
|
For this, first *silently* resolve `<getopt-arguments/>` to the
|
|
141
143
|
list <sources/> of individual source code files, expanding any
|
|
142
|
-
directory or wildcard references with the `Glob` tool
|
|
144
|
+
directory or wildcard references with the `Glob` tool (or, if the
|
|
145
|
+
`Glob` tool is not available, with the `find` command via the
|
|
146
|
+
`Bash` tool).
|
|
143
147
|
|
|
144
148
|
If <sources/> is empty (no *source-reference* given or none of it
|
|
145
149
|
resolvable), only output the following <template/> and then *STOP*
|
|
@@ -321,7 +321,7 @@ Analyze only the unstaged and untracked source files below a directory:
|
|
|
321
321
|
[`--grill-until`|`-u` `MUST`|`SHOULD`|`MAY`]
|
|
322
322
|
[`--grill-perspective`|`-p` *perspective*]
|
|
323
323
|
[`--grill-ground`|`-G`]
|
|
324
|
-
[`--verify`|`-v`]
|
|
324
|
+
[`--verify`|`-v` `light`|`none`|`full`]
|
|
325
325
|
[`--worktree`|`-w` *name*[`:`*branch*]]
|
|
326
326
|
[`--loop`|`-l`]
|
|
327
327
|
[*query*]
|
|
@@ -341,7 +341,8 @@ parts), *discovering* (read the source artifacts related to the query),
|
|
|
341
341
|
*grilling* (optionally stress-test the query with rounds of questions),
|
|
342
342
|
*implementing* (optionally select an approach, then apply the change
|
|
343
343
|
set in place, honoring the tenet set selected via `--mode`), and
|
|
344
|
-
*verifying* (
|
|
344
|
+
*verifying* (verify the implementation until it passes, unless
|
|
345
|
+
disabled via `--verify none`). The
|
|
345
346
|
*querying* state, every *grilling* round, and the approach selection
|
|
346
347
|
close with an `EDIT TODO` box showing the established `WHAT` and `HOW`
|
|
347
348
|
information.
|
|
@@ -376,8 +377,9 @@ information.
|
|
|
376
377
|
of a round are sorted by descending focus area importance
|
|
377
378
|
(`DOMAIN`, `INTERFACE`, `ARCHITECTURE`, `IMPLEMENTATION`,
|
|
378
379
|
`REGRESSION`, `CONFIRMATION`). Questions of focus area
|
|
379
|
-
`REGRESSION`
|
|
380
|
-
|
|
380
|
+
`REGRESSION` are raised only under `--verify light` or `full`, and
|
|
381
|
+
those of focus area `CONFIRMATION` only under `--verify full`, as
|
|
382
|
+
only then a verification honors their decisions.
|
|
381
383
|
All questions of a round are announced together below a
|
|
382
384
|
`GRILLING ROUND K/L` line (the round numbering is omitted when only
|
|
383
385
|
a single round is performed) as a `QUESTION`/`ANSWERS` table with
|
|
@@ -437,12 +439,17 @@ information.
|
|
|
437
439
|
no usable facts are found, a warning is shown and the grilling falls
|
|
438
440
|
back to model knowledge. Only effective together with `--grill`.
|
|
439
441
|
|
|
440
|
-
- `--verify`|`-v`:
|
|
441
|
-
Verify whether the implementation fulfills the requirements,
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
442
|
+
- `--verify`|`-v` `light`|`none`|`full`:
|
|
443
|
+
Verify whether the implementation fulfills the requirements, and
|
|
444
|
+
adjust the failing parts of the change set until the verification
|
|
445
|
+
passes, for at most ten rounds, listing any failures remaining after
|
|
446
|
+
the last round as `REMAINING FAILURES`. The default `light` runs the
|
|
447
|
+
available lint and build commands (including the type-checker) and
|
|
448
|
+
the already existing regression test suite, if any. The level `full`
|
|
449
|
+
additionally performs individual, change-specific manual tests
|
|
450
|
+
through ad-hoc scratch tests and program runs, which are cleaned up
|
|
451
|
+
afterwards. The level `none` strictly performs no verification at
|
|
452
|
+
all.
|
|
446
453
|
|
|
447
454
|
- `--worktree`|`-w` *name*[`:`*branch*]:
|
|
448
455
|
Apply the change sets inside the dedicated Git worktree
|
|
@@ -483,16 +490,22 @@ information.
|
|
|
483
490
|
|
|
484
491
|
## EXAMPLES
|
|
485
492
|
|
|
486
|
-
Edit in one shot, without any questions
|
|
493
|
+
Edit in one shot, without any questions, but with light verification:
|
|
487
494
|
|
|
488
495
|
```text
|
|
489
496
|
❯ /ase-code-edit add a --verbose option to the CLI
|
|
490
497
|
```
|
|
491
498
|
|
|
492
|
-
|
|
499
|
+
Edit in one shot, without any questions or verification:
|
|
493
500
|
|
|
494
501
|
```text
|
|
495
|
-
❯ /ase-code-edit -
|
|
502
|
+
❯ /ase-code-edit -v none add a --verbose option to the CLI
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
Grill the query with two rounds first, then implement and fully verify:
|
|
506
|
+
|
|
507
|
+
```text
|
|
508
|
+
❯ /ase-code-edit -g -r 2 -v full refactor the config loading into layers
|
|
496
509
|
```
|
|
497
510
|
|
|
498
511
|
Let the user pick one of several resolution approaches first, then
|
|
@@ -2618,7 +2631,7 @@ The `ase-repo-changelog` skill helps to *complete*, *consolidate*, and
|
|
|
2618
2631
|
file, based on the underlying *Git* commits and the currently staged
|
|
2619
2632
|
changes in the Git *index*.
|
|
2620
2633
|
|
|
2621
|
-
Each entry
|
|
2634
|
+
Each entry starts with `<change-type> [<artifact-kind>]: <summary>`
|
|
2622
2635
|
where *change-type* is one of `FEATURE`, `IMPROVEMENT`, `BUGFIX`,
|
|
2623
2636
|
`UPDATE`, `CLEANUP`, or `REFACTOR`, and *artifact-kind* is one or more
|
|
2624
2637
|
comma-separated *artifact class* tags out of `spec`, `code`, `docs`,
|
|
@@ -2626,6 +2639,10 @@ comma-separated *artifact class* tags out of `spec`, `code`, `docs`,
|
|
|
2626
2639
|
prefix. The date in the section header is also updated to the current
|
|
2627
2640
|
date.
|
|
2628
2641
|
|
|
2642
|
+
The layout of the entries follows the style of the existing entries
|
|
2643
|
+
of the file (e.g. a single line, a title line plus an explaining body,
|
|
2644
|
+
or a wrapped sentence), and each entry is kept within about 5 lines.
|
|
2645
|
+
|
|
2629
2646
|
## SCENARIOS
|
|
2630
2647
|
|
|
2631
2648
|
- You want the `CHANGELOG.md` brought up to date with recent commits
|
|
@@ -3295,6 +3312,123 @@ Review the last commit:
|
|
|
3295
3312
|
❯ /ase-repo-review -c HEAD
|
|
3296
3313
|
```
|
|
3297
3314
|
|
|
3315
|
+
</purpose>
|
|
3316
|
+
<purpose name="ase-repo-stage">
|
|
3317
|
+
|
|
3318
|
+
## NAME
|
|
3319
|
+
|
|
3320
|
+
`ase-repo-stage` - Stage a Part of the Changes
|
|
3321
|
+
|
|
3322
|
+
## SYNOPSIS
|
|
3323
|
+
|
|
3324
|
+
`ase-repo-stage`
|
|
3325
|
+
[`--help`|`-h`]
|
|
3326
|
+
[`--entry`|`-e`]
|
|
3327
|
+
[`--turn`|`-t`]
|
|
3328
|
+
[`--session`|`-s`]
|
|
3329
|
+
[`--merge`|`-m`]
|
|
3330
|
+
[`--no-verify`|`-V`]
|
|
3331
|
+
[`--worktree`|`-w`]
|
|
3332
|
+
[`--changelog`|`-c`]
|
|
3333
|
+
[`--commit`|`-C`]
|
|
3334
|
+
[*topic*]
|
|
3335
|
+
|
|
3336
|
+
## DESCRIPTION
|
|
3337
|
+
|
|
3338
|
+
The `ase-repo-stage` skill stages only the *part* of the current Git working copy changes which
|
|
3339
|
+
belongs to a *selection*, so a mixed change set can be committed in cohesive portions without
|
|
3340
|
+
hand-crafted partial patches.
|
|
3341
|
+
|
|
3342
|
+
The selection is either a free-text *topic*, the *last* `CHANGELOG.md` entry (`--entry`), the
|
|
3343
|
+
changes of the *last turn* (`--turn`), or all changes of the current *session* (`--session`).
|
|
3344
|
+
Without an option, the selection is inferred from the *topic* text, so `stage the last turn`
|
|
3345
|
+
works, too. An explicitly given option overrides the inference, and a remaining *topic* narrows
|
|
3346
|
+
the entry, turn, and session selections.
|
|
3347
|
+
|
|
3348
|
+
The changes are picked at the granularity of individual *lines*: hunks which belong to the
|
|
3349
|
+
selection only partially are *split*, and untracked files are selectable, even partially.
|
|
3350
|
+
Mutually dependent changes, like a use and its import, are kept together. Unless `--merge` is
|
|
3351
|
+
given, the selection *replaces* the current index content. Only the Git index is changed, never
|
|
3352
|
+
the content of a working copy file.
|
|
3353
|
+
|
|
3354
|
+
After staging, the skill checks that the *staged state alone builds*, with the build command
|
|
3355
|
+
auto-detected from the project. By default, the remaining unstaged changes are temporarily
|
|
3356
|
+
stashed for this, or -- under `--worktree` -- the staged state is built in a temporary worktree.
|
|
3357
|
+
A failed build keeps the staged selection and is reported with its essential error lines.
|
|
3358
|
+
|
|
3359
|
+
Finally, the skill optionally chains into the ChangeLog updating and the commit message
|
|
3360
|
+
crafting, both for the staged selection.
|
|
3361
|
+
|
|
3362
|
+
## OPTIONS
|
|
3363
|
+
|
|
3364
|
+
- `--entry`|`-e`:
|
|
3365
|
+
Select the changes which realize the *last* `CHANGELOG.md` entry, i.e. the entry added or
|
|
3366
|
+
modified by the uncommitted change of `CHANGELOG.md`, plus the entry itself.
|
|
3367
|
+
|
|
3368
|
+
- `--turn`|`-t`:
|
|
3369
|
+
Select the changes made by the agent in the *last turn* before the skill invocation.
|
|
3370
|
+
|
|
3371
|
+
- `--session`|`-s`:
|
|
3372
|
+
Select all changes made by the agent in the current *session*.
|
|
3373
|
+
|
|
3374
|
+
- `--merge`|`-m`:
|
|
3375
|
+
Stage the selection *on top* of the already staged changes, instead of replacing them.
|
|
3376
|
+
|
|
3377
|
+
- `--no-verify`|`-V`:
|
|
3378
|
+
Skip the check that the staged state builds on its own.
|
|
3379
|
+
|
|
3380
|
+
- `--worktree`|`-w`:
|
|
3381
|
+
Check the build in a *temporary Git worktree* holding only the staged state, instead of
|
|
3382
|
+
temporarily stashing the unstaged changes of the working copy.
|
|
3383
|
+
|
|
3384
|
+
- `--changelog`|`-c`:
|
|
3385
|
+
Afterwards, update the `CHANGELOG.md` entries via `ase-repo-changelog` and stage exactly the
|
|
3386
|
+
entries it added or updated.
|
|
3387
|
+
|
|
3388
|
+
- `--commit`|`-C`:
|
|
3389
|
+
Afterwards, craft the commit message of the staged selection via `ase-repo-commit`.
|
|
3390
|
+
|
|
3391
|
+
The options `--entry`, `--turn`, and `--session` are mutually exclusive.
|
|
3392
|
+
|
|
3393
|
+
## ARGUMENTS
|
|
3394
|
+
|
|
3395
|
+
- *topic*:
|
|
3396
|
+
A free-text description of the changes to stage, or -- without an option -- a reference
|
|
3397
|
+
like `last turn` or `last changelog entry` the selection is inferred from.
|
|
3398
|
+
|
|
3399
|
+
## SCENARIOS
|
|
3400
|
+
|
|
3401
|
+
- You want only the hunks related to a certain topic staged
|
|
3402
|
+
- You want only the changes of the last turn or of the session staged
|
|
3403
|
+
- You want the changes behind a `CHANGELOG.md` entry staged and committed
|
|
3404
|
+
- You want to be sure the staged part builds without the rest of the changes
|
|
3405
|
+
|
|
3406
|
+
## EXAMPLES
|
|
3407
|
+
|
|
3408
|
+
Stage only the hunks related to a topic:
|
|
3409
|
+
|
|
3410
|
+
```text
|
|
3411
|
+
❯ /ase-repo-stage the getopt negation handling
|
|
3412
|
+
```
|
|
3413
|
+
|
|
3414
|
+
Stage the changes of the last turn, checking the build in a temporary worktree:
|
|
3415
|
+
|
|
3416
|
+
```text
|
|
3417
|
+
❯ /ase-repo-stage --turn --worktree
|
|
3418
|
+
```
|
|
3419
|
+
|
|
3420
|
+
Stage the changes of the last ChangeLog entry and craft its commit message:
|
|
3421
|
+
|
|
3422
|
+
```text
|
|
3423
|
+
❯ /ase-repo-stage --entry --commit
|
|
3424
|
+
```
|
|
3425
|
+
|
|
3426
|
+
Add the session changes related to a topic to the already staged ones:
|
|
3427
|
+
|
|
3428
|
+
```text
|
|
3429
|
+
❯ /ase-repo-stage --session --merge task board
|
|
3430
|
+
```
|
|
3431
|
+
|
|
3298
3432
|
</purpose>
|
|
3299
3433
|
<purpose name="ase-spec-activate">
|
|
3300
3434
|
|
|
@@ -3387,7 +3521,7 @@ Activate and directly answer a question about the specification:
|
|
|
3387
3521
|
[`--grill-until`|`-u` `MUST`|`SHOULD`|`MAY`]
|
|
3388
3522
|
[`--grill-perspective`|`-p` *perspective*]
|
|
3389
3523
|
[`--grill-ground`|`-G`]
|
|
3390
|
-
[`--verify`|`-v`]
|
|
3524
|
+
[`--verify`|`-v` `light`|`none`|`full`]
|
|
3391
3525
|
[`--worktree`|`-w` *name*[`:`*branch*]]
|
|
3392
3526
|
[`--loop`|`-l`]
|
|
3393
3527
|
[*query*]
|
|
@@ -3411,8 +3545,8 @@ project, and read the specification artifacts related to the query),
|
|
|
3411
3545
|
*grilling* (optionally stress-test the query with rounds of questions),
|
|
3412
3546
|
*implementing* (optionally select an approach, then apply the change set
|
|
3413
3547
|
in place, honoring the GENERIC and SPECIFYING tenets and the `SPEC`
|
|
3414
|
-
format contract), and *verifying* (
|
|
3415
|
-
|
|
3548
|
+
format contract), and *verifying* (validate the specification until it
|
|
3549
|
+
passes, unless disabled via `--verify none`). The *querying* state, every *grilling* round, and the
|
|
3416
3550
|
approach selection close with an `EDIT TODO` box showing the established
|
|
3417
3551
|
`WHAT` and `HOW` information.
|
|
3418
3552
|
|
|
@@ -3448,8 +3582,9 @@ timestamp refreshed.
|
|
|
3448
3582
|
of a round are sorted by descending focus area importance
|
|
3449
3583
|
(`DOMAIN`, `INTERFACE`, `ARCHITECTURE`, `IMPLEMENTATION`,
|
|
3450
3584
|
`REGRESSION`, `CONFIRMATION`). Questions of focus area
|
|
3451
|
-
`REGRESSION`
|
|
3452
|
-
|
|
3585
|
+
`REGRESSION` are raised only under `--verify light` or `full`, and
|
|
3586
|
+
those of focus area `CONFIRMATION` only under `--verify full`, as
|
|
3587
|
+
only then a verification honors their decisions.
|
|
3453
3588
|
All questions of a round are announced together below a `GRILLING ROUND K/L` line (the round numbering is
|
|
3454
3589
|
omitted when only a single round is performed) as a
|
|
3455
3590
|
`QUESTION`/`ANSWERS` table with one row per question, each row
|
|
@@ -3508,12 +3643,13 @@ timestamp refreshed.
|
|
|
3508
3643
|
no usable facts are found, a warning is shown and the grilling falls
|
|
3509
3644
|
back to model knowledge. Only effective together with `--grill`.
|
|
3510
3645
|
|
|
3511
|
-
- `--verify`|`-v`:
|
|
3646
|
+
- `--verify`|`-v` `light`|`none`|`full`:
|
|
3512
3647
|
Verify the edited specification by validating it via *SpecBook*
|
|
3513
3648
|
linting and fixing the reported diagnostics in the affected `SPEC`
|
|
3514
|
-
artifacts, for at most
|
|
3515
|
-
the last round are listed as `REMAINING DIAGNOSTICS`.
|
|
3516
|
-
|
|
3649
|
+
artifacts, for at most ten rounds. Any diagnostics remaining after
|
|
3650
|
+
the last round are listed as `REMAINING DIAGNOSTICS`. The default
|
|
3651
|
+
`light` and the level `full` perform the same validation. The level
|
|
3652
|
+
`none` strictly performs no validation at all.
|
|
3517
3653
|
|
|
3518
3654
|
- `--worktree`|`-w` *name*[`:`*branch*]:
|
|
3519
3655
|
Apply the change sets inside the dedicated Git worktree
|
|
@@ -3525,8 +3661,8 @@ timestamp refreshed.
|
|
|
3525
3661
|
single worktree serves the whole skill run: it is prepared before
|
|
3526
3662
|
the first discovery, so discovering, grilling, and implementing all
|
|
3527
3663
|
operate on it, all `--loop` iterations land in it, and it is left
|
|
3528
|
-
uncommitted for review.
|
|
3529
|
-
`--verify
|
|
3664
|
+
uncommitted for review. Unless
|
|
3665
|
+
`--verify none` is given, the validation then runs as the `ase spec lint` command
|
|
3530
3666
|
inside the worktree. If *name* is a bare lower-case word naming no
|
|
3531
3667
|
existing worktree and a *query* follows (like `-w fix the crash`, a
|
|
3532
3668
|
former boolean `-w` usage), the skill asks whether *name* is the
|
|
@@ -3555,16 +3691,22 @@ timestamp refreshed.
|
|
|
3555
3691
|
|
|
3556
3692
|
## EXAMPLES
|
|
3557
3693
|
|
|
3558
|
-
Edit in one shot, without any questions
|
|
3694
|
+
Edit in one shot, without any questions, but with validation:
|
|
3559
3695
|
|
|
3560
3696
|
```text
|
|
3561
3697
|
❯ /ase-spec-edit add a Reviewer persona to the persona model
|
|
3562
3698
|
```
|
|
3563
3699
|
|
|
3564
|
-
|
|
3700
|
+
Edit in one shot, without any questions or validation:
|
|
3701
|
+
|
|
3702
|
+
```text
|
|
3703
|
+
❯ /ase-spec-edit -v none add a Reviewer persona to the persona model
|
|
3704
|
+
```
|
|
3705
|
+
|
|
3706
|
+
Grill the query with two rounds first, then edit and fully validate:
|
|
3565
3707
|
|
|
3566
3708
|
```text
|
|
3567
|
-
❯ /ase-spec-edit -g -r 2 -v split the Event entity into Event and EventSeries
|
|
3709
|
+
❯ /ase-spec-edit -g -r 2 -v full split the Event entity into Event and EventSeries
|
|
3568
3710
|
```
|
|
3569
3711
|
|
|
3570
3712
|
Let the user pick one of several specification approaches first, then
|
|
@@ -4453,6 +4595,9 @@ Dissect a specific task plan with a hint:
|
|
|
4453
4595
|
[`--mode`|`-m` `auto`|`craft`|`refactor`|`resolve`|`specify`]
|
|
4454
4596
|
[`--approach`|`-a`]
|
|
4455
4597
|
[`--unverified`|`-u`]
|
|
4598
|
+
[`--focus`|`-f` *section*[,...]]
|
|
4599
|
+
[`--quiet`|`-q`]
|
|
4600
|
+
[`--interactive`|`-i`]
|
|
4456
4601
|
[`--next`|`-n` *option*[,...]]
|
|
4457
4602
|
[*id* | *id*: *instruction* | *instruction* | *issue-id*]
|
|
4458
4603
|
|
|
@@ -4537,6 +4682,51 @@ stale draft.
|
|
|
4537
4682
|
build, tests, linter, type-checker, or program execution) once
|
|
4538
4683
|
the source files have been modified.
|
|
4539
4684
|
|
|
4685
|
+
- `--focus`|`-f` *section*[,...]:
|
|
4686
|
+
Edit and show only the given plan *section*(s). Each *section* is
|
|
4687
|
+
one of `SPECIFICATION` (also `SPEC` or `WHAT`), `DESIGN` (also `DES`
|
|
4688
|
+
or `HOW`), or `VERIFICATION` (also `VERIFY`, `VER`, or `WHEN`),
|
|
4689
|
+
matched case-sensitively, or the sentinel `all` (default). The shown
|
|
4690
|
+
plan consists only of these sections, including their headings, but
|
|
4691
|
+
without the frontmatter and the title.
|
|
4692
|
+
|
|
4693
|
+
The rest of the plan stays the context, and an *instruction* requiring a
|
|
4694
|
+
change outside of the focus is applied nevertheless and reported by
|
|
4695
|
+
a warning. A new plan gets all section headings, but only the focused
|
|
4696
|
+
sections are populated, and `OVERWRITE` re-generates only them. An
|
|
4697
|
+
unknown, empty, or duplicate *section* token aborts the skill. It is
|
|
4698
|
+
forwarded on a hand-off to `ase-task-grill`, but not on a hand-off
|
|
4699
|
+
to another skill.
|
|
4700
|
+
|
|
4701
|
+
- `--quiet`|`-q`:
|
|
4702
|
+
Do not print the resulting plan at the end of a planning round. The
|
|
4703
|
+
status lines, the dialogs, and the warning on a stale implementation
|
|
4704
|
+
draft stay. It is forwarded on a hand-off to `ase-task-grill`, but
|
|
4705
|
+
not on a hand-off to another skill.
|
|
4706
|
+
|
|
4707
|
+
- `--interactive`|`-i`:
|
|
4708
|
+
Show the plan in a band above the prompt (*Anthropic Claude Code CLI* with
|
|
4709
|
+
active ASE function hooks in an interactive terminal only, else the skill
|
|
4710
|
+
aborts), instead of printing it, and ask for the next step without any
|
|
4711
|
+
dialog. The band takes 75% of the terminal height, in the fullscreen mode
|
|
4712
|
+
all the rows the terminal UI leaves it. Under `--focus`, it shows only the
|
|
4713
|
+
focused sections.
|
|
4714
|
+
|
|
4715
|
+
The band follows every change of the plan, also by others, and keeps its
|
|
4716
|
+
scroll position. Its line numbers are those of the plan text in `ase task
|
|
4717
|
+
edit`. It shows the last change as a unified diff with colored backgrounds and
|
|
4718
|
+
line numbers, red for removed and blue for added lines. In the fullscreen
|
|
4719
|
+
mode, scroll it with the mouse wheel, or with *CTRL+x* *TAB* and then
|
|
4720
|
+
*PageUp*/*PageDown*.
|
|
4721
|
+
|
|
4722
|
+
At the prompt, type either a refinement instruction, or one of `DONE`,
|
|
4723
|
+
`GRILL`, `DRAFT`, `IMPLEMENT`, or `CANCEL` (in any case), which closes the
|
|
4724
|
+
band. After a hand-off to `ase-task-grill`, a hand-off back reopens it.
|
|
4725
|
+
|
|
4726
|
+
Type `##` at the end of the prompt (which removes it again) to remove the
|
|
4727
|
+
unified diff and show just the latest state of the plan, until its next
|
|
4728
|
+
change. The band stays open and the input does not reach the agent.
|
|
4729
|
+
|
|
4540
4730
|
- `--next`|`-n` *option*[,...]:
|
|
4541
4731
|
Automatically answer the user dialog for the next step (at the end
|
|
4542
4732
|
of this skill). *option* is a single token or a *comma-separated
|
|
@@ -4608,6 +4798,18 @@ Plan a refactoring under the id `cleanup`:
|
|
|
4608
4798
|
❯ /ase-task-edit -m refactor cleanup: extract HTTP client into its own class
|
|
4609
4799
|
```
|
|
4610
4800
|
|
|
4801
|
+
Refine and show only the `DESIGN` section of the task under id `hello`:
|
|
4802
|
+
|
|
4803
|
+
```text
|
|
4804
|
+
❯ /ase-task-edit --focus HOW hello: print the text via a dedicated logger.
|
|
4805
|
+
```
|
|
4806
|
+
|
|
4807
|
+
Refine the task under id `hello` with its plan shown in a band above the prompt:
|
|
4808
|
+
|
|
4809
|
+
```text
|
|
4810
|
+
❯ /ase-task-edit --interactive hello
|
|
4811
|
+
```
|
|
4812
|
+
|
|
4611
4813
|
</purpose>
|
|
4612
4814
|
<purpose name="ase-task-estimate">
|
|
4613
4815
|
|
|
@@ -4781,6 +4983,7 @@ Calibrate the estimation and store the fitted rates:
|
|
|
4781
4983
|
[`--ground`|`-G`]
|
|
4782
4984
|
[`--focus`|`-f` *section*[,...]]
|
|
4783
4985
|
[`--force`|`-F`]
|
|
4986
|
+
[`--quiet`|`-q`]
|
|
4784
4987
|
[`--next`|`-n` *option*[,...]]
|
|
4785
4988
|
[*id*]
|
|
4786
4989
|
|
|
@@ -4829,7 +5032,7 @@ persisted, its `Tags:` frontmatter key records each grilled section as
|
|
|
4829
5032
|
its own tag `grilled:`*section* (lower-case, kept alongside the tags of
|
|
4830
5033
|
previously grilled sections, e.g. `grilled:specification,
|
|
4831
5034
|
grilled:design`), and a `PLAN CHANGES` box shows the bullet-points
|
|
4832
|
-
changed by the round. Finally, the user is offered a complete
|
|
5035
|
+
changed by the round (unless `--quiet` is given). Finally, the user is offered a complete
|
|
4833
5036
|
re-grilling (with the same grilling options), or a hand-off to editing,
|
|
4834
5037
|
implementation, or draft.
|
|
4835
5038
|
|
|
@@ -4891,19 +5094,28 @@ in state `[-]` (cancelled) or `[>]` (deferred) are never questioned.
|
|
|
4891
5094
|
|
|
4892
5095
|
- `--focus`|`-f` *section*[,...]:
|
|
4893
5096
|
Grill only the given plan *section*(s), in the given order. Each
|
|
4894
|
-
*section* is one of `SPECIFICATION` (
|
|
4895
|
-
(
|
|
4896
|
-
case-
|
|
4897
|
-
to `SPECIFICATION,DESIGN,VERIFICATION`. The questions
|
|
4898
|
-
from the themes of the focused sections only, while the
|
|
4899
|
-
stays the context, and
|
|
4900
|
-
|
|
5097
|
+
*section* is one of `SPECIFICATION` (also `SPEC` or `WHAT`), `DESIGN`
|
|
5098
|
+
(also `DES` or `HOW`), or `VERIFICATION` (also `VERIFY`, `VER`, or
|
|
5099
|
+
`WHEN`), matched case-sensitively, or the sentinel `all` (default),
|
|
5100
|
+
which expands to `SPECIFICATION,DESIGN,VERIFICATION`. The questions
|
|
5101
|
+
are derived from the themes of the focused sections only, while the
|
|
5102
|
+
entire plan stays the context, and an answer requiring a change
|
|
5103
|
+
outside of the focus is applied nevertheless and reported by a
|
|
5104
|
+
warning. An unknown, empty, or duplicate *section* token aborts the
|
|
5105
|
+
skill. It is forwarded on a re-grilling and on a hand-off to
|
|
5106
|
+
`ase-task-edit`, but not on a hand-off to another skill.
|
|
4901
5107
|
|
|
4902
5108
|
- `--force`|`-F`:
|
|
4903
5109
|
Re-grill already grilled sections completely, i.e., ignore their
|
|
4904
5110
|
`grilled:`*section* tags instead of skipping them resp. re-asking
|
|
4905
5111
|
only their `[?]` bullet-points.
|
|
4906
5112
|
|
|
5113
|
+
- `--quiet`|`-q`:
|
|
5114
|
+
Do not print the `PLAN CHANGES` box of the bullet-points changed by
|
|
5115
|
+
a round. The status lines and the dialogs stay. It is forwarded on a
|
|
5116
|
+
re-grilling and on a hand-off to `ase-task-edit`, but not on a
|
|
5117
|
+
hand-off to another skill.
|
|
5118
|
+
|
|
4907
5119
|
- `--next`|`-n` *option*[,...]:
|
|
4908
5120
|
Automatically answer the user dialog for the next step (at the end
|
|
4909
5121
|
of this skill). *option* is a single token or a *comma-separated
|
|
@@ -47,6 +47,7 @@
|
|
|
47
47
|
○ `ase-repo-diff`: Summarize Diff
|
|
48
48
|
○ `ase-repo-review`: Review Changes
|
|
49
49
|
○ `ase-repo-dissect`: Dissect a Change Set
|
|
50
|
+
○ `ase-repo-stage`: Stage a Part of the Changes
|
|
50
51
|
○ `ase-repo-merge`: Merge a Branch
|
|
51
52
|
○ `ase-repo-resolve`: Resolve Merge Conflicts
|
|
52
53
|
|
|
@@ -28,6 +28,7 @@ START -> ase-meta-proximity
|
|
|
28
28
|
START -> ase-meta-mint
|
|
29
29
|
START -> ase-meta-workflow
|
|
30
30
|
START -> ase-repo-dissect
|
|
31
|
+
START -> ase-repo-stage
|
|
31
32
|
START -> ase-repo-merge
|
|
32
33
|
START -> ase-repo-resolve
|
|
33
34
|
ase-help-skill -> END
|
|
@@ -60,6 +61,7 @@ ase-meta-proximity -> END
|
|
|
60
61
|
ase-meta-mint -> END
|
|
61
62
|
ase-meta-workflow -> END
|
|
62
63
|
ase-repo-dissect -> END
|
|
64
|
+
ase-repo-stage -> END
|
|
63
65
|
ase-repo-merge -> END
|
|
64
66
|
ase-repo-resolve -> END
|
|
65
67
|
START -> SKETCH
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
name: ase-repo-changelog
|
|
3
3
|
argument-hint: "[--help|-h]"
|
|
4
4
|
description: >
|
|
5
|
-
Update ChangeLog entries in CHANGELOG.md files
|
|
5
|
+
Update ChangeLog entries in CHANGELOG.md files. Use when the user wants to
|
|
6
|
+
"add a changelog entry", or to "update", "complete", or "consolidate" the
|
|
7
|
+
"changelog", "ChangeLog", or "CHANGELOG.md", e.g. before committing or releasing.
|
|
6
8
|
user-invocable: true
|
|
7
9
|
disable-model-invocation: false
|
|
8
10
|
model: sonnet
|
|
@@ -41,7 +43,7 @@ Format
|
|
|
41
43
|
The *ChangeLog* file is a Markdown formatted file named `CHANGELOG.md`,
|
|
42
44
|
and contains sections with headers in the style `N.M.K (YYYY-MM-DD)`.
|
|
43
45
|
|
|
44
|
-
Each *ChangeLog* entry
|
|
46
|
+
Each *ChangeLog* entry always starts with a line formatted as...
|
|
45
47
|
|
|
46
48
|
`<change-type/> [<artifact-kind/>]: <summary/>`
|
|
47
49
|
|
|
@@ -66,9 +68,19 @@ multiple artifact kinds apply, comma-separate them
|
|
|
66
68
|
- `infr`: infrastructure/build/tooling artifacts
|
|
67
69
|
- `othr`: any other artifacts
|
|
68
70
|
|
|
69
|
-
The
|
|
70
|
-
*ChangeLog*
|
|
71
|
-
|
|
71
|
+
The *layout* of the entries *MUST* follow the *style* of the existing
|
|
72
|
+
entries of the *ChangeLog* file, especially its list item marker and
|
|
73
|
+
indentation, its blank lines between entries, its line width, and its
|
|
74
|
+
entry shape, e.g. a single-line <summary/>, a short <summary/> title
|
|
75
|
+
line followed by an indented body of explaining sentences, or a
|
|
76
|
+
<summary/> sentence wrapped over multiple indented lines. Only if the
|
|
77
|
+
file contains no entries yet, use a single-line <summary/> of about
|
|
78
|
+
60-80 characters.
|
|
79
|
+
|
|
80
|
+
Each entry, including all its title and body lines, *MUST* be kept
|
|
81
|
+
within about *5 lines* in total. The *ChangeLog* entries for a single
|
|
82
|
+
product release version are also always grouped and sorted according
|
|
83
|
+
to the above <change-type/> list.
|
|
72
84
|
|
|
73
85
|
Processing
|
|
74
86
|
----------
|
|
@@ -144,8 +156,9 @@ Processing
|
|
|
144
156
|
the entries in the first (most recent) section only, by adding the
|
|
145
157
|
corresponding (most recent) Git *commits* and *staged* changes only.
|
|
146
158
|
|
|
147
|
-
For each Git commit, reduce the Git commit messages to
|
|
148
|
-
|
|
159
|
+
For each Git commit, reduce the Git commit messages to an entry in
|
|
160
|
+
the *style* of the existing entries, kept within about *5 lines*
|
|
161
|
+
(see section *Format* above).
|
|
149
162
|
|
|
150
163
|
For each entry, also determine the <artifact-kind/> *artifact kind*
|
|
151
164
|
tag(s) from the paths of the changed files. To classify a changed
|
|
@@ -178,7 +191,8 @@ Processing
|
|
|
178
191
|
Without immediately modifying the `CHANGELOG.md` file, *consolidate*
|
|
179
192
|
the entries in the first (most recent) section only, by summarizing
|
|
180
193
|
and merging closely related entries. Perform the entry consolidation
|
|
181
|
-
per <change-type/> group only.
|
|
194
|
+
per <change-type/> group only. Also condense any entry of this
|
|
195
|
+
section, which exceeds about *5 lines*, by compressing its wording.
|
|
182
196
|
|
|
183
197
|
Without immediately modifying the `CHANGELOG.md` file, *sort* the
|
|
184
198
|
entries in the first (most recent) section only. Instead of the
|
|
@@ -200,8 +214,13 @@ Processing
|
|
|
200
214
|
`YYYY-MM-DD` in the `N.M.K (YYYY-MM-DD)` header of the *first* (most
|
|
201
215
|
recent) section.
|
|
202
216
|
|
|
203
|
-
|
|
204
|
-
|
|
217
|
+
For this, you *MUST* use the `Edit` tool, replacing just the *first*
|
|
218
|
+
(most recent) section, instead of re-writing the entire file with
|
|
219
|
+
the `Write` tool, so that the resulting changes are shown to the
|
|
220
|
+
user as a diff by the agent tool itself.
|
|
221
|
+
|
|
222
|
+
You *MUST* *NOT* output the resulting entries a second time, any
|
|
223
|
+
further summary, or any further explanations.
|
|
205
224
|
|
|
206
225
|
</step>
|
|
207
226
|
|