@rse/ase 0.9.61 → 0.9.63
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 +19 -8
- package/dst/ase-config.js +12 -8
- package/dst/ase-hook.js +8 -0
- package/dst/ase-service.js +2 -0
- package/dst/ase-spec.js +241 -0
- package/dst/ase.js +2 -0
- package/package.json +10 -8
- 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-lint.md +47 -3
- package/plugin/etc/stx.conf +5 -3
- package/plugin/meta/ase-common-grill.md +89 -0
- package/plugin/meta/ase-dialog.md +6 -0
- package/plugin/meta/ase-format-meta.md +23 -105
- package/plugin/meta/ase-format-spec.md +22 -1326
- package/plugin/meta/ase-tenets.md +63 -4
- package/plugin/package.json +6 -2
- package/plugin/skills/ase-arch-analyze/SKILL.md +1 -1
- package/plugin/skills/ase-code-analyze/SKILL.md +1 -1
- package/plugin/skills/ase-code-analyze/help.md +2 -1
- package/plugin/skills/ase-code-edit/SKILL.md +142 -140
- package/plugin/skills/ase-code-lint/SKILL.md +5 -5
- package/plugin/skills/ase-code-lint/help.md +23 -8
- package/plugin/skills/ase-help-skill/catalog.md +3 -0
- package/plugin/skills/ase-meta-review/help.md +1 -1
- package/plugin/skills/ase-spec-edit/SKILL.md +520 -0
- package/plugin/skills/ase-spec-edit/help.md +130 -0
- package/plugin/skills/ase-sync-export/SKILL.md +57 -116
- package/plugin/skills/ase-sync-export/help.md +30 -42
- package/plugin/skills/ase-sync-import/SKILL.md +37 -15
- package/plugin/skills/ase-sync-import/help.md +14 -10
- package/plugin/skills/ase-sync-reconcile/SKILL.md +37 -16
- package/plugin/skills/ase-sync-reconcile/help.md +19 -16
- package/plugin/skills/ase-task-grill/SKILL.md +120 -59
- package/plugin/skills/ase-task-grill/help.md +42 -12
- package/plugin/meta/ase-format-arch.md +0 -1164
|
@@ -20,20 +20,23 @@ kinds (the *source*). It reads the source artifacts and then adjusts the
|
|
|
20
20
|
target artifacts *directly* and *surgically* to match the source state,
|
|
21
21
|
while optionally honoring a filtering *hint*.
|
|
22
22
|
|
|
23
|
-
Both *target* and *source* are comma-separated lists over the
|
|
24
|
-
recognized artifact kinds `SPEC` (Specification
|
|
25
|
-
|
|
26
|
-
(
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
its own source.
|
|
23
|
+
Both *target* and *source* are comma-separated lists over the six
|
|
24
|
+
recognized artifact kinds `SPEC` (Specification, covering both
|
|
25
|
+
requirements and architecture), `CODE` (Source Code), `DOCS`
|
|
26
|
+
(Documentation), `TASK` (Task Plans), `INFR` (Infrastructure), and
|
|
27
|
+
`OTHR` (catch-all). When *source* is `auto`, it resolves to all six
|
|
28
|
+
kinds *minus* the kinds listed in *target*. Unless `--bidirectional` is
|
|
29
|
+
given, a kind present in *target* is never used as its own source.
|
|
30
30
|
|
|
31
31
|
The file lists for all involved kinds are resolved via the
|
|
32
32
|
`ase_artifact_list` MCP tool of the `ase` MCP server. While reconciling,
|
|
33
33
|
the skill honors the artifact-format conventions of `ase-format-meta.md`,
|
|
34
|
-
`ase-format-spec.md
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
`ase-format-spec.md` (the *SpecBook* models and formats plus the
|
|
35
|
+
SpecBook schema configuration), and `ase-format-task.md`; the kinds
|
|
36
|
+
`CODE`, `DOCS`, `INFR`, and `OTHR` have no dedicated format contract and
|
|
37
|
+
are treated as free-form. Changed `SPEC` artifacts are validated via
|
|
38
|
+
the `ase_specbook_lint` MCP tool and the reported diagnostics are fixed
|
|
39
|
+
in at most three rounds; any remaining diagnostics are surfaced.
|
|
37
40
|
|
|
38
41
|
## OPTIONS
|
|
39
42
|
|
|
@@ -62,25 +65,25 @@ contract and are treated as free-form.
|
|
|
62
65
|
## EXAMPLES
|
|
63
66
|
|
|
64
67
|
Reconcile the code and documentation
|
|
65
|
-
to reflect the current specification
|
|
68
|
+
to reflect the current specification
|
|
66
69
|
in a "forward engineering" approach:
|
|
67
70
|
|
|
68
71
|
```text
|
|
69
|
-
❯ /ase-sync-reconcile -t CODE,DOCS -s SPEC
|
|
72
|
+
❯ /ase-sync-reconcile -t CODE,DOCS -s SPEC
|
|
70
73
|
```
|
|
71
74
|
|
|
72
|
-
Reconcile specification
|
|
75
|
+
Reconcile the specification from everything else
|
|
73
76
|
in a "reverse engineering" approach:
|
|
74
77
|
|
|
75
78
|
```text
|
|
76
|
-
❯ /ase-sync-reconcile -t SPEC
|
|
79
|
+
❯ /ase-sync-reconcile -t SPEC -s CODE,DOCS
|
|
77
80
|
```
|
|
78
81
|
|
|
79
|
-
Bidirectionally reconcile specification and
|
|
82
|
+
Bidirectionally reconcile specification and code against
|
|
80
83
|
each other, limited to the authentication aspect:
|
|
81
84
|
|
|
82
85
|
```text
|
|
83
|
-
❯ /ase-sync-reconcile -b -t SPEC -s
|
|
86
|
+
❯ /ase-sync-reconcile -b -t SPEC -s CODE authentication
|
|
84
87
|
```
|
|
85
88
|
|
|
86
89
|
## SEE ALSO
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-task-grill
|
|
3
|
-
argument-hint: "[--help|-h] [--next|-n <option>[,...]] [<id>]"
|
|
3
|
+
argument-hint: "[--help|-h] [--rounds|-r <n>] [--next|-n <option>[,...]] [<id>]"
|
|
4
4
|
description: >
|
|
5
5
|
Interview the user relentlessly about the task plan until reaching a
|
|
6
6
|
shared understanding, resolving each branch of the question decision
|
|
@@ -22,7 +22,7 @@ Iteratively Grill a Task Plan
|
|
|
22
22
|
|
|
23
23
|
<expand name="getopt"
|
|
24
24
|
arg1="ase-task-grill"
|
|
25
|
-
arg2="--next|-n=(none|DONE|EDIT|IMPLEMENT|PREFLIGHT)... --int-reuse-task">
|
|
25
|
+
arg2="--rounds|-r=1 --next|-n=(none|DONE|EDIT|IMPLEMENT|PREFLIGHT)... --int-reuse-task">
|
|
26
26
|
$ARGUMENTS
|
|
27
27
|
</expand>
|
|
28
28
|
|
|
@@ -33,6 +33,7 @@ task plan until reaching a shared understanding.
|
|
|
33
33
|
|
|
34
34
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-format-task.md
|
|
35
35
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-common-task.md
|
|
36
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-common-grill.md
|
|
36
37
|
|
|
37
38
|
Procedure
|
|
38
39
|
---------
|
|
@@ -52,7 +53,15 @@ Set <args>--int-reuse-task</args>.
|
|
|
52
53
|
Inherit the always existing <ase-session-id/> from the current context.
|
|
53
54
|
Do not output anything.
|
|
54
55
|
|
|
55
|
-
2.
|
|
56
|
+
2. If <getopt-option-rounds/> is not a positive integer,
|
|
57
|
+
only output the following <template/> and then immediately
|
|
58
|
+
*STOP* processing the entire current skill:
|
|
59
|
+
|
|
60
|
+
<template>
|
|
61
|
+
⧉ **ASE**: ☻ skill: **ase-task-grill**, ▶ ERROR: invalid `--rounds` value: **<getopt-option-rounds/>**
|
|
62
|
+
</template>
|
|
63
|
+
|
|
64
|
+
3. React on task id:
|
|
56
65
|
|
|
57
66
|
<expand name="task-react-id" arg1="ase-task-grill"></expand>
|
|
58
67
|
|
|
@@ -71,62 +80,98 @@ Set <args>--int-reuse-task</args>.
|
|
|
71
80
|
|
|
72
81
|
3. **Iterate Over Task Plan Aspects:**
|
|
73
82
|
|
|
74
|
-
|
|
75
|
-
*essential aspect* of the task plan in <task-content/> *until* reaching a
|
|
76
|
-
shared understanding and no decisions/questions are left open.
|
|
77
|
-
|
|
78
|
-
This especially means that you *MUST* clarify as many aspects as
|
|
79
|
-
necessary to ensure that for at least the most important decisions,
|
|
80
|
-
during a subsequent implementation, no essential freedom of choice
|
|
81
|
-
exists any longer.
|
|
82
|
-
|
|
83
|
-
For this process, determine the <n/> essential aspects <aspect-N/>
|
|
84
|
-
(a one- or two-word-long short identifier like `Foo` or `Bar-Baz`)
|
|
85
|
-
and the corresponding decision/question <question-N/> where a shared
|
|
86
|
-
understanding is required.
|
|
83
|
+
1. Understand what "grilling" is about:
|
|
87
84
|
|
|
88
|
-
|
|
89
|
-
aspects:
|
|
85
|
+
<expand name="grill-understanding" arg1="the task plan in <task-content/>"></expand>
|
|
90
86
|
|
|
91
|
-
-
|
|
92
|
-
|
|
93
|
-
|
|
87
|
+
2. Perform <getopt-option-rounds/> grilling *rounds*, numbered
|
|
88
|
+
<m/> (1-<getopt-option-rounds/>). Each round starts *from
|
|
89
|
+
scratch* from *only* the *current* <task-content/> -- as
|
|
90
|
+
updated by all previous rounds -- and *forgets* all questions
|
|
91
|
+
and answers gathered in previous rounds.
|
|
94
92
|
|
|
95
|
-
|
|
96
|
-
When the user uses a term that conflicts with the existing
|
|
97
|
-
terminology in the code base.
|
|
93
|
+
For each round:
|
|
98
94
|
|
|
99
|
-
|
|
100
|
-
When the user states how something works, check whether the
|
|
101
|
-
current code state really agrees.
|
|
95
|
+
1. INITIALIZE ROUND:
|
|
102
96
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
concepts.
|
|
97
|
+
Set <round-id/> to `GRILLING ROUND <m/>/<getopt-option-rounds/>`
|
|
98
|
+
if <getopt-option-rounds/> is greater than 1, or to
|
|
99
|
+
`GRILLING` otherwise (a single round needs no round
|
|
100
|
+
numbering). Then output only the following <template/>:
|
|
108
101
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
the corresponding answer <answer-N/>, one at a time.
|
|
102
|
+
<template>
|
|
103
|
+
⧉ **ASE**: <round-id/>: *Relentless Interviewing Until Clarity*
|
|
104
|
+
</template>
|
|
113
105
|
|
|
114
|
-
|
|
106
|
+
2. DETERMINE QUESTIONS:
|
|
107
|
+
|
|
108
|
+
Determine the essential aspects <aspect-N/> (a one- or
|
|
109
|
+
two-word-long short identifier like `Foo` or `Bar-Baz`, also
|
|
110
|
+
serving as the topic hint) and the corresponding, very brief
|
|
111
|
+
but precise decision/question <question-N/> where a shared
|
|
112
|
+
understanding is required. Each question is chosen to
|
|
113
|
+
resolve the open points related to the above understanding
|
|
114
|
+
of grilling, by focusing on the mentioned *Focus Areas* and
|
|
115
|
+
checking the mentioned *Indicators*.
|
|
116
|
+
|
|
117
|
+
For <question-N/> use the format `Shall...?` for
|
|
118
|
+
questions of focus area `DOMAIN` and `INTERFACE`, the format
|
|
119
|
+
`Should...?` for questions of focus area `ARCHITECTURE`,
|
|
120
|
+
and the format `May...?` for questions of focus area
|
|
121
|
+
`IMPLEMENTATION`.
|
|
122
|
+
|
|
123
|
+
In every <question-N/>, encode all *literal aspects*
|
|
124
|
+
-- file and directory paths, identifiers, symbols, types,
|
|
125
|
+
commands, options, configuration keys, and literal values --
|
|
126
|
+
with backticks. Do not output anything.
|
|
127
|
+
|
|
128
|
+
3. DETERMINE CONTEXT:
|
|
129
|
+
|
|
130
|
+
For each question, determine its focus area
|
|
131
|
+
<context-N-focus/> from the mentioned *Focus Areas*.
|
|
132
|
+
<context-N-severity/>, describing how important this
|
|
133
|
+
question is.
|
|
134
|
+
|
|
135
|
+
4. SORT QUESTIONS:
|
|
136
|
+
|
|
137
|
+
Create a decisions/questions tree for the questions,
|
|
138
|
+
capturing the dependencies between the decisions. Then
|
|
139
|
+
*sort* the questions *primarily* by descending focus area
|
|
140
|
+
order -- first all `DOMAIN`, then all `INTERFACE`, then all
|
|
141
|
+
`ARCHITECTURE`, and then all `IMPLEMENTATION` ones -- and
|
|
142
|
+
*secondarily*, within each focus area, by the decision tree
|
|
143
|
+
order, so that each decision is asked *after* the decisions
|
|
144
|
+
it depends on. Renumber <N/> according to this order,
|
|
145
|
+
starting at `1` in *every* round, independent of the
|
|
146
|
+
numbering of previous rounds. Truncate the list after a
|
|
147
|
+
maximum of 10 questions and set <n/> to the number of
|
|
148
|
+
remaining questions. Do not output anything.
|
|
149
|
+
|
|
150
|
+
5. For each question <question-N/> in the iteration cycle <N/>,
|
|
151
|
+
*one at a time*:
|
|
152
|
+
|
|
153
|
+
1. Output the following <template/>:
|
|
115
154
|
|
|
116
|
-
|
|
155
|
+
<template>
|
|
156
|
+
<ase-tpl-bullet-signal/> ASPECT <N/>/<n/> ▶ **<context-N-focus/>** (<context-N-severity/>) ▷ **<aspect-N/>**
|
|
157
|
+
</template>
|
|
117
158
|
|
|
118
|
-
|
|
119
|
-
<ase-tpl-bullet-signal/> ASPECT <N/>/<n/>: **<aspect-N/>**, QUESTION: **<question-N/>**
|
|
120
|
-
</template>
|
|
159
|
+
2. Determine the answer alternatives:
|
|
121
160
|
|
|
122
|
-
|
|
161
|
+
1. Check the <task-content/> for the answer <answer-N-1/>,
|
|
162
|
+
which reflects the current plan.
|
|
123
163
|
|
|
124
|
-
|
|
164
|
+
2. Check the code base and your world knowledge and
|
|
165
|
+
use this information to find *up to three* grounded
|
|
166
|
+
alternative answers <answer-N-K/> (K={2,3,4}), so there
|
|
167
|
+
are between two and four answer options in total.
|
|
125
168
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
169
|
+
3. For each <answer-N-K/> (K={1,2,3,4}) determine
|
|
170
|
+
a 1-3 word label <answer-N-K-label/>, and an
|
|
171
|
+
ultra brief description <answer-N-K-description/>
|
|
172
|
+
of at most *10 words*. Prepend `⚑ ` to the
|
|
173
|
+
<answer-N-K-description/> which reflects the current
|
|
174
|
+
plan. Do not output anything.
|
|
130
175
|
|
|
131
176
|
3. In the following, you *MUST* *NOT* use your built-in
|
|
132
177
|
<user-dialog-tool/> tool! Instead, you *MUST* just show a
|
|
@@ -135,30 +180,46 @@ Set <args>--int-reuse-task</args>.
|
|
|
135
180
|
|
|
136
181
|
Let the user select the <answer-N/> out of the answer
|
|
137
182
|
alternatives <answer-N-K/> by raising a question with the
|
|
138
|
-
following custom dialog
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
`⚝ **CURRENT PLAN** ⚝ `. Emit only the answer lines for the
|
|
143
|
-
alternatives <answer-N-K/> you actually determined in the
|
|
144
|
-
previous step (between two and four lines in total):
|
|
183
|
+
following custom dialog. Emit only the answer lines for
|
|
184
|
+
the alternatives <answer-N-K/> you actually determined in
|
|
185
|
+
the previous step (between two and four lines in total),
|
|
186
|
+
followed by the fixed `SKIP GRILLING` answer option:
|
|
145
187
|
|
|
146
188
|
<expand name="custom-dialog" arg1="--other">
|
|
147
189
|
<aspect-N/>: <question-N/>
|
|
148
|
-
<answer-N-1-label/>:
|
|
149
|
-
<answer-N-
|
|
190
|
+
<answer-N-1-label/>: <answer-N-1-description/>
|
|
191
|
+
<answer-N-2-label/>: <answer-N-2-description/>
|
|
150
192
|
[...]
|
|
193
|
+
SKIP GRILLING: skip all remaining grilling and continue with the plan update
|
|
151
194
|
</expand>
|
|
152
195
|
|
|
153
|
-
|
|
196
|
+
Check the <result/> and dispatch accordingly:
|
|
197
|
+
|
|
198
|
+
- If <result/> is `CANCEL`, only output the following
|
|
199
|
+
<template/> and then immediately *STOP* processing
|
|
200
|
+
the entire current skill, leaving the plan *untouched*:
|
|
201
|
+
|
|
202
|
+
<template>
|
|
203
|
+
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **grilling stopped**
|
|
204
|
+
</template>
|
|
205
|
+
|
|
206
|
+
- If <result/> is `SKIP GRILLING`, ask no further
|
|
207
|
+
questions, continue with item 6 below (updating the
|
|
208
|
+
plan with the answers gathered so far), and after
|
|
209
|
+
item 6 skip all remaining rounds and continue with
|
|
210
|
+
item 3.3 below.
|
|
211
|
+
|
|
212
|
+
- Otherwise, strip any leading `OTHER: ` prefix from
|
|
213
|
+
<result/> and set <answer-N/> to the remainder.
|
|
154
214
|
|
|
155
215
|
4. Output the following <template/>:
|
|
156
216
|
|
|
157
217
|
<template>
|
|
158
|
-
<ase-tpl-bullet-normal/> ASPECT <N/>/<n
|
|
218
|
+
<ase-tpl-bullet-normal/> ASPECT <N/>/<n/> ▶ **<context-N-focus/>** (<context-N-severity/>) ▷ **<aspect-N/>**, ANSWER: **<answer-N/>**
|
|
159
219
|
</template>
|
|
160
220
|
|
|
161
|
-
|
|
221
|
+
6. Update <task-content/> based on all answers <answer-N/>
|
|
222
|
+
gathered in this round. Do not output anything.
|
|
162
223
|
|
|
163
224
|
3. <if condition="the frontmatter of <task-content/> carries a `Created: <text/>` key">
|
|
164
225
|
Set <timestamp-created><text/></timestamp-created> (set
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
`ase-task-grill`
|
|
9
9
|
[`--help`|`-h`]
|
|
10
|
+
[`--rounds`|`-r` *n*]
|
|
10
11
|
[`--next`|`-n` *option*[,...]]
|
|
11
12
|
[*id*]
|
|
12
13
|
|
|
@@ -16,20 +17,43 @@ The `ase-task-grill` skill *relentlessly interviews* the user about
|
|
|
16
17
|
every *essential aspect* of an existing *task plan* until a *shared
|
|
17
18
|
understanding* is reached and no decisions or questions are left open.
|
|
18
19
|
|
|
19
|
-
The skill identifies the essential aspects of the plan
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
20
|
+
The skill identifies the essential aspects of the plan and raises up to
|
|
21
|
+
10 questions per round which resolve its open points. Each question
|
|
22
|
+
carries a `FOCUS-AREA` -- `DOMAIN` (domain-specifics, must be
|
|
23
|
+
clarified), `INTERFACE` (externally observable behavior or UI/API
|
|
24
|
+
interfaces, must be clarified), `ARCHITECTURE` (structure, wiring,
|
|
25
|
+
placement, or dependencies, should be clarified), or `IMPLEMENTATION`
|
|
26
|
+
(inner technical details, can be clarified) -- and a 1-2 word `ASPECT`
|
|
27
|
+
hint. The questions are sorted primarily by descending focus area
|
|
28
|
+
importance (`DOMAIN`, `INTERFACE`, `ARCHITECTURE`, `IMPLEMENTATION`)
|
|
29
|
+
and secondarily by the decision tree of their dependencies, so each
|
|
30
|
+
decision is asked after the decisions it depends on. It honors checks
|
|
31
|
+
for *fuzzy language*, *conflicting terminology*, *conflicting code*,
|
|
32
|
+
*non-concrete scenarios*, *unspecified architecture patterns*, and
|
|
33
|
+
*unspecified dependencies*.
|
|
34
|
+
|
|
35
|
+
In contrast to the batch grilling of `ase-code-edit --grill`, the
|
|
36
|
+
questions are asked *sequentially*, one at a time: each question is
|
|
37
|
+
announced as an `ASPECT n/N ▶ FOCUS ▷ ASPECT, QUESTION` line and then
|
|
38
|
+
raised via an interactive dialog presenting two to four *grounded*
|
|
39
|
+
answer alternatives labeled `A1`-`A4` (the current plan, marked with
|
|
40
|
+
`⚑`, plus alternatives derived from the code base and world knowledge),
|
|
41
|
+
the fixed `SKIP GRILLING` option (skip the remaining questions and
|
|
42
|
+
rounds, keeping the answers gathered so far), and free-text input.
|
|
43
|
+
Cancelling the dialog stops the skill and leaves the plan untouched.
|
|
44
|
+
Once all aspects are resolved, the plan is updated and persisted, its
|
|
45
|
+
`Properties:` frontmatter key gains the value `grilled`, and the user is
|
|
46
|
+
offered a hand-off to editing, implementation, or preflight.
|
|
30
47
|
|
|
31
48
|
## OPTIONS
|
|
32
49
|
|
|
50
|
+
`--rounds`|`-r` *n*:
|
|
51
|
+
The number of grill rounds to apply (default: `1`). Each round
|
|
52
|
+
starts from scratch from only the current plan, as updated by all
|
|
53
|
+
previous rounds, and re-derives its questions from it, forgetting
|
|
54
|
+
all questions and answers of previous rounds. With more than one
|
|
55
|
+
round, each round is announced as `GRILLING ROUND K/L`.
|
|
56
|
+
|
|
33
57
|
`--next`|`-n` *option*[,...]:
|
|
34
58
|
Automatically answer the user dialog for the next step (at the end
|
|
35
59
|
of this skill). *option* is a single token or a *comma-separated
|
|
@@ -63,6 +87,12 @@ Grill the task plan under id `hello`:
|
|
|
63
87
|
❯ /ase-task-grill hello
|
|
64
88
|
```
|
|
65
89
|
|
|
90
|
+
Grill the current task plan in two rounds:
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
❯ /ase-task-grill --rounds 2
|
|
94
|
+
```
|
|
95
|
+
|
|
66
96
|
Grill the current task plan and then hand off to editing:
|
|
67
97
|
|
|
68
98
|
```text
|
|
@@ -73,4 +103,4 @@ Grill the current task plan and then hand off to editing:
|
|
|
73
103
|
|
|
74
104
|
[`ase-task-edit`](../ase-task-edit/help.md), [`ase-task-reboot`](../ase-task-reboot/help.md), [`ase-task-preflight`](../ase-task-preflight/help.md),
|
|
75
105
|
[`ase-task-implement`](../ase-task-implement/help.md), [`ase-task-view`](../ase-task-view/help.md), [`ase-task-list`](../ase-task-list/help.md),
|
|
76
|
-
[`ase-task-rename`](../ase-task-rename/help.md), [`ase-task-delete`](../ase-task-delete/help.md).
|
|
106
|
+
[`ase-task-rename`](../ase-task-rename/help.md), [`ase-task-delete`](../ase-task-delete/help.md), [`ase-code-edit`](../ase-code-edit/help.md).
|