@rse/ase 0.9.6 → 0.9.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 (58) hide show
  1. package/dst/ase-getopt.js +11 -1
  2. package/dst/ase-markdown.js +235 -0
  3. package/dst/ase-service.js +2 -0
  4. package/dst/ase-task.js +22 -20
  5. package/package.json +6 -6
  6. package/plugin/.claude-plugin/plugin.json +1 -1
  7. package/plugin/.github/plugin/plugin.json +1 -1
  8. package/plugin/agents/ase-docs-proofread.md +2 -2
  9. package/plugin/meta/ase-constitution.md +7 -0
  10. package/plugin/meta/ase-control.md +24 -3
  11. package/plugin/meta/ase-format-task.md +14 -14
  12. package/plugin/meta/ase-getopt.md +2 -1
  13. package/plugin/meta/ase-skill.md +28 -9
  14. package/plugin/package.json +3 -3
  15. package/plugin/skills/ase-arch-analyze/SKILL.md +88 -89
  16. package/plugin/skills/ase-arch-discover/SKILL.md +18 -9
  17. package/plugin/skills/ase-code-analyze/SKILL.md +6 -5
  18. package/plugin/skills/ase-code-craft/SKILL.md +47 -40
  19. package/plugin/skills/ase-code-craft/help.md +2 -2
  20. package/plugin/skills/ase-code-explain/SKILL.md +1 -1
  21. package/plugin/skills/ase-code-insight/SKILL.md +1 -1
  22. package/plugin/skills/ase-code-lint/SKILL.md +16 -8
  23. package/plugin/skills/ase-code-refactor/SKILL.md +47 -40
  24. package/plugin/skills/ase-code-refactor/help.md +2 -2
  25. package/plugin/skills/ase-code-resolve/SKILL.md +48 -40
  26. package/plugin/skills/ase-code-resolve/help.md +2 -2
  27. package/plugin/skills/ase-docs-distill/SKILL.md +1 -1
  28. package/plugin/skills/ase-docs-distill/help.md +3 -3
  29. package/plugin/skills/ase-docs-proofread/SKILL.md +22 -13
  30. package/plugin/skills/ase-meta-brainstorm/SKILL.md +25 -6
  31. package/plugin/skills/ase-meta-brainstorm/help.md +6 -10
  32. package/plugin/skills/ase-meta-diff/SKILL.md +5 -4
  33. package/plugin/skills/ase-meta-diff/help.md +10 -11
  34. package/plugin/skills/ase-meta-evaluate/SKILL.md +10 -9
  35. package/plugin/skills/ase-meta-quorum/SKILL.md +15 -5
  36. package/plugin/skills/ase-meta-review/SKILL.md +3 -3
  37. package/plugin/skills/ase-meta-review/help.md +3 -3
  38. package/plugin/skills/ase-meta-search/SKILL.md +9 -8
  39. package/plugin/skills/ase-meta-steelman/SKILL.md +1 -1
  40. package/plugin/skills/ase-meta-why/SKILL.md +16 -10
  41. package/plugin/skills/ase-task-condense/SKILL.md +32 -17
  42. package/plugin/skills/ase-task-condense/help.md +1 -1
  43. package/plugin/skills/ase-task-delete/SKILL.md +6 -3
  44. package/plugin/skills/ase-task-edit/SKILL.md +58 -36
  45. package/plugin/skills/ase-task-edit/help.md +3 -3
  46. package/plugin/skills/ase-task-grill/SKILL.md +59 -24
  47. package/plugin/skills/ase-task-id/SKILL.md +11 -2
  48. package/plugin/skills/ase-task-implement/SKILL.md +38 -17
  49. package/plugin/skills/ase-task-implement/help.md +1 -1
  50. package/plugin/skills/ase-task-list/SKILL.md +1 -1
  51. package/plugin/skills/ase-task-preflight/SKILL.md +42 -22
  52. package/plugin/skills/ase-task-preflight/help.md +1 -1
  53. package/plugin/skills/ase-task-reboot/SKILL.md +31 -22
  54. package/plugin/skills/ase-task-rename/SKILL.md +5 -3
  55. package/plugin/skills/ase-task-view/SKILL.md +19 -8
  56. package/plugin/skills/ase-task-view/help.md +24 -5
  57. package/dst/ase-bash.js +0 -618
  58. package/dst/ase-hello.js +0 -24
@@ -21,7 +21,7 @@ Reboot a Task Plan
21
21
 
22
22
  <expand name="getopt"
23
23
  arg1="ase-task-reboot"
24
- arg2="--next|-n=(none|DONE|EDIT)...">
24
+ arg2="--next|-n=(none|DONE|EDIT|IMPLEMENT|PREFLIGHT)...">
25
25
  $ARGUMENTS
26
26
  </expand>
27
27
 
@@ -65,7 +65,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
65
65
  </template>
66
66
  </if>
67
67
 
68
- 2. else <if condition="<instruction/> is NOT empty">
68
+ 2. <elseif condition="<instruction/> is NOT empty">
69
69
  The argument is neither empty nor a valid task id. As this
70
70
  skill only accepts an optional `[<id>]` argument and *never*
71
71
  a free-text instruction, only output the following <template/>
@@ -74,7 +74,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
74
74
  <template>
75
75
  ⧉ **ASE**: ☻ skill: **ase-task-reboot**, ▶ ERROR: expected single `[<id>]` argument
76
76
  </template>
77
- </if>
77
+ </elseif>
78
78
 
79
79
  2. **Determine Operation:**
80
80
 
@@ -107,24 +107,24 @@ explicitly requested by this procedure via outputs based on a <template/>!
107
107
 
108
108
  1. Start with <instruction></instruction> (set instruction to empty).
109
109
 
110
- 2. <if condition="<content/> contains neither '- **WHAT**:' nor '- **WHY**:'">
110
+ 2. <if condition="<content/> contains neither '- **WHAT**:' nor '- **WHY**:'">
111
111
  Set <instruction><content/></instruction> (set instruction to content).
112
112
  </if>
113
113
 
114
- 3. <if condition="<content/> contains '- **WHAT**: <text/>'">
114
+ 3. <if condition="<content/> contains '- **WHAT**: <text/>'">
115
115
  Set <instruction><text/></instruction> (set instruction to extracted text).
116
116
  </if>
117
117
 
118
- 4. <if condition="<content/> contains '- **WHY**: <text/>' and <instruction/> is empty">
118
+ 4. <if condition="<content/> contains '- **WHY**: <text/>' and <instruction/> is empty">
119
119
  Set <instruction><text/></instruction> (set instruction to extracted text).
120
120
  </if>
121
121
 
122
- 5. else <if condition="<content/> contains '- **WHY**: <text/>' and <instruction/> is NOT empty">
122
+ 5. <elseif condition="<content/> contains '- **WHY**: <text/>' and <instruction/> is NOT empty">
123
123
  Set <instruction><instruction/>, BECAUSE <text/></instruction>
124
124
  (append extracted text to instruction).
125
- </if>
125
+ </elseif>
126
126
 
127
- 6. <if condition="<content/> contains 'created: **<text/>**'">
127
+ 6. <if condition="<content/> contains 'Created: <text/>'">
128
128
  Set <timestamp-created><text/></timestamp-created> (set
129
129
  timestamp-created to extracted text)
130
130
  </if>
@@ -137,7 +137,10 @@ explicitly requested by this procedure via outputs based on a <template/>!
137
137
 
138
138
  8. Call the `ase_timestamp(format: "yyyy-LL-dd HH:mm")` tool of the
139
139
  `ase` MCP server and use the `text` field of its response for
140
- <timestamp-modified/> information. Then insert the current
140
+ <timestamp-modified/> information. If <timestamp-created/> is
141
+ still unset (because the previous <content/> had no `Created:`
142
+ line), set <timestamp-created><timestamp-modified/></timestamp-created>
143
+ (fall back to the modified timestamp). Then insert the current
141
144
  <ase-task-id/>, previous <timestamp-created/>, and refreshed
142
145
  <timestamp-modified/> information and calculate the number of
143
146
  words <words/> of <content/>.
@@ -198,13 +201,12 @@ explicitly requested by this procedure via outputs based on a <template/>!
198
201
  </template>
199
202
 
200
203
  - If <result/> is `EDIT`:
201
- Set <args></args> (empty).
204
+ Set <args>--int-reuse-task</args>.
202
205
  <if condition="<getopt-option-next/> is not equal `none`">
203
- Set <args>--next <getopt-option-next/></args> (forward
204
- remaining list tokens to the downstream skill).
206
+ Set <args><args/> --next <getopt-option-next/></args>
205
207
  </if>
206
208
  Only output the following <template/> and then call the
207
- tool `Skill(skill: "ase:ase-task-edit", args: <args/>)`
209
+ tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`
208
210
  to invoke the `ase:ase-task-edit` skill in order to *edit*
209
211
  the updated plan. Immediately stop processing the current
210
212
  skill once the `Skill` tool was used.
@@ -214,13 +216,12 @@ explicitly requested by this procedure via outputs based on a <template/>!
214
216
  </template>
215
217
 
216
218
  - If <result/> is `IMPLEMENT`:
217
- Set <args></args> (empty).
219
+ Set <args>--int-reuse-task</args>.
218
220
  <if condition="<getopt-option-next/> is not equal `none`">
219
- Set <args>--next <getopt-option-next/></args> (forward
220
- remaining list tokens to the downstream skill).
221
+ Set <args><args/> --next <getopt-option-next/></args>
221
222
  </if>
222
223
  Only output the following <template/> and then call the
223
- `Skill(skill: "ase:ase-task-implement", args: <args/>)` tool
224
+ `Skill(skill: "ase:ase-task-implement", args: "<args/>")` tool
224
225
  to *apply* the plan.
225
226
 
226
227
  <template>
@@ -228,16 +229,24 @@ explicitly requested by this procedure via outputs based on a <template/>!
228
229
  </template>
229
230
 
230
231
  - If <result/> is `PREFLIGHT`:
231
- Set <args></args> (empty).
232
+ Set <args>--int-reuse-task</args>.
232
233
  <if condition="<getopt-option-next/> is not equal `none`">
233
- Set <args>--next <getopt-option-next/></args> (forward
234
- remaining list tokens to the downstream skill).
234
+ Set <args><args/> --next <getopt-option-next/></args>
235
235
  </if>
236
236
  Only output the following <template/> and then call the
237
- `Skill(skill: "ase:ase-task-preflight", args: <args/>)` tool
237
+ `Skill(skill: "ase:ase-task-preflight", args: "<args/>")` tool
238
238
  to *apply* the plan.
239
239
 
240
240
  <template>
241
241
  ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- hand-off to pre-flight**
242
242
  </template>
243
243
 
244
+ - If <result/> matches `OTHER: <text/>` or is any other
245
+ unrecognized value:
246
+ Treat it as `DONE` (the updated plan is already saved):
247
+ only output the following <template/> and then *STOP*.
248
+
249
+ <template>
250
+ ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- done**
251
+ </template>
252
+
@@ -33,8 +33,8 @@ explicitly requested by this procedure via outputs based on a <template/>!
33
33
  1. **Determine Task:**
34
34
 
35
35
  1. Parse <arguments>$ARGUMENTS</arguments> into a whitespace-separated
36
- list of tokens. Inherit the always existing <ase-task-id/> from
37
- the current context. Do not output anything.
36
+ list of tokens. Inherit the always existing <ase-task-id/> and
37
+ <ase-session-id/> from the current context. Do not output anything.
38
38
 
39
39
  2. <if condition="<arguments/> contains two tokens">
40
40
  Set <old/> to the first token of <arguments/>.
@@ -65,6 +65,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
65
65
  output anything related to this MCP tool call.
66
66
 
67
67
  - If <text/> starts with `ERROR:` or `WARNING:`:
68
+ Set <renamed/> to `false`.
68
69
  Only output the following <template/>:
69
70
 
70
71
  <template>
@@ -72,13 +73,14 @@ explicitly requested by this procedure via outputs based on a <template/>!
72
73
  </template>
73
74
 
74
75
  - If <text/> starts NOT with `ERROR:` and NOT with `WARNING:`:
76
+ Set <renamed/> to `true`.
75
77
  Only output the following <template/>:
76
78
 
77
79
  <template>
78
80
  ⧉ **ASE**: ◉ task: **<new/>**, ▶ status: **task renamed**
79
81
  </template>
80
82
 
81
- 2. <if condition="<old/> is equal <ase-task-id/>">
83
+ 2. <if condition="<renamed/> is `true` AND <old/> is equal <ase-task-id/>">
82
84
  Set <ase-task-id><new/></ase-task-id>. Call the `ase_task_id(id:
83
85
  "<ase-task-id/>", session: "<ase-session-id/>")` tool from the `ase`
84
86
  MCP server to switch the task to the renamed task. Only output
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ase-task-view
3
- argument-hint: "[--help|-h] [<id>]"
3
+ argument-hint: "[--help|-h] [--full|-f] [<id>]"
4
4
  description: >
5
5
  View current or given task plan.
6
6
  Use when the user calls to "view", "show" or "see" the
@@ -12,11 +12,18 @@ effort: high
12
12
 
13
13
  @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
14
14
  @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
15
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
15
16
 
16
17
  <skill name="ase-task-view">
17
18
  View a Task Plan
18
19
  </skill>
19
20
 
21
+ <expand name="getopt"
22
+ arg1="ase-task-view"
23
+ arg2="--full|-f">
24
+ $ARGUMENTS
25
+ </expand>
26
+
20
27
  <objective>
21
28
  *View* the task plan.
22
29
  </objective>
@@ -32,7 +39,7 @@ explicitly requested by this procedure via outputs based on a <template/>!
32
39
 
33
40
  1. **Determine Task:**
34
41
 
35
- 1. Set <id>$ARGUMENTS</id> initially, with any leading and trailing
42
+ 1. Set <id><getopt-arguments/></id> initially, with any leading and trailing
36
43
  whitespace stripped.
37
44
  Inherit the always existing <ase-task-id/> from the current context.
38
45
  Do not output anything.
@@ -76,15 +83,19 @@ explicitly requested by this procedure via outputs based on a <template/>!
76
83
  </template>
77
84
 
78
85
  2. <if condition="<content/> is not empty">
79
- *Render plan*: Only output the following <template/>, so the user
80
- can read the plan and react to it. Do *not* truncate, summarize,
81
- or partially show the plan -- always show the complete plan
82
- <content/> here.
86
+ Treat <content/> as *verbatim* Markdown.
87
+ *Render plan*: Only output the following <template/>. If
88
+ <getopt-option-full/> is *not* `true`, <content/> is longer than
89
+ 90 lines, and a `## IMPLEMENTATION DRAFT` section (from the
90
+ companion skill `ase-task-preflight`) exists, replace the entire
91
+ content of the `## IMPLEMENTATION DRAFT` section with `[...]`.
92
+ Else, do *not* truncate, summarize, or partially show the plan.
93
+ Use the following <template/>:
83
94
 
84
95
  <template>
85
- <ase-tpl-head title="TASK-PLAN"/>
96
+ <ase-tpl-head title="TASK"/>
86
97
  <content/>
87
- <ase-tpl-foot title="TASK-PLAN"/>
98
+ <ase-tpl-foot title="TASK"/>
88
99
  </template>
89
100
  </if>
90
101
 
@@ -7,15 +7,28 @@
7
7
 
8
8
  `ase-task-view`
9
9
  [`--help`|`-h`]
10
+ [`--full`|`-f`]
10
11
  [*id*]
11
12
 
12
13
  ## DESCRIPTION
13
14
 
14
- The `ase-task-view` skill renders the *task plan* identified by *id*
15
- in full, without truncation or summarization. The plan is loaded via
16
- the `ase_task_load` MCP tool and shown between `TASK-PLAN-BEGIN` and
17
- `TASK-PLAN-END` markers. If *id* is omitted, the *current* task id
18
- (inherited from the session context) is used.
15
+ The `ase-task-view` skill renders the *task plan* identified by *id*.
16
+ The plan is loaded via the `ase_task_load` MCP tool and shown framed
17
+ between a `( TASK )` header and footer rule. If *id* is omitted, the
18
+ *current* task id (inherited from the session context) is used.
19
+
20
+ By default, when the plan is longer than 90 lines and contains an
21
+ `IMPLEMENTATION DRAFT` section (produced by `ase-task-preflight`), the
22
+ content of that section is collapsed to `[...]` to keep the view
23
+ compact. The `--full`|`-f` option suppresses this collapsing and renders
24
+ the plan in full, without any truncation or summarization.
25
+
26
+ ## OPTIONS
27
+
28
+ `--full`|`-f`:
29
+ Render the plan in full, without collapsing the `IMPLEMENTATION
30
+ DRAFT` section. By default, that section is replaced with `[...]`
31
+ for plans longer than 90 lines.
19
32
 
20
33
  ## ARGUMENTS
21
34
 
@@ -37,6 +50,12 @@ View a specific task plan:
37
50
  ❯ /ase-task-view hello
38
51
  ```
39
52
 
53
+ View a plan in full, including its `IMPLEMENTATION DRAFT` section:
54
+
55
+ ```text
56
+ ❯ /ase-task-view --full hello
57
+ ```
58
+
40
59
  ## SEE ALSO
41
60
 
42
61
  `ase-task-list`, `ase-task-edit`, `ase-task-id`,