@rse/ase 0.9.55 → 0.9.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/dst/ase-config.js +72 -31
- package/dst/ase-getopt.js +3 -1
- package/dst/ase-hook.js +5 -3
- package/dst/ase-markdown.js +7 -4
- package/dst/ase-service.js +1 -1
- package/dst/ase-setup.js +4 -2
- package/dst/ase-statusline.js +6 -8
- package/dst/ase-task.js +37 -11
- package/package.json +5 -5
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/.github/plugin/plugin.json +1 -1
- package/plugin/agents/ase-code-analyze.md +1 -1
- package/plugin/agents/ase-code-lint.md +4 -4
- package/plugin/agents/ase-meta-chat.md +1 -1
- package/plugin/agents/ase-meta-proximity.md +1 -1
- package/plugin/meta/ase-common-code.md +168 -1
- package/plugin/meta/ase-common-task.md +31 -13
- package/plugin/meta/ase-constitution.md +3 -3
- package/plugin/meta/ase-control.md +7 -7
- package/plugin/meta/ase-dialog.md +5 -4
- package/plugin/meta/ase-format-arch.md +6 -21
- package/plugin/meta/ase-format-meta.md +15 -2
- package/plugin/meta/ase-format-spec.md +9 -24
- package/plugin/meta/ase-format-task.md +2 -2
- package/plugin/meta/ase-getopt.md +1 -1
- package/plugin/meta/ase-persona.md +3 -3
- package/plugin/meta/ase-skill.md +14 -24
- package/plugin/meta/ase-tenets.md +5 -5
- package/plugin/package.json +2 -2
- package/plugin/skills/ase-arch-analyze/SKILL.md +2 -2
- package/plugin/skills/ase-arch-analyze/help.md +1 -1
- package/plugin/skills/ase-arch-discover/SKILL.md +9 -7
- package/plugin/skills/ase-code-analyze/SKILL.md +1 -1
- package/plugin/skills/ase-code-analyze/help.md +1 -1
- package/plugin/skills/ase-code-craft/SKILL.md +2 -153
- package/plugin/skills/ase-code-craft/help.md +1 -1
- package/plugin/skills/ase-code-explain/SKILL.md +3 -3
- package/plugin/skills/ase-code-insight/SKILL.md +9 -7
- package/plugin/skills/ase-code-lint/SKILL.md +7 -5
- package/plugin/skills/ase-code-refactor/SKILL.md +4 -155
- package/plugin/skills/ase-code-resolve/SKILL.md +48 -173
- package/plugin/skills/ase-code-resolve/help.md +15 -4
- package/plugin/skills/ase-docs-distill/SKILL.md +2 -2
- package/plugin/skills/ase-docs-distill/help.md +1 -1
- package/plugin/skills/ase-docs-proofread/SKILL.md +7 -3
- package/plugin/skills/ase-help-intent/SKILL.md +33 -9
- package/plugin/skills/ase-help-skill/SKILL.md +1 -1
- package/plugin/skills/ase-meta-brainstorm/SKILL.md +11 -2
- package/plugin/skills/ase-meta-changelog/SKILL.md +13 -8
- package/plugin/skills/ase-meta-chat/SKILL.md +9 -0
- package/plugin/skills/ase-meta-commit/SKILL.md +11 -1
- package/plugin/skills/ase-meta-compat/SKILL.md +2 -2
- package/plugin/skills/ase-meta-config/help.md +3 -2
- package/plugin/skills/ase-meta-diaboli/SKILL.md +12 -3
- package/plugin/skills/ase-meta-diff/SKILL.md +11 -13
- package/plugin/skills/ase-meta-eli5/SKILL.md +3 -3
- package/plugin/skills/ase-meta-eli5/help.md +1 -1
- package/plugin/skills/ase-meta-evaluate/SKILL.md +3 -3
- package/plugin/skills/ase-meta-quorum/SKILL.md +17 -17
- package/plugin/skills/ase-meta-quotes/SKILL.md +1 -1
- package/plugin/skills/ase-meta-review/SKILL.md +7 -5
- package/plugin/skills/ase-meta-review/help.md +2 -2
- package/plugin/skills/ase-meta-search/SKILL.md +18 -0
- package/plugin/skills/ase-meta-steelman/SKILL.md +11 -2
- package/plugin/skills/ase-meta-why/SKILL.md +15 -6
- package/plugin/skills/ase-meta-why/help.md +3 -3
- package/plugin/skills/ase-sync-export/SKILL.md +2 -1
- package/plugin/skills/ase-sync-export/help.md +1 -1
- package/plugin/skills/ase-sync-reconcile/SKILL.md +16 -2
- package/plugin/skills/ase-task-condense/SKILL.md +13 -67
- package/plugin/skills/ase-task-delete/SKILL.md +1 -1
- package/plugin/skills/ase-task-dissect/SKILL.md +5 -18
- package/plugin/skills/ase-task-edit/SKILL.md +49 -22
- package/plugin/skills/ase-task-grill/SKILL.md +31 -129
- package/plugin/skills/ase-task-id/SKILL.md +12 -2
- package/plugin/skills/ase-task-implement/SKILL.md +11 -7
- package/plugin/skills/ase-task-implement/help.md +1 -1
- package/plugin/skills/ase-task-list/SKILL.md +9 -0
- package/plugin/skills/ase-task-preflight/SKILL.md +17 -33
- package/plugin/skills/ase-task-reboot/SKILL.md +24 -100
- package/plugin/skills/ase-task-reboot/help.md +1 -1
- package/plugin/skills/ase-task-view/SKILL.md +4 -2
- package/dst/ase-guidance.js +0 -89
- package/dst/ase-persona.js +0 -87
- package/dst/ase-stdout.js +0 -18
package/plugin/meta/ase-skill.md
CHANGED
|
@@ -13,7 +13,7 @@ Skill Output
|
|
|
13
13
|
the value of a placeholder named `xxx`.
|
|
14
14
|
|
|
15
15
|
- *IMPORTANT*: *All* output is *exclusively* requested through
|
|
16
|
-
<template/> sections. You *MUST* *NOT* output anything *
|
|
16
|
+
<template/> sections. You *MUST* *NOT* output anything *UNLESS* it
|
|
17
17
|
is explicitly included in such a <template/> section. Especially,
|
|
18
18
|
you *MUST* *NOT* output any explanations on your own, unless
|
|
19
19
|
explicitly requested.
|
|
@@ -95,8 +95,8 @@ Skill Output
|
|
|
95
95
|
|
|
96
96
|
- *Fix conflicts with documented priority*: the
|
|
97
97
|
recommendation would violate a documented priority
|
|
98
|
-
(hot-path, allocation-free, lock-free,
|
|
99
|
-
sensitive, sub-µs budget). Either weaken the
|
|
98
|
+
(hot-path, allocation-free, lock-free,
|
|
99
|
+
latency-sensitive, sub-µs budget). Either weaken the
|
|
100
100
|
recommendation, convert it to a tradeoff, or mark
|
|
101
101
|
severity `ACCEPTED` with note "priority-conflict
|
|
102
102
|
accepted".
|
|
@@ -113,7 +113,7 @@ Skill Sequential Processing
|
|
|
113
113
|
Each `<step id="xxx" [...]>...</step>` corresponds to a
|
|
114
114
|
`TaskCreate({ subject: "xxx", description: "xxx" })`. In other
|
|
115
115
|
words, use the text of the `id` attribute of <step/> exactly
|
|
116
|
-
*as-is* for both the `subject
|
|
116
|
+
*as-is* for both the `subject` and the `description` fields of
|
|
117
117
|
`TaskCreate`.
|
|
118
118
|
|
|
119
119
|
For speed, emit *all* `TaskCreate` calls together in a *single* turn
|
|
@@ -121,7 +121,7 @@ Skill Sequential Processing
|
|
|
121
121
|
rely on the call order to establish the step order, as the parallel
|
|
122
122
|
results carry no guaranteed ordering.
|
|
123
123
|
|
|
124
|
-
Instead, in the *immediately
|
|
124
|
+
Instead, in the *single immediately following* turn, first
|
|
125
125
|
reconstruct the step-id-to-taskId mapping: because each task's
|
|
126
126
|
`subject` equals the originating <step/> `id` (and <step/> ids are
|
|
127
127
|
unique), match every created task back to its <step/> by comparing
|
|
@@ -138,7 +138,7 @@ Skill Sequential Processing
|
|
|
138
138
|
predecessor step (with `taskId` <prev/>).
|
|
139
139
|
|
|
140
140
|
- *IMPORTANT*: For each <step/> you *MUST* use the `TaskUpdate` tool
|
|
141
|
-
for updating its status *during* processing, once a <step/> finished.
|
|
141
|
+
for updating its status *during* processing, once a <step/> has finished.
|
|
142
142
|
|
|
143
143
|
- *IMPORTANT*: Whenever a skill *stops early* -- because a <step/>
|
|
144
144
|
instructed you to *STOP* processing (on an error, a cancelled
|
|
@@ -151,12 +151,12 @@ Skill Sequential Processing
|
|
|
151
151
|
|
|
152
152
|
- *IMPORTANT*: You *MUST* *strictly sequentially* execute every <step/> in
|
|
153
153
|
a <flow/>. You *MUST* not implicitly skip any <step/> during
|
|
154
|
-
processing,
|
|
154
|
+
processing, unless you were explicitly requested to do this or the
|
|
155
155
|
step is configured to be a conditional step!
|
|
156
156
|
|
|
157
157
|
- *IMPORTANT*: You *MUST* *strictly sequentially* execute every numbered
|
|
158
158
|
item in a <step/>. You *MUST* not implicitly skip any numbered item during
|
|
159
|
-
processing,
|
|
159
|
+
processing, unless you were explicitly requested to do this!
|
|
160
160
|
|
|
161
161
|
- *IMPORTANT*: For any <step/> that specifies an *agent* in its
|
|
162
162
|
`agent="[...]"` XML attribute, you *MUST* use the specified
|
|
@@ -252,7 +252,7 @@ Skill Identification
|
|
|
252
252
|
|
|
253
253
|
- *IMPORTANT*:
|
|
254
254
|
You *MUST* *NOT* output any summaries, explanations, or next
|
|
255
|
-
steps at the end of a skill
|
|
255
|
+
steps at the end of a skill besides the explicit outputs via any
|
|
256
256
|
<template/>.
|
|
257
257
|
|
|
258
258
|
Artifact Boxing Transparency
|
|
@@ -291,7 +291,7 @@ Artifact Boxing Transparency
|
|
|
291
291
|
- Findings surfaced: *none* (report only the *outcome*)
|
|
292
292
|
- Internals exposed: *none* (no diffs, no code, no per-artifact explanation)
|
|
293
293
|
|
|
294
|
-
- *IMPORTANT*: Precedence rule: skill's *explicit* `black` branches
|
|
294
|
+
- *IMPORTANT*: Precedence rule: a skill's *explicit* `black` branches
|
|
295
295
|
deterministically skip or suppress and *win* over the implicit decisions
|
|
296
296
|
above. Where no such branches exist, the decisions above apply.
|
|
297
297
|
|
|
@@ -458,19 +458,6 @@ Template Patterns
|
|
|
458
458
|
Do not output anything.
|
|
459
459
|
</else>
|
|
460
460
|
|
|
461
|
-
- When `<ase-tpl-boxline><line/></ase-tpl-boxline>` should be expanded, use:
|
|
462
|
-
|
|
463
|
-
<if condition="<line/> is not empty">
|
|
464
|
-
<template>
|
|
465
|
-
│ <line/>
|
|
466
|
-
</template>
|
|
467
|
-
</if>
|
|
468
|
-
<else>
|
|
469
|
-
<template>
|
|
470
|
-
│
|
|
471
|
-
</template>
|
|
472
|
-
</else>
|
|
473
|
-
|
|
474
461
|
- When `<ase-tpl-boxed title="<title/>"[ subtitle="<subtitle/>"]><content/></ase-tpl-boxed>`
|
|
475
462
|
should be expanded use the following helper placeholders and then
|
|
476
463
|
the following <template/>:
|
|
@@ -487,7 +474,10 @@ Template Patterns
|
|
|
487
474
|
un-styled text <raw-title/>.
|
|
488
475
|
- Set <bar/> to the `─` character repeated exactly max(0, 67 - <raw-title-len/>)
|
|
489
476
|
times -- clamped to zero so an over-long title never yields a negative count.
|
|
490
|
-
- Set <body/> to <content/> with all
|
|
477
|
+
- Set <body/> to <content/> with all non-empty lines prefixed with
|
|
478
|
+
`│ ` and all empty lines prefixed with just `│` (so no trailing
|
|
479
|
+
whitespace is produced). Do *not* prefix any line twice -- the
|
|
480
|
+
<content/> itself *MUST* *NOT* contain any `│` prefixes already.
|
|
491
481
|
|
|
492
482
|
<template>
|
|
493
483
|
|
|
@@ -37,9 +37,9 @@ you *MUST* honor the following so-called **GENERIC TENETS**:
|
|
|
37
37
|
- Handle obvious or expected errors near the origin.
|
|
38
38
|
- Handle theoretical or unexpected errors in parent scopes.
|
|
39
39
|
- Avoid introducing dedicated state variables for individual error cases.
|
|
40
|
-
- If state variables are needed to detect error cases, use minimum
|
|
40
|
+
- If state variables are needed to detect error cases, use the minimum
|
|
41
41
|
number of those variables only.
|
|
42
|
-
- Use minimum number of state variables to span the maximum of error space.
|
|
42
|
+
- Use the minimum number of state variables to span the maximum of error space.
|
|
43
43
|
|
|
44
44
|
- **Surgical Changes**:
|
|
45
45
|
*Keep changes as small as possible.*
|
|
@@ -61,7 +61,7 @@ you *MUST* honor the following so-called **GENERIC TENETS**:
|
|
|
61
61
|
- When one concern changes, the change should not ripple into unrelated ones.
|
|
62
62
|
|
|
63
63
|
- **Code Base Alignment**:
|
|
64
|
-
*Blend in.
|
|
64
|
+
*Blend in. A new aspect should read as if the existing aspects wrote it.*
|
|
65
65
|
- Follow the established coding style, formatting, and idioms exactly.
|
|
66
66
|
- Mirror the existing structure, layering, and file organization.
|
|
67
67
|
- Reuse the prevailing naming conventions, patterns, and libraries.
|
|
@@ -150,12 +150,12 @@ you *MUST* honor the following so-called **RECONCILIATION TENETS**:
|
|
|
150
150
|
Re-express source facts at the *target's* level of abstraction and
|
|
151
151
|
altitude; do not copy verbatim across artifact levels. A SPEC states
|
|
152
152
|
intent, an ARCH states structure, CODE states realization, DOCS
|
|
153
|
-
states facts, etc -- align the *meaning*, not the wording.
|
|
153
|
+
states facts, etc. -- align the *meaning*, not the wording.
|
|
154
154
|
|
|
155
155
|
- **Format Conformance**:
|
|
156
156
|
Keep every formatted target (SPEC, ARCH, TASK) conformant to its
|
|
157
157
|
format contract (headings, structure, identifiers). Treat CODE,
|
|
158
|
-
DOCS, INFR, and OTHR kinds of artifacts as foreign
|
|
158
|
+
DOCS, INFR, and OTHR kinds of artifacts as foreign-defined, but not
|
|
159
159
|
as free-form.
|
|
160
160
|
|
|
161
161
|
- **Alignment Traceability**:
|
package/plugin/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"homepage": "https://ase.tools",
|
|
7
7
|
"repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
|
|
8
8
|
"bugs": { "url": "https://github.com/rse/ase/issues" },
|
|
9
|
-
"version": "0.9.
|
|
9
|
+
"version": "0.9.57",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"author": {
|
|
12
12
|
"name": "Dr. Ralf S. Engelschall",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"markdownlint-cli2": "0.23.2",
|
|
20
20
|
"eslint": "10.8.0",
|
|
21
21
|
"@eslint/markdown": "8.0.3",
|
|
22
|
-
"eslint-markdown": "0.
|
|
22
|
+
"eslint-markdown": "0.13.0"
|
|
23
23
|
},
|
|
24
24
|
"engines": {
|
|
25
25
|
"npm": ">=10.0.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-arch-analyze
|
|
3
|
-
argument-hint: "[--help|-h] <source-reference>"
|
|
3
|
+
argument-hint: "[--help|-h] [--prefix|-P=<prefix>] <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
|
|
@@ -130,7 +130,7 @@ interface quality, quality attributes, and architecture governance.
|
|
|
130
130
|
surfaced. *Skip* the entire investigation and reporting: do *not*
|
|
131
131
|
invoke any `Agent` tool and do *not* read any source, only output
|
|
132
132
|
the following <template/> and then *SKIP* the remaining steps STEP 2
|
|
133
|
-
|
|
133
|
+
and STEP 3:
|
|
134
134
|
|
|
135
135
|
<template>
|
|
136
136
|
<ase-tpl-bullet-normal/> **ARCHITECTURE ANALYSIS**: *suppressed* (`project.boxing` is `black`)
|
|
@@ -54,7 +54,7 @@ Analyze a specific module:
|
|
|
54
54
|
❯ /ase-arch-analyze src/core
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
-
Analyze a module under
|
|
57
|
+
Analyze a module under its own id namespace, yielding `core-P1`, `core-T1`, ...:
|
|
58
58
|
|
|
59
59
|
```text
|
|
60
60
|
❯ /ase-arch-analyze --prefix core src/core
|
|
@@ -9,7 +9,7 @@ disable-model-invocation: false
|
|
|
9
9
|
effort: high
|
|
10
10
|
allowed-tools:
|
|
11
11
|
- "Bash(npm search --json *)"
|
|
12
|
-
- "Bash(curl -s
|
|
12
|
+
- "Bash(curl -s *)"
|
|
13
13
|
- "Skill"
|
|
14
14
|
- "Agent"
|
|
15
15
|
---
|
|
@@ -78,8 +78,9 @@ for the technology stack to *provide* the *needed functionality*
|
|
|
78
78
|
2. Else, if a file `package.json` is found in the top-level directory
|
|
79
79
|
of the project, then <stack>JavaScript</stack>.
|
|
80
80
|
|
|
81
|
-
3. Else, if a file `build.gradle.kts`
|
|
82
|
-
is
|
|
81
|
+
3. Else, if a file `build.gradle.kts` is found in the top-level directory and
|
|
82
|
+
is applying `kotlin`, `org.jetbrains.kotlin.jvm`, `kotlin-android`,
|
|
83
|
+
or `kotlin-multiplatform` plugins, then <stack>Kotlin</stack>.
|
|
83
84
|
|
|
84
85
|
4. Else, if a file `build.gradle` is found in the top-level directory and
|
|
85
86
|
is applying `kotlin`, `org.jetbrains.kotlin.jvm`, `kotlin-android`,
|
|
@@ -89,8 +90,8 @@ for the technology stack to *provide* the *needed functionality*
|
|
|
89
90
|
contains `kotlin-maven-plugin` or `kotlin-stdlib` dependencies, then
|
|
90
91
|
<stack>Kotlin</stack>.
|
|
91
92
|
|
|
92
|
-
6. Else, if a file `pom.xml` or `build.gradle` is found
|
|
93
|
-
of the project, then <stack>Java</stack>.
|
|
93
|
+
6. Else, if a file `pom.xml`, `build.gradle`, or `build.gradle.kts` is found
|
|
94
|
+
in the top-level directory of the project, then <stack>Java</stack>.
|
|
94
95
|
|
|
95
96
|
7. Else, use <stack>Unknown</stack>.
|
|
96
97
|
|
|
@@ -123,7 +124,7 @@ for the technology stack to *provide* the *needed functionality*
|
|
|
123
124
|
(which alone is governed by <getopt-option-limit/>) has a
|
|
124
125
|
meaningful set to choose from.
|
|
125
126
|
|
|
126
|
-
In the to
|
|
127
|
+
In the to-be-discovered candidate set of components <component-K/>
|
|
127
128
|
(K=1-C, where C is the merged and deduplicated candidate count),
|
|
128
129
|
remember the component name as <name-K/>, the
|
|
129
130
|
official package name as <package-K/>, the latest version as
|
|
@@ -178,7 +179,8 @@ for the technology stack to *provide* the *needed functionality*
|
|
|
178
179
|
and fetches all metadata in maximum parallel and returns an array
|
|
179
180
|
of objects `{ name, version, created, updated, repository, stars,
|
|
180
181
|
downloads, deps, rank }`. For each component <component-K/>
|
|
181
|
-
(K=1-C) read from its corresponding entry: <
|
|
182
|
+
(K=1-C) read from its corresponding entry: <name-K/> from `name`
|
|
183
|
+
(unless already known from the discovery above), <version-K/> from
|
|
182
184
|
`version`, <updated-K/> from `updated`, <created-K/> from
|
|
183
185
|
`created`, <repository-K/> from `repository`, <stars-K/> from
|
|
184
186
|
`stars` (numeric or `N.A.`), <downloads-K/> from `downloads`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-code-analyze
|
|
3
|
-
argument-hint: "[--help|-h] [--performance|-p] [--security|-s] [--severity|-S=(LOW|MEDIUM|HIGH)] <source-reference>"
|
|
3
|
+
argument-hint: "[--help|-h] [--performance|-p] [--security|-s] [--severity|-S=(LOW|MEDIUM|HIGH)] [--prefix|-P=<prefix>] <source-reference>"
|
|
4
4
|
description: >
|
|
5
5
|
Analyze the source code for problems in either the logic and
|
|
6
6
|
semantics and its related control flow, performance and efficiency,
|
|
@@ -92,7 +92,7 @@ Analyze a directory, reporting only `MEDIUM` and `HIGH` problems:
|
|
|
92
92
|
❯ /ase-code-analyze -S MEDIUM src/handlers/
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
Analyze a directory under
|
|
95
|
+
Analyze a directory under its own id namespace, yielding `auth-P1`, `auth-P2`, ...:
|
|
96
96
|
|
|
97
97
|
```text
|
|
98
98
|
❯ /ase-code-analyze --prefix auth src/auth/
|
|
@@ -138,91 +138,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
138
138
|
|
|
139
139
|
4. <step id="STEP 4: Choose Feature Crafting Approaches">
|
|
140
140
|
|
|
141
|
-
|
|
142
|
-
any output* until and including the recommendation decision. Only
|
|
143
|
-
sub-steps 4-7 below are allowed to produce output; sub-steps 4-6 only if
|
|
144
|
-
<getopt-option-auto/> is equal `false` *and* <ase-project-boxing/>
|
|
145
|
-
is *not* equal `black`.
|
|
146
|
-
|
|
147
|
-
If <getopt-option-auto/> is equal `true` or <ase-project-boxing/> is
|
|
148
|
-
equal `black`, *skip* the reporting sub-steps 4-6 entirely (they
|
|
149
|
-
perform no output at all) to speed up processing.
|
|
150
|
-
|
|
151
|
-
1. *Propose* a corresponding *feature approach*, optionally including
|
|
152
|
-
some *alternative* feature approaches. Do *not* output anything
|
|
153
|
-
in this sub-step.
|
|
154
|
-
|
|
155
|
-
2. *Reflect* on and *critique* the proposed approaches by deriving,
|
|
156
|
-
per approach, a small set of concrete *pros* and *cons*. Do
|
|
157
|
-
*not* output anything in this sub-step.
|
|
158
|
-
|
|
159
|
-
3. Based on the reflection, *decide* which approach to recommend
|
|
160
|
-
and annotate it with an <annotation/> of
|
|
161
|
-
` ⚝ **RECOMMENDATION** ⚝`. All other approaches receive an
|
|
162
|
-
empty <annotation/>. Do *not* output anything in this sub-step.
|
|
163
|
-
|
|
164
|
-
4. Indicate start of reporting by showing the following <template/>:
|
|
165
|
-
|
|
166
|
-
<template>
|
|
167
|
-
<ase-tpl-head title="APPROACHES"/>
|
|
168
|
-
</template>
|
|
169
|
-
|
|
170
|
-
5. Now report each approach with the following <template/>,
|
|
171
|
-
inlining its pros/cons derived in sub-step 2, and do not output
|
|
172
|
-
anything else in this step:
|
|
173
|
-
|
|
174
|
-
<template>
|
|
175
|
-
● **APPROACH A<n/>**<annotation/>: **<summary/>**
|
|
176
|
-
○ [...]
|
|
177
|
-
⊕ *PRO*: [...]
|
|
178
|
-
⊖ *CON*: [...]
|
|
179
|
-
</template>
|
|
180
|
-
|
|
181
|
-
Hints:
|
|
182
|
-
|
|
183
|
-
- Give a short one-sentence <summary/> of the feature
|
|
184
|
-
approach plus *precise* and *ultra brief and concise*
|
|
185
|
-
feature information. Try to keep the number of bullet points
|
|
186
|
-
(`○ [...]`) in the range of 1-4.
|
|
187
|
-
|
|
188
|
-
6. Indicate end of reporting by showing the following <template/>:
|
|
189
|
-
|
|
190
|
-
<template>
|
|
191
|
-
<ase-tpl-foot title="APPROACHES"/>
|
|
192
|
-
</template>
|
|
193
|
-
|
|
194
|
-
7. <if condition="<getopt-option-auto/> is not equal `true` and <ase-project-boxing/> is not equal `black`">
|
|
195
|
-
|
|
196
|
-
In the following, you *MUST* *NOT* use your built-in
|
|
197
|
-
<user-dialog-tool/> tool! Instead, you *MUST* just show a
|
|
198
|
-
custom dialog according to the expanded `custom-dialog`
|
|
199
|
-
definition. You *MUST* closely follow this definition.
|
|
200
|
-
|
|
201
|
-
Let the user choose the preferred approach A<n/> by raising
|
|
202
|
-
a question with the following custom dialog, where per
|
|
203
|
-
approach A<n/>, you determine an ultra brief summary
|
|
204
|
-
<short-summary/> and then use the answer option `A<n/>:
|
|
205
|
-
⚝ **RECOMMENDATION** ⚝ - <short-summary/>` for your
|
|
206
|
-
recommended approach plus zero or more answer options `A<n/>:
|
|
207
|
-
<short-summary/>` for all other approaches:
|
|
208
|
-
|
|
209
|
-
<expand name="custom-dialog" arg1="--no-other">
|
|
210
|
-
Select Approach: Select your preferred crafting approach to follow?
|
|
211
|
-
A<n/>: <short-summary/>
|
|
212
|
-
[...]
|
|
213
|
-
</expand>
|
|
214
|
-
|
|
215
|
-
</if>
|
|
216
|
-
<else>
|
|
217
|
-
|
|
218
|
-
Set <n/> to the number of the feature approach A<n/> you recommend.
|
|
219
|
-
Output a hint with the following <template/>:
|
|
220
|
-
|
|
221
|
-
<template>
|
|
222
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **auto-chosen approach A<n/>**
|
|
223
|
-
</template>
|
|
224
|
-
|
|
225
|
-
</else>
|
|
141
|
+
<expand name="code-approaches" arg1="feature" arg2="crafting"></expand>
|
|
226
142
|
|
|
227
143
|
</step>
|
|
228
144
|
|
|
@@ -267,74 +183,7 @@ permitted way to persist artifacts is via `ase_task_save(...)`.
|
|
|
267
183
|
|
|
268
184
|
5. Directly pass-through control to the next skill:
|
|
269
185
|
|
|
270
|
-
|
|
271
|
-
list of pre-selected next-step tokens. *Peek* the *first* token
|
|
272
|
-
as <head/> (or `none` if the list is `none`/empty).
|
|
273
|
-
Set <args>--int-reuse-task</args>.
|
|
274
|
-
|
|
275
|
-
1. <if condition="<head/> is equal `DONE`">
|
|
276
|
-
Consume the head: set <getopt-option-next/> to the remaining
|
|
277
|
-
tokens (joined back with `,`, or `none` if empty). `DONE`
|
|
278
|
-
means the freshly composed plan is finalized as-is, so do
|
|
279
|
-
*not* hand off to `ase-task-edit`. Only output the following
|
|
280
|
-
<template/> and then *STOP*. Do *not* implement the plan.
|
|
281
|
-
|
|
282
|
-
<template>
|
|
283
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan finalized -- done**
|
|
284
|
-
</template>
|
|
285
|
-
</if>
|
|
286
|
-
|
|
287
|
-
2. <elseif condition="<head/> is equal `IMPLEMENT`">
|
|
288
|
-
Consume the head: set <getopt-option-next/> to the remaining
|
|
289
|
-
tokens (joined back with `,`, or `none` if empty).
|
|
290
|
-
<if condition="<getopt-option-next/> is not equal `none`">
|
|
291
|
-
Set <args><args/> --next <getopt-option-next/></args>
|
|
292
|
-
</if>
|
|
293
|
-
Call the tool `Skill(skill: "ase:ase-task-implement", args: "<args/>")`
|
|
294
|
-
to *implement* the freshly composed plan, bypassing `ase-task-edit`.
|
|
295
|
-
</elseif>
|
|
296
|
-
|
|
297
|
-
3. <elseif condition="<head/> is equal `PREFLIGHT`">
|
|
298
|
-
Consume the head: set <getopt-option-next/> to the remaining
|
|
299
|
-
tokens (joined back with `,`, or `none` if empty).
|
|
300
|
-
<if condition="<getopt-option-next/> is not equal `none`">
|
|
301
|
-
Set <args><args/> --next <getopt-option-next/></args>
|
|
302
|
-
</if>
|
|
303
|
-
Call the tool `Skill(skill: "ase:ase-task-preflight", args: "<args/>")`
|
|
304
|
-
to *preflight* the freshly composed plan, bypassing `ase-task-edit`.
|
|
305
|
-
</elseif>
|
|
306
|
-
|
|
307
|
-
4. <elseif condition="<head/> is equal `GRILL`">
|
|
308
|
-
Consume the head: set <getopt-option-next/> to the remaining
|
|
309
|
-
tokens (joined back with `,`, or `none` if empty). `GRILL`
|
|
310
|
-
is this skill's own dispatch token, *not* part of
|
|
311
|
-
`ase-task-grill`'s `--next` vocabulary, so it must be
|
|
312
|
-
stripped here rather than forwarded. All remaining tokens are
|
|
313
|
-
`ase-task-grill`'s own vocabulary and are forwarded verbatim.
|
|
314
|
-
<if condition="<getopt-option-next/> is not equal `none`">
|
|
315
|
-
Set <args><args/> --next <getopt-option-next/></args>
|
|
316
|
-
</if>
|
|
317
|
-
Call the tool `Skill(skill: "ase:ase-task-grill", args: "<args/>")`
|
|
318
|
-
to *grill* the freshly composed plan, bypassing `ase-task-edit`.
|
|
319
|
-
</elseif>
|
|
320
|
-
|
|
321
|
-
5. <else>
|
|
322
|
-
Hand off to `ase-task-edit`.
|
|
323
|
-
<if condition="<head/> is equal `EDIT`">
|
|
324
|
-
Consume the head: set <getopt-option-next/> to the remaining
|
|
325
|
-
tokens (joined back with `,`, or `none` if empty). `EDIT`
|
|
326
|
-
is this skill's own dispatch token, *not* part of
|
|
327
|
-
`ase-task-edit`'s `--next` vocabulary, so it must be
|
|
328
|
-
stripped here rather than forwarded.
|
|
329
|
-
</if>
|
|
330
|
-
All remaining tokens are `ase-task-edit`'s own vocabulary
|
|
331
|
-
and are forwarded verbatim, so `ase-task-edit` consumes its
|
|
332
|
-
own head itself.
|
|
333
|
-
<if condition="<getopt-option-next/> is not equal `none`">
|
|
334
|
-
Set <args><args/> --next <getopt-option-next/></args>
|
|
335
|
-
</if>
|
|
336
|
-
Then call the tool `Skill(skill: "ase:ase-task-edit", args: "<args/>")`.
|
|
337
|
-
</else>
|
|
186
|
+
<expand name="code-next-dispatch"></expand>
|
|
338
187
|
|
|
339
188
|
</step>
|
|
340
189
|
|
|
@@ -56,7 +56,7 @@ plan via `ase_task_save` and then hands off to `ase-task-edit`,
|
|
|
56
56
|
skill. For all other head tokens, the *entire* list is forwarded
|
|
57
57
|
to `ase-task-edit`, which consumes its head itself. This lets an
|
|
58
58
|
entire pipeline be pre-scripted in one shot. Recognized tokens at
|
|
59
|
-
this skill: `none` (default, hand
|
|
59
|
+
this skill: `none` (default, hand off to `ase-task-edit`
|
|
60
60
|
interactively), `DONE` (stop), `EDIT` (hand off to
|
|
61
61
|
`ase-task-edit`), `GRILL` (hand off to `ase-task-grill`),
|
|
62
62
|
`PREFLIGHT` (hand off to `ase-task-preflight`),
|
|
@@ -25,7 +25,7 @@ Explain Source Code
|
|
|
25
25
|
|
|
26
26
|
<objective>
|
|
27
27
|
*Analyze* the source code of <getopt-arguments/>, and its directly related source
|
|
28
|
-
code and *explain* it in a *brief*, *standardized*, and *concise* way.
|
|
28
|
+
code, and *explain* it in a *brief*, *standardized*, and *concise* way.
|
|
29
29
|
</objective>
|
|
30
30
|
|
|
31
31
|
<flow>
|
|
@@ -126,10 +126,10 @@ code and *explain* it in a *brief*, *standardized*, and *concise* way.
|
|
|
126
126
|
4. <step id="STEP 4: CRUXES and GOTCHAS">
|
|
127
127
|
**Highlight CRUXES and GOTCHAS**.
|
|
128
128
|
|
|
129
|
-
First, tell what
|
|
129
|
+
First, tell what the *cruxes* of the code are.
|
|
130
130
|
Is there something one should really *notice*?
|
|
131
131
|
|
|
132
|
-
Second, tell what
|
|
132
|
+
Second, tell what the gotchas of the code are.
|
|
133
133
|
Is there something one could really *stumble over*?
|
|
134
134
|
|
|
135
135
|
Keep your explanation *brief* and *concise*.
|
|
@@ -51,7 +51,8 @@ Give *insights* into the project through the source code of <getopt-arguments/>.
|
|
|
51
51
|
|
|
52
52
|
Determine an <abstract/> summary of this project.
|
|
53
53
|
For this, check a potentially existing `README.*` file
|
|
54
|
-
or scan the source files and figure it out
|
|
54
|
+
or scan the source files of <getopt-arguments/> and figure it out
|
|
55
|
+
indirectly.
|
|
55
56
|
|
|
56
57
|
Display the results with the following <template/>:
|
|
57
58
|
|
|
@@ -80,8 +81,8 @@ Give *insights* into the project through the source code of <getopt-arguments/>.
|
|
|
80
81
|
</step>
|
|
81
82
|
|
|
82
83
|
3. <step id="STEP 3: SOURCE CHURN">
|
|
83
|
-
Display the source files which caused the
|
|
84
|
-
figuring out which
|
|
84
|
+
Display the source files of <getopt-arguments/> which caused the
|
|
85
|
+
most churn by figuring out which of them have the most commits.
|
|
85
86
|
Display the following <template/>:
|
|
86
87
|
|
|
87
88
|
<template>
|
|
@@ -91,7 +92,7 @@ Give *insights* into the project through the source code of <getopt-arguments/>.
|
|
|
91
92
|
Then run the following command...
|
|
92
93
|
|
|
93
94
|
```
|
|
94
|
-
git log --format=format: --name-only --since="1 year ago" | grep -v '^$' | sort | uniq -c | sort -nr | head -10
|
|
95
|
+
git log --format=format: --name-only --since="1 year ago" -- <getopt-arguments/> | grep -v '^$' | sort | uniq -c | sort -nr | head -10
|
|
95
96
|
```
|
|
96
97
|
|
|
97
98
|
...and then display its result as a table with a table head and
|
|
@@ -106,9 +107,10 @@ Give *insights* into the project through the source code of <getopt-arguments/>.
|
|
|
106
107
|
<ase-tpl-bullet-normal/> **MODULE STRUCTURE**:
|
|
107
108
|
</template>
|
|
108
109
|
|
|
109
|
-
Find all modules (or OOP classes) and build a
|
|
110
|
-
<mermaid-spec/> for a `flowchart TB` diagram
|
|
111
|
-
boxes and the imports between modules as the
|
|
110
|
+
Find all modules (or OOP classes) of <getopt-arguments/> and build a
|
|
111
|
+
Mermaid specification <mermaid-spec/> for a `flowchart TB` diagram
|
|
112
|
+
with all modules as boxes and the imports between modules as the
|
|
113
|
+
directed edges. Then
|
|
112
114
|
dispatch the rendering to the `ase-meta-diagram` sub-agent by
|
|
113
115
|
calling the tool `Agent(description: "Diagram Rendering",
|
|
114
116
|
subagent_type: "ase:ase-meta-diagram", prompt: <mermaid-spec/>,
|
|
@@ -276,10 +276,12 @@ related to a set of code quality aspects.
|
|
|
276
276
|
|
|
277
277
|
Set <old-start/> to the 1-based line number of the
|
|
278
278
|
*first* old-side hunk line: if <context-before/> is
|
|
279
|
-
non-empty, that is
|
|
280
|
-
|
|
281
|
-
<
|
|
282
|
-
(
|
|
279
|
+
non-empty, that is the line of its *first* context
|
|
280
|
+
line, i.e. <line/> minus the number of lines in
|
|
281
|
+
<context-before/>; otherwise it is <line/> itself
|
|
282
|
+
(the first line of <old-text/>). For a hunk that
|
|
283
|
+
*only inserts* new lines (empty <old-text/> *and*
|
|
284
|
+
empty context), set it to the
|
|
283
285
|
line *before* which the insertion happens, clamped to a
|
|
284
286
|
minimum of `0`, so a top-of-file insertion yields
|
|
285
287
|
`@@ -0,0 ... @@`.
|
|
@@ -341,7 +343,7 @@ related to a set of code quality aspects.
|
|
|
341
343
|
|
|
342
344
|
</template>
|
|
343
345
|
|
|
344
|
-
5. <if condition="<getopt-option-auto/> is not equal `true`
|
|
346
|
+
5. <if condition="<getopt-option-auto/> is not equal `true`">
|
|
345
347
|
|
|
346
348
|
<if condition="<ase-project-boxing/> is equal `grey`">
|
|
347
349
|
|