@rse/ase 0.0.30 → 0.0.31

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 (48) hide show
  1. package/dst/ase-hello.js +22 -0
  2. package/dst/ase-hook.js +3 -1
  3. package/dst/ase-setup.js +10 -7
  4. package/package.json +2 -1
  5. package/plugin/.claude/settings.local.json +7 -0
  6. package/plugin/.claude-plugin/plugin.json +20 -0
  7. package/plugin/.github/plugin/plugin.json +21 -0
  8. package/plugin/agents/ase-meta-chat.md +10 -0
  9. package/plugin/agents/ase-meta-search.md +16 -0
  10. package/plugin/commands/ase-code-lint/complete.md +9 -0
  11. package/plugin/commands/ase-code-lint/explain.md +9 -0
  12. package/plugin/commands/ase-code-lint/nope.md +11 -0
  13. package/plugin/commands/ase-code-lint/reassess.md +15 -0
  14. package/plugin/commands/ase-code-lint/recheck.md +9 -0
  15. package/plugin/commands/ase-code-lint/refine.md +9 -0
  16. package/plugin/hooks/hooks-copilot.json +23 -0
  17. package/plugin/hooks/hooks.json +40 -0
  18. package/plugin/meta/ase-constitution.md +114 -0
  19. package/plugin/meta/ase-dialog.md +122 -0
  20. package/plugin/meta/ase-persona.md +63 -0
  21. package/plugin/meta/ase-plan.md +69 -0
  22. package/plugin/meta/ase-skill.md +238 -0
  23. package/plugin/skills/ase-arch-analyze/SKILL.md +442 -0
  24. package/plugin/skills/ase-arch-discover/SKILL.md +160 -0
  25. package/plugin/skills/ase-code-analyze/SKILL.md +108 -0
  26. package/plugin/skills/ase-code-craft/SKILL.md +237 -0
  27. package/plugin/skills/ase-code-explain/SKILL.md +115 -0
  28. package/plugin/skills/ase-code-insight/SKILL.md +96 -0
  29. package/plugin/skills/ase-code-lint/SKILL.md +382 -0
  30. package/plugin/skills/ase-code-refactor/SKILL.md +241 -0
  31. package/plugin/skills/ase-code-resolve/SKILL.md +299 -0
  32. package/plugin/skills/ase-meta-changes/SKILL.md +95 -0
  33. package/plugin/skills/ase-meta-chat/SKILL.md +58 -0
  34. package/plugin/skills/ase-meta-commit/SKILL.md +64 -0
  35. package/plugin/skills/ase-meta-diagram/SKILL.md +101 -0
  36. package/plugin/skills/ase-meta-evaluate/SKILL.md +247 -0
  37. package/plugin/skills/ase-meta-persona/SKILL.md +52 -0
  38. package/plugin/skills/ase-meta-quorum/SKILL.md +122 -0
  39. package/plugin/skills/ase-meta-search/SKILL.md +48 -0
  40. package/plugin/skills/ase-meta-why/SKILL.md +69 -0
  41. package/plugin/skills/ase-task-delete/SKILL.md +76 -0
  42. package/plugin/skills/ase-task-edit/SKILL.md +390 -0
  43. package/plugin/skills/ase-task-id/SKILL.md +46 -0
  44. package/plugin/skills/ase-task-implement/SKILL.md +146 -0
  45. package/plugin/skills/ase-task-list/SKILL.md +44 -0
  46. package/plugin/skills/ase-task-preflight/SKILL.md +181 -0
  47. package/plugin/skills/ase-task-reboot/SKILL.md +161 -0
  48. package/plugin/skills/ase-task-view/SKILL.md +81 -0
@@ -0,0 +1,181 @@
1
+ ---
2
+ name: ase-task-preflight
3
+ argument-hint: "[<id>]"
4
+ description: >
5
+ Preflight the implementation of current or given task plan.
6
+ Use when the user calls to "preflight", "dry-run" or "test-drive"
7
+ the "task", "plan", "spec", or "specification".
8
+ user-invocable: true
9
+ disable-model-invocation: false
10
+ effort: xhigh
11
+ ---
12
+
13
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
14
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
15
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md
16
+
17
+ Preflight a Task Plan
18
+ =====================
19
+
20
+ <skill name="ase-task-preflight">
21
+ Preflight a Task Plan
22
+ </skill>
23
+
24
+ Your role is an experienced, *expert-level assistant*,
25
+ specialized in the *implementation* of changes.
26
+
27
+ *Preflight* the implementation of a task plan by creating a draft
28
+ for a corresponding, *complete source code change set*.
29
+
30
+ Procedure
31
+ ---------
32
+
33
+ You *MUST* follow the following numbered items *strictly* *sequentially*!
34
+ You *MUST* not skip any numbered item during processing!
35
+
36
+ You *MUST* *NOT* output anything in this entire procedure, *except* when
37
+ explicitly requested by this procedure via outputs based on a <template/>!
38
+
39
+ 1. **Determine Task:**
40
+
41
+ 1. Set <instruction>$ARGUMENTS</instruction> initially.
42
+ Inherit the always existing <ase-task-id/> from the current context.
43
+ Inherit the always existing <ase-session-id/> from the current context.
44
+ Do not output anything.
45
+
46
+ 2. React on task id:
47
+
48
+ 1. <if condition="
49
+ <instruction/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
50
+ ">
51
+ Set <ase-task-id><instruction/></ase-task-id> (set task
52
+ id to instruction) and <instruction></instruction> (set
53
+ instruction empty), call the `task_id(id: <ase-task-id/>,
54
+ session: <ase-session-id/>)` tool from the `ase` MCP
55
+ service to switch the task, and then only output the
56
+ following <template/>:
57
+
58
+ <template>
59
+ ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task given**
60
+ </template>
61
+ </if>
62
+
63
+ 2. else <if condition="
64
+ <instruction/> has the format `<id/>: <text/>` where
65
+ <id/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$` and
66
+ <text/> is *empty*
67
+ ">
68
+ Set <instruction></instruction> (set instruction to empty)
69
+ and <ase-task-id><id/></ase-task-id> (set task id to
70
+ id) and call the `task_id(id: <ase-task-id/>, session:
71
+ <ase-session-id/>)` tool from the `ase` MCP service to
72
+ switch the task, and then only output the following
73
+ <template/>:
74
+
75
+ <template>
76
+ ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task given**
77
+ </template>
78
+ </if>
79
+
80
+ 2. **Determine Operation:**
81
+
82
+ 1. Call the `task_load(id: <ase-task-id/>)` tool of the `ase` MCP
83
+ service to load the current task plan content and set <content/> to
84
+ the `text` output field of the `task_load` tool call.
85
+
86
+ Calculate the number of words <words/> of <content/>.
87
+
88
+ Only output the following <template/>:
89
+
90
+ <template>
91
+ ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan loaded**
92
+ </template>
93
+
94
+ 2. If the <content/> is still empty, complain and tell the user to
95
+ use the `ase-code-resolve`, `ase-code-refactor`, `ase-code-craft`,
96
+ or `ase-task-edit` skills first to create a task plan.
97
+
98
+ 3. **Create Implementation Draft:**
99
+
100
+ 1. Perform a *preflight* of the *implementation* of <content/> by creating a
101
+ draft for a corresponding, *complete artifact change set*
102
+ which *would* fully implement the task plan <content/>. Store
103
+ this artifact change set in *unified diff* format in <unified-diff/>.
104
+
105
+ 2. Append this artifact change set <unified-diff/> to the end
106
+ of the <content/> with the following <template/>. If a section
107
+ named `## ※ IMPLEMENTATION DRAFT:` already exists from a
108
+ previous run of this skill, *replace* this entire existing
109
+ section.
110
+
111
+ <template>
112
+
113
+ ## ※ IMPLEMENTATION DRAFT:
114
+
115
+ ```
116
+ <unified-diff/>
117
+ ```
118
+
119
+ </template>
120
+
121
+ 3. <if condition="<content/> contains '✎ modified:'">
122
+ Set update <timestamp-modified/> with the current time in
123
+ ISO-style format, which has to be determined by calling the
124
+ `timestamp(format: "yyyy-LL-dd HH:mm")` tool of the `ase`
125
+ MCP service and use the `text` field of its response. Update
126
+ <content/> with the new `✎ modified: **<timestamp-modified/>**`.
127
+ Do not output anything.
128
+ </if>
129
+
130
+ 4. Finally, call the `task_save(id: <ase-task-id/>,
131
+ text: <content/>)` of the `ase` MCP service to save the updated
132
+ task plan content. Calculate the number of words <words/> of
133
+ <content/>. Do not output anything related to this MCP tool call
134
+ except the following <template/>:
135
+
136
+ <template>
137
+ ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated**
138
+ </template>
139
+
140
+ 4. **Decide Next Step:**
141
+
142
+ 1. *Ask user*: Let the *user interactively choose*
143
+ what to do as the next step.
144
+
145
+ <expand name="user-dialog>
146
+ Next Step: How would you like to proceed with the plan?
147
+ DONE: Stop processing.
148
+ EDIT: Hand processing off to editing.
149
+ IMPLEMENT: Hand processing off to implementation.
150
+ </expand>
151
+
152
+ 2. Check the tool <result/> and dispatch accordingly:
153
+
154
+ - If <result/> is `DONE` or `CANCEL`:
155
+ Only output the following <template/> and then *STOP*.
156
+
157
+ <template>
158
+ ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- done**
159
+ </template>
160
+
161
+ - If <result/> is `EDIT`:
162
+ Only output the following <template/> and then use the
163
+ `Skill` tool to invoke the `ase:ase-task-edit` skill
164
+ in order to *edit* the updated plan. Immediately stop
165
+ processing the current skill once the `Skill` tool was used.
166
+
167
+ <template>
168
+ ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- hand-off to edit**
169
+ </template>
170
+
171
+ - If <result/> is `IMPLEMENT`:
172
+ Only output the following <template/> and then use the
173
+ `Skill` tool to invoke the `ase:ase-task-implement` skill
174
+ in order to *implement* the updated plan. Immediately stop
175
+ processing the current skill once the `Skill` tool was used.
176
+
177
+ <template>
178
+ ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- hand-off to implement**
179
+ </template>
180
+
181
+
@@ -0,0 +1,161 @@
1
+ ---
2
+ name: ase-task-reboot
3
+ argument-hint: "[<id>]"
4
+ description: >
5
+ Reboot the current or given task plan by re-creating it from scratch.
6
+ Use when the user calls to "reboot", "recreate" or "refresh"
7
+ the "task", "plan", "spec", or "specification".
8
+ user-invocable: true
9
+ disable-model-invocation: false
10
+ effort: xhigh
11
+ ---
12
+
13
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
14
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
15
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md
16
+
17
+ Reboot a Task Plan
18
+ ==================
19
+
20
+ <skill name="ase-task-reboot">
21
+ Reboot a Task Plan
22
+ </skill>
23
+
24
+ Your role is an experienced, *expert-level assistant*,
25
+ specialized in the *planning* of changes.
26
+
27
+ *Reboot* the task plan by crafting it from scratch,
28
+ based on the existing *WHAT* and *WHY*.
29
+
30
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-plan.md
31
+
32
+ Procedure
33
+ ---------
34
+
35
+ You *MUST* follow the following numbered items *strictly* *sequentially*!
36
+ You *MUST* not skip any numbered item during processing!
37
+
38
+ You *MUST* *NOT* output anything in this entire procedure, *except* when
39
+ explicitly requested by this procedure via outputs based on a <template/>!
40
+
41
+ 1. **Determine Task:**
42
+
43
+ 1. Set <instruction>$ARGUMENTS</instruction> initially.
44
+ Inherit the always existing <ase-task-id/> from the current context.
45
+ Inherit the always existing <ase-session-id/> from the current context.
46
+ Do not output anything.
47
+
48
+ 2. React on task id:
49
+
50
+ <if condition="
51
+ <instruction/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
52
+ ">
53
+ Set <ase-task-id><instruction/></ase-task-id> (set task
54
+ id to instruction) and <instruction></instruction> (set
55
+ instruction empty), call the `task_id(id: <ase-task-id/>,
56
+ session: <ase-session-id/>)` tool from the `ase` MCP
57
+ service to switch the task, and then only output the
58
+ following <template/>:
59
+
60
+ <template>
61
+ ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task given**
62
+ </template>
63
+ </if>
64
+
65
+ 2. **Determine Operation:**
66
+
67
+ 1. Call the `task_load(id: <ase-task-id/>)` tool of the `ase` MCP
68
+ service to load the current task plan content and set <content/> to
69
+ the `text` output field of the `task_load` tool call.
70
+
71
+ Calculate the number of words <words/> of <content/>.
72
+
73
+ Only output the following <template/>:
74
+
75
+ <template>
76
+ ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan loaded**
77
+ </template>
78
+
79
+ 2. <if condition="<content/> is empty">
80
+ Complain and tell the user to use the `ase-code-resolve`,
81
+ `ase-code-refactor`, `ase-code-craft`, or `ase-task-edit` skills
82
+ first to create a task plan. Then immediately stop processing
83
+ this skill.
84
+ </if>
85
+
86
+ 3. **Reboot Task Plan:**
87
+
88
+ 1. Start with <instruction></instruction> (set instruction to empty).
89
+
90
+ 2. <if condition="<content/> contains neither '- **WHAT**:' nor '- **WHY**:'">
91
+ Set <instruction><content/></instruction> (set instruction to content).
92
+ </if>
93
+
94
+ 3. <if condition="<content/> contains '- **WHAT**: <text/>'">
95
+ Set <instruction><text/></instruction> (set instruction to extracted text).
96
+ </if>
97
+
98
+ 4. <if condition="<content/> contains '- **WHY**: <text/>'">
99
+ Set <instruction><instruction/>, BECAUSE <text/></instruction>
100
+ (append extracted text to instruction).
101
+ </if>
102
+
103
+ 5. <if condition="<content/> contains 'created: **<text/>**'">
104
+ Set <timestamp-created><text/></timestamp-created> (set
105
+ timestamp-created to extracted text)
106
+ </if>
107
+
108
+ 6. Create a new plan from scratch and store the result as
109
+ <content/> by closely following the defined plan format
110
+ <format/> and injecting into it all the information from
111
+ the <instruction/> and all decisions you derived from the
112
+ <instruction/>.
113
+
114
+ 7. Call the `timestamp(format: "yyyy-LL-dd HH:mm")` tool of the
115
+ `ase` MCP service and use the `text` field of its response for
116
+ <timestamp-modified/> information. Then insert the current
117
+ <ase-task-id/>, previous <timestamp-created/>, and refreshed
118
+ <timestamp-modified/> information and calculate the number of
119
+ words <words/> of <content/>.
120
+
121
+ 8. Call the `task_save(id: <ase-task-id/>,
122
+ text: <content/>)` of the `ase` MCP service to save the updated
123
+ task plan content. Do not output anything related to this MCP
124
+ call.
125
+
126
+ 9. Only output the following <template/> and continue processing:
127
+
128
+ <template>
129
+ ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan rebooted**
130
+ ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ⇌ instruction: **<instruction/>**, ▶ status: **instruction given**
131
+ </template>
132
+
133
+ 4. **Decide Next Step:**
134
+
135
+ 1. *Ask user*: Let the *user interactively choose*
136
+ what to do as the next step.
137
+
138
+ <expand name="user-dialog>
139
+ Next Step: How would you like to proceed with the plan?
140
+ DONE: Stop processing.
141
+ EDIT: Hand processing off to editing.
142
+ </expand>
143
+
144
+ 2. Check the tool <result/> and dispatch accordingly:
145
+
146
+ - If <result/> is `DONE` or `CANCEL`:
147
+ Only output the following <template/> and then *STOP*.
148
+
149
+ <template>
150
+ ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- done**
151
+ </template>
152
+
153
+ - If <result/> is `EDIT`:
154
+ Only output the following <template/> and then use the
155
+ `Skill` tool to invoke the `ase:ase-task-edit` skill
156
+ in order to *edit* the updated plan. Immediately stop
157
+ processing the current skill once the `Skill` tool was used.
158
+
159
+ <template>
160
+ ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan updated -- hand-off to edit**
161
+ </template>
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: ase-task-view
3
+ argument-hint: "[<id>]"
4
+ description: >
5
+ View current or given task plan.
6
+ Use when the user calls to "view", "show" or "see" the
7
+ "task", "plan", "spec", or "specification".
8
+ user-invocable: true
9
+ disable-model-invocation: false
10
+ effort: low
11
+ ---
12
+
13
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-persona.md
14
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
15
+
16
+ View a Task Plan
17
+ ================
18
+
19
+ <skill name="ase-task-view">
20
+ View a Task Plan
21
+ </skill>
22
+
23
+ Your role is an experienced, *expert-level assistant*.
24
+ *View* the task plan.
25
+
26
+ Procedure
27
+ ---------
28
+
29
+ You *MUST* follow the following numbered items *strictly* *sequentially*!
30
+ You *MUST* not skip any numbered item during processing!
31
+
32
+ You *MUST* *NOT* output anything in this entire procedure, *except* when
33
+ explicitly requested by this procedure via outputs based on a <template/>!
34
+
35
+ 1. **Determine Task:**
36
+
37
+ 1. Set <id>$ARGUMENTS</id> initially.
38
+ Inherit the always existing <ase-task-id/> from the current context.
39
+ Do not output anything.
40
+
41
+ 2. <if condition="<id/> is empty">
42
+ Set <id><ase-task-id/></id>
43
+ Do not output anything.
44
+ </if>
45
+
46
+ 2. **Perform Operation**:
47
+
48
+ 1. Call the `task_load(id: <id/>)` tool of the `ase` MCP
49
+ service to load the task plan content and set <text/> to the
50
+ `text` output field of this `task_load` tool call. Do not
51
+ output anything related to this MCP tool call.
52
+
53
+ - If <text/> starts with `ERROR:` or `WARNING:`:
54
+ Set <content></content> (set content to empty).
55
+ Only output the following <template/>:
56
+
57
+ <template>
58
+ ⧉ **ASE**: ◉ task: **<id/>**, ▶ status: **<text/>**
59
+ </template>
60
+
61
+ - If <text/> starts NOT with `ERROR:`:
62
+ Set <content><text/></content> (set content to text).
63
+ Calculate the number of words <words/> of <content/>.
64
+ Only output the following <template/>:
65
+
66
+ <template>
67
+ ⧉ **ASE**: ◉ task: **<id/>**, ✪ plan: **<words/>** words, ▶ status: **plan loaded**
68
+ </template>
69
+
70
+ 2. <if condition="<content/> is not empty">
71
+ *Render plan*: Only output the following <template/>, so the user
72
+ can read the plan and react to it. Do *not* truncate, summarize,
73
+ or partially show the plan -- always show the complete plan
74
+ <content/> here:.
75
+
76
+ <template>
77
+ ⧉ **ASE**: ┈┈┈┈┈┈┈┈────────━━━━━━━━**(** `TASK-PLAN-BEGIN` **)**━━━━━━━━────────┈┈┈┈┈┈┈┈
78
+ <content/>
79
+ ⧉ **ASE**: ┈┈┈┈┈┈┈┈────────━━━━━━━━**(** `TASK-PLAN-END` **)**━━━━━━━━────────┈┈┈┈┈┈┈┈
80
+ </template>
81
+ </if>