@rse/ase 0.9.62 → 0.9.64

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 (73) hide show
  1. package/dst/ase-artifact.js +19 -8
  2. package/dst/ase-config.js +12 -8
  3. package/dst/ase-hook.js +9 -1
  4. package/dst/ase-service.js +2 -0
  5. package/dst/ase-spec.js +281 -0
  6. package/dst/ase.js +2 -0
  7. package/package.json +10 -8
  8. package/plugin/.claude-plugin/plugin.json +1 -1
  9. package/plugin/.codex-plugin/plugin.json +1 -1
  10. package/plugin/.github/plugin/plugin.json +1 -1
  11. package/plugin/etc/stx.conf +5 -3
  12. package/plugin/meta/ase-format-meta.md +23 -105
  13. package/plugin/meta/ase-format-spec.md +22 -1326
  14. package/plugin/meta/ase-tenets.md +63 -4
  15. package/plugin/package.json +6 -2
  16. package/plugin/skills/ase-arch-analyze/help.md +7 -0
  17. package/plugin/skills/ase-arch-discover/help.md +7 -0
  18. package/plugin/skills/ase-code-analyze/help.md +8 -0
  19. package/plugin/skills/ase-code-craft/help.md +7 -0
  20. package/plugin/skills/ase-code-dissect/help.md +7 -0
  21. package/plugin/skills/ase-code-edit/SKILL.md +14 -9
  22. package/plugin/skills/ase-code-edit/help.md +7 -0
  23. package/plugin/skills/ase-code-explain/help.md +7 -0
  24. package/plugin/skills/ase-code-insight/help.md +7 -0
  25. package/plugin/skills/ase-code-lint/help.md +8 -0
  26. package/plugin/skills/ase-code-refactor/help.md +7 -0
  27. package/plugin/skills/ase-code-resolve/help.md +7 -0
  28. package/plugin/skills/ase-docs-distill/help.md +7 -0
  29. package/plugin/skills/ase-docs-proofread/help.md +7 -0
  30. package/plugin/skills/ase-help-intent/SKILL.md +66 -43
  31. package/plugin/skills/ase-help-intent/help.md +27 -16
  32. package/plugin/skills/ase-help-skill/catalog.md +3 -0
  33. package/plugin/skills/ase-help-skill/help.md +7 -0
  34. package/plugin/skills/ase-meta-brainstorm/help.md +8 -0
  35. package/plugin/skills/ase-meta-changelog/help.md +6 -0
  36. package/plugin/skills/ase-meta-chat/help.md +6 -0
  37. package/plugin/skills/ase-meta-commit/help.md +6 -0
  38. package/plugin/skills/ase-meta-compat/help.md +6 -0
  39. package/plugin/skills/ase-meta-config/help.md +7 -0
  40. package/plugin/skills/ase-meta-diaboli/help.md +7 -0
  41. package/plugin/skills/ase-meta-diff/help.md +7 -0
  42. package/plugin/skills/ase-meta-eli5/help.md +6 -0
  43. package/plugin/skills/ase-meta-evaluate/help.md +7 -0
  44. package/plugin/skills/ase-meta-proximity/help.md +7 -0
  45. package/plugin/skills/ase-meta-quorum/help.md +6 -0
  46. package/plugin/skills/ase-meta-quotes/help.md +7 -0
  47. package/plugin/skills/ase-meta-review/help.md +8 -1
  48. package/plugin/skills/ase-meta-search/help.md +6 -0
  49. package/plugin/skills/ase-meta-steelman/help.md +6 -0
  50. package/plugin/skills/ase-meta-why/help.md +7 -0
  51. package/plugin/skills/ase-meta-workflow/help.md +7 -0
  52. package/plugin/skills/ase-spec-edit/SKILL.md +520 -0
  53. package/plugin/skills/ase-spec-edit/help.md +137 -0
  54. package/plugin/skills/ase-sync-export/SKILL.md +66 -110
  55. package/plugin/skills/ase-sync-export/help.md +43 -40
  56. package/plugin/skills/ase-sync-import/SKILL.md +37 -15
  57. package/plugin/skills/ase-sync-import/help.md +21 -10
  58. package/plugin/skills/ase-sync-reconcile/SKILL.md +37 -16
  59. package/plugin/skills/ase-sync-reconcile/help.md +26 -16
  60. package/plugin/skills/ase-task-condense/help.md +6 -0
  61. package/plugin/skills/ase-task-delete/help.md +6 -0
  62. package/plugin/skills/ase-task-dissect/help.md +7 -0
  63. package/plugin/skills/ase-task-edit/help.md +7 -0
  64. package/plugin/skills/ase-task-grill/SKILL.md +5 -4
  65. package/plugin/skills/ase-task-grill/help.md +7 -0
  66. package/plugin/skills/ase-task-id/help.md +6 -0
  67. package/plugin/skills/ase-task-implement/help.md +7 -0
  68. package/plugin/skills/ase-task-list/help.md +6 -0
  69. package/plugin/skills/ase-task-preflight/help.md +7 -0
  70. package/plugin/skills/ase-task-reboot/help.md +6 -0
  71. package/plugin/skills/ase-task-rename/help.md +6 -0
  72. package/plugin/skills/ase-task-view/help.md +6 -0
  73. package/plugin/meta/ase-format-arch.md +0 -1164
@@ -5,7 +5,7 @@ description: >
5
5
  Reconcile one set of artifact kinds (the target) to reflect the
6
6
  current state of another set of artifact kinds (the source), while
7
7
  optionally honoring a filtering hint. Use when the user wants to
8
- "reconcile", "sync", "align", or "update" artifacts like SPEC, ARCH,
8
+ "reconcile", "sync", "align", or "update" artifacts like SPEC,
9
9
  CODE, DOCS, TASK, INFR, or OTHR against each other.
10
10
  user-invocable: true
11
11
  disable-model-invocation: false
@@ -35,7 +35,6 @@ artifacts and aligning the target artifacts accordingly:
35
35
 
36
36
  @${CLAUDE_SKILL_DIR}/../../meta/ase-format-meta.md
37
37
  @${CLAUDE_SKILL_DIR}/../../meta/ase-format-spec.md
38
- @${CLAUDE_SKILL_DIR}/../../meta/ase-format-arch.md
39
38
  @${CLAUDE_SKILL_DIR}/../../meta/ase-format-task.md
40
39
  @${CLAUDE_SKILL_DIR}/../../meta/ase-tenets.md
41
40
 
@@ -46,8 +45,8 @@ Procedure
46
45
 
47
46
  1. <step id="STEP 1: Determine Target and Source">
48
47
 
49
- 1. The recognized artifact kinds are the seven tokens `TASK`,
50
- `SPEC`, `ARCH`, `CODE`, `DOCS`, `INFR`, and `OTHR`. Parse
48
+ 1. The recognized artifact kinds are the six tokens `TASK`,
49
+ `SPEC`, `CODE`, `DOCS`, `INFR`, and `OTHR`. Parse
51
50
  <getopt-option-target/> as the comma-separated <target/> kind list and
52
51
  <getopt-option-source/> as the comma-separated <source/> kind list.
53
52
  Upper-case and trim every parsed kind token. Do not output
@@ -66,13 +65,13 @@ Procedure
66
65
 
67
66
  3. <if condition="<source/> is equal 'AUTO'">
68
67
 
69
- Set <source/> to the seven recognized kinds
70
- `TASK,SPEC,ARCH,CODE,DOCS,INFR,OTHR` *minus* all kinds present
68
+ Set <source/> to the six recognized kinds
69
+ `TASK,SPEC,CODE,DOCS,INFR,OTHR` *minus* all kinds present
71
70
  in <target/>. Do not output anything.
72
71
 
73
72
  </if>
74
73
 
75
- 4. If any token in <target/> or <source/> is *not* one of the seven
74
+ 4. If any token in <target/> or <source/> is *not* one of the six
76
75
  recognized kinds, only output the following <template/> (with
77
76
  <kind/> set to the first offending token) and then immediately
78
77
  *STOP* processing the entire current skill:
@@ -136,17 +135,18 @@ Procedure
136
135
 
137
136
  1. Internalize and honor the artifact-format conventions:
138
137
 
139
- - the artifact-set/artifact/aspect meta information (`ase-format-meta.md`),
140
- - the `SPEC` format (`ase-format-spec.md`),
141
- - the `ARCH` format (`ase-format-arch.md`),
138
+ - the artifact-set meta information (`ase-format-meta.md`),
139
+ - the `SPEC` format, i.e. the SpecBook models and formats plus
140
+ the SpecBook schema configuration of the project
141
+ (`ase-format-spec.md`),
142
142
  - the `TASK` format (`ase-format-task.md`).
143
143
 
144
144
  Whenever a target artifact belongs to one of these
145
145
  kinds, the update *MUST* keep it conformant to the
146
- corresponding format (headings, structure, identifiers, and the
147
- `<timestamp-modified/>` rule). The kinds `CODE`, `DOCS`, `INFR`,
148
- and `OTHR` have no dedicated format contract and are treated as
149
- free-form.
146
+ corresponding format (headings, structure, identifiers,
147
+ references, and the `Modified:` timestamp rule). The kinds
148
+ `CODE`, `DOCS`, `INFR`, and `OTHR` have no dedicated format
149
+ contract and are treated as free-form.
150
150
 
151
151
  2. You *MUST* internalize and strictly honor the **GENERIC TENETS**,
152
152
  the **RECONCILIATION TENETS**, the **REFACTORING TENETS**, and
@@ -188,7 +188,28 @@ Procedure
188
188
  <timestamp-modified-old/>` line, replace this with `Modified:
189
189
  <timestamp-modified/>`.
190
190
 
191
- 5. Report the performed updates with the following <template/>, listing
191
+ 5. <if condition="at least one `SPEC` output artifact was changed">
192
+
193
+ Validate the specification by calling the `ase_specbook_lint()`
194
+ tool of the `ase` MCP server and reading its returned
195
+ `diagnostics` array of `{ file, line, column, message }`
196
+ objects. If it is not empty, fix the reported problems in the
197
+ affected `SPEC` artifacts via the `Write`/`Edit` tools and call
198
+ the tool again -- for at most *three* rounds in total. Do not
199
+ output anything, unless diagnostics remain after the last round,
200
+ in which case output the following <template/>, listing one
201
+ bullet line per remaining diagnostic:
202
+
203
+ <template>
204
+ <ase-tpl-bullet-signal/> **REMAINING DIAGNOSTICS**:
205
+
206
+ - `<file/>:<line/>:<column/>`: <message/>
207
+ [...]
208
+ </template>
209
+
210
+ </if>
211
+
212
+ 6. Report the performed updates with the following <template/>, listing
192
213
  one bullet line per changed output file (with <file/> its
193
214
  project-relative path and <note/> an ultra-brief description of
194
215
  what was reconciled):
@@ -210,7 +231,7 @@ Procedure
210
231
 
211
232
  </if>
212
233
 
213
- 6. Finally, give the closing hints by expanding the following
234
+ 7. Finally, give the closing hints by expanding the following
214
235
  (which, depending on the configured <ase-guidance-level/>, may
215
236
  each expand into nothing and hence emit no output at all):
216
237
 
@@ -20,20 +20,23 @@ kinds (the *source*). It reads the source artifacts and then adjusts the
20
20
  target artifacts *directly* and *surgically* to match the source state,
21
21
  while optionally honoring a filtering *hint*.
22
22
 
23
- Both *target* and *source* are comma-separated lists over the seven
24
- recognized artifact kinds `SPEC` (Specification), `ARCH` (Architecture),
25
- `CODE` (Source Code), `DOCS` (Documentation), `TASK` (Task Plans), `INFR`
26
- (Infrastructure), and `OTHR` (catch-all). When *source* is `auto`, it
27
- resolves to all seven kinds *minus* the kinds listed in *target*. Unless
28
- `--bidirectional` is given, a kind present in *target* is never used as
29
- its own source.
23
+ Both *target* and *source* are comma-separated lists over the six
24
+ recognized artifact kinds `SPEC` (Specification, covering both
25
+ requirements and architecture), `CODE` (Source Code), `DOCS`
26
+ (Documentation), `TASK` (Task Plans), `INFR` (Infrastructure), and
27
+ `OTHR` (catch-all). When *source* is `auto`, it resolves to all six
28
+ kinds *minus* the kinds listed in *target*. Unless `--bidirectional` is
29
+ given, a kind present in *target* is never used as its own source.
30
30
 
31
31
  The file lists for all involved kinds are resolved via the
32
32
  `ase_artifact_list` MCP tool of the `ase` MCP server. While reconciling,
33
33
  the skill honors the artifact-format conventions of `ase-format-meta.md`,
34
- `ase-format-spec.md`, `ase-format-arch.md`, and `ase-format-task.md`;
35
- the kinds `CODE`, `DOCS`, `INFR`, and `OTHR` have no dedicated format
36
- contract and are treated as free-form.
34
+ `ase-format-spec.md` (the *SpecBook* models and formats plus the
35
+ SpecBook schema configuration), and `ase-format-task.md`; the kinds
36
+ `CODE`, `DOCS`, `INFR`, and `OTHR` have no dedicated format contract and
37
+ are treated as free-form. Changed `SPEC` artifacts are validated via
38
+ the `ase_specbook_lint` MCP tool and the reported diagnostics are fixed
39
+ in at most three rounds; any remaining diagnostics are surfaced.
37
40
 
38
41
  ## OPTIONS
39
42
 
@@ -59,28 +62,35 @@ contract and are treated as free-form.
59
62
  target artifacts, or the aspects of those artifacts to take into
60
63
  account during reconciliation.
61
64
 
65
+ ## SCENARIOS
66
+
67
+ - You want one artifact set updated to reflect another one
68
+ - You want code and docs aligned with the specification
69
+ - You want the specification recovered from the code base
70
+ - You want spec and code bidirectionally synchronized
71
+
62
72
  ## EXAMPLES
63
73
 
64
74
  Reconcile the code and documentation
65
- to reflect the current specification and architecture
75
+ to reflect the current specification
66
76
  in a "forward engineering" approach:
67
77
 
68
78
  ```text
69
- ❯ /ase-sync-reconcile -t CODE,DOCS -s SPEC,ARCH
79
+ ❯ /ase-sync-reconcile -t CODE,DOCS -s SPEC
70
80
  ```
71
81
 
72
- Reconcile specification and architecture from everything else
82
+ Reconcile the specification from everything else
73
83
  in a "reverse engineering" approach:
74
84
 
75
85
  ```text
76
- ❯ /ase-sync-reconcile -t SPEC,ARCH -s CODE,DOCS
86
+ ❯ /ase-sync-reconcile -t SPEC -s CODE,DOCS
77
87
  ```
78
88
 
79
- Bidirectionally reconcile specification and architecture against
89
+ Bidirectionally reconcile specification and code against
80
90
  each other, limited to the authentication aspect:
81
91
 
82
92
  ```text
83
- ❯ /ase-sync-reconcile -b -t SPEC -s ARCH authentication
93
+ ❯ /ase-sync-reconcile -b -t SPEC -s CODE authentication
84
94
  ```
85
95
 
86
96
  ## SEE ALSO
@@ -57,6 +57,12 @@ After condensing, the user is asked whether to stop or hand off to
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
 
60
+ ## SCENARIOS
61
+
62
+ - You want a task plan shortened without losing meaning
63
+ - You want plan wording compressed for faster reading
64
+ - You want fluff removed from a plan while keeping all semantics
65
+
60
66
  ## EXAMPLES
61
67
 
62
68
  Condense the current task plan:
@@ -23,6 +23,12 @@ switched back to `default`.
23
23
  The unique identifier of the task plan to delete. If omitted,
24
24
  the current task id is used.
25
25
 
26
+ ## SCENARIOS
27
+
28
+ - You want a task plan removed
29
+ - You want a finished or obsolete task cleared
30
+ - You want a plan discarded, falling back to the default task
31
+
26
32
  ## EXAMPLES
27
33
 
28
34
  Delete the current task plan:
@@ -76,6 +76,13 @@ The epic plan itself always stays *untouched*.
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
 
79
+ ## SCENARIOS
80
+
81
+ - You want a large task plan split into cohesive sub-tasks
82
+ - You want an epic decomposed into independently implementable parts
83
+ - You want a preview of how a plan would be divided
84
+ - You want each part of a plan persisted as its own separate plan
85
+
79
86
  ## EXAMPLES
80
87
 
81
88
  Dissect the current task plan:
@@ -65,6 +65,13 @@ for the changed plan.
65
65
  Optionally, *instruction* either gives instructions for creating a
66
66
  new task or gives instructions for refining an existing task.
67
67
 
68
+ ## SCENARIOS
69
+
70
+ - You want a task planned through chat-driven refinement
71
+ - You want a plan created or refined round by round
72
+ - You want a plan iterated on before implementing it
73
+ - You want plan refinement with hand-off to preflight or implementation
74
+
68
75
  ## EXAMPLES
69
76
 
70
77
  Edit the current task:
@@ -141,10 +141,11 @@ Set <args>--int-reuse-task</args>.
141
141
  `ARCHITECTURE`, and then all `IMPLEMENTATION` ones -- and
142
142
  *secondarily*, within each focus area, by the decision tree
143
143
  order, so that each decision is asked *after* the decisions
144
- it depends on. Renumber <N/> according to this order.
145
- Truncate the list after a maximum of 10 questions and set
146
- <n/> to the number of remaining questions. Do not output
147
- anything.
144
+ it depends on. Renumber <N/> according to this order,
145
+ starting at `1` in *every* round, independent of the
146
+ numbering of previous rounds. Truncate the list after a
147
+ maximum of 10 questions and set <n/> to the number of
148
+ remaining questions. Do not output anything.
148
149
 
149
150
  5. For each question <question-N/> in the iteration cycle <N/>,
150
151
  *one at a time*:
@@ -73,6 +73,13 @@ offered a hand-off to editing, implementation, or preflight.
73
73
  The skill accepts *only* an optional *id* argument and never a
74
74
  free-text instruction.
75
75
 
76
+ ## SCENARIOS
77
+
78
+ - You want to be interviewed about your plan until it is watertight
79
+ - You want the open decisions of a plan resolved question by question
80
+ - You want fuzzy language and conflicts flushed out of a plan
81
+ - You want shared understanding before the implementation starts
82
+
76
83
  ## EXAMPLES
77
84
 
78
85
  Grill the current task plan:
@@ -22,6 +22,12 @@ task id via the `ase_task_id` MCP tool.
22
22
  The new task id to activate. If omitted, the currently active
23
23
  task id is reported.
24
24
 
25
+ ## SCENARIOS
26
+
27
+ - You want to know which task is currently active
28
+ - You want the session switched to another task
29
+ - You want to work on a certain task
30
+
25
31
  ## EXAMPLES
26
32
 
27
33
  Show the current task id:
@@ -79,6 +79,13 @@ delete the task plan, unless `--next` pre-selects this choice.
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
 
82
+ ## SCENARIOS
83
+
84
+ - You want a task plan turned into actual changes
85
+ - You want the planned change set applied and verified
86
+ - You want a reviewed implementation draft applied 1:1
87
+ - You want the implementation isolated in a Git worktree
88
+
82
89
  ## EXAMPLES
83
90
 
84
91
  Implement the current task plan:
@@ -54,6 +54,12 @@ REJECTED DEFERRED BLOCKED CANCELLED
54
54
  `COMPLETED,CANCELLED`; pass `--exclude none` to suppress the
55
55
  default and list task plans in every state.
56
56
 
57
+ ## SCENARIOS
58
+
59
+ - You want an overview of all task plans
60
+ - You want task ids listed with status and timestamps
61
+ - You want the unfinished or in-progress tasks found
62
+
57
63
  ## EXAMPLES
58
64
 
59
65
  List all unfinished task ids:
@@ -55,6 +55,13 @@ unless `--next` pre-selects this choice.
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
 
58
+ ## SCENARIOS
59
+
60
+ - You want a dry-run of a plan's implementation
61
+ - You want the change set previewed as a unified diff before applying
62
+ - You want an implementation draft to review before committing to it
63
+ - You want a plan test-driven without touching any source files
64
+
58
65
  ## EXAMPLES
59
66
 
60
67
  Preflight the current task plan:
@@ -43,6 +43,12 @@ unless `--next` pre-selects this choice.
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
 
46
+ ## SCENARIOS
47
+
48
+ - You want a task plan re-created from scratch
49
+ - You want a fresh plan from the original WHAT and WHY
50
+ - You want planning restarted after a plan degraded
51
+
46
52
  ## EXAMPLES
47
53
 
48
54
  Reboot the current task plan:
@@ -24,6 +24,12 @@ task id is automatically switched to *new*.
24
24
  If only one token is given, *old* defaults to the current
25
25
  task id.
26
26
 
27
+ ## SCENARIOS
28
+
29
+ - You want a task plan renamed
30
+ - You want a task given a better id
31
+ - You want the current task moved to a new id
32
+
27
33
  ## EXAMPLES
28
34
 
29
35
  Rename the current task:
@@ -36,6 +36,12 @@ the plan in full, without any truncation or summarization.
36
36
  The unique identifier of the task plan to view. If omitted,
37
37
  the current task id is used.
38
38
 
39
+ ## SCENARIOS
40
+
41
+ - You want the current or a given task plan shown
42
+ - You want a plan rendered before deciding the next steps
43
+ - You want a plan inspected including its implementation draft
44
+
39
45
  ## EXAMPLES
40
46
 
41
47
  View the current task plan: