@rse/ase 0.9.46 → 0.9.48
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 +3 -1
- package/dst/ase-compat.js +3 -2
- package/dst/ase-config.js +36 -16
- package/dst/ase-diagram.js +10 -15
- package/dst/ase-getopt.js +66 -60
- package/dst/ase-hook.js +51 -77
- package/dst/ase-kv.js +49 -79
- package/dst/ase-log.js +13 -5
- package/dst/ase-markdown.js +12 -2
- package/dst/ase-mcp.js +21 -4
- package/dst/ase-meta.js +1 -1
- package/dst/ase-persona.js +1 -3
- package/dst/ase-service.js +17 -27
- package/dst/ase-setup.js +29 -73
- package/dst/ase-skills.js +1 -1
- package/dst/ase-statusline.js +28 -42
- package/dst/ase-stdio.js +25 -0
- package/dst/ase-task.js +25 -34
- package/dst/ase.js +7 -3
- package/package.json +1 -1
- 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/etc/stx.conf +2 -2
- package/plugin/meta/ase-skill.md +9 -0
- package/plugin/package.json +1 -1
- package/plugin/skills/{ase-meta-intent → ase-help-intent}/SKILL.md +7 -12
- package/plugin/skills/{ase-meta-intent → ase-help-intent}/help.md +8 -7
- package/plugin/skills/ase-help-skill/SKILL.md +203 -0
- package/plugin/skills/ase-help-skill/catalog.md +60 -0
- package/plugin/skills/ase-help-skill/help.md +83 -0
- package/plugin/skills/ase-task-condense/help.md +3 -3
- package/plugin/skills/ase-task-reboot/help.md +3 -3
- package/plugin/skills/ase-task-view/help.md +3 -3
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ase-help-skill
|
|
3
|
+
argument-hint: "[--help|-h] [<skill-name>]"
|
|
4
|
+
description: >
|
|
5
|
+
Show the manual page of an ASE skill, addressed by its full name, by
|
|
6
|
+
any abbreviation of it, or by a description of its purpose, and list
|
|
7
|
+
the entire skill catalog when no name is given. Use when the user
|
|
8
|
+
wants the "manual", "man page", "manpage", or "help" of a particular
|
|
9
|
+
ASE skill, or asks what a certain `ase-xxx-xxx` skill does.
|
|
10
|
+
user-invocable: true
|
|
11
|
+
disable-model-invocation: false
|
|
12
|
+
effort: medium
|
|
13
|
+
allowed-tools:
|
|
14
|
+
- "Read"
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
18
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
19
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md
|
|
20
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
21
|
+
|
|
22
|
+
<skill name="ase-help-skill">
|
|
23
|
+
Show the Manual Page of an ASE Skill
|
|
24
|
+
</skill>
|
|
25
|
+
|
|
26
|
+
<expand name="getopt"
|
|
27
|
+
arg1="ase-help-skill"
|
|
28
|
+
arg2="">
|
|
29
|
+
$ARGUMENTS
|
|
30
|
+
</expand>
|
|
31
|
+
|
|
32
|
+
<objective>
|
|
33
|
+
*Show* the *manual page* of the ASE skill addressed by the following
|
|
34
|
+
skill name, abbreviation of it, or description of its purpose:
|
|
35
|
+
<skill-ref><getopt-arguments/></skill-ref>
|
|
36
|
+
</objective>
|
|
37
|
+
|
|
38
|
+
The following <catalog/> is index of all ASE skills -- one
|
|
39
|
+
`⎈ **<group/>**` entry per skill group and one
|
|
40
|
+
``○ `<name/>`: <purpose/>`` entry per skill -- and this is
|
|
41
|
+
the *sole* index <skill-ref/> is resolved against:
|
|
42
|
+
|
|
43
|
+
<catalog>
|
|
44
|
+
@${CLAUDE_SKILL_DIR}/catalog.md
|
|
45
|
+
</catalog>
|
|
46
|
+
|
|
47
|
+
<flow>
|
|
48
|
+
|
|
49
|
+
1. <step id="STEP 1: Resolve Skill Name">
|
|
50
|
+
|
|
51
|
+
1. <if condition="<skill-ref/> is empty">
|
|
52
|
+
No particular skill was addressed, so render the *entire*
|
|
53
|
+
<catalog/> as a browsable list with the following <template/>
|
|
54
|
+
-- one list entry per catalog entry, in catalog order, where
|
|
55
|
+
<name/> and <purpose/> are the two fields of the entry (and
|
|
56
|
+
<name-padded/> is <name/>, padded to 22 characters with
|
|
57
|
+
spaces on the right) -- and then immediately *STOP* processing
|
|
58
|
+
the entire current skill:
|
|
59
|
+
|
|
60
|
+
<template>
|
|
61
|
+
<ase-tpl-head title="SKILL CATALOG"/>
|
|
62
|
+
|
|
63
|
+
<catalog/>
|
|
64
|
+
|
|
65
|
+
<ase-tpl-foot title="SKILL CATALOG"/>
|
|
66
|
+
|
|
67
|
+
⧉ **ASE**: ✪ skill: **ase-help-skill**, ▶ hint: **run `/ase-help-skill ase-xxx-xxx` for manual page of individual skill**
|
|
68
|
+
</template>
|
|
69
|
+
</if>
|
|
70
|
+
|
|
71
|
+
2. Set <skill-ref-raw/> to <skill-ref/> with only its leading and
|
|
72
|
+
trailing whitespace stripped, as the *verbatim* wording of the
|
|
73
|
+
user is required later on.
|
|
74
|
+
|
|
75
|
+
*Normalize* <skill-ref/> by stripping all leading and trailing
|
|
76
|
+
whitespace and then, repeatedly, any leading `/` and `ase:`
|
|
77
|
+
prefix, so that `ase-code-lint`, `/ase-code-lint`,
|
|
78
|
+
`ase:ase-code-lint`, and `/ase:ase-code-lint` all normalize to
|
|
79
|
+
`ase-code-lint`. Do not output anything.
|
|
80
|
+
|
|
81
|
+
3. Resolve the normalized <skill-ref/> against <catalog/> in *three*
|
|
82
|
+
tiers and store the outcome in <candidates/>. Each tier is tried
|
|
83
|
+
only if all preceding tiers yielded *no* candidate at all:
|
|
84
|
+
|
|
85
|
+
1. *Exact Name Tier*:
|
|
86
|
+
|
|
87
|
+
If a catalog *name* is *equal* to <skill-ref/>, set
|
|
88
|
+
<candidates/> to exactly that *single* name.
|
|
89
|
+
|
|
90
|
+
2. *Substring Name Tier*:
|
|
91
|
+
|
|
92
|
+
Set <candidates/> to *all* catalog *names* *containing*
|
|
93
|
+
<skill-ref/> as a substring, in alphabetical order.
|
|
94
|
+
|
|
95
|
+
3. *Fuzzy Purpose Tier*:
|
|
96
|
+
|
|
97
|
+
Set <candidates/> to *all* catalog names whose *purpose* --
|
|
98
|
+
the part *after* the colon of the catalog entry -- *fuzzily*
|
|
99
|
+
matches <skill-ref-raw/>, in *descending* order of match
|
|
100
|
+
quality. Match against <skill-ref-raw/>, and *not* against
|
|
101
|
+
<skill-ref/>, as this tier matches free-text wording, which
|
|
102
|
+
the normalization of sub-step 2 would distort.
|
|
103
|
+
|
|
104
|
+
A purpose matches fuzzily if it shares the topic, the
|
|
105
|
+
wording, or evident synonyms with <skill-ref-raw/>, so
|
|
106
|
+
that e.g. `manpage` matches `Show the Manual Page of an
|
|
107
|
+
ASE Skill` and `root cause` matches `Five-Whys Root-Cause
|
|
108
|
+
Analysis`. Include *plausible* matches only -- if none is
|
|
109
|
+
plausible, leave <candidates/> empty.
|
|
110
|
+
|
|
111
|
+
Set <count/> to the number of entries in <candidates/>.
|
|
112
|
+
Do not output anything.
|
|
113
|
+
|
|
114
|
+
</step>
|
|
115
|
+
|
|
116
|
+
2. <step id="STEP 2: Dispatch Resolution">
|
|
117
|
+
|
|
118
|
+
1. <if condition="<count/> is equal 0">
|
|
119
|
+
Only output the following <template/> and then immediately
|
|
120
|
+
*STOP* processing the entire current skill:
|
|
121
|
+
|
|
122
|
+
<template>
|
|
123
|
+
⧉ **ASE**: ✪ skill: **ase-help-skill**, ▶ ERROR: unknown skill: **<skill-ref-raw/>**
|
|
124
|
+
</template>
|
|
125
|
+
</if>
|
|
126
|
+
|
|
127
|
+
2. <elseif condition="<count/> is equal 1">
|
|
128
|
+
Set <name/> to the single entry of <candidates/> and continue
|
|
129
|
+
processing. Do not output anything.
|
|
130
|
+
</elseif>
|
|
131
|
+
|
|
132
|
+
3. <else>
|
|
133
|
+
The abbreviation is *ambiguous*, so let the user pick the
|
|
134
|
+
intended skill.
|
|
135
|
+
|
|
136
|
+
Set <shown/> to the *first* 9 entries of <candidates/>, as the
|
|
137
|
+
dialog renders at most *nine* answer lines.
|
|
138
|
+
|
|
139
|
+
<if condition="<count/> is greater than 9">
|
|
140
|
+
Set <truncation> (showing 9 of <count/> candidates)</truncation>
|
|
141
|
+
</if>
|
|
142
|
+
<else>
|
|
143
|
+
Set <truncation></truncation> (set to empty)
|
|
144
|
+
</else>
|
|
145
|
+
|
|
146
|
+
In the following, you *MUST* *NOT* use your built-in
|
|
147
|
+
<user-dialog-tool/> tool! Instead, you *MUST* just show a custom
|
|
148
|
+
dialog according to the expanded `custom-dialog` definition. You
|
|
149
|
+
*MUST* closely follow this definition.
|
|
150
|
+
|
|
151
|
+
Let the user select the intended skill by raising a question
|
|
152
|
+
with the following custom dialog, where each answer line
|
|
153
|
+
corresponds to one entry of <shown/>, using the catalog *name*
|
|
154
|
+
as the label and its catalog *purpose* as the description:
|
|
155
|
+
|
|
156
|
+
<expand name="custom-dialog" arg1="--no-other">
|
|
157
|
+
Ambiguous Skill: Which skill's manual page should be shown?<truncation/>
|
|
158
|
+
<name/>: <purpose/>
|
|
159
|
+
[...]
|
|
160
|
+
</expand>
|
|
161
|
+
|
|
162
|
+
Check the <result/> and dispatch accordingly:
|
|
163
|
+
|
|
164
|
+
- If <result/> is `CANCEL`:
|
|
165
|
+
*STOP* processing without any further output.
|
|
166
|
+
|
|
167
|
+
- Otherwise: Set <name/> to the selected skill name and
|
|
168
|
+
continue processing.
|
|
169
|
+
</else>
|
|
170
|
+
|
|
171
|
+
</step>
|
|
172
|
+
|
|
173
|
+
3. <step id="STEP 3: Render Manual Page">
|
|
174
|
+
|
|
175
|
+
1. Use the `Read` tool to read the manual page of the resolved
|
|
176
|
+
skill <name/> and set <manual/> to its content. The file path is
|
|
177
|
+
formed by joining <ase-plugin-root/> and `skills/<name/>/help.md`
|
|
178
|
+
with exactly *one* `/` separator, as <ase-plugin-root/> may or
|
|
179
|
+
may not carry a trailing `/`. Do not output anything related to
|
|
180
|
+
this tool call.
|
|
181
|
+
|
|
182
|
+
2. <if condition="<manual/> is empty or could not be read">
|
|
183
|
+
Only output the following <template/> and then immediately
|
|
184
|
+
*STOP* processing the entire current skill:
|
|
185
|
+
|
|
186
|
+
<template>
|
|
187
|
+
⧉ **ASE**: ✪ skill: **ase-help-skill**, ▶ ERROR: unreadable manual page: **<name/>**
|
|
188
|
+
</template>
|
|
189
|
+
</if>
|
|
190
|
+
|
|
191
|
+
3. Treat <manual/> as *verbatim* Markdown. You *MUST* *NOT*
|
|
192
|
+
truncate, summarize, reformat, or partially show it. Only output
|
|
193
|
+
the following <template/>:
|
|
194
|
+
|
|
195
|
+
<template>
|
|
196
|
+
<ase-tpl-head title="MANUAL PAGE: <name/>"/>
|
|
197
|
+
<manual/>
|
|
198
|
+
<ase-tpl-foot title="MANUAL PAGE: <name/>"/>
|
|
199
|
+
</template>
|
|
200
|
+
|
|
201
|
+
</step>
|
|
202
|
+
|
|
203
|
+
</flow>
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
|
|
2
|
+
⎈ **HELP**
|
|
3
|
+
○ `ase-help-skill`: Show the Manual Page of an ASE Skill
|
|
4
|
+
○ `ase-help-intent`: Match an Intent to an ASE Command
|
|
5
|
+
|
|
6
|
+
⎈ **RESEARCH**
|
|
7
|
+
○ `ase-meta-search`: Search the Internet/Web
|
|
8
|
+
○ `ase-meta-proximity`: Determine the Conceptual Proximity of a Topic
|
|
9
|
+
○ `ase-meta-brainstorm`: Collaboratively Brainstorm a Topic
|
|
10
|
+
○ `ase-meta-chat`: Query Foreign LLM for Chat
|
|
11
|
+
○ `ase-meta-quorum`: Query Multiple AIs for Quorum Answer
|
|
12
|
+
○ `ase-meta-diaboli`: Play "Devil's Advocate" (Latin: "Advocatus Diaboli")
|
|
13
|
+
○ `ase-meta-steelman`: Build the "Steelman" Argument
|
|
14
|
+
○ `ase-meta-eli5`: Explain a Topic Like I'm 5
|
|
15
|
+
○ `ase-meta-why`: Five-Whys Root-Cause Analysis
|
|
16
|
+
○ `ase-meta-evaluate`: Evaluate Alternatives
|
|
17
|
+
|
|
18
|
+
⎈ **ARCHITECTURE**
|
|
19
|
+
○ `ase-arch-analyze`: Review Software Architecture
|
|
20
|
+
○ `ase-arch-discover`: Discover Components
|
|
21
|
+
|
|
22
|
+
⎈ **CODING**
|
|
23
|
+
○ `ase-code-analyze`: Analyze Source Code
|
|
24
|
+
○ `ase-code-lint`: Lint Source Code
|
|
25
|
+
○ `ase-code-explain`: Explain Source Code
|
|
26
|
+
○ `ase-code-insight`: Project Insight
|
|
27
|
+
○ `ase-code-craft`: Craft Source Code
|
|
28
|
+
○ `ase-code-refactor`: Refactor Artifacts
|
|
29
|
+
○ `ase-code-resolve`: Resolve Problem
|
|
30
|
+
○ `ase-sync-import`: Import Foreign Sources into Artifact Set
|
|
31
|
+
○ `ase-sync-reconcile`: Reconcile Artifact Set to Artifact Set
|
|
32
|
+
○ `ase-sync-export`: Export Artifact Set to Side-by-Side Files
|
|
33
|
+
|
|
34
|
+
⎈ **DOCUMENTATION**
|
|
35
|
+
○ `ase-docs-distill`: Distill Document Key Points
|
|
36
|
+
○ `ase-docs-proofread`: Proofread Documents
|
|
37
|
+
|
|
38
|
+
⎈ **VERSION CONTROL**
|
|
39
|
+
○ `ase-meta-changelog`: Update ChangeLog Entries
|
|
40
|
+
○ `ase-meta-commit`: Git Commit Message
|
|
41
|
+
○ `ase-meta-diff`: Summarize Diff
|
|
42
|
+
○ `ase-meta-review`: Review Staged Changes
|
|
43
|
+
|
|
44
|
+
⎈ **TASK MANAGEMENT**
|
|
45
|
+
○ `ase-task-id`: Configure Task Id
|
|
46
|
+
○ `ase-task-list`: List Task Plans
|
|
47
|
+
○ `ase-task-view`: View a Task Plan
|
|
48
|
+
○ `ase-task-edit`: Iteratively Edit a Task Plan
|
|
49
|
+
○ `ase-task-grill`: Iteratively Grill a Task Plan
|
|
50
|
+
○ `ase-task-condense`: Condense a Task Plan
|
|
51
|
+
○ `ase-task-reboot`: Reboot a Task Plan
|
|
52
|
+
○ `ase-task-preflight`: Preflight a Task Plan
|
|
53
|
+
○ `ase-task-implement`: Implement a Task Plan
|
|
54
|
+
○ `ase-task-rename`: Rename a Task Plan
|
|
55
|
+
○ `ase-task-delete`: Delete a Task Plan
|
|
56
|
+
|
|
57
|
+
⎈ **OTHER SKILLS**
|
|
58
|
+
○ `ase-meta-persona`: Persona Configuration
|
|
59
|
+
○ `ase-meta-compat`: Self-Test ASE Compatibility
|
|
60
|
+
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
|
|
2
|
+
## NAME
|
|
3
|
+
|
|
4
|
+
`ase-help-skill` - Show the Manual Page of an ASE Skill
|
|
5
|
+
|
|
6
|
+
## SYNOPSIS
|
|
7
|
+
|
|
8
|
+
`ase-help-skill`
|
|
9
|
+
[`--help`|`-h`]
|
|
10
|
+
[*skill-name*]
|
|
11
|
+
|
|
12
|
+
## DESCRIPTION
|
|
13
|
+
|
|
14
|
+
The `ase-help-skill` skill renders the *manual page* (`help.md`) of the
|
|
15
|
+
ASE skill addressed by *skill-name*. The page is emitted verbatim,
|
|
16
|
+
framed between a `( HELP )` header and footer rule.
|
|
17
|
+
|
|
18
|
+
The *skill-name* is resolved against a *catalog* of all ASE skills --
|
|
19
|
+
one `name: purpose` entry per skill, generated into
|
|
20
|
+
`skills/ase-help-skill/data.md` by `npm start build` in `plugin/`.
|
|
21
|
+
Before resolving, any leading `/` and `ase:` prefix is stripped, so
|
|
22
|
+
`ase-code-lint`, `/ase-code-lint`, and `ase:ase-code-lint` are
|
|
23
|
+
equivalent. Resolution then proceeds in three tiers, each tried only if
|
|
24
|
+
all preceding ones found nothing: an *exact* match on the full skill
|
|
25
|
+
name wins outright, otherwise *every* skill name containing
|
|
26
|
+
*skill-name* as a substring becomes a candidate, and otherwise
|
|
27
|
+
*skill-name* is *fuzzily* matched against the skill *purposes* -- so
|
|
28
|
+
a topical phrase such as `root cause` still finds `ase-meta-why` --
|
|
29
|
+
with the candidates ordered by descending match quality.
|
|
30
|
+
|
|
31
|
+
A *skill-name* matching no skill in any tier is reported as an error. A
|
|
32
|
+
*skill-name* matching more than one skill opens an interactive dialog
|
|
33
|
+
listing the candidates with their purposes; as the dialog renders at
|
|
34
|
+
most nine answer lines, a broader abbreviation such as `task` shows the
|
|
35
|
+
first nine candidates and states how many exist in total.
|
|
36
|
+
|
|
37
|
+
If *skill-name* is omitted, the whole catalog is rendered as a
|
|
38
|
+
browsable `Skill`/`Purpose` table instead.
|
|
39
|
+
|
|
40
|
+
The skill exposes *no* option flags beyond `--help`/`-h`.
|
|
41
|
+
|
|
42
|
+
## ARGUMENTS
|
|
43
|
+
|
|
44
|
+
*skill-name*:
|
|
45
|
+
The full name of the ASE skill, any abbreviation of it, or a
|
|
46
|
+
description of its purpose. If omitted, the entire skill catalog is
|
|
47
|
+
listed.
|
|
48
|
+
|
|
49
|
+
## EXAMPLES
|
|
50
|
+
|
|
51
|
+
Show the manual page of `ase-code-lint` via its shortest abbreviation:
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
❯ /ase-help-skill lint
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Show the same manual page via its full, plugin-qualified name:
|
|
58
|
+
|
|
59
|
+
```text
|
|
60
|
+
❯ /ase-help-skill ase:ase-code-lint
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Pick a manual page from the candidates of an ambiguous abbreviation:
|
|
64
|
+
|
|
65
|
+
```text
|
|
66
|
+
❯ /ase-help-skill analyze
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Find a manual page by the purpose of the skill instead of its name:
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
❯ /ase-help-skill root cause
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
List the entire skill catalog:
|
|
76
|
+
|
|
77
|
+
```text
|
|
78
|
+
❯ /ase-help-skill
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## SEE ALSO
|
|
82
|
+
|
|
83
|
+
[`ase-help-intent`](../ase-help-intent/help.md), [`ase-meta-proximity`](../ase-meta-proximity/help.md).
|
|
@@ -47,9 +47,9 @@ After condensing, the user is asked whether to stop or hand off to
|
|
|
47
47
|
Recognized tokens at this skill: `none` (default, interactive
|
|
48
48
|
answer required), `DONE` (stop), `EDIT` (hand off to
|
|
49
49
|
`ase-task-edit`), `IMPLEMENT` (hand off to `ase-task-implement`),
|
|
50
|
-
or `PREFLIGHT` (hand off to `ase-task-preflight`). Example:
|
|
51
|
-
EDIT,DONE` condenses, hands off to editing, and the editing
|
|
52
|
-
exit immediately.
|
|
50
|
+
or `PREFLIGHT` (hand off to `ase-task-preflight`). Example:
|
|
51
|
+
`--next EDIT,DONE` condenses, hands off to editing, and the editing
|
|
52
|
+
loop will exit immediately.
|
|
53
53
|
|
|
54
54
|
## ARGUMENTS
|
|
55
55
|
|
|
@@ -33,9 +33,9 @@ unless `--next` pre-selects this choice.
|
|
|
33
33
|
Recognized tokens at this skill: `none` (default, interactive
|
|
34
34
|
answer required), `DONE` (stop), `EDIT` (hand off to
|
|
35
35
|
`ase-task-edit`), `IMPLEMENT` (hand off to `ase-task-implement`),
|
|
36
|
-
or `PREFLIGHT` (hand off to `ase-task-preflight`). Example:
|
|
37
|
-
EDIT,DONE` reboots, hands off to editing, and the editing
|
|
38
|
-
exit immediately.
|
|
36
|
+
or `PREFLIGHT` (hand off to `ase-task-preflight`). Example:
|
|
37
|
+
`--next EDIT,DONE` reboots, hands off to editing, and the editing
|
|
38
|
+
loop will exit immediately.
|
|
39
39
|
|
|
40
40
|
## ARGUMENTS
|
|
41
41
|
|
|
@@ -26,9 +26,9 @@ the plan in full, without any truncation or summarization.
|
|
|
26
26
|
## OPTIONS
|
|
27
27
|
|
|
28
28
|
`--full`|`-f`:
|
|
29
|
-
Render the plan in full, without collapsing the
|
|
30
|
-
DRAFT` section. By default, that section is
|
|
31
|
-
for plans longer than 90 lines.
|
|
29
|
+
Render the plan in full, without collapsing the
|
|
30
|
+
`IMPLEMENTATION DRAFT` section. By default, that section is
|
|
31
|
+
replaced with `[...]` for plans longer than 90 lines.
|
|
32
32
|
|
|
33
33
|
## ARGUMENTS
|
|
34
34
|
|