@rse/ase 0.0.55 → 0.0.57
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.
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.github/plugin/plugin.json +1 -1
- package/plugin/agents/ase-meta-search.md +2 -2
- package/plugin/etc/markdownlint.yaml +1 -0
- package/plugin/meta/ase-constitution.md +2 -1
- package/plugin/meta/ase-control.md +6 -6
- package/plugin/meta/ase-dialog.md +2 -2
- package/plugin/meta/ase-getopt.md +18 -15
- package/plugin/meta/ase-skill.md +24 -7
- package/plugin/package.json +1 -1
- package/plugin/skills/ase-arch-analyze/SKILL.md +3 -10
- package/plugin/skills/ase-arch-analyze/help.md +50 -0
- package/plugin/skills/ase-arch-discover/SKILL.md +5 -12
- package/plugin/skills/ase-arch-discover/help.md +48 -0
- package/plugin/skills/ase-code-analyze/SKILL.md +1 -9
- package/plugin/skills/ase-code-analyze/help.md +47 -0
- package/plugin/skills/ase-code-craft/SKILL.md +29 -19
- package/plugin/skills/ase-code-craft/help.md +66 -0
- package/plugin/skills/ase-code-explain/SKILL.md +1 -9
- package/plugin/skills/ase-code-explain/help.md +43 -0
- package/plugin/skills/ase-code-insight/SKILL.md +1 -9
- package/plugin/skills/ase-code-insight/help.md +43 -0
- package/plugin/skills/ase-code-lint/SKILL.md +1 -9
- package/plugin/skills/ase-code-lint/help.md +54 -0
- package/plugin/skills/ase-code-refactor/SKILL.md +29 -19
- package/plugin/skills/ase-code-refactor/help.md +66 -0
- package/plugin/skills/ase-code-resolve/SKILL.md +30 -20
- package/plugin/skills/ase-code-resolve/help.md +73 -0
- package/plugin/skills/ase-docs-proofread/SKILL.md +3 -12
- package/plugin/skills/ase-docs-proofread/help.md +54 -0
- package/plugin/skills/ase-meta-changes/SKILL.md +1 -9
- package/plugin/skills/ase-meta-changes/help.md +33 -0
- package/plugin/skills/ase-meta-chat/SKILL.md +1 -8
- package/plugin/skills/ase-meta-chat/help.md +45 -0
- package/plugin/skills/ase-meta-commit/SKILL.md +1 -8
- package/plugin/skills/ase-meta-commit/help.md +31 -0
- package/plugin/skills/ase-meta-evaluate/SKILL.md +5 -13
- package/plugin/skills/ase-meta-evaluate/help.md +52 -0
- package/plugin/skills/ase-meta-persona/SKILL.md +11 -5
- package/plugin/skills/ase-meta-persona/help.md +50 -0
- package/plugin/skills/ase-meta-quorum/SKILL.md +1 -8
- package/plugin/skills/ase-meta-quorum/help.md +41 -0
- package/plugin/skills/ase-meta-search/SKILL.md +1 -8
- package/plugin/skills/ase-meta-search/help.md +39 -0
- package/plugin/skills/ase-meta-why/SKILL.md +1 -8
- package/plugin/skills/ase-meta-why/help.md +39 -0
- package/plugin/skills/ase-task-delete/SKILL.md +16 -10
- package/plugin/skills/ase-task-delete/help.md +47 -0
- package/plugin/skills/ase-task-edit/SKILL.md +59 -33
- package/plugin/skills/ase-task-edit/help.md +75 -0
- package/plugin/skills/ase-task-id/SKILL.md +7 -6
- package/plugin/skills/ase-task-id/help.md +42 -0
- package/plugin/skills/ase-task-implement/SKILL.md +27 -16
- package/plugin/skills/ase-task-implement/help.md +56 -0
- package/plugin/skills/ase-task-list/SKILL.md +6 -5
- package/plugin/skills/ase-task-list/help.md +43 -0
- package/plugin/skills/ase-task-preflight/SKILL.md +29 -18
- package/plugin/skills/ase-task-preflight/help.md +58 -0
- package/plugin/skills/ase-task-reboot/SKILL.md +47 -32
- package/plugin/skills/ase-task-reboot/help.md +55 -0
- package/plugin/skills/ase-task-rename/SKILL.md +5 -10
- package/plugin/skills/ase-task-rename/help.md +44 -0
- package/plugin/skills/ase-task-view/SKILL.md +15 -9
- package/plugin/skills/ase-task-view/help.md +43 -0
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"homepage": "http://github.com/rse/ase",
|
|
7
7
|
"repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
|
|
8
8
|
"bugs": { "url": "http://github.com/rse/ase/issues" },
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.57",
|
|
10
10
|
"license": "GPL-3.0-only",
|
|
11
11
|
"author": {
|
|
12
12
|
"name": "Dr. Ralf S. Engelschall",
|
|
@@ -4,8 +4,8 @@ description: Query the Web
|
|
|
4
4
|
model: sonnet
|
|
5
5
|
effort: low
|
|
6
6
|
tools:
|
|
7
|
-
- "
|
|
8
|
-
- "
|
|
7
|
+
- "mcp__search-perplexity__perplexity_search"
|
|
8
|
+
- "mcp__search-brave__brave_web_search"
|
|
9
9
|
- "mcp__search-exa__web_search_exa"
|
|
10
10
|
- "WebSearch"
|
|
11
11
|
---
|
|
@@ -3,7 +3,8 @@ ASE Constitution
|
|
|
3
3
|
================
|
|
4
4
|
|
|
5
5
|
You are **Claude Code**, an expert-level AI coding assistant.
|
|
6
|
-
You have the **Agentic Software Engineering (ASE)** facility enabled
|
|
6
|
+
You have the **Agentic Software Engineering (ASE)** facility enabled,
|
|
7
|
+
which boosts you to an expert-level Software Engineering AI agent.
|
|
7
8
|
|
|
8
9
|
If <ase-headless/> is empty or not set,
|
|
9
10
|
you *MUST* once and immediately output the following <template/> now:
|
|
@@ -16,12 +16,12 @@ Control Flow Constructs
|
|
|
16
16
|
- *IMPORTANT*: You *MUST* honor the following control flow construct:
|
|
17
17
|
<expand name="<define-name/>" [arg1="<expand-arg1/>" [arg2="<expand-arg2/>" [...]]]><expand-content/></expand>:
|
|
18
18
|
|
|
19
|
-
This specifies the *expansion* of previous <define/>.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
Do not output anything else.
|
|
19
|
+
This specifies the *expansion* of previous <define/>. This
|
|
20
|
+
construct is expanded to the <define-body/> of <define/> with
|
|
21
|
+
`<args/>` substituted with `<expand-arg1/> <expand-arg2/> [...]`,
|
|
22
|
+
`<arg1/>` substituted with <expand-arg1/>, `<arg2/>` substituted
|
|
23
|
+
with <expand-arg2/>, etc, and `<content/>` substituted with
|
|
24
|
+
<expand-content/>. Do not output anything else.
|
|
25
25
|
|
|
26
26
|
- *IMPORTANT*: You *MUST* honor the following control flow construct:
|
|
27
27
|
<flow><flow-body/></flow>:
|
|
@@ -38,7 +38,7 @@ Let the *user interactively choose* an answer.
|
|
|
38
38
|
|
|
39
39
|
Start with <n>0</n> (set entry count to zero).
|
|
40
40
|
<for items="2 3 4 5">
|
|
41
|
-
Take from <
|
|
41
|
+
Take from <spec/> the line number <item/>.
|
|
42
42
|
If this line does not exist, <break/>.
|
|
43
43
|
If this line exists, parse it according to the format `<label/>: <description/>`.
|
|
44
44
|
If <config/> is not empty, set <config><config/>, </config> (append comma).
|
|
@@ -93,7 +93,7 @@ Let the *user interactively choose* an answer.
|
|
|
93
93
|
|
|
94
94
|
Start with <n>0</n> (set entry count to zero).
|
|
95
95
|
<for items="2 3 4 5">
|
|
96
|
-
Take from <
|
|
96
|
+
Take from <spec/> the line number <item/>.
|
|
97
97
|
If this line does not exist, <break/>.
|
|
98
98
|
If this line exists, parse it according to the format `<label/>: <description/>`.
|
|
99
99
|
If <config/> is not empty, set <config><config/>, </config> (append comma).
|
|
@@ -9,7 +9,7 @@ set placeholders into the context as a side-effect.
|
|
|
9
9
|
|
|
10
10
|
1. **Determine Parameters**:
|
|
11
11
|
Set <getopt-skill><arg1/></getopt-skill>.
|
|
12
|
-
Set <getopt-spec
|
|
12
|
+
Set <getopt-spec>--help|-h <arg2/></getopt-spec>.
|
|
13
13
|
Set <getopt-opts><arg3/></getopt-opts>.
|
|
14
14
|
Set <getopt-args><content/></getopt-args>.
|
|
15
15
|
|
|
@@ -20,13 +20,14 @@ set placeholders into the context as a side-effect.
|
|
|
20
20
|
then just silently *SKIP* the following steps 3-7!
|
|
21
21
|
|
|
22
22
|
3. **MCP Call**:
|
|
23
|
-
Call the `ase_getopt(name: <getopt-skill
|
|
24
|
-
<getopt-args/>)` tool of the `ase`
|
|
25
|
-
|
|
26
|
-
option token is
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
Call the `ase_getopt(name: "<getopt-skill/>", spec:
|
|
24
|
+
"<getopt-spec/>", args: "<getopt-args/>")` tool of the `ase`
|
|
25
|
+
MCP server and set <text/> to the `text` output field of
|
|
26
|
+
this tool call. The `spec` syntax for each option token is
|
|
27
|
+
`--<long>[|-<short>][=<default>|=(<c1>|<c2>|...)]`, where
|
|
28
|
+
`=<default>` declares a value-taking option with a default, and
|
|
29
|
+
`=(<c1>|<c2>|...)` declares a value-taking option restricted to the
|
|
30
|
+
listed fixed choices (the first choice acts as the default).
|
|
30
31
|
|
|
31
32
|
4. **Short-Circuit for Error**:
|
|
32
33
|
If <text/> starts with `ERROR:`:
|
|
@@ -35,7 +36,7 @@ set placeholders into the context as a side-effect.
|
|
|
35
36
|
then immediately *STOP* processing the entire current skill:
|
|
36
37
|
|
|
37
38
|
<template>
|
|
38
|
-
⧉ **ASE**:
|
|
39
|
+
⧉ **ASE**: ✪ skill: **<getopt-skill/>**, ▶ ERROR: option parsing failed: **<text/>**
|
|
39
40
|
</template>
|
|
40
41
|
|
|
41
42
|
5. **Parsing JSON Result**:
|
|
@@ -47,22 +48,24 @@ set placeholders into the context as a side-effect.
|
|
|
47
48
|
{
|
|
48
49
|
"opts": { "<long1/>": <value1/>, "<long2/>": <value2/>, ... },
|
|
49
50
|
"argv": [ "<arg1/>", "<arg2/>", ... ],
|
|
50
|
-
"args": "..."
|
|
51
|
+
"args": "...",
|
|
52
|
+
"info": "..."
|
|
51
53
|
}
|
|
52
54
|
```
|
|
53
55
|
|
|
54
56
|
6. **Materializing into Context**:
|
|
55
|
-
For each *key* `<
|
|
56
|
-
Set <getopt-option-<
|
|
57
|
-
`<getopt-result/>.opts[<
|
|
57
|
+
For each *key* `<longN/>` in <getopt-result/>`.opts`:
|
|
58
|
+
Set <getopt-option-<longN/>/> to the corresponding value
|
|
59
|
+
`<getopt-result/>.opts[<longN/>]`.
|
|
58
60
|
Set <getopt-arguments/> to the value of `<getopt-result/>.args`.
|
|
59
|
-
Set <getopt-info/> to `<getopt-result/>.info
|
|
61
|
+
Set <getopt-info/> to `<getopt-result/>.info`, but remove
|
|
62
|
+
information about the `help` option.
|
|
60
63
|
|
|
61
64
|
7. **Display Results**:
|
|
62
65
|
Just output the following <template/>:
|
|
63
66
|
|
|
64
67
|
<template>
|
|
65
|
-
⧉ **ASE**:
|
|
68
|
+
⧉ **ASE**: ✪ skill: **<getopt-skill/>**, ▶ options: <getopt-info/>
|
|
66
69
|
</template>
|
|
67
70
|
</define>
|
|
68
71
|
|
package/plugin/meta/ase-skill.md
CHANGED
|
@@ -160,14 +160,23 @@ Skill Identification
|
|
|
160
160
|
|
|
161
161
|
- *IMPORTANT*: Set <skill></skill> (set to empty)
|
|
162
162
|
and <skill-name></skill-name> (set name to empty).
|
|
163
|
-
|
|
164
|
-
by defining it as <skill
|
|
165
|
-
set <skill-name><name/></skill-name>
|
|
166
|
-
set
|
|
167
|
-
|
|
163
|
+
|
|
164
|
+
In case <skill/> later becomes *not* empty by defining it as <skill
|
|
165
|
+
name="<name/>"><body/></skill>, set <skill-name><name/></skill-name>
|
|
166
|
+
(set skill name to name), and then (but only if `$1` is *NOT* equal
|
|
167
|
+
to `-h` or `--help`) you *MUST* once output the following output
|
|
168
|
+
<template/>:
|
|
169
|
+
|
|
170
|
+
<template>
|
|
171
|
+
⧉ **ASE**: ✪ skill: **<skill-name/>**, ✦ purpose: **<skill/>**, ▶ status: **skill started**
|
|
172
|
+
</template>
|
|
173
|
+
|
|
174
|
+
Later (but only if `$1` is *NOT* equal to `-h` or `--help`), once
|
|
175
|
+
this skill finally will stop processing, you *MUST* once output the
|
|
176
|
+
following output <template/>:
|
|
168
177
|
|
|
169
178
|
<template>
|
|
170
|
-
⧉ **ASE**:
|
|
179
|
+
⧉ **ASE**: ✪ skill: **<skill-name/>**, status: **skill finished**
|
|
171
180
|
</template>
|
|
172
181
|
|
|
173
182
|
- *IMPORTANT*: Set <objective></objective> (set to empty).
|
|
@@ -175,6 +184,14 @@ Skill Identification
|
|
|
175
184
|
you *MUST* once output the following output <template/>:
|
|
176
185
|
|
|
177
186
|
<template>
|
|
178
|
-
⧉ **ASE**: ◎ objective: **<objective/>**
|
|
187
|
+
⧉ **ASE**: ✪ skill: **<skill-name/>**, ◎ objective: **<objective/>**
|
|
179
188
|
</template>
|
|
180
189
|
|
|
190
|
+
- *IMPORTANT*:
|
|
191
|
+
If `$1` (the first token of the skill arguments) is equal to `-h` or
|
|
192
|
+
`--help`, you *MUST* once output the following output <template/> and
|
|
193
|
+
then *IMMEDIATELY* *STOP* the further skill processing:
|
|
194
|
+
|
|
195
|
+
<template>
|
|
196
|
+
@${CLAUDE_SKILL_DIR}/help.md
|
|
197
|
+
</template>
|
package/plugin/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"homepage": "http://github.com/rse/ase",
|
|
7
7
|
"repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
|
|
8
8
|
"bugs": { "url": "http://github.com/rse/ase/issues" },
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.57",
|
|
10
10
|
"license": "GPL-3.0-only",
|
|
11
11
|
"author": {
|
|
12
12
|
"name": "Dr. Ralf S. Engelschall",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-arch-analyze
|
|
3
|
-
argument-hint: "<source-reference>"
|
|
3
|
+
argument-hint: "[--help|-h] <source-reference>"
|
|
4
4
|
description: Review software architecture, including package cohesion and inter-package coupling
|
|
5
5
|
user-invocable: true
|
|
6
6
|
disable-model-invocation: false
|
|
@@ -102,20 +102,13 @@ allowed-tools:
|
|
|
102
102
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
103
103
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
104
104
|
|
|
105
|
-
Review Software Architecture
|
|
106
|
-
============================
|
|
107
|
-
|
|
108
105
|
<skill name="ase-arch-analyze">
|
|
109
106
|
Review Software Architecture
|
|
110
107
|
</skill>
|
|
111
108
|
|
|
112
|
-
<role>
|
|
113
|
-
Your role is an experienced, *expert-level software architect*,
|
|
114
|
-
specialized in *reviewing software architecture*.
|
|
115
|
-
</role>
|
|
116
|
-
|
|
117
109
|
<objective>
|
|
118
|
-
|
|
110
|
+
With the mindset of an *expert-level software architect*,
|
|
111
|
+
*review* the *software architecture* of $ARGUMENTS, and its directly
|
|
119
112
|
related source code, for *potential problems* across component
|
|
120
113
|
boundaries, structural organization, architecture principles,
|
|
121
114
|
interface quality, quality attributes, and architecture governance.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
|
|
2
|
+
## NAME
|
|
3
|
+
|
|
4
|
+
`ase-arch-analyze` - Review Software Architecture
|
|
5
|
+
|
|
6
|
+
## SYNOPSIS
|
|
7
|
+
|
|
8
|
+
`ase-arch-analyze`
|
|
9
|
+
[`--help`|`-h`]
|
|
10
|
+
*source-reference*
|
|
11
|
+
|
|
12
|
+
## DESCRIPTION
|
|
13
|
+
|
|
14
|
+
The `ase-arch-analyze` skill reviews the *software architecture* of
|
|
15
|
+
the referenced source code, including *package cohesion* and *inter-
|
|
16
|
+
package coupling*, for *potential problems* across component boundaries,
|
|
17
|
+
structural organization, architecture principles, interface quality,
|
|
18
|
+
quality attributes, and architecture governance.
|
|
19
|
+
|
|
20
|
+
The skill investigates 21 architecture quality aspects across 7 thematic
|
|
21
|
+
blocks (component boundaries, structural organization, architecture
|
|
22
|
+
principles, interface quality, quality attributes, architecture
|
|
23
|
+
governance, and package cohesion), renders a high-level architecture
|
|
24
|
+
diagram, and reports findings as either `PROBLEM` or `TRADEOFF` entries
|
|
25
|
+
based on a built-in tension matrix.
|
|
26
|
+
|
|
27
|
+
## ARGUMENTS
|
|
28
|
+
|
|
29
|
+
*source-reference*:
|
|
30
|
+
A file, directory, or other reference to the source code that
|
|
31
|
+
is to be analyzed architecturally.
|
|
32
|
+
|
|
33
|
+
## EXAMPLES
|
|
34
|
+
|
|
35
|
+
Analyze architecture of the current project:
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
❯ /ase-arch-analyze src/
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Analyze a specific module:
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
❯ /ase-arch-analyze src/core
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## SEE ALSO
|
|
48
|
+
|
|
49
|
+
`ase-arch-discover`, `ase-code-analyze`, `ase-code-resolve`,
|
|
50
|
+
`ase-code-refactor`, `ase-code-insight`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-arch-discover
|
|
3
|
-
argument-hint: "<functionality>"
|
|
3
|
+
argument-hint: "[--help|-h] <functionality>"
|
|
4
4
|
description: >
|
|
5
5
|
Discover additional, third-party components (libraries/frameworks) for
|
|
6
6
|
the technology stack to provide needed functionality.
|
|
@@ -17,18 +17,10 @@ allowed-tools:
|
|
|
17
17
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
18
18
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
19
19
|
|
|
20
|
-
Discover Components
|
|
21
|
-
===================
|
|
22
|
-
|
|
23
20
|
<skill name="ase-arch-discover">
|
|
24
21
|
Discover Components
|
|
25
22
|
</skill>
|
|
26
23
|
|
|
27
|
-
<role>
|
|
28
|
-
Your role is an experienced, *expert-level software architect*,
|
|
29
|
-
specialized in *finding components* (libraries/frameworks) for the technology stack.
|
|
30
|
-
</role>
|
|
31
|
-
|
|
32
24
|
<objective>
|
|
33
25
|
*Discover* additional, *third-party components* (libraries/frameworks)
|
|
34
26
|
for the technology stack to *provide* the *needed functionality*
|
|
@@ -131,12 +123,13 @@ for the technology stack to *provide* the *needed functionality*
|
|
|
131
123
|
into the already existing result set, but deduplicate
|
|
132
124
|
entries by Maven coordinate.
|
|
133
125
|
|
|
134
|
-
- Call the `ase_component_info(stack: <stack
|
|
135
|
-
[ <package-1
|
|
126
|
+
- Call the `ase_component_info(stack: "<stack/>", components:
|
|
127
|
+
[ "<package-1/>", ..., "<package-N/>" ])` tool of the `ase` MCP
|
|
136
128
|
server *once* for the entire set of discovered packages.
|
|
137
129
|
The tool dispatches internally on <stack/> and fetches all
|
|
138
130
|
metadata in maximum parallel and returns an array of objects `{
|
|
139
|
-
name, version,
|
|
131
|
+
name, version, created, updated, repository, stars, downloads,
|
|
132
|
+
rank }`. For each
|
|
140
133
|
component <component-K/> (K=1-N) read from its corresponding
|
|
141
134
|
entry: <version-K/> from `version`, <updated-K/> from `updated`,
|
|
142
135
|
<created-K/> from `created`, <repository-K/> from `repository`,
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
|
|
2
|
+
## NAME
|
|
3
|
+
|
|
4
|
+
`ase-arch-discover` - Discover Components
|
|
5
|
+
|
|
6
|
+
## SYNOPSIS
|
|
7
|
+
|
|
8
|
+
`ase-arch-discover`
|
|
9
|
+
[`--help`|`-h`]
|
|
10
|
+
*functionality*
|
|
11
|
+
|
|
12
|
+
## DESCRIPTION
|
|
13
|
+
|
|
14
|
+
The `ase-arch-discover` skill discovers additional, *third-party
|
|
15
|
+
components* (libraries/frameworks) for the technology stack that
|
|
16
|
+
provide the needed *functionality*.
|
|
17
|
+
|
|
18
|
+
The skill determines the project's technology stack (TypeScript,
|
|
19
|
+
JavaScript, Kotlin, or Java), derives essential keywords from the
|
|
20
|
+
requested functionality, queries the corresponding package registry
|
|
21
|
+
(NPM or Maven Central), retrieves metadata (version, downloads,
|
|
22
|
+
stars, dates) via the `ase_component_info` MCP tool, and reports
|
|
23
|
+
the top-ranked components as a Markdown table together with a single
|
|
24
|
+
distinguishing hint (USP, Crux, or Gotcha) per component.
|
|
25
|
+
|
|
26
|
+
## ARGUMENTS
|
|
27
|
+
|
|
28
|
+
*functionality*:
|
|
29
|
+
A short description of the desired functionality the third-party
|
|
30
|
+
component should provide.
|
|
31
|
+
|
|
32
|
+
## EXAMPLES
|
|
33
|
+
|
|
34
|
+
Discover components for JSON schema validation:
|
|
35
|
+
|
|
36
|
+
```text
|
|
37
|
+
❯ /ase-arch-discover JSON schema validation
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Discover components for HTTP client functionality:
|
|
41
|
+
|
|
42
|
+
```text
|
|
43
|
+
❯ /ase-arch-discover HTTP client with retries
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## SEE ALSO
|
|
47
|
+
|
|
48
|
+
`ase-arch-analyze`, `ase-meta-search`, `ase-meta-evaluate`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-code-analyze
|
|
3
|
-
argument-hint: "<source-reference>"
|
|
3
|
+
argument-hint: "[--help|-h] <source-reference>"
|
|
4
4
|
description: >
|
|
5
5
|
Analyze the source code for problems in the logic and semantics and its related control flow.
|
|
6
6
|
user-invocable: true
|
|
@@ -13,18 +13,10 @@ allowed-tools:
|
|
|
13
13
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
14
14
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
15
15
|
|
|
16
|
-
Analyze Source Code
|
|
17
|
-
===================
|
|
18
|
-
|
|
19
16
|
<skill name="ase-code-analyze">
|
|
20
17
|
Analyze Source Code
|
|
21
18
|
</skill>
|
|
22
19
|
|
|
23
|
-
<role>
|
|
24
|
-
Your role is an experienced, *expert-level software developer*,
|
|
25
|
-
specialized in *analyzing source code*.
|
|
26
|
-
</role>
|
|
27
|
-
|
|
28
20
|
<objective>
|
|
29
21
|
*Analyze* the source code of $ARGUMENTS, and its directly related source
|
|
30
22
|
code, for problems in its *logic* and *semantics* and its related
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
|
|
2
|
+
## NAME
|
|
3
|
+
|
|
4
|
+
`ase-code-analyze` - Analyze Source Code
|
|
5
|
+
|
|
6
|
+
## SYNOPSIS
|
|
7
|
+
|
|
8
|
+
`ase-code-analyze`
|
|
9
|
+
[`--help`|`-h`]
|
|
10
|
+
*source-reference*
|
|
11
|
+
|
|
12
|
+
## DESCRIPTION
|
|
13
|
+
|
|
14
|
+
The `ase-code-analyze` skill analyzes the source code of the referenced
|
|
15
|
+
location, and its directly related source code, for problems in its
|
|
16
|
+
*logic*, *semantics*, and related *control flow*.
|
|
17
|
+
|
|
18
|
+
The skill investigates the code base silently, reports each detected
|
|
19
|
+
problem as a `PROBLEM` entry with severity (`LOW`, `MEDIUM`, `HIGH`),
|
|
20
|
+
inline file/line references, and persists results in the `ase` MCP
|
|
21
|
+
key/value store as `ase-issue-P<n>` entries so they can later be
|
|
22
|
+
resolved via `ase-code-resolve P<n>`.
|
|
23
|
+
|
|
24
|
+
## ARGUMENTS
|
|
25
|
+
|
|
26
|
+
*source-reference*:
|
|
27
|
+
A file, directory, function, or other reference to the source code
|
|
28
|
+
to analyze.
|
|
29
|
+
|
|
30
|
+
## EXAMPLES
|
|
31
|
+
|
|
32
|
+
Analyze a specific source file:
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
❯ /ase-code-analyze src/server.ts
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Analyze a directory of code:
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
❯ /ase-code-analyze src/handlers/
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## SEE ALSO
|
|
45
|
+
|
|
46
|
+
`ase-code-resolve`, `ase-code-refactor`, `ase-code-lint`,
|
|
47
|
+
`ase-code-explain`, `ase-arch-analyze`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-code-craft
|
|
3
|
-
argument-hint: "[<task-id>:] <feature>"
|
|
3
|
+
argument-hint: "[--help|-h] [--auto|-a] [--next|-n <option>] [<task-id>:] <feature>"
|
|
4
4
|
description: >
|
|
5
5
|
Craft Source Code:
|
|
6
6
|
Use when user wants to create or craft a new feature from scratch.
|
|
@@ -17,9 +17,6 @@ allowed-tools:
|
|
|
17
17
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md
|
|
18
18
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
19
19
|
|
|
20
|
-
Craft Feature
|
|
21
|
-
=============
|
|
22
|
-
|
|
23
20
|
<skill name="ase-code-craft">
|
|
24
21
|
Craft Source Code
|
|
25
22
|
</skill>
|
|
@@ -30,10 +27,6 @@ Craft Source Code
|
|
|
30
27
|
$ARGUMENTS
|
|
31
28
|
</expand>
|
|
32
29
|
|
|
33
|
-
<role>
|
|
34
|
-
Your role is an experienced, *expert-level software developer*.
|
|
35
|
-
</role>
|
|
36
|
-
|
|
37
30
|
<objective>
|
|
38
31
|
From scratch *craft* the following feature:
|
|
39
32
|
<feature><getopt-arguments/></feature>
|
|
@@ -61,7 +54,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
61
54
|
">
|
|
62
55
|
Set <ase-task-id><feature/></ase-task-id> (set task id to feature)
|
|
63
56
|
and <feature></feature> (set feature empty), call the
|
|
64
|
-
`ase_task_id(id: <ase-task-id
|
|
57
|
+
`ase_task_id(id: "<ase-task-id/>", session: "<ase-session-id/>")` tool
|
|
65
58
|
from the `ase` MCP server to switch the task, and then only
|
|
66
59
|
output the following <template/>:
|
|
67
60
|
|
|
@@ -73,8 +66,8 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
73
66
|
2. If <feature/> has the format `<id/>: <text/>` where <id/> matches
|
|
74
67
|
the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`, then set
|
|
75
68
|
<feature><text/></feature> and <ase-task-id><id/></ase-task-id>
|
|
76
|
-
and call the `ase_task_id(id: <ase-task-id
|
|
77
|
-
<ase-session-id/>)` tool from the `ase` MCP server to
|
|
69
|
+
and call the `ase_task_id(id: "<ase-task-id/>", session:
|
|
70
|
+
"<ase-session-id/>")` tool from the `ase` MCP server to
|
|
78
71
|
implicitly switch the task. Do not output anything.
|
|
79
72
|
|
|
80
73
|
3. If <feature/> is empty,
|
|
@@ -91,8 +84,8 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
91
84
|
">
|
|
92
85
|
Set <ase-task-id/> to a unique task id, derived from <feature/>,
|
|
93
86
|
which consists of two lower-case words concatenated with a
|
|
94
|
-
`-` character. Then call the `ase_task_id(id: <ase-task-id
|
|
95
|
-
session: <ase-session-id/>)` tool from the `ase` MCP server to
|
|
87
|
+
`-` character. Then call the `ase_task_id(id: "<ase-task-id/>",
|
|
88
|
+
session: "<ase-session-id/>")` tool from the `ase` MCP server to
|
|
96
89
|
implicitly switch the task. Do not output anything.
|
|
97
90
|
</if>
|
|
98
91
|
|
|
@@ -279,7 +272,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
279
272
|
words <words/> of <content/>.
|
|
280
273
|
|
|
281
274
|
3. You *MUST* *save* the resulting plan content with the
|
|
282
|
-
`ase_task_save(id: <ase-task-id
|
|
275
|
+
`ase_task_save(id: "<ase-task-id/>", text: "<content/>")`.
|
|
283
276
|
|
|
284
277
|
4. Output a hint with the following <template/>:
|
|
285
278
|
|
|
@@ -287,9 +280,26 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
287
280
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan created**
|
|
288
281
|
</template>
|
|
289
282
|
|
|
290
|
-
5. Directly pass-through control to the
|
|
291
|
-
|
|
292
|
-
is
|
|
293
|
-
|
|
294
|
-
|
|
283
|
+
5. Directly pass-through control to the next skill:
|
|
284
|
+
|
|
285
|
+
1. <if condition="<getopt-option-next/> is equal `IMPLEMENT`">
|
|
286
|
+
Call the tool `Skill(skill: "ase:ase-task-implement")` to
|
|
287
|
+
*implement* the freshly composed plan, bypassing `ase-task-edit`.
|
|
288
|
+
</if>
|
|
289
|
+
|
|
290
|
+
2. <if condition="<getopt-option-next/> is equal `PREFLIGHT`">
|
|
291
|
+
Call the tool `Skill(skill: "ase:ase-task-preflight")` to
|
|
292
|
+
*preflight* the freshly composed plan, bypassing `ase-task-edit`.
|
|
293
|
+
</if>
|
|
294
|
+
|
|
295
|
+
3. <if condition="
|
|
296
|
+
<getopt-option-next/> is not equal `IMPLEMENT` AND
|
|
297
|
+
<getopt-option-next/> is not equal `PREFLIGHT`
|
|
298
|
+
">
|
|
299
|
+
Set <args></args> (set args to empty).
|
|
300
|
+
<if condition="<getopt-option-next/> is not equal `none`">
|
|
301
|
+
Set <args><args/> --next <getopt-option-next/></args> (append to args).
|
|
302
|
+
</if>
|
|
303
|
+
Then call the tool `Skill(skill: "ase:ase-task-edit", args: <args/>)`.
|
|
304
|
+
</if>
|
|
295
305
|
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
|
|
2
|
+
## NAME
|
|
3
|
+
|
|
4
|
+
`ase-code-craft` - Craft Source Code
|
|
5
|
+
|
|
6
|
+
## SYNOPSIS
|
|
7
|
+
|
|
8
|
+
`ase-code-craft`
|
|
9
|
+
[`--help`|`-h`]
|
|
10
|
+
[`--auto`|`-a`]
|
|
11
|
+
[`--next`|`-n` *option*]
|
|
12
|
+
[*task-id*:] *feature*
|
|
13
|
+
|
|
14
|
+
## DESCRIPTION
|
|
15
|
+
|
|
16
|
+
The `ase-code-craft` skill crafts a *new feature* from scratch by
|
|
17
|
+
investigating the existing code base, internalizing crafting tenets
|
|
18
|
+
(KISS, YAGNI, DRY, SRP, loose coupling, ...), proposing one or more
|
|
19
|
+
*feature approaches* with pros and cons, letting the user pick the
|
|
20
|
+
preferred approach, and composing a corresponding *task plan* aligned
|
|
21
|
+
with the existing architecture.
|
|
22
|
+
|
|
23
|
+
The skill does *not* directly modify source files. It persists the
|
|
24
|
+
plan via `ase_task_save` and then hands off to `ase-task-edit`,
|
|
25
|
+
`ase-task-preflight`, or `ase-task-implement`, as selected by
|
|
26
|
+
`--next`.
|
|
27
|
+
|
|
28
|
+
## OPTIONS
|
|
29
|
+
|
|
30
|
+
`--auto`|`-a`:
|
|
31
|
+
Automatically pick the recommended feature approach without
|
|
32
|
+
asking the user via the interactive dialog.
|
|
33
|
+
|
|
34
|
+
`--next`|`-n` *option*:
|
|
35
|
+
Automatically choose the next step after composing the plan,
|
|
36
|
+
where *option* is either `none` (default, hand-off to
|
|
37
|
+
`ase-task-edit` interactively), `DONE` (stop), `EDIT` (hand off
|
|
38
|
+
to `ase-task-edit`), `PREFLIGHT` (hand off to
|
|
39
|
+
`ase-task-preflight`), or `IMPLEMENT` (hand off to
|
|
40
|
+
`ase-task-implement`).
|
|
41
|
+
|
|
42
|
+
## ARGUMENTS
|
|
43
|
+
|
|
44
|
+
[*task-id*:] *feature*:
|
|
45
|
+
Description of the *feature* to craft. Optionally prefixed with
|
|
46
|
+
a *task-id* followed by a colon to bind the resulting plan to
|
|
47
|
+
a specific task id.
|
|
48
|
+
|
|
49
|
+
## EXAMPLES
|
|
50
|
+
|
|
51
|
+
Craft a new logging feature:
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
❯ /ase-code-craft add structured JSON logging with log levels
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Craft a feature under a named task and directly hand off to implementation:
|
|
58
|
+
|
|
59
|
+
```text
|
|
60
|
+
❯ /ase-code-craft --next IMPLEMENT auth: add JWT authentication middleware
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## SEE ALSO
|
|
64
|
+
|
|
65
|
+
`ase-code-refactor`, `ase-code-resolve`, `ase-task-edit`,
|
|
66
|
+
`ase-task-preflight`, `ase-task-implement`.
|