@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.
Files changed (68) hide show
  1. package/dst/ase-agent-definition-api.d.ts +2 -0
  2. package/dst/ase-agent-definition-core.js +24 -3
  3. package/dst/ase-agent-fleet.js +2 -1
  4. package/dst/ase-agent-relay-client.js +3 -4
  5. package/dst/ase-agent-runtime-engine.js +22 -4
  6. package/dst/ase-agent-runtime-tool.js +10 -8
  7. package/dst/ase-agent-runtime.js +8 -4
  8. package/dst/ase-config-schema.js +4 -1
  9. package/dst/ase-lib-fetch.js +12 -0
  10. package/dst/ase-lib-server-cli.js +8 -5
  11. package/dst/ase-man-catalog.js +1 -1
  12. package/dst/ase-task-board-diff.js +120 -0
  13. package/dst/ase-task-board-tui-control.js +8 -5
  14. package/dst/ase-task-board-tui-model.js +54 -14
  15. package/dst/ase-task-board-tui-popup.js +41 -8
  16. package/dst/ase-task-board-tui.js +42 -27
  17. package/dst/ase-task-board-web-client.css +1 -1
  18. package/dst/ase-task-board-web-client.html +16 -0
  19. package/dst/ase-task-board-web-client.js +33 -33
  20. package/dst/ase-task-board-web-server.js +44 -9
  21. package/dst/ase-task-board.js +12 -4
  22. package/dst/ase-task-store-client.js +4 -5
  23. package/dst/ase-task-store-plugin-gitea.js +3 -3
  24. package/dst/man/ase-agent-adhoc.md +25 -6
  25. package/dst/man/ase-agent-condenser.md +7 -0
  26. package/dst/man/ase-agent-editor.md +7 -0
  27. package/dst/man/ase-agent-estimator.md +7 -0
  28. package/dst/man/ase-agent-fleet.md +7 -4
  29. package/dst/man/ase-agent-implementer.md +7 -0
  30. package/dst/man/ase-agent-integrator.md +7 -0
  31. package/dst/man/ase-agent-qualifier.md +7 -0
  32. package/dst/man/ase-agent-rebooter.md +7 -0
  33. package/dst/man/ase-agent-researcher.md +7 -0
  34. package/dst/man/ase-config-init.md +2 -1
  35. package/dst/man/ase-config.md +5 -0
  36. package/dst/man/ase-task-board.md +44 -2
  37. package/package.json +11 -10
  38. package/plugin/.claude-plugin/plugin.json +1 -1
  39. package/plugin/.codex-plugin/plugin.json +1 -1
  40. package/plugin/.github/plugin/plugin.json +1 -1
  41. package/plugin/meta/ase-common-task.md +33 -1
  42. package/plugin/meta/ase-control.md +14 -0
  43. package/plugin/meta/ase-format-specbook.yaml +9 -9
  44. package/plugin/meta/ase-skill.md +7 -0
  45. package/plugin/mods/ase-mods-common.ts +73 -42
  46. package/plugin/mods/ase-mods-help-hint.ts +1 -1
  47. package/plugin/mods/ase-mods-task-edit.ts +427 -0
  48. package/plugin/mods/ase-mods.ts +45 -14
  49. package/plugin/skills/ase-code-edit/SKILL.md +53 -16
  50. package/plugin/skills/ase-code-edit/help.md +26 -13
  51. package/plugin/skills/ase-code-lint/SKILL.md +7 -3
  52. package/plugin/skills/ase-help-intent/data.md +248 -36
  53. package/plugin/skills/ase-help-skill/catalog.md +1 -0
  54. package/plugin/skills/ase-meta-workflow/workflow.txt +2 -0
  55. package/plugin/skills/ase-repo-changelog/SKILL.md +29 -10
  56. package/plugin/skills/ase-repo-changelog/help.md +5 -1
  57. package/plugin/skills/ase-repo-commit/SKILL.md +4 -1
  58. package/plugin/skills/ase-repo-dissect/help.md +2 -1
  59. package/plugin/skills/ase-repo-stage/SKILL.md +459 -0
  60. package/plugin/skills/ase-repo-stage/help.md +120 -0
  61. package/plugin/skills/ase-spec-edit/SKILL.md +20 -12
  62. package/plugin/skills/ase-spec-edit/help.md +22 -14
  63. package/plugin/skills/ase-task-edit/SKILL.md +114 -9
  64. package/plugin/skills/ase-task-edit/help.md +60 -0
  65. package/plugin/skills/ase-task-grill/SKILL.md +35 -20
  66. package/plugin/skills/ase-task-grill/help.md +18 -8
  67. /package/plugin/mods/{ase-mods-evaluate.ts → ase-mods-meta-evaluate.ts} +0 -0
  68. /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* (optionally verify the implementation until it passes). The
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` and `CONFIRMATION` are raised only together with
73
- `--verify`, as only then a verification honors their decisions.
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, by
135
- running the available verification commands (build, tests, linter,
136
- type-checker) and adjusting the failing parts of the change set
137
- until the verification passes. Without `--verify`, strictly no
138
- verification is performed at all.
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 or verification:
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
- Grill the query with two rounds first, then implement and verify:
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. Set <sources/> to the resulting list of individual source
127
- code files, preserving order.
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* (optionally verify the implementation until it passes). The
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` and `CONFIRMATION` are raised only together with
380
- `--verify`, as only then a verification honors their decisions.
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, by
442
- running the available verification commands (build, tests, linter,
443
- type-checker) and adjusting the failing parts of the change set
444
- until the verification passes. Without `--verify`, strictly no
445
- verification is performed at all.
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 or verification:
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
- Grill the query with two rounds first, then implement and verify:
499
+ Edit in one shot, without any questions or verification:
493
500
 
494
501
  ```text
495
- ❯ /ase-code-edit -g -r 2 -v refactor the config loading into layers
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 is formatted as `<change-type> [<artifact-kind>]: <summary>`
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* (optionally validate the specification
3415
- until it passes). The *querying* state, every *grilling* round, and the
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` and `CONFIRMATION` are raised only together with
3452
- `--verify`, as only then a verification honors their decisions.
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 three rounds. Any diagnostics remaining after
3515
- the last round are listed as `REMAINING DIAGNOSTICS`. Without
3516
- `--verify`, strictly no validation is performed at all.
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. Under
3529
- `--verify`, the validation then runs as the `ase spec lint` command
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 or validation:
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
- Grill the query with two rounds first, then edit and validate:
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` (abbreviated `SPEC`), `DESIGN`
4895
- (abbreviated `DES`), or `VERIFICATION` (abbreviated `VER`), matched
4896
- case-insensitively, or the sentinel `all` (default), which expands
4897
- to `SPECIFICATION,DESIGN,VERIFICATION`. The questions are derived
4898
- from the themes of the focused sections only, while the entire plan
4899
- stays the context, and the answers may still update any section.
4900
- An unknown, empty, or duplicate *section* token aborts the skill.
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 is always formatted as...
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 <summary/> is not longer than about 60-80 characters. The
70
- *ChangeLog* entries for a single product release version are also always
71
- grouped and sorted according to the above <change-type/> list.
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 a single
148
- short <summary/> sentence, not longer than 60-80 characters.
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
- You *MUST* *NOT* output any further summary or give any further
204
- explanations.
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