@rse/ase 0.9.65 → 0.9.67

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 (77) hide show
  1. package/dst/ase-hook.js +1 -1
  2. package/dst/ase-metric.js +103 -0
  3. package/dst/ase-mint.js +106 -0
  4. package/dst/ase-service.js +4 -0
  5. package/dst/ase-setup.js +133 -1
  6. package/dst/ase-spec.js +104 -40
  7. package/dst/ase-statusline.js +11 -2
  8. package/dst/ase.js +4 -0
  9. package/package.json +13 -12
  10. package/plugin/.claude-plugin/plugin.json +1 -1
  11. package/plugin/.codex-plugin/plugin.json +1 -1
  12. package/plugin/.github/plugin/plugin.json +1 -1
  13. package/plugin/agents/ase-docs-proofread.md +13 -7
  14. package/plugin/agents/ase-docs-refine.md +165 -0
  15. package/plugin/agents/ase-docs-shorten.md +182 -0
  16. package/plugin/package.json +4 -4
  17. package/plugin/skills/ase-arch-analyze/help.md +1 -1
  18. package/plugin/skills/ase-arch-discover/help.md +4 -4
  19. package/plugin/skills/ase-code-analyze/help.md +1 -1
  20. package/plugin/skills/ase-code-craft/help.md +7 -7
  21. package/plugin/skills/ase-code-dissect/help.md +5 -5
  22. package/plugin/skills/ase-code-edit/help.md +7 -7
  23. package/plugin/skills/ase-code-explain/help.md +1 -1
  24. package/plugin/skills/ase-code-insight/help.md +1 -1
  25. package/plugin/skills/ase-code-lint/help.md +5 -5
  26. package/plugin/skills/ase-code-refactor/help.md +6 -6
  27. package/plugin/skills/ase-code-resolve/help.md +6 -6
  28. package/plugin/skills/ase-docs-distill/help.md +2 -2
  29. package/plugin/skills/ase-docs-proofread/SKILL.md +16 -12
  30. package/plugin/skills/ase-docs-proofread/help.md +18 -8
  31. package/plugin/skills/ase-docs-refine/SKILL.md +396 -0
  32. package/plugin/skills/ase-docs-refine/help.md +104 -0
  33. package/plugin/skills/ase-docs-shorten/SKILL.md +527 -0
  34. package/plugin/skills/ase-docs-shorten/help.md +120 -0
  35. package/plugin/skills/ase-help-intent/help.md +1 -1
  36. package/plugin/skills/ase-help-skill/catalog.md +4 -1
  37. package/plugin/skills/ase-help-skill/help.md +1 -1
  38. package/plugin/skills/ase-meta-brainstorm/help.md +5 -5
  39. package/plugin/skills/ase-meta-chat/help.md +2 -2
  40. package/plugin/skills/ase-meta-config/help.md +3 -3
  41. package/plugin/skills/ase-meta-diaboli/help.md +2 -2
  42. package/plugin/skills/ase-meta-diff/help.md +3 -3
  43. package/plugin/skills/ase-meta-eli5/help.md +2 -2
  44. package/plugin/skills/ase-meta-evaluate/help.md +1 -1
  45. package/plugin/skills/ase-meta-mint/SKILL.md +157 -0
  46. package/plugin/skills/ase-meta-mint/help.md +114 -0
  47. package/plugin/skills/ase-meta-proximity/help.md +3 -3
  48. package/plugin/skills/ase-meta-quorum/help.md +2 -2
  49. package/plugin/skills/ase-meta-quotes/help.md +4 -4
  50. package/plugin/skills/ase-meta-review/help.md +1 -1
  51. package/plugin/skills/ase-meta-search/help.md +2 -2
  52. package/plugin/skills/ase-meta-steelman/help.md +3 -3
  53. package/plugin/skills/ase-meta-why/help.md +3 -3
  54. package/plugin/skills/ase-meta-workflow/SKILL.md +3 -2
  55. package/plugin/skills/ase-meta-workflow/help.md +4 -4
  56. package/plugin/skills/ase-meta-workflow/workflow.txt +8 -2
  57. package/plugin/skills/ase-spec-edit/SKILL.md +1 -1
  58. package/plugin/skills/ase-spec-edit/help.md +6 -6
  59. package/plugin/skills/ase-sync-export/SKILL.md +3 -1
  60. package/plugin/skills/ase-sync-export/help.md +1 -1
  61. package/plugin/skills/ase-sync-import/SKILL.md +1 -1
  62. package/plugin/skills/ase-sync-import/help.md +2 -2
  63. package/plugin/skills/ase-sync-reconcile/SKILL.md +1 -1
  64. package/plugin/skills/ase-sync-reconcile/help.md +4 -4
  65. package/plugin/skills/ase-task-condense/SKILL.md +7 -4
  66. package/plugin/skills/ase-task-condense/help.md +2 -2
  67. package/plugin/skills/ase-task-delete/help.md +1 -1
  68. package/plugin/skills/ase-task-dissect/help.md +5 -5
  69. package/plugin/skills/ase-task-edit/help.md +4 -4
  70. package/plugin/skills/ase-task-grill/help.md +3 -3
  71. package/plugin/skills/ase-task-id/help.md +1 -1
  72. package/plugin/skills/ase-task-implement/help.md +3 -3
  73. package/plugin/skills/ase-task-list/help.md +3 -3
  74. package/plugin/skills/ase-task-preflight/help.md +2 -2
  75. package/plugin/skills/ase-task-reboot/help.md +2 -2
  76. package/plugin/skills/ase-task-rename/help.md +1 -1
  77. package/plugin/skills/ase-task-view/help.md +2 -2
@@ -45,7 +45,7 @@ timestamp refreshed.
45
45
 
46
46
  ## OPTIONS
47
47
 
48
- `--grill`|`-g`:
48
+ - `--grill`|`-g`:
49
49
  Grill the query before implementing, similar to `ase-task-grill`:
50
50
  raise 1-10 questions per round which resolve the open points of the
51
51
  query. Each question carries a `FOCUS-AREA` -- `DOMAIN`
@@ -69,20 +69,20 @@ timestamp refreshed.
69
69
  into the WHAT and HOW parts of the query. Without `--grill`, no
70
70
  questions are asked at all.
71
71
 
72
- `--grill-rounds`|`-r` *n*:
72
+ - `--grill-rounds`|`-r` *n*:
73
73
  The number of grill rounds to apply (default: `1`). Each round
74
74
  starts from scratch from only the current WHAT and HOW parts,
75
75
  forgetting all information of previous rounds, and closes with an
76
76
  `EDIT TODO` box. Only effective together with `--grill`.
77
77
 
78
- `--verify`|`-v`:
78
+ - `--verify`|`-v`:
79
79
  Verify the edited specification by validating it via *SpecBook*
80
80
  linting and fixing the reported diagnostics in the affected `SPEC`
81
81
  artifacts, for at most three rounds. Any diagnostics remaining after
82
82
  the last round are listed as `REMAINING DIAGNOSTICS`. Without
83
83
  `--verify`, strictly no validation is performed at all.
84
84
 
85
- `--worktree`|`-w`:
85
+ - `--worktree`|`-w`:
86
86
  Apply the change sets inside a dedicated Git worktree (as
87
87
  `ase-task-implement --worktree`) instead of the current working
88
88
  copy. One single worktree, named by a two-word id derived from the
@@ -91,7 +91,7 @@ timestamp refreshed.
91
91
  the validation then runs as the `ase spec lint` command inside the
92
92
  worktree.
93
93
 
94
- `--loop`|`-l`:
94
+ - `--loop`|`-l`:
95
95
  Loop the whole state cycle: after each iteration, ask for the next
96
96
  edit query via the interactive `Edit Query` dialog and repeat, until
97
97
  the user answers with its fixed `STOP SKILL` option or cancels the
@@ -99,7 +99,7 @@ timestamp refreshed.
99
99
 
100
100
  ## ARGUMENTS
101
101
 
102
- *query*:
102
+ - *query*:
103
103
  Description of the specification edit to perform. When omitted, the
104
104
  skill asks for the query via an interactive `Edit Query` dialog,
105
105
  carrying the fixed `STOP SKILL` option plus free-text input.
@@ -74,7 +74,9 @@ Procedure
74
74
 
75
75
  1. Call the `ase_specbook_lint()` tool of the `ase` MCP server
76
76
  *once* and read its returned `diagnostics` array of `{ file,
77
- line, column, message }` objects. Do not output anything.
77
+ line, column, severity, message }` objects, reduced to those
78
+ entries whose <severity/> is `error`, as only those make the
79
+ export fail. Do not output anything.
78
80
 
79
81
  2. <if condition="<diagnostics/> is not empty">
80
82
 
@@ -40,7 +40,7 @@ and reports that very command; when it falls back onto a system-installed
40
40
 
41
41
  ## OPTIONS
42
42
 
43
- `--output`|`-o` *output*[,...]:
43
+ - `--output`|`-o` *output*[,...]:
44
44
  The comma-separated list of `[<format>:]<file>` entries to render,
45
45
  with each file path relative to the project root. Defaults to the
46
46
  single HTML rendering `index.html` inside the `SPEC` base directory
@@ -175,7 +175,7 @@ Procedure
175
175
 
176
176
  Validate the specification by calling the `ase_specbook_lint()`
177
177
  tool of the `ase` MCP server and reading its returned
178
- `diagnostics` array of `{ file, line, column, message }`
178
+ `diagnostics` array of `{ file, line, column, severity, message }`
179
179
  objects. If it is not empty, fix the reported problems in the
180
180
  affected `SPEC` artifacts via the `Write`/`Edit` tools and call
181
181
  the tool again -- for at most *three* rounds in total. Do not
@@ -45,14 +45,14 @@ at most three rounds; any remaining diagnostics are surfaced.
45
45
 
46
46
  ## OPTIONS
47
47
 
48
- `--target`|`-t` *target*[,...]:
48
+ - `--target`|`-t` *target*[,...]:
49
49
  The comma-separated list of artifact kinds to generate or update.
50
50
  Defaults to `SPEC`. The skill errors out on an empty target or
51
51
  an unknown/unsupported kind.
52
52
 
53
53
  ## ARGUMENTS
54
54
 
55
- *hint*:
55
+ - *hint*:
56
56
  The mandatory free-form description of the foreign sources to import
57
57
  from (e.g. a file path, directory, URL, or pasted text). The skill
58
58
  errors out on an empty hint.
@@ -192,7 +192,7 @@ Procedure
192
192
 
193
193
  Validate the specification by calling the `ase_specbook_lint()`
194
194
  tool of the `ase` MCP server and reading its returned
195
- `diagnostics` array of `{ file, line, column, message }`
195
+ `diagnostics` array of `{ file, line, column, severity, message }`
196
196
  objects. If it is not empty, fix the reported problems in the
197
197
  affected `SPEC` artifacts via the `Write`/`Edit` tools and call
198
198
  the tool again -- for at most *three* rounds in total. Do not
@@ -40,24 +40,24 @@ in at most three rounds; any remaining diagnostics are surfaced.
40
40
 
41
41
  ## OPTIONS
42
42
 
43
- `--bidirectional`|`-b`:
43
+ - `--bidirectional`|`-b`:
44
44
  Reconcile the *target* and *source* artifacts so that they
45
45
  faithfully reflect the current state of *each other*, instead of
46
46
  only updating the *target* from the *source*. With this flag, a kind
47
47
  present in *target* is *not* removed from *source*.
48
48
 
49
- `--target`|`-t` *target*[,...]:
49
+ - `--target`|`-t` *target*[,...]:
50
50
  The comma-separated list of artifact kinds to update. Required (the
51
51
  skill errors out on an empty target).
52
52
 
53
- `--source`|`-s` *source*[,...]:
53
+ - `--source`|`-s` *source*[,...]:
54
54
  The comma-separated list of artifact kinds to update *from*. The
55
55
  special value `auto` resolves to all recognized kinds except those
56
56
  in *target*.
57
57
 
58
58
  ## ARGUMENTS
59
59
 
60
- *hint*:
60
+ - *hint*:
61
61
  An optional free-form filtering hint that narrows the source and/or
62
62
  target artifacts, or the aspects of those artifacts to take into
63
63
  account during reconciliation.
@@ -124,14 +124,17 @@ Set <args></args> (set args to empty).
124
124
  example. If a shortening would change meaning, *keep the
125
125
  longer wording*.
126
126
 
127
- 2. *Persist only if smaller*: compare the condensed <task-content/>
128
- against <content-before/>, without counting words.
127
+ 2. *Persist only if smaller*: call the `ase_text_metric(text:
128
+ "<text/>")` tool of the `ase` MCP server once for the condensed
129
+ <task-content/> and once for <content-before/>, and take the
130
+ `chars` field of each result, so the comparison rests on a
131
+ *measured* length instead of an estimate.
129
132
 
130
- - <if condition="the condensed <task-content/> is strictly shorter than <content-before/>">
133
+ - <if condition="the condensed <task-content/> has strictly fewer `chars` than <content-before/>">
131
134
  <expand name="task-save-content" arg1="plan condensed"></expand>
132
135
  </if>
133
136
 
134
- - <if condition="the condensed <task-content/> is NOT strictly shorter than <content-before/>">
137
+ - <if condition="the condensed <task-content/> has NOT strictly fewer `chars` than <content-before/>">
135
138
  Do *not* save and do *not* bump the timestamp. Set
136
139
  <task-content><content-before/></task-content> (keep the
137
140
  *unchanged* stored plan, discard the condensed one).
@@ -38,7 +38,7 @@ After condensing, the user is asked whether to stop or hand off to
38
38
 
39
39
  ## OPTIONS
40
40
 
41
- `--next`|`-n` *option*[,...]:
41
+ - `--next`|`-n` *option*[,...]:
42
42
  Automatically answer the user dialog for the next step. *option*
43
43
  is a single token or a *comma-separated chronological list* of
44
44
  tokens; the *first* token is consumed by this skill, and any
@@ -53,7 +53,7 @@ After condensing, the user is asked whether to stop or hand off to
53
53
 
54
54
  ## ARGUMENTS
55
55
 
56
- *id*:
56
+ - *id*:
57
57
  The unique identifier of the task whose plan should be condensed.
58
58
  If omitted, the *current* task id is used.
59
59
 
@@ -19,7 +19,7 @@ switched back to `default`.
19
19
 
20
20
  ## ARGUMENTS
21
21
 
22
- *id*:
22
+ - *id*:
23
23
  The unique identifier of the task plan to delete. If omitted,
24
24
  the current task id is used.
25
25
 
@@ -48,31 +48,31 @@ The epic plan itself always stays *untouched*.
48
48
 
49
49
  ## OPTIONS
50
50
 
51
- `--max-parts`|`-m` *count*:
51
+ - `--max-parts`|`-m` *count*:
52
52
  Upper bound for the number of derived parts (default: `8`). The
53
53
  lower bound is always `2`, because fewer parts are no dissection.
54
54
 
55
- `--dry`|`-d`:
55
+ - `--dry`|`-d`:
56
56
  *Report only* -- print the dissection table but create *no*
57
57
  artifacts at all, so the decision stays fully reversible. Note that
58
58
  this meaning differs from `--dry`/`-d` in `ase-code-craft`, where it
59
59
  instead omits the `## VERIFICATION` section of the composed plan.
60
60
 
61
- `--force`|`-f`:
61
+ - `--force`|`-f`:
62
62
  Overwrite already existing sub-task plans. Without this option, the
63
63
  skill detects colliding sub-task ids *before* writing anything,
64
64
  reports them, and stops with status *targets exist*.
65
65
 
66
66
  ## ARGUMENTS
67
67
 
68
- *task-id*:
68
+ - *task-id*:
69
69
  The unique identifier of the task whose plan should be dissected.
70
70
  If omitted, the *current* task id is used. A *lone* argument
71
71
  matching the task id syntax is always taken as the *task id*, never
72
72
  as a hint; to combine both, separate them with a `:` character, as
73
73
  in `auth: split by API and UI`.
74
74
 
75
- *dissect-hint*:
75
+ - *dissect-hint*:
76
76
  A free-text hint telling *how* the epic should be split. If omitted,
77
77
  the parts are derived from the plan alone.
78
78
 
@@ -28,7 +28,7 @@ for the changed plan.
28
28
 
29
29
  ## OPTIONS
30
30
 
31
- `--plan`|`-p` *option*:
31
+ - `--plan`|`-p` *option*:
32
32
  Automatically answer the user dialog for the plan refinement
33
33
  with *option*, which can be either `none` (default, interactive
34
34
  answer required), `OVERWRITE` (overwrite an existing plan
@@ -36,7 +36,7 @@ for the changed plan.
36
36
  *instruction*), or `PRESERVE` (preserve the existing plan by
37
37
  ignoring *instruction* and stopping skill processing).
38
38
 
39
- `--dry`|`-d`:
39
+ - `--dry`|`-d`:
40
40
  Generate any *new* plan *without* the `## VERIFICATION` section.
41
41
  Applies only to freshly generated plans, not to existing plans
42
42
  loaded from disk. When `ase-task-implement` later applies such
@@ -44,7 +44,7 @@ for the changed plan.
44
44
  build, tests, linter, type-checker, or program execution) once
45
45
  the source files have been modified.
46
46
 
47
- `--next`|`-n` *option*[,...]:
47
+ - `--next`|`-n` *option*[,...]:
48
48
  Automatically answer the user dialog for the next step (at the end
49
49
  of this skill). *option* is a single token or a *comma-separated
50
50
  chronological list* of tokens; each iteration of the planning
@@ -60,7 +60,7 @@ for the changed plan.
60
60
 
61
61
  ## ARGUMENTS
62
62
 
63
- *id* | *id*: *instruction* | *instruction*:
63
+ - *id* | *id*: *instruction* | *instruction*:
64
64
  Edit the task with the unique identifier *id* (default: `default`).
65
65
  Optionally, *instruction* either gives instructions for creating a
66
66
  new task or gives instructions for refining an existing task.
@@ -47,14 +47,14 @@ offered a hand-off to editing, implementation, or preflight.
47
47
 
48
48
  ## OPTIONS
49
49
 
50
- `--rounds`|`-r` *n*:
50
+ - `--rounds`|`-r` *n*:
51
51
  The number of grill rounds to apply (default: `1`). Each round
52
52
  starts from scratch from only the current plan, as updated by all
53
53
  previous rounds, and re-derives its questions from it, forgetting
54
54
  all questions and answers of previous rounds. With more than one
55
55
  round, each round is announced as `GRILLING ROUND K/L`.
56
56
 
57
- `--next`|`-n` *option*[,...]:
57
+ - `--next`|`-n` *option*[,...]:
58
58
  Automatically answer the user dialog for the next step (at the end
59
59
  of this skill). *option* is a single token or a *comma-separated
60
60
  chronological list* of tokens; the *first* token is consumed by
@@ -68,7 +68,7 @@ offered a hand-off to editing, implementation, or preflight.
68
68
 
69
69
  ## ARGUMENTS
70
70
 
71
- *id*:
71
+ - *id*:
72
72
  Grill the task with the unique identifier *id* (default: `default`).
73
73
  The skill accepts *only* an optional *id* argument and never a
74
74
  free-text instruction.
@@ -18,7 +18,7 @@ task id via the `ase_task_id` MCP tool.
18
18
 
19
19
  ## ARGUMENTS
20
20
 
21
- *id*:
21
+ - *id*:
22
22
  The new task id to activate. If omitted, the currently active
23
23
  task id is reported.
24
24
 
@@ -55,7 +55,7 @@ delete the task plan, unless `--next` pre-selects this choice.
55
55
 
56
56
  ## OPTIONS
57
57
 
58
- `--next`|`-n` *option*[,...]:
58
+ - `--next`|`-n` *option*[,...]:
59
59
  Automatically answer the user dialog for the next step. *option*
60
60
  is a single token or a *comma-separated chronological list* of
61
61
  tokens; the *first* token is consumed by this skill, and any
@@ -65,7 +65,7 @@ delete the task plan, unless `--next` pre-selects this choice.
65
65
  answer required), `DONE` (preserve task plan and stop), or
66
66
  `DELETE` (hand off to `ase-task-delete`).
67
67
 
68
- `--worktree`|`-w`:
68
+ - `--worktree`|`-w`:
69
69
  Apply the change set inside a dedicated *Git WorkTree* instead of
70
70
  the current working copy. The worktree directory `.ase/worktree/<id>`
71
71
  and its equally named branch are derived from the *task id* and
@@ -75,7 +75,7 @@ delete the task plan, unless `--next` pre-selects this choice.
75
75
 
76
76
  ## ARGUMENTS
77
77
 
78
- *id*:
78
+ - *id*:
79
79
  The unique identifier of the task whose plan should be
80
80
  implemented. If omitted, the *current* task id is used.
81
81
 
@@ -37,17 +37,17 @@ REJECTED DEFERRED BLOCKED CANCELLED
37
37
 
38
38
  ## OPTIONS
39
39
 
40
- `--verbose`|`-v`:
40
+ - `--verbose`|`-v`:
41
41
  Render an additional `Status` column with the lifecycle state and an
42
42
  additional `Last Modified` column with the `YYYY-MM-DD HH:MM`
43
43
  timestamp of each task plan.
44
44
 
45
- `--include`|`-i`=*state*[`,`...]:
45
+ - `--include`|`-i`=*state*[`,`...]:
46
46
  Restrict the listed task plans to the given comma-separated list of
47
47
  lifecycle states (e.g. `STARTED,BLOCKED`). Without this option, all
48
48
  eight states are listed. The `none` sentinel selects no state at all.
49
49
 
50
- `--exclude`|`-e`=*state*[`,`...]:
50
+ - `--exclude`|`-e`=*state*[`,`...]:
51
51
  Remove the given comma-separated list of lifecycle states from the
52
52
  listed task plans. Applied *after* `--include`, so
53
53
  `-i DRAFTED,STARTED -e STARTED` lists `DRAFTED` only. Defaults to
@@ -37,7 +37,7 @@ unless `--next` pre-selects this choice.
37
37
 
38
38
  ## OPTIONS
39
39
 
40
- `--next`|`-n` *option*[,...]:
40
+ - `--next`|`-n` *option*[,...]:
41
41
  Automatically answer the user dialog for the next step. *option*
42
42
  is a single token or a *comma-separated chronological list* of
43
43
  tokens; the *first* token is consumed by this skill, and any
@@ -51,7 +51,7 @@ unless `--next` pre-selects this choice.
51
51
 
52
52
  ## ARGUMENTS
53
53
 
54
- *id*:
54
+ - *id*:
55
55
  The unique identifier of the task whose plan should be
56
56
  preflighted. If omitted, the *current* task id is used.
57
57
 
@@ -24,7 +24,7 @@ unless `--next` pre-selects this choice.
24
24
 
25
25
  ## OPTIONS
26
26
 
27
- `--next`|`-n` *option*[,...]:
27
+ - `--next`|`-n` *option*[,...]:
28
28
  Automatically answer the user dialog for the next step. *option*
29
29
  is a single token or a *comma-separated chronological list* of
30
30
  tokens; the *first* token is consumed by this skill, and any
@@ -39,7 +39,7 @@ unless `--next` pre-selects this choice.
39
39
 
40
40
  ## ARGUMENTS
41
41
 
42
- *id*:
42
+ - *id*:
43
43
  The unique identifier of the task whose plan should be rebooted.
44
44
  If omitted, the *current* task id is used.
45
45
 
@@ -19,7 +19,7 @@ task id is automatically switched to *new*.
19
19
 
20
20
  ## ARGUMENTS
21
21
 
22
- [*old*] *new*:
22
+ - [*old*] *new*:
23
23
  The *old* task id to rename and the *new* task id to assign.
24
24
  If only one token is given, *old* defaults to the current
25
25
  task id.
@@ -25,14 +25,14 @@ the plan in full, without any truncation or summarization.
25
25
 
26
26
  ## OPTIONS
27
27
 
28
- `--full`|`-f`:
28
+ - `--full`|`-f`:
29
29
  Render the plan in full, without collapsing the
30
30
  `IMPLEMENTATION DRAFT` section. By default, that section is
31
31
  replaced with `[...]` for plans longer than 90 lines.
32
32
 
33
33
  ## ARGUMENTS
34
34
 
35
- *id*:
35
+ - *id*:
36
36
  The unique identifier of the task plan to view. If omitted,
37
37
  the current task id is used.
38
38