@rse/ase 0.0.56 → 0.0.58

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 (62) hide show
  1. package/package.json +1 -1
  2. package/plugin/.claude-plugin/plugin.json +1 -1
  3. package/plugin/.github/plugin/plugin.json +1 -1
  4. package/plugin/etc/markdownlint.yaml +1 -0
  5. package/plugin/meta/ase-constitution.md +2 -1
  6. package/plugin/meta/ase-getopt.md +24 -10
  7. package/plugin/meta/ase-skill.md +24 -7
  8. package/plugin/package.json +1 -1
  9. package/plugin/skills/ase-arch-analyze/SKILL.md +3 -10
  10. package/plugin/skills/ase-arch-analyze/help.md +50 -0
  11. package/plugin/skills/ase-arch-discover/SKILL.md +1 -9
  12. package/plugin/skills/ase-arch-discover/help.md +48 -0
  13. package/plugin/skills/ase-code-analyze/SKILL.md +1 -9
  14. package/plugin/skills/ase-code-analyze/help.md +47 -0
  15. package/plugin/skills/ase-code-craft/SKILL.md +36 -14
  16. package/plugin/skills/ase-code-craft/help.md +74 -0
  17. package/plugin/skills/ase-code-explain/SKILL.md +1 -9
  18. package/plugin/skills/ase-code-explain/help.md +43 -0
  19. package/plugin/skills/ase-code-insight/SKILL.md +1 -9
  20. package/plugin/skills/ase-code-insight/help.md +43 -0
  21. package/plugin/skills/ase-code-lint/SKILL.md +1 -9
  22. package/plugin/skills/ase-code-lint/help.md +54 -0
  23. package/plugin/skills/ase-code-refactor/SKILL.md +36 -14
  24. package/plugin/skills/ase-code-refactor/help.md +74 -0
  25. package/plugin/skills/ase-code-resolve/SKILL.md +36 -14
  26. package/plugin/skills/ase-code-resolve/help.md +81 -0
  27. package/plugin/skills/ase-docs-proofread/SKILL.md +3 -12
  28. package/plugin/skills/ase-docs-proofread/help.md +54 -0
  29. package/plugin/skills/ase-meta-changes/SKILL.md +1 -9
  30. package/plugin/skills/ase-meta-changes/help.md +33 -0
  31. package/plugin/skills/ase-meta-chat/SKILL.md +1 -8
  32. package/plugin/skills/ase-meta-chat/help.md +45 -0
  33. package/plugin/skills/ase-meta-commit/SKILL.md +1 -8
  34. package/plugin/skills/ase-meta-commit/help.md +31 -0
  35. package/plugin/skills/ase-meta-evaluate/SKILL.md +1 -9
  36. package/plugin/skills/ase-meta-evaluate/help.md +52 -0
  37. package/plugin/skills/ase-meta-persona/SKILL.md +8 -2
  38. package/plugin/skills/ase-meta-persona/help.md +50 -0
  39. package/plugin/skills/ase-meta-quorum/SKILL.md +1 -8
  40. package/plugin/skills/ase-meta-quorum/help.md +41 -0
  41. package/plugin/skills/ase-meta-search/SKILL.md +1 -8
  42. package/plugin/skills/ase-meta-search/help.md +39 -0
  43. package/plugin/skills/ase-meta-why/SKILL.md +1 -8
  44. package/plugin/skills/ase-meta-why/help.md +39 -0
  45. package/plugin/skills/ase-task-delete/SKILL.md +3 -7
  46. package/plugin/skills/ase-task-delete/help.md +47 -0
  47. package/plugin/skills/ase-task-edit/SKILL.md +52 -70
  48. package/plugin/skills/ase-task-edit/help.md +84 -0
  49. package/plugin/skills/ase-task-id/SKILL.md +5 -4
  50. package/plugin/skills/ase-task-id/help.md +42 -0
  51. package/plugin/skills/ase-task-implement/SKILL.md +13 -9
  52. package/plugin/skills/ase-task-implement/help.md +63 -0
  53. package/plugin/skills/ase-task-list/SKILL.md +5 -4
  54. package/plugin/skills/ase-task-list/help.md +43 -0
  55. package/plugin/skills/ase-task-preflight/SKILL.md +3 -9
  56. package/plugin/skills/ase-task-preflight/help.md +58 -0
  57. package/plugin/skills/ase-task-reboot/SKILL.md +3 -9
  58. package/plugin/skills/ase-task-reboot/help.md +55 -0
  59. package/plugin/skills/ase-task-rename/SKILL.md +3 -8
  60. package/plugin/skills/ase-task-rename/help.md +44 -0
  61. package/plugin/skills/ase-task-view/SKILL.md +3 -7
  62. 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.56",
9
+ "version": "0.0.58",
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",
3
- "version": "0.0.56",
3
+ "version": "0.0.58",
4
4
  "description": "Agentic Software Engineering (ASE)",
5
5
  "keywords": [ "agentic", "software", "engineering" ],
6
6
  "homepage": "https://ase.tools",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ase",
3
- "version": "0.0.56",
3
+ "version": "0.0.58",
4
4
  "description": "Agentic Software Engineering (ASE)",
5
5
  "keywords": [ "agentic", "software", "engineering" ],
6
6
  "homepage": "https://ase.tools",
@@ -15,4 +15,5 @@ no-space-in-code: false
15
15
  ul-indent: false
16
16
  ol-indent: false
17
17
  heading-style: false
18
+ no-multiple-space-atx: false
18
19
 
@@ -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:
@@ -9,15 +9,28 @@ 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><arg2/></getopt-spec>.
13
- Set <getopt-opts><arg3/></getopt-opts>.
12
+ Set <getopt-spec>--help|-h <arg2/></getopt-spec>.
14
13
  Set <getopt-args><content/></getopt-args>.
15
14
 
16
- 2. **Short-Circuit for Quick Processing**:
17
- If <getopt-opts/> contains `quick` *AND*
18
- <getopt-args/> does *NOT* match the regexp `^\s*-`:
19
- Set <getopt-arguments><getopt-args/></getopt-arguments> and
20
- then just silently *SKIP* the following steps 3-7!
15
+ 2. **Short-Circuit Processing**:
16
+ If <getopt-args/> does *NOT* match the regexp `(^|\s)-` (i.e.
17
+ contains no options at all):
18
+
19
+ For each option token in <getopt-spec/> of the form
20
+ `--<long/>[|-<short/>][=<default/>|=(<c1/>|<c2/>|...)]`, set
21
+ <getopt-option-<long/>/> to <default/> (for `=<default/>`
22
+ form), or to <c1/> (the first choice, for `=(<c1/>|<c2>/|...)`
23
+ form), or to `false` (for value-less options). Then set
24
+ <getopt-arguments><getopt-args/></getopt-arguments>.
25
+
26
+ Additionally, simulate <getopt-info/> as a comma-separated
27
+ markdown rendering of the parsed options in the form `<longN/>:
28
+ **<valueN/>**, [...]` (joined with `, `, with each value
29
+ shell-quoted if value contains spaces or special characters, and
30
+ excluding the `help` option).
31
+
32
+ Then silently *SKIP* only the following steps 3-6
33
+ and proceed directly to step 7 to display the results.
21
34
 
22
35
  3. **MCP Call**:
23
36
  Call the `ase_getopt(name: "<getopt-skill/>", spec:
@@ -36,7 +49,7 @@ set placeholders into the context as a side-effect.
36
49
  then immediately *STOP* processing the entire current skill:
37
50
 
38
51
  <template>
39
- ⧉ **ASE**: skill: **<getopt-skill/>**, ▶ ERROR: option parsing failed: **<text/>**
52
+ ⧉ **ASE**: skill: **<getopt-skill/>**, ▶ ERROR: option parsing failed: **<text/>**
40
53
  </template>
41
54
 
42
55
  5. **Parsing JSON Result**:
@@ -58,13 +71,14 @@ set placeholders into the context as a side-effect.
58
71
  Set <getopt-option-<longN/>/> to the corresponding value
59
72
  `<getopt-result/>.opts[<longN/>]`.
60
73
  Set <getopt-arguments/> to the value of `<getopt-result/>.args`.
61
- Set <getopt-info/> to `<getopt-result/>.info`.
74
+ Set <getopt-info/> to `<getopt-result/>.info`, but remove
75
+ information about the `help` option.
62
76
 
63
77
  7. **Display Results**:
64
78
  Just output the following <template/>:
65
79
 
66
80
  <template>
67
- ⧉ **ASE**: skill: **<getopt-skill/>**, ▶ options: <getopt-info/>
81
+ ⧉ **ASE**: skill: **<getopt-skill/>**, ▶ options: <getopt-info/>
68
82
  </template>
69
83
  </define>
70
84
 
@@ -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
- Then, in case <skill/> later becomes *not* empty
164
- by defining it as <skill name="<name/>"><body/></skill>,
165
- set <skill-name><name/></skill-name> (set skill name to name),
166
- set <skill><body/></skill> (set skill to body), and
167
- then you *MUST* once output the following output <template/>:
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**: skill: **<skill-name/>**, ✦ purpose: **<skill/>**, ▶ status: **skill started**
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>
@@ -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.56",
9
+ "version": "0.0.58",
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
- *Review* the *software architecture* of $ARGUMENTS, and its directly
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*
@@ -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] [--dry|-d] [--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,23 +17,16 @@ 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>
26
23
 
27
24
  <expand name="getopt"
28
25
  arg1="ase-code-craft"
29
- arg2="--auto|-a --next|-n=(none|DONE|EDIT|PREFLIGHT|IMPLEMENT)">
26
+ arg2="--auto|-a --dry|-d --next|-n=(none|DONE|EDIT|PREFLIGHT|IMPLEMENT)">
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>
@@ -268,6 +261,18 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
268
261
  the information from feature A<n/> and all derived realization
269
262
  decisions into it. Store the resulting task plan in <content/>.
270
263
 
264
+ If a `CHANGELOG.md` file exists in the project (or in any
265
+ affected sub-package), the plan *MUST* include, as part of its
266
+ `## ※ CHANGES` section, an explicit bullet point describing
267
+ the addition of a corresponding new entry to that `CHANGELOG.md`
268
+ file, aligned with its existing style and conventions.
269
+
270
+ <if condition="<getopt-option-dry/> is equal `true`">
271
+ You *MUST* completely omit the `## ※ VERIFICATION` section
272
+ (including its heading and all of its bullet points) from
273
+ <content/>.
274
+ </if>
275
+
271
276
  You *MUST* *NOT* call `Edit`, `Write`, `NotebookEdit`, or any
272
277
  filesystem-modifying tool during this step.
273
278
 
@@ -287,9 +292,26 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
287
292
  ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan created**
288
293
  </template>
289
294
 
290
- 5. Directly pass-through control to the `ase:ase-task-edit` skill.
291
- Set <args></args> (set args to empty). If <getopt-option-next/>
292
- is not equal `none`, set <args><args/> --next
293
- <getopt-option-next/></args> (append to args). Then call the
294
- tool `Skill(skill: "ase:ase-task-edit", args: <args/>)`.
295
+ 5. Directly pass-through control to the next skill:
296
+
297
+ 1. <if condition="<getopt-option-next/> is equal `IMPLEMENT`">
298
+ Call the tool `Skill(skill: "ase:ase-task-implement")` to
299
+ *implement* the freshly composed plan, bypassing `ase-task-edit`.
300
+ </if>
301
+
302
+ 2. <if condition="<getopt-option-next/> is equal `PREFLIGHT`">
303
+ Call the tool `Skill(skill: "ase:ase-task-preflight")` to
304
+ *preflight* the freshly composed plan, bypassing `ase-task-edit`.
305
+ </if>
306
+
307
+ 3. <if condition="
308
+ <getopt-option-next/> is not equal `IMPLEMENT` AND
309
+ <getopt-option-next/> is not equal `PREFLIGHT`
310
+ ">
311
+ Set <args></args> (set args to empty).
312
+ <if condition="<getopt-option-next/> is not equal `none`">
313
+ Set <args><args/> --next <getopt-option-next/></args> (append to args).
314
+ </if>
315
+ Then call the tool `Skill(skill: "ase:ase-task-edit", args: <args/>)`.
316
+ </if>
295
317
 
@@ -0,0 +1,74 @@
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
+ [`--dry`|`-d`]
12
+ [`--next`|`-n` *option*]
13
+ [*task-id*:] *feature*
14
+
15
+ ## DESCRIPTION
16
+
17
+ The `ase-code-craft` skill crafts a *new feature* from scratch by
18
+ investigating the existing code base, internalizing crafting tenets
19
+ (KISS, YAGNI, DRY, SRP, loose coupling, ...), proposing one or more
20
+ *feature approaches* with pros and cons, letting the user pick the
21
+ preferred approach, and composing a corresponding *task plan* aligned
22
+ with the existing architecture.
23
+
24
+ The skill does *not* directly modify source files. It persists the
25
+ plan via `ase_task_save` and then hands off to `ase-task-edit`,
26
+ `ase-task-preflight`, or `ase-task-implement`, as selected by
27
+ `--next`.
28
+
29
+ ## OPTIONS
30
+
31
+ `--auto`|`-a`:
32
+ Automatically pick the recommended feature approach without
33
+ asking the user via the interactive dialog.
34
+
35
+ `--dry`|`-d`:
36
+ Compose the plan *without* the `※ VERIFICATION` section. When
37
+ `ase-task-implement` later applies such a plan, it strictly skips
38
+ the entire verification phase (no build, tests, linter,
39
+ type-checker, or program execution) once the source files have
40
+ been modified.
41
+
42
+ `--next`|`-n` *option*:
43
+ Automatically choose the next step after composing the plan,
44
+ where *option* is either `none` (default, hand-off to
45
+ `ase-task-edit` interactively), `DONE` (stop), `EDIT` (hand off
46
+ to `ase-task-edit`), `PREFLIGHT` (hand off to
47
+ `ase-task-preflight`), or `IMPLEMENT` (hand off to
48
+ `ase-task-implement`).
49
+
50
+ ## ARGUMENTS
51
+
52
+ [*task-id*:] *feature*:
53
+ Description of the *feature* to craft. Optionally prefixed with
54
+ a *task-id* followed by a colon to bind the resulting plan to
55
+ a specific task id.
56
+
57
+ ## EXAMPLES
58
+
59
+ Craft a new logging feature:
60
+
61
+ ```text
62
+ ❯ /ase-code-craft add structured JSON logging with log levels
63
+ ```
64
+
65
+ Craft a feature under a named task and directly hand off to implementation:
66
+
67
+ ```text
68
+ ❯ /ase-code-craft --next IMPLEMENT auth: add JWT authentication middleware
69
+ ```
70
+
71
+ ## SEE ALSO
72
+
73
+ `ase-code-refactor`, `ase-code-resolve`, `ase-task-edit`,
74
+ `ase-task-preflight`, `ase-task-implement`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ase-code-explain
3
- argument-hint: "<source-reference>"
3
+ argument-hint: "[--help|-h] <source-reference>"
4
4
  description: >
5
5
  Explains code with WHAT, WHY, ANALOGY, DIAGRAM, CRUXES, and GOTCHAS.
6
6
  Use when you want to know how code works or when the user asks "how does this work?"
@@ -15,18 +15,10 @@ allowed-tools:
15
15
  @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
16
16
  @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
17
17
 
18
- Explain Source Code
19
- ===================
20
-
21
18
  <skill name="ase-code-explain">
22
19
  Explain Source Code
23
20
  </skill>
24
21
 
25
- <role>
26
- Your role is an experienced, *expert-level software developer*,
27
- specialized in *explaining source code*.
28
- </role>
29
-
30
22
  <objective>
31
23
  *Analyze* the source code of $ARGUMENTS, and its directly related source
32
24
  code and *explain* it in a *brief*, *standardized*, and *concise* way.
@@ -0,0 +1,43 @@
1
+
2
+ ## NAME
3
+
4
+ `ase-code-explain` - Explain Source Code
5
+
6
+ ## SYNOPSIS
7
+
8
+ `ase-code-explain`
9
+ [`--help`|`-h`]
10
+ *source-reference*
11
+
12
+ ## DESCRIPTION
13
+
14
+ The `ase-code-explain` skill analyzes and explains the source code of
15
+ the referenced location in a *brief*, *standardized*, and *concise*
16
+ way along six dimensions: *WHAT* (functionality), *WHY* (rationale),
17
+ *ANALOGY* (everyday-life comparison in ELI5 style), *DIAGRAM* (Mermaid
18
+ diagram of control flow, data flow, or structure), *CRUXES* (what to
19
+ notice), and *GOTCHAS* (what to not stumble over).
20
+
21
+ ## ARGUMENTS
22
+
23
+ *source-reference*:
24
+ A file, directory, function, or other reference to the source code
25
+ to explain.
26
+
27
+ ## EXAMPLES
28
+
29
+ Explain a single source file:
30
+
31
+ ```text
32
+ ❯ /ase-code-explain src/parser.ts
33
+ ```
34
+
35
+ Explain a specific function:
36
+
37
+ ```text
38
+ ❯ /ase-code-explain src/parser.ts#parseExpression
39
+ ```
40
+
41
+ ## SEE ALSO
42
+
43
+ `ase-code-insight`, `ase-code-analyze`, `ase-arch-analyze`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ase-code-insight
3
- argument-hint: "<code-references>"
3
+ argument-hint: "[--help|-h] <code-references>"
4
4
  description: >
5
5
  Give insights into the source code.
6
6
  user-invocable: true
@@ -18,18 +18,10 @@ allowed-tools:
18
18
  @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
19
19
  @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
20
20
 
21
- Project Insight
22
- ===============
23
-
24
21
  <skill name="ase-code-insight">
25
22
  Project Insight
26
23
  </skill>
27
24
 
28
- <role>
29
- Your role is an experienced, *expert-level software developer*,
30
- specialized in *analyzing source code* and giving insights.
31
- </role>
32
-
33
25
  <objective>
34
26
  Give *insights* into the project through the source code of $ARGUMENTS.
35
27
  </objective>