@rse/ase 0.9.43 → 0.9.44
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-artifact.js +28 -24
- package/dst/ase-config.js +27 -36
- package/dst/ase-diagram.js +15 -35
- package/dst/ase-getopt.js +10 -15
- package/dst/ase-hook.js +29 -27
- package/dst/ase-kv.js +24 -29
- package/dst/ase-log.js +10 -3
- package/dst/ase-markdown.js +135 -102
- package/dst/ase-mcp.js +3 -10
- package/dst/ase-meta.js +6 -4
- package/dst/ase-persona.js +7 -11
- package/dst/ase-service.js +28 -28
- package/dst/ase-setup.js +15 -28
- package/dst/ase-skills.js +2 -2
- package/dst/ase-statusline.js +26 -34
- package/dst/ase-task.js +60 -63
- package/dst/ase-version.js +2 -1
- package/dst/ase.js +7 -11
- package/package.json +12 -10
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/.github/plugin/plugin.json +2 -2
- package/plugin/agents/ase-code-lint.md +4 -4
- package/plugin/agents/ase-docs-proofread.md +1 -1
- package/plugin/agents/ase-meta-chat.md +6 -6
- package/plugin/agents/ase-meta-diagram.md +1 -1
- package/plugin/agents/ase-meta-search.md +1 -1
- package/plugin/etc/eslint.mjs +0 -2
- package/plugin/meta/ase-constitution.md +1 -1
- package/plugin/meta/ase-control.md +1 -1
- package/plugin/meta/ase-dialog.md +2 -2
- package/plugin/meta/ase-format-arch.md +8 -8
- package/plugin/meta/ase-format-task.md +8 -10
- package/plugin/meta/ase-getopt.md +1 -1
- package/plugin/meta/ase-skill.md +1 -1
- package/plugin/package.json +8 -8
- package/plugin/skills/ase-arch-analyze/help.md +2 -2
- package/plugin/skills/ase-arch-discover/SKILL.md +2 -2
- package/plugin/skills/ase-arch-discover/help.md +3 -2
- package/plugin/skills/ase-code-analyze/SKILL.md +0 -1
- package/plugin/skills/ase-code-craft/SKILL.md +4 -4
- package/plugin/skills/ase-code-lint/SKILL.md +12 -10
- package/plugin/skills/ase-code-refactor/SKILL.md +6 -6
- package/plugin/skills/ase-code-refactor/help.md +1 -1
- package/plugin/skills/ase-code-resolve/SKILL.md +4 -4
- package/plugin/skills/ase-code-resolve/help.md +1 -1
- package/plugin/skills/ase-docs-distill/help.md +6 -4
- package/plugin/skills/ase-docs-proofread/SKILL.md +5 -5
- package/plugin/skills/ase-meta-brainstorm/help.md +1 -1
- package/plugin/skills/ase-meta-changelog/SKILL.md +4 -3
- package/plugin/skills/ase-meta-commit/SKILL.md +3 -1
- package/plugin/skills/ase-meta-compat/SKILL.md +11 -2
- package/plugin/skills/ase-meta-diaboli/SKILL.md +4 -4
- package/plugin/skills/ase-meta-diff/SKILL.md +10 -10
- package/plugin/skills/ase-meta-persona/SKILL.md +1 -1
- package/plugin/skills/ase-meta-quorum/SKILL.md +10 -8
- package/plugin/skills/ase-meta-search/help.md +4 -2
- package/plugin/skills/ase-meta-steelman/SKILL.md +2 -2
- package/plugin/skills/ase-meta-steelman/help.md +5 -3
- package/plugin/skills/ase-meta-why/SKILL.md +1 -1
- package/plugin/skills/ase-meta-why/help.md +3 -1
- package/plugin/skills/ase-sync-export/SKILL.md +13 -10
- package/plugin/skills/ase-sync-import/help.md +2 -2
- package/plugin/skills/ase-sync-reconcile/SKILL.md +1 -1
- package/plugin/skills/ase-sync-reconcile/help.md +1 -1
- package/plugin/skills/ase-task-condense/SKILL.md +6 -7
- package/plugin/skills/ase-task-delete/SKILL.md +1 -1
- package/plugin/skills/ase-task-edit/SKILL.md +2 -2
- package/plugin/skills/ase-task-grill/SKILL.md +1 -1
- package/plugin/skills/ase-task-implement/help.md +2 -2
- package/plugin/skills/ase-task-preflight/SKILL.md +1 -1
- package/plugin/skills/ase-task-reboot/SKILL.md +13 -9
- package/plugin/skills/ase-task-reboot/help.md +2 -1
|
@@ -88,8 +88,8 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
88
88
|
`file` and then numerically by `line`, and set <problems/> to that
|
|
89
89
|
list.
|
|
90
90
|
|
|
91
|
-
You *MUST* *NOT* output anything at all in this
|
|
92
|
-
`Glob` and `Agent` tool invocations.
|
|
91
|
+
You *MUST* *NOT* output anything at all in this STEP 1 beyond the
|
|
92
|
+
above hint template and the `Glob` and `Agent` tool invocations.
|
|
93
93
|
</step>
|
|
94
94
|
|
|
95
95
|
2. <step id="STEP 2: Summary">
|
|
@@ -156,7 +156,7 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
156
156
|
<description/>
|
|
157
157
|
</template>
|
|
158
158
|
|
|
159
|
-
3. <if condition="<getopt-option-auto/> is not
|
|
159
|
+
3. <if condition="<getopt-option-auto/> is not equal `true` and <ase-project-boxing/> is equal `grey`">
|
|
160
160
|
|
|
161
161
|
The project source artifacts are classified as a *grey box*, so
|
|
162
162
|
the user does *not* want the full artifact internals surfaced:
|
|
@@ -175,7 +175,7 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
175
175
|
</template>
|
|
176
176
|
|
|
177
177
|
</if>
|
|
178
|
-
<elseif condition="<getopt-option-auto/> is not
|
|
178
|
+
<elseif condition="<getopt-option-auto/> is not equal `true`">
|
|
179
179
|
|
|
180
180
|
Determine the hunk *body* as an ordered list of lines, each
|
|
181
181
|
carrying a one-character prefix (` ` for context, `-` for
|
|
@@ -231,7 +231,7 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
231
231
|
|
|
232
232
|
</elseif>
|
|
233
233
|
|
|
234
|
-
4. <if condition="<getopt-option-auto/> is not
|
|
234
|
+
4. <if condition="<getopt-option-auto/> is not equal `true`">
|
|
235
235
|
|
|
236
236
|
In the following, you *MUST* *NOT* use your built-in
|
|
237
237
|
<user-dialog-tool/> tool! Instead, you *MUST* just show a
|
|
@@ -84,4 +84,4 @@ and a tighter shortlist:
|
|
|
84
84
|
|
|
85
85
|
## SEE ALSO
|
|
86
86
|
|
|
87
|
-
[`ase-meta-evaluate`](../ase-meta-evaluate/help.md), [`ase-meta-quorum`](../ase-meta-quorum/help.md), [`ase-meta-diaboli`](../ase-meta-diaboli/help.md)
|
|
87
|
+
[`ase-meta-evaluate`](../ase-meta-evaluate/help.md), [`ase-meta-quorum`](../ase-meta-quorum/help.md), [`ase-meta-diaboli`](../ase-meta-diaboli/help.md).
|
|
@@ -10,6 +10,7 @@ allowed-tools:
|
|
|
10
10
|
- "Bash(git log *)"
|
|
11
11
|
- "Bash(git diff *)"
|
|
12
12
|
- "Bash(git show *)"
|
|
13
|
+
- "Bash(git tag --list *)"
|
|
13
14
|
- "Write"
|
|
14
15
|
- "Edit"
|
|
15
16
|
---
|
|
@@ -97,7 +98,7 @@ Processing
|
|
|
97
98
|
<ase-tpl-bullet-normal/> **DETERMINE ARTIFACT CHANGES:**
|
|
98
99
|
</template>
|
|
99
100
|
|
|
100
|
-
To update
|
|
101
|
+
To update the entries of the most recent *ChangeLog* section, consult
|
|
101
102
|
the Git *commits* plus the currently already staged changes in the Git
|
|
102
103
|
*index*, but *ignore* the Git *stash* and still unstaged changes.
|
|
103
104
|
|
|
@@ -144,8 +145,8 @@ Processing
|
|
|
144
145
|
... ])` tool of the `ase` MCP server *once*, passing the `kind`
|
|
145
146
|
tokens (`spec`, `arch`, `code`, `docs`, `infr`, `othr`), and read
|
|
146
147
|
the returned `artifacts` array of `{ kind, files }` objects to match
|
|
147
|
-
each changed file to its kind.
|
|
148
|
-
|
|
148
|
+
each changed file to its kind. Use the matched lower-cased kind
|
|
149
|
+
directly as its <artifact-kind/> tag, and comma-separate multiple
|
|
149
150
|
tags when more than one artifact class applies.
|
|
150
151
|
|
|
151
152
|
If a <summary/> is too short or especially is not comprehensible
|
|
@@ -44,7 +44,9 @@ currently staged Git changes.
|
|
|
44
44
|
|
|
45
45
|
`<type/>: <summary/>`
|
|
46
46
|
|
|
47
|
-
The known <type/>s
|
|
47
|
+
The known <type/>s (kept deliberately in sync with the intent groups
|
|
48
|
+
of the `ase-meta-diff` and `ase-meta-changelog` skills) and their
|
|
49
|
+
usual corresponding kind of change are:
|
|
48
50
|
|
|
49
51
|
- `FEATURE`: new functionality or configuration
|
|
50
52
|
- `IMPROVEMENT`: improved functionality or configuration
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-meta-compat
|
|
3
|
+
argument-hint: "[--help|-h]"
|
|
3
4
|
description: >
|
|
4
5
|
Self-test the LLM's ability to execute ASE's core interpreter
|
|
5
6
|
machinery (control flow, XML placeholders, regex matching,
|
|
@@ -13,6 +14,14 @@ disable-model-invocation: true
|
|
|
13
14
|
|
|
14
15
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
15
16
|
|
|
17
|
+
If `$1` (the first token of the skill arguments) is equal to `-h` or
|
|
18
|
+
`--help`, you *MUST* once output the following output <template/> and
|
|
19
|
+
then *IMMEDIATELY* *STOP* the further skill processing:
|
|
20
|
+
|
|
21
|
+
<template>
|
|
22
|
+
@${CLAUDE_SKILL_DIR}/help.md
|
|
23
|
+
</template>
|
|
24
|
+
|
|
16
25
|
Self-Test ASE Compatibility
|
|
17
26
|
===========================
|
|
18
27
|
|
|
@@ -110,7 +119,7 @@ Procedure
|
|
|
110
119
|
|
|
111
120
|
5. *step-skip*: A `<step condition="[...]">[...]</step>` either expands
|
|
112
121
|
to its body (if condition evaluates to true) or to the empty string,
|
|
113
|
-
so what does `<step condition="42 is greater than 7">X</step>`
|
|
122
|
+
so what does `<step condition="42 is greater than 7">X</step>` expand into?
|
|
114
123
|
Record the result of this construct for `control-flow/step-skip`.
|
|
115
124
|
|
|
116
125
|
6. *expand-subst*: With `<define name="foo">[<arg1/>:<content/>]</define>`,
|
|
@@ -146,7 +155,7 @@ Procedure
|
|
|
146
155
|
(the `\s` alternative)?
|
|
147
156
|
Record `yes` or `no` as actual result for `regex/whitespace`.
|
|
148
157
|
|
|
149
|
-
7. *complex*: Does
|
|
158
|
+
7. *complex*: Does `--level=(low|high)...` match
|
|
150
159
|
`^--([A-Za-z][A-Za-z0-9-]*)(?:\|-([A-Za-z]))?(?:=(\((.*)\)(\.\.\.)?|.*))?$`?
|
|
151
160
|
Record `yes` or `no` as actual result for `regex/complex`.
|
|
152
161
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: ase-meta-diaboli
|
|
3
3
|
argument-hint: "[--help|-h] [--count|-c <count>] <thesis>"
|
|
4
4
|
description: >
|
|
5
|
-
Challenge a thesis by playing "Devil
|
|
5
|
+
Challenge a thesis by playing "Devil's Advocate" (Latin: "Advocatus
|
|
6
6
|
Diaboli"). Use when the user wants a thesis or statement
|
|
7
7
|
relentlessly challenged or criticised.
|
|
8
8
|
user-invocable: true
|
|
@@ -15,7 +15,7 @@ effort: xhigh
|
|
|
15
15
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
16
16
|
|
|
17
17
|
<skill name="ase-meta-diaboli">
|
|
18
|
-
|
|
18
|
+
Play "Devil's Advocate"
|
|
19
19
|
</skill>
|
|
20
20
|
|
|
21
21
|
<expand name="getopt"
|
|
@@ -25,8 +25,8 @@ effort: xhigh
|
|
|
25
25
|
</expand>
|
|
26
26
|
|
|
27
27
|
<objective>
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
Play "Devil's Advocate" (Latin: "Advocatus Diaboli") by relentlessly
|
|
29
|
+
challenging or criticising the thesis: <thesis><getopt-arguments/></thesis>
|
|
30
30
|
</objective>
|
|
31
31
|
|
|
32
32
|
Determine the minimum number of *anti-theses* to surface: set <count/>
|
|
@@ -72,16 +72,16 @@ Procedure
|
|
|
72
72
|
</template>
|
|
73
73
|
</if>
|
|
74
74
|
|
|
75
|
-
2.
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
75
|
+
2. Analyze the <diff/> and <stat/> and synthesize a *concise* narrative of
|
|
76
|
+
WHAT changed and WHY, *grouped by intent* rather than by file.
|
|
77
|
+
Honor the following intents:
|
|
78
|
+
|
|
79
|
+
- `FEATURE`: new functionality or configuration
|
|
80
|
+
- `IMPROVEMENT`: improved functionality or configuration
|
|
81
|
+
- `BUGFIX`: corrected functionality or configuration
|
|
82
|
+
- `UPDATE`: updated functionality or configuration
|
|
83
|
+
- `CLEANUP`: cleaned up functionality or configuration
|
|
84
|
+
- `REFACTOR`: refactored functionality or configuration
|
|
85
85
|
|
|
86
86
|
3. <if condition="<diff/> is NOT empty">
|
|
87
87
|
1. First, output the following header <template/>:
|
|
@@ -7,7 +7,7 @@ description: >
|
|
|
7
7
|
the concise, factual, and accurate "engineer" (default),
|
|
8
8
|
the layered, pyramid-structured "journalist",
|
|
9
9
|
the brief, factual, and abbreviating "telegrapher",
|
|
10
|
-
the terse, rough, and stuttering "caveman".
|
|
10
|
+
or the terse, rough, and stuttering "caveman".
|
|
11
11
|
Use when user says "persona <persona>" or "be <persona>".
|
|
12
12
|
user-invocable: true
|
|
13
13
|
disable-model-invocation: false
|
|
@@ -38,10 +38,10 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
38
38
|
|
|
39
39
|
<template>
|
|
40
40
|
<getopt-arguments/>.
|
|
41
|
-
Please respond
|
|
41
|
+
Please respond very concisely and briefly, with facts only,
|
|
42
42
|
usually with just 1 to 7 corresponding bullet points and with short sentences.
|
|
43
43
|
Optionally, mention potential cruxes which should be noticed.
|
|
44
|
-
|
|
44
|
+
Besides bullet points, do not provide any additional explanations.
|
|
45
45
|
Emphasize keywords or cruxes in your response with Markdown formatting.
|
|
46
46
|
Format code parts with Markdown formatting.
|
|
47
47
|
</template>
|
|
@@ -66,8 +66,9 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
66
66
|
validates only the *first* token, so you *MUST* validate each
|
|
67
67
|
remaining token yourself against the allowed set `all`, `chatgpt`,
|
|
68
68
|
`gemini`, `deepseek`, `grok`, `glm`, `qwen`. If any token is *not*
|
|
69
|
-
in this set,
|
|
70
|
-
immediately *STOP* processing the
|
|
69
|
+
in this set, bind <token/> to that offending token, then only output
|
|
70
|
+
the following <template/> and then immediately *STOP* processing the
|
|
71
|
+
entire current skill:
|
|
71
72
|
|
|
72
73
|
<template>
|
|
73
74
|
⧉ **ASE**: ✪ skill: **ase-meta-quorum**, ▶ ERROR: invalid `--models` token: **<token/>**
|
|
@@ -174,10 +175,6 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
174
175
|
|
|
175
176
|
**CONSENSUS RATE**: **<c/>/<n/>** <disagreement/>
|
|
176
177
|
|
|
177
|
-
When a quorum was *not* possible (see STEP 4), render this line
|
|
178
|
-
instead as just `**CONSENSUS RATE**: *n/a* <disagreement/>` (omitting
|
|
179
|
-
the `<c/>/<n/>` fraction), as a single AI cannot form a consensus.
|
|
180
|
-
|
|
181
178
|
○ **Anthropic Claude**:
|
|
182
179
|
- [...]
|
|
183
180
|
- [...]
|
|
@@ -207,6 +204,11 @@ by querying *multiple* AIs for an *optimal consensus*.
|
|
|
207
204
|
- [...]
|
|
208
205
|
</template>
|
|
209
206
|
|
|
207
|
+
In this output, when a quorum was *not* possible (see STEP 4),
|
|
208
|
+
render the consensus rate line instead as just `**CONSENSUS RATE**:
|
|
209
|
+
*n/a* <disagreement/>` (omitting the `<c/>/<n/>` fraction), as a
|
|
210
|
+
single AI cannot form a consensus.
|
|
211
|
+
|
|
210
212
|
In this output, remove the sections of those AIs which were not
|
|
211
213
|
queried (excluded via `--models`/`-m`) or were not available.
|
|
212
214
|
You *MUST* *NOT* output any further explanations yourself.
|
|
@@ -22,13 +22,15 @@ information.
|
|
|
22
22
|
This skill should be preferred over directly invoking Perplexity,
|
|
23
23
|
Brave, or `WebSearch` individually.
|
|
24
24
|
|
|
25
|
-
##
|
|
25
|
+
## OPTIONS
|
|
26
26
|
|
|
27
27
|
`--services`|`-s`=(`all`|`perplexity`|`brave`|`exa`|`websearch`)...:
|
|
28
28
|
The comma-separated list of search backends to query. The default
|
|
29
|
-
`all` queries every available backend
|
|
29
|
+
`all` queries every available backend;
|
|
30
30
|
otherwise only the listed backends are queried.
|
|
31
31
|
|
|
32
|
+
## ARGUMENTS
|
|
33
|
+
|
|
32
34
|
*query*:
|
|
33
35
|
The search query to dispatch to the search services.
|
|
34
36
|
|
|
@@ -98,7 +98,7 @@ to <getopt-option-count/>; if <getopt-option-count/> is *non-numeric* or
|
|
|
98
98
|
strongest available evidence is the one hardest to dismiss.
|
|
99
99
|
|
|
100
100
|
- **Seek the Confirming Case**:
|
|
101
|
-
Actively hunt for the supporting example, the
|
|
101
|
+
Actively hunt for the supporting example, the favorable
|
|
102
102
|
scenario, the precedent where the position succeeds, because
|
|
103
103
|
one solid confirming case anchors the argument in reality.
|
|
104
104
|
|
|
@@ -130,7 +130,7 @@ to <getopt-option-count/>; if <getopt-option-count/> is *non-numeric* or
|
|
|
130
130
|
|
|
131
131
|
- **Concede the Real Weaknesses**:
|
|
132
132
|
Acknowledging where the thesis genuinely falls short is what
|
|
133
|
-
makes the
|
|
133
|
+
makes the defense credible, because a Steelman who can never
|
|
134
134
|
admit a flaw is just an apologist.
|
|
135
135
|
|
|
136
136
|
- **Pre-Parade Thinking**:
|
|
@@ -48,19 +48,21 @@ The intent is constructive: building the best honest case for the
|
|
|
48
48
|
thesis to arrive at a better final decision, not overselling or merely
|
|
49
49
|
cheerleading.
|
|
50
50
|
|
|
51
|
-
##
|
|
51
|
+
## OPTIONS
|
|
52
52
|
|
|
53
|
-
`--count
|
|
53
|
+
`--count`|`-c` *count*:
|
|
54
54
|
Surface at least *count* strong pro-theses (default *10*) per defense
|
|
55
55
|
pass before sorting and reporting the top *count* and deriving the
|
|
56
56
|
*FORTIFICATION*. An invalid or non-positive *count* reverts to the
|
|
57
57
|
default *10*.
|
|
58
58
|
|
|
59
|
-
`--rounds
|
|
59
|
+
`--rounds`|`-r` *rounds*:
|
|
60
60
|
Run *rounds* iterative defense rounds (default *1*), feeding each
|
|
61
61
|
round's *FORTIFICATION* in as the next round's *thesis*. An invalid
|
|
62
62
|
or non-positive *rounds* reverts to the default *1*.
|
|
63
63
|
|
|
64
|
+
## ARGUMENTS
|
|
65
|
+
|
|
64
66
|
*thesis*:
|
|
65
67
|
The statement, claim, or position to be charitably strengthened.
|
|
66
68
|
It may be technical, factual, or opinion-based; the skill defends
|
|
@@ -66,7 +66,7 @@ addressing surface-level symptoms.
|
|
|
66
66
|
|
|
67
67
|
<while condition="<n/> is less than or equal to <depth/>">
|
|
68
68
|
|
|
69
|
-
Ask <question/> and document the answer in <answer/> with the following template
|
|
69
|
+
Ask <question/> and document the answer in <answer/> with the following template.
|
|
70
70
|
Don't stop at symptoms, keep digging for systemic issues.
|
|
71
71
|
Consider technical, domain-specific, process-related, or organizational causes.
|
|
72
72
|
|
|
@@ -29,7 +29,7 @@ wrong sub-cause. After identifying (and validating) the root cause it
|
|
|
29
29
|
proposes a *SOLUTION* that addresses it, optionally including concrete
|
|
30
30
|
source code changes.
|
|
31
31
|
|
|
32
|
-
##
|
|
32
|
+
## OPTIONS
|
|
33
33
|
|
|
34
34
|
`--depth`|`-d` *N*:
|
|
35
35
|
The *maximum* number of "why" iterations (the Five-Whys chain
|
|
@@ -49,6 +49,8 @@ source code changes.
|
|
|
49
49
|
single, but better-justified, root-cause. A non-numeric or non-positive
|
|
50
50
|
value falls back to the default.
|
|
51
51
|
|
|
52
|
+
## ARGUMENTS
|
|
53
|
+
|
|
52
54
|
*fact*:
|
|
53
55
|
The observed *fact* (symptom, problem, or surprising outcome)
|
|
54
56
|
whose root cause should be investigated. The skill implicitly
|
|
@@ -48,7 +48,7 @@ Procedure
|
|
|
48
48
|
|
|
49
49
|
1. The recognized artifact kinds are the seven tokens `TASK`,
|
|
50
50
|
`SPEC`, `ARCH`, `CODE`, `DOCS`, `INFR`, and `OTHR`. Parse
|
|
51
|
-
<getopt-source/> as the comma-separated <source/> kind list.
|
|
51
|
+
<getopt-option-source/> as the comma-separated <source/> kind list.
|
|
52
52
|
Upper-case and trim every parsed kind token. Do not output
|
|
53
53
|
anything.
|
|
54
54
|
|
|
@@ -84,11 +84,13 @@ Procedure
|
|
|
84
84
|
|
|
85
85
|
1. Do not output anything in this STEP 2.
|
|
86
86
|
|
|
87
|
-
2. For all kinds in <source
|
|
88
|
-
... ])` tool of the `ase` MCP server
|
|
89
|
-
lower-cased `kind` tokens, and read the
|
|
90
|
-
array of `{ kind, files }` objects to obtain
|
|
91
|
-
file list per kind.
|
|
87
|
+
2. For all kinds in <source/> except `TASK`, call the
|
|
88
|
+
`ase_artifact_list(kind: [ ... ])` tool of the `ase` MCP server
|
|
89
|
+
*once*, passing the lower-cased `kind` tokens, and read the
|
|
90
|
+
returned `artifacts` array of `{ kind, files }` objects to obtain
|
|
91
|
+
the project-relative file list per kind. The `TASK` kind is *not*
|
|
92
|
+
resolvable via `ase_artifact_list` (task plans are managed by the
|
|
93
|
+
`ase_task_*` tools) and declares no export, so *silently skip* it.
|
|
92
94
|
|
|
93
95
|
3. <if condition="<hint/> is not empty">
|
|
94
96
|
|
|
@@ -139,11 +141,12 @@ Procedure
|
|
|
139
141
|
|
|
140
142
|
- *Determine* the side-by-side target file name
|
|
141
143
|
<export-filename/>
|
|
142
|
-
as `<
|
|
144
|
+
as `<artifact-set-id/>-<artifact-no/>-<artifact-id/>-<artifact-slug/>-<export-name/>.<export-ext/>`
|
|
143
145
|
and resolve it to a project-relative path inside the
|
|
144
|
-
artifact's own base directory by calling the
|
|
145
|
-
`ase_artifact_name(filename: "<
|
|
146
|
-
"<
|
|
146
|
+
artifact's own base directory (`<basedir/>`) by calling the
|
|
147
|
+
`ase_artifact_name(filename: "<export-filename/>", kind:
|
|
148
|
+
"<artifact-kind/>")` tool of the `ase` MCP server, with
|
|
149
|
+
<artifact-kind/> the artifact's own lower-cased kind.
|
|
147
150
|
|
|
148
151
|
- *Write* the derived rendering to that resolved path via the
|
|
149
152
|
`Write` tool, overwriting any pre-existing export file of the
|
|
@@ -61,7 +61,7 @@ Import a foreign requirements document into the specification:
|
|
|
61
61
|
❯ /ase-sync-import -t SPEC docs/legacy/requirements.txt
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
Import an external design write-up into the architecture, defaulting
|
|
64
|
+
Import an external design write-up into the architecture, defaulting to
|
|
65
65
|
both specification and architecture as targets:
|
|
66
66
|
|
|
67
67
|
```text
|
|
@@ -78,4 +78,4 @@ Import a pasted feature description into a task plan:
|
|
|
78
78
|
|
|
79
79
|
[`ase-sync-reconcile`](../ase-sync-reconcile/help.md),
|
|
80
80
|
[`ase-sync-export`](../ase-sync-export/help.md),
|
|
81
|
-
[`ase-task-implement`](../ase-task-implement/help.md)
|
|
81
|
+
[`ase-task-implement`](../ase-task-implement/help.md).
|
|
@@ -78,7 +78,7 @@ Procedure
|
|
|
78
78
|
*STOP* processing the entire current skill:
|
|
79
79
|
|
|
80
80
|
<template>
|
|
81
|
-
⧉ **ASE**: ☻ skill: **ase-sync-reconcile**, ▶ ERROR: unknown artifact kind: **<kind/>**
|
|
81
|
+
⧉ **ASE**: ☻ skill: **ase-sync-reconcile**, ▶ ERROR: unknown or unsupported artifact kind: **<kind/>**
|
|
82
82
|
</template>
|
|
83
83
|
|
|
84
84
|
5. <if condition="<getopt-bidirectional/> is not 'true'">
|
|
@@ -37,7 +37,7 @@ Procedure
|
|
|
37
37
|
|
|
38
38
|
1. **Determine Task:**
|
|
39
39
|
|
|
40
|
-
1. Set <
|
|
40
|
+
1. Set <id><getopt-arguments/></id> initially.
|
|
41
41
|
Inherit the always existing <ase-task-id/> from the current context.
|
|
42
42
|
Inherit the always existing <ase-session-id/> from the current context.
|
|
43
43
|
Do not output anything.
|
|
@@ -45,11 +45,10 @@ Procedure
|
|
|
45
45
|
2. React on task id:
|
|
46
46
|
|
|
47
47
|
1. <if condition="
|
|
48
|
-
<
|
|
48
|
+
<id/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$`
|
|
49
49
|
">
|
|
50
|
-
Set <ase-task-id><
|
|
51
|
-
|
|
52
|
-
instruction empty), call the `ase_task_id(id: "<ase-task-id/>",
|
|
50
|
+
Set <ase-task-id><id/></ase-task-id> (set task id) and
|
|
51
|
+
call the `ase_task_id(id: "<ase-task-id/>",
|
|
53
52
|
session: "<ase-session-id/>")` tool from the `ase` MCP
|
|
54
53
|
server to switch the task, and then only output the
|
|
55
54
|
following <template/>:
|
|
@@ -59,7 +58,7 @@ Procedure
|
|
|
59
58
|
</template>
|
|
60
59
|
</if>
|
|
61
60
|
|
|
62
|
-
2. <elseif condition="<
|
|
61
|
+
2. <elseif condition="<id/> is NOT empty">
|
|
63
62
|
The argument is neither empty nor a valid task id. As this
|
|
64
63
|
skill only accepts an optional `[<id>]` argument and *never*
|
|
65
64
|
a free-text instruction, only output the following <template/>
|
|
@@ -213,8 +212,8 @@ Procedure
|
|
|
213
212
|
Next Step: How would you like to proceed with the plan?
|
|
214
213
|
DONE: Stop processing.
|
|
215
214
|
EDIT: Hand off plan to editing.
|
|
216
|
-
IMPLEMENT: Hand off plan to implementation.
|
|
217
215
|
PREFLIGHT: Hand off plan to pre-flighting.
|
|
216
|
+
IMPLEMENT: Hand off plan to implementation.
|
|
218
217
|
</expand>
|
|
219
218
|
|
|
220
219
|
2. Check the tool <result/> and dispatch accordingly:
|
|
@@ -185,13 +185,13 @@ Set <content-dirty>true</content-dirty>.
|
|
|
185
185
|
|
|
186
186
|
Set <content-dirty>false</content-dirty>.
|
|
187
187
|
|
|
188
|
-
- If <text/> starts with `ERROR:`:
|
|
188
|
+
- If <text/> starts with `ERROR:` or `WARNING:`:
|
|
189
189
|
Silently ignore the MCP error.
|
|
190
190
|
Set <content/> to empty.
|
|
191
191
|
Set <words/> to "0".
|
|
192
192
|
Do not output anything.
|
|
193
193
|
|
|
194
|
-
- If <text/> starts NOT with `ERROR:`:
|
|
194
|
+
- If <text/> starts NOT with `ERROR:` and NOT with `WARNING:`:
|
|
195
195
|
Set <content><text/></content> (set content to text).
|
|
196
196
|
Calculate the number of words <words/> of <content/>.
|
|
197
197
|
Only output the following <template/>:
|
|
@@ -223,7 +223,7 @@ Procedure
|
|
|
223
223
|
words <words/> of <plan/>.
|
|
224
224
|
|
|
225
225
|
5. Call the `ase_task_save(id: "<ase-task-id/>",
|
|
226
|
-
text: "<plan/>")` of the `ase` MCP server to save the updated
|
|
226
|
+
text: "<plan/>")` tool of the `ase` MCP server to save the updated
|
|
227
227
|
task plan content. Do not output anything related to this MCP
|
|
228
228
|
call.
|
|
229
229
|
|
|
@@ -34,8 +34,8 @@ delete the task plan, unless `--next` pre-selects this choice.
|
|
|
34
34
|
Automatically answer the user dialog for the next step. *option*
|
|
35
35
|
is a single token or a *comma-separated chronological list* of
|
|
36
36
|
tokens; the *first* token is consumed by this skill, and any
|
|
37
|
-
remaining tokens are *
|
|
38
|
-
|
|
37
|
+
remaining tokens are intentionally *discarded*, because the
|
|
38
|
+
downstream `ase-task-delete` skill accepts no `--next` option.
|
|
39
39
|
Recognized tokens at this skill: `none` (default, interactive
|
|
40
40
|
answer required), `DONE` (preserve task plan and stop), or
|
|
41
41
|
`DELETE` (hand off to `ase-task-delete`).
|
|
@@ -162,7 +162,7 @@ Procedure
|
|
|
162
162
|
</if>
|
|
163
163
|
|
|
164
164
|
4. Finally, call the `ase_task_save(id: "<ase-task-id/>",
|
|
165
|
-
text: "<content/>")` of the `ase` MCP server to save the updated
|
|
165
|
+
text: "<content/>")` tool of the `ase` MCP server to save the updated
|
|
166
166
|
task plan content. Calculate the number of words <words/> of
|
|
167
167
|
<content/>. Do not output anything related to this MCP tool call
|
|
168
168
|
except the following <template/>:
|
|
@@ -157,7 +157,7 @@ Procedure
|
|
|
157
157
|
words <words/> of <content/>.
|
|
158
158
|
|
|
159
159
|
10. Call the `ase_task_save(id: "<ase-task-id/>",
|
|
160
|
-
text: "<content/>")` of the `ase` MCP server to save the updated
|
|
160
|
+
text: "<content/>")` tool of the `ase` MCP server to save the updated
|
|
161
161
|
task plan content. Do not output anything related to this MCP
|
|
162
162
|
call.
|
|
163
163
|
|
|
@@ -212,7 +212,7 @@ Procedure
|
|
|
212
212
|
Only output the following <template/> and then *STOP*.
|
|
213
213
|
|
|
214
214
|
<template>
|
|
215
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan
|
|
215
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan rebooted -- done**
|
|
216
216
|
</template>
|
|
217
217
|
|
|
218
218
|
- If <result/> is `EDIT`:
|
|
@@ -227,7 +227,7 @@ Procedure
|
|
|
227
227
|
skill once the `Skill` tool was used.
|
|
228
228
|
|
|
229
229
|
<template>
|
|
230
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan
|
|
230
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan rebooted -- hand-off to edit**
|
|
231
231
|
</template>
|
|
232
232
|
|
|
233
233
|
- If <result/> is `IMPLEMENT`:
|
|
@@ -236,11 +236,13 @@ Procedure
|
|
|
236
236
|
Set <args><args/> --next <getopt-option-next/></args>
|
|
237
237
|
</if>
|
|
238
238
|
Only output the following <template/> and then call the
|
|
239
|
-
`Skill(skill: "ase:ase-task-implement", args: "<args/>")`
|
|
240
|
-
to
|
|
239
|
+
tool `Skill(skill: "ase:ase-task-implement", args: "<args/>")`
|
|
240
|
+
to invoke the `ase:ase-task-implement` skill in order to
|
|
241
|
+
*implement* the updated plan. Immediately stop processing
|
|
242
|
+
the current skill once the `Skill` tool was used.
|
|
241
243
|
|
|
242
244
|
<template>
|
|
243
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan
|
|
245
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan rebooted -- hand-off to implementation**
|
|
244
246
|
</template>
|
|
245
247
|
|
|
246
248
|
- If <result/> is `PREFLIGHT`:
|
|
@@ -249,10 +251,12 @@ Procedure
|
|
|
249
251
|
Set <args><args/> --next <getopt-option-next/></args>
|
|
250
252
|
</if>
|
|
251
253
|
Only output the following <template/> and then call the
|
|
252
|
-
`Skill(skill: "ase:ase-task-preflight", args: "<args/>")`
|
|
253
|
-
to
|
|
254
|
+
tool `Skill(skill: "ase:ase-task-preflight", args: "<args/>")`
|
|
255
|
+
to invoke the `ase:ase-task-preflight` skill in order to
|
|
256
|
+
*preflight* the updated plan. Immediately stop processing
|
|
257
|
+
the current skill once the `Skill` tool was used.
|
|
254
258
|
|
|
255
259
|
<template>
|
|
256
|
-
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan
|
|
260
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan rebooted -- hand-off to pre-flight**
|
|
257
261
|
</template>
|
|
258
262
|
|
|
@@ -19,7 +19,8 @@ preserving the original creation timestamp, and writing a fresh plan
|
|
|
19
19
|
content via `ase_task_save`.
|
|
20
20
|
|
|
21
21
|
After the reboot, the user is asked whether to stop or hand off to
|
|
22
|
-
`ase-task-edit`,
|
|
22
|
+
`ase-task-edit`, `ase-task-implement`, or `ase-task-preflight`,
|
|
23
|
+
unless `--next` pre-selects this choice.
|
|
23
24
|
|
|
24
25
|
## OPTIONS
|
|
25
26
|
|