@rse/ase 0.9.64 → 0.9.66
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-hook.js +1 -1
- package/dst/ase-metric.js +103 -0
- package/dst/ase-mint.js +106 -0
- package/dst/ase-service.js +4 -0
- package/dst/ase-setup.js +1 -1
- package/dst/ase-spec.js +104 -40
- package/dst/ase-statusline.js +11 -2
- package/dst/ase.js +4 -0
- package/package.json +13 -12
- 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-docs-proofread.md +13 -7
- package/plugin/agents/ase-docs-refine.md +165 -0
- package/plugin/agents/ase-docs-shorten.md +182 -0
- package/plugin/meta/ase-constitution.md +2 -0
- package/plugin/meta/ase-tenets.md +12 -0
- package/plugin/package.json +4 -4
- package/plugin/skills/ase-arch-analyze/help.md +1 -1
- package/plugin/skills/ase-arch-discover/help.md +4 -4
- package/plugin/skills/ase-code-analyze/help.md +1 -1
- package/plugin/skills/ase-code-craft/help.md +7 -7
- package/plugin/skills/ase-code-dissect/help.md +5 -5
- package/plugin/skills/ase-code-edit/help.md +7 -7
- package/plugin/skills/ase-code-explain/help.md +1 -1
- package/plugin/skills/ase-code-insight/help.md +1 -1
- package/plugin/skills/ase-code-lint/help.md +5 -5
- package/plugin/skills/ase-code-refactor/help.md +6 -6
- package/plugin/skills/ase-code-resolve/help.md +6 -6
- package/plugin/skills/ase-docs-distill/help.md +2 -2
- package/plugin/skills/ase-docs-proofread/SKILL.md +16 -12
- package/plugin/skills/ase-docs-proofread/help.md +18 -8
- package/plugin/skills/ase-docs-refine/SKILL.md +396 -0
- package/plugin/skills/ase-docs-refine/help.md +104 -0
- package/plugin/skills/ase-docs-shorten/SKILL.md +527 -0
- package/plugin/skills/ase-docs-shorten/help.md +120 -0
- package/plugin/skills/ase-help-intent/help.md +1 -1
- package/plugin/skills/ase-help-skill/catalog.md +4 -1
- package/plugin/skills/ase-help-skill/help.md +1 -1
- package/plugin/skills/ase-meta-brainstorm/help.md +5 -5
- package/plugin/skills/ase-meta-chat/help.md +2 -2
- package/plugin/skills/ase-meta-config/help.md +3 -3
- package/plugin/skills/ase-meta-diaboli/help.md +2 -2
- package/plugin/skills/ase-meta-diff/help.md +3 -3
- package/plugin/skills/ase-meta-eli5/help.md +2 -2
- package/plugin/skills/ase-meta-evaluate/help.md +1 -1
- package/plugin/skills/ase-meta-mint/SKILL.md +157 -0
- package/plugin/skills/ase-meta-mint/help.md +114 -0
- package/plugin/skills/ase-meta-proximity/help.md +3 -3
- package/plugin/skills/ase-meta-quorum/help.md +2 -2
- package/plugin/skills/ase-meta-quotes/help.md +4 -4
- package/plugin/skills/ase-meta-review/help.md +1 -1
- package/plugin/skills/ase-meta-search/help.md +2 -2
- package/plugin/skills/ase-meta-steelman/help.md +3 -3
- package/plugin/skills/ase-meta-why/help.md +3 -3
- package/plugin/skills/ase-meta-workflow/SKILL.md +3 -2
- package/plugin/skills/ase-meta-workflow/help.md +4 -4
- package/plugin/skills/ase-meta-workflow/workflow.txt +8 -2
- package/plugin/skills/ase-spec-edit/SKILL.md +1 -1
- package/plugin/skills/ase-spec-edit/help.md +6 -6
- package/plugin/skills/ase-sync-export/SKILL.md +3 -1
- package/plugin/skills/ase-sync-export/help.md +1 -1
- package/plugin/skills/ase-sync-import/SKILL.md +1 -1
- 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 +4 -4
- package/plugin/skills/ase-task-condense/SKILL.md +7 -4
- package/plugin/skills/ase-task-condense/help.md +2 -2
- package/plugin/skills/ase-task-delete/help.md +1 -1
- package/plugin/skills/ase-task-dissect/help.md +5 -5
- package/plugin/skills/ase-task-edit/help.md +4 -4
- package/plugin/skills/ase-task-grill/help.md +3 -3
- package/plugin/skills/ase-task-id/help.md +1 -1
- package/plugin/skills/ase-task-implement/help.md +3 -3
- package/plugin/skills/ase-task-list/help.md +3 -3
- package/plugin/skills/ase-task-preflight/help.md +2 -2
- package/plugin/skills/ase-task-reboot/help.md +2 -2
- package/plugin/skills/ase-task-rename/help.md +1 -1
- package/plugin/skills/ase-task-view/help.md +2 -2
|
@@ -35,29 +35,29 @@ the highest-ranked option or a principled synthesis of the shortlist.
|
|
|
35
35
|
|
|
36
36
|
## OPTIONS
|
|
37
37
|
|
|
38
|
-
`--max-clarify`|`-c=3`:
|
|
38
|
+
- `--max-clarify`|`-c=3`:
|
|
39
39
|
The *maximum* number of essential-unknown clarification questions
|
|
40
40
|
asked in the *clarify intent* phase (default: 3). Lower it for a
|
|
41
41
|
faster, leaner intake, raise it for more upfront grounding.
|
|
42
42
|
|
|
43
|
-
`--min-ideas`|`-i=12`:
|
|
43
|
+
- `--min-ideas`|`-i=12`:
|
|
44
44
|
The *minimum* number of candidate ideas to generate in the *diverge*
|
|
45
45
|
phase before converging (default: 12). Raise it for a broader idea
|
|
46
46
|
space, lower it for a quicker, narrower session.
|
|
47
47
|
|
|
48
|
-
`--min-rank`|`-r=7`:
|
|
48
|
+
- `--min-rank`|`-r=7`:
|
|
49
49
|
The *minimum* 0-10 fit rank an idea must score to survive the
|
|
50
50
|
*converge* phase (default: 7). Raise it for a stricter filter, lower
|
|
51
51
|
it to retain more ideas.
|
|
52
52
|
|
|
53
|
-
`--max-shortlist`|`-s=4`:
|
|
53
|
+
- `--max-shortlist`|`-s=4`:
|
|
54
54
|
The *maximum* number of distilled options on the final *shortlist*
|
|
55
55
|
(default: 4). Lower it for a sharper focus, raise it for more
|
|
56
56
|
finalists.
|
|
57
57
|
|
|
58
58
|
## ARGUMENTS
|
|
59
59
|
|
|
60
|
-
*topic*:
|
|
60
|
+
- *topic*:
|
|
61
61
|
The subject to brainstorm - a feature, component, behavior, or
|
|
62
62
|
design question to explore *what* to build before *how*.
|
|
63
63
|
|
|
@@ -19,11 +19,11 @@ without any further interpretation.
|
|
|
19
19
|
|
|
20
20
|
## ARGUMENTS
|
|
21
21
|
|
|
22
|
-
*llm*:
|
|
22
|
+
- *llm*:
|
|
23
23
|
Identifier of the foreign LLM to query, e.g. `chatgpt`,
|
|
24
24
|
`gemini`, `deepseek`, `grok`, `glm`, or `qwen`.
|
|
25
25
|
|
|
26
|
-
*query*:
|
|
26
|
+
- *query*:
|
|
27
27
|
The chat message to send to the foreign LLM.
|
|
28
28
|
|
|
29
29
|
## SCENARIOS
|
|
@@ -73,7 +73,7 @@ preset-bootstrapping operation that stays a shell concern next to
|
|
|
73
73
|
|
|
74
74
|
## OPTIONS
|
|
75
75
|
|
|
76
|
-
`--scope`|`-s` *scope*:
|
|
76
|
+
- `--scope`|`-s` *scope*:
|
|
77
77
|
The scope chain to operate on, given as a comma-separated list of
|
|
78
78
|
`user`, `project`, `task:`*id*, and/or `session:`*id* terms, in any
|
|
79
79
|
order and at most one term per kind. The `user` term is always
|
|
@@ -87,10 +87,10 @@ preset-bootstrapping operation that stays a shell concern next to
|
|
|
87
87
|
|
|
88
88
|
## ARGUMENTS
|
|
89
89
|
|
|
90
|
-
*operation*:
|
|
90
|
+
- *operation*:
|
|
91
91
|
The operation to perform; one of `list`, `get`, `set`, or `delete`.
|
|
92
92
|
|
|
93
|
-
*args*:
|
|
93
|
+
- *args*:
|
|
94
94
|
The operands of the operation: none for `list`, a dotted *key* for
|
|
95
95
|
`get` and `delete`, and a dotted *key* plus a *value* for `set`.
|
|
96
96
|
|
|
@@ -41,12 +41,12 @@ contrarian.
|
|
|
41
41
|
|
|
42
42
|
## ARGUMENTS
|
|
43
43
|
|
|
44
|
-
`--count`, `-c` *count*:
|
|
44
|
+
- `--count`, `-c` *count*:
|
|
45
45
|
Surface at least *count* strong anti-theses (default *10*) before
|
|
46
46
|
sorting and reporting the top *count* and deriving the *SYNTHESIS*. An
|
|
47
47
|
invalid or non-positive *count* reverts to the default *10*.
|
|
48
48
|
|
|
49
|
-
*thesis*:
|
|
49
|
+
- *thesis*:
|
|
50
50
|
The statement, claim, or position to be relentlessly challenged.
|
|
51
51
|
It may be technical, factual, or opinion-based; the skill attacks
|
|
52
52
|
its strongest ("steelman") interpretation.
|
|
@@ -53,21 +53,21 @@ giving a visual sense of *what a diff endangers* before a deeper review.
|
|
|
53
53
|
|
|
54
54
|
## ARGUMENTS
|
|
55
55
|
|
|
56
|
-
`--coherence`, `-c`:
|
|
56
|
+
- `--coherence`, `-c`:
|
|
57
57
|
In addition to the intent-grouped summary, reconstruct the diff's
|
|
58
58
|
*single intended change* as one crisp *thesis* sentence and flag
|
|
59
59
|
*every* hunk that does *not* serve it - *scope creep* or *stray
|
|
60
60
|
debug* - then emit an overall **COHERENT** / **INCOHERENT** verdict
|
|
61
61
|
with a table of the flagged hunks.
|
|
62
62
|
|
|
63
|
-
`--risk`, `-r`:
|
|
63
|
+
- `--risk`, `-r`:
|
|
64
64
|
In addition to the intent-grouped summary, score the diff against
|
|
65
65
|
the *coupling-criticality-coverage-reversibility* rubric and emit a
|
|
66
66
|
*graded risk report* with an overall risk band and per-axis
|
|
67
67
|
*mitigations*. Scores are equal-weighted, evidence-backed, and
|
|
68
68
|
deliberately untuned to the project.
|
|
69
69
|
|
|
70
|
-
`--blast`, `-b`:
|
|
70
|
+
- `--blast`, `-b`:
|
|
71
71
|
In addition to the intent-grouped summary, render a *blast-radius
|
|
72
72
|
map* - a Mermaid `flowchart` of the *touched modules* and their
|
|
73
73
|
*reverse dependencies* - plus a *brief impact summary* of what
|
|
@@ -30,14 +30,14 @@ knowledge.
|
|
|
30
30
|
|
|
31
31
|
## OPTIONS
|
|
32
32
|
|
|
33
|
-
`--ground`|`-g`:
|
|
33
|
+
- `--ground`|`-g`:
|
|
34
34
|
Ground the explanation in Internet/Web facts gathered via the
|
|
35
35
|
`ase-meta-search` skill before explaining. Without this option,
|
|
36
36
|
the explanation is derived from model knowledge only.
|
|
37
37
|
|
|
38
38
|
## ARGUMENTS
|
|
39
39
|
|
|
40
|
-
*topic*:
|
|
40
|
+
- *topic*:
|
|
41
41
|
The topic to be explained. It may be a technical concept, a
|
|
42
42
|
phenomenon, or any other subject; the skill explains it in a
|
|
43
43
|
child-friendly way.
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ase-meta-mint
|
|
3
|
+
argument-hint: "[--help|-h] [--type|-t uuid|sha1|const|var|class|func|path|name] [--count|-c <count>] [<hint>]"
|
|
4
|
+
description: >
|
|
5
|
+
Mint an identifier or a name of a requested type out of a free-text
|
|
6
|
+
hint: a UUID, a SHA-1 digest, a constant, variable, function, or
|
|
7
|
+
class identifier, a path component, or a product-like name. Use when
|
|
8
|
+
the user wants an identifier, id, symbol, slug, or name "minted",
|
|
9
|
+
"coined", "derived", or "generated" from a description.
|
|
10
|
+
user-invocable: true
|
|
11
|
+
disable-model-invocation: false
|
|
12
|
+
effort: high
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
|
|
16
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
17
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
18
|
+
|
|
19
|
+
<purpose name="ase-meta-mint">
|
|
20
|
+
Mint an Identifier or Name
|
|
21
|
+
</purpose>
|
|
22
|
+
|
|
23
|
+
<expand name="getopt"
|
|
24
|
+
arg1="ase-meta-mint"
|
|
25
|
+
arg2="--type|-t=(uuid|sha1|const|var|class|func|path|name) --count|-c=1">
|
|
26
|
+
$ARGUMENTS
|
|
27
|
+
</expand>
|
|
28
|
+
|
|
29
|
+
<objective>
|
|
30
|
+
*Mint* an identifier or a name of the requested type out of the
|
|
31
|
+
following hint:
|
|
32
|
+
<hint><getopt-arguments/></hint>
|
|
33
|
+
</objective>
|
|
34
|
+
|
|
35
|
+
<flow>
|
|
36
|
+
|
|
37
|
+
1. <step id="STEP 1: Sanity Check Usage">
|
|
38
|
+
|
|
39
|
+
1. Set <type><getopt-option-type/></type> and set <hint/> to
|
|
40
|
+
<getopt-arguments/> with any leading and trailing whitespace
|
|
41
|
+
stripped.
|
|
42
|
+
|
|
43
|
+
2. Determine the number of identifiers to mint: set <count/> to
|
|
44
|
+
<getopt-option-count/>; if <getopt-option-count/> is
|
|
45
|
+
*non-numeric*, *less than 1*, or *greater than 100*, use the
|
|
46
|
+
default *1* instead.
|
|
47
|
+
|
|
48
|
+
3. <if condition="<hint/> is empty AND <type/> is NOT `uuid`">
|
|
49
|
+
Only output the following <template/> and then immediately *STOP*
|
|
50
|
+
processing the entire current skill -- every type except `uuid`
|
|
51
|
+
needs a hint to derive anything from:
|
|
52
|
+
|
|
53
|
+
<template>
|
|
54
|
+
⧉ **ASE**: ✪ skill: **ase-meta-mint**, ▶ ERROR: expected a `<hint>` argument for type **<type/>**
|
|
55
|
+
</template>
|
|
56
|
+
</if>
|
|
57
|
+
|
|
58
|
+
4. Set <results></results> and <warning></warning> (set both to empty).
|
|
59
|
+
|
|
60
|
+
</step>
|
|
61
|
+
|
|
62
|
+
2. <step id="STEP 2: Mint Hash-Derived Identifiers" condition="<type/> is `uuid` or `sha1`">
|
|
63
|
+
|
|
64
|
+
1. Call the `ase_mint(type: "<type/>", hint: "<hint/>", count:
|
|
65
|
+
<count/>)` tool of the `ase` MCP server and set <results/> to
|
|
66
|
+
the returned lines of its `text` output, one identifier per
|
|
67
|
+
line. You *MUST* *NOT* derive a UUID or a SHA-1 digest yourself
|
|
68
|
+
-- only the tool hashes correctly and reproducibly.
|
|
69
|
+
|
|
70
|
+
2. <if condition="a line of the `text` output starts with `WARNING:`">
|
|
71
|
+
Remove that line from <results/> and set <warning/> to its text
|
|
72
|
+
with the leading `WARNING:` stripped -- hashing a non-empty
|
|
73
|
+
hint is deterministic, so <count/> was clamped to *1*.
|
|
74
|
+
</if>
|
|
75
|
+
|
|
76
|
+
</step>
|
|
77
|
+
|
|
78
|
+
3. <step id="STEP 3: Derive Linguistic Identifiers" condition="<type/> is `const`, `var`, `class`, `func`, `path`, or `name`">
|
|
79
|
+
|
|
80
|
+
1. Distill <hint/> into its *essential words*: drop filler words,
|
|
81
|
+
articles, and prepositions, keep the two to four words which
|
|
82
|
+
carry the actual meaning, and order them from the most general
|
|
83
|
+
to the most specific one. Prefer established terminology of the
|
|
84
|
+
surrounding domain over invented wording. Do not output
|
|
85
|
+
anything.
|
|
86
|
+
|
|
87
|
+
2. Assemble <count/> *distinct* candidates from these words,
|
|
88
|
+
ordered best-first, honoring the rules of <type/>:
|
|
89
|
+
|
|
90
|
+
- `const`: an `UPPER_SNAKE_CASE` constant identifier such as
|
|
91
|
+
`FOO_BAR_QUUX` -- upper-case ASCII words joined by `_`,
|
|
92
|
+
never starting with a digit.
|
|
93
|
+
|
|
94
|
+
- `var`: a `lowerCamelCase` variable identifier such as
|
|
95
|
+
`fooBarQuux` -- the *last* part *MUST* be a *substantive*
|
|
96
|
+
(`Quux`) naming *what the value is*, never a verb, as a
|
|
97
|
+
variable holds a thing and not an action.
|
|
98
|
+
|
|
99
|
+
- `func`: a `lowerCamelCase` function identifier such as
|
|
100
|
+
`fooBarQuux` -- the *first* part *MUST* be a *verb* (`foo`)
|
|
101
|
+
naming *what the function does*, as a function performs an
|
|
102
|
+
action and does not hold a thing.
|
|
103
|
+
|
|
104
|
+
- `class`: an `UpperCamelCase` class identifier such as
|
|
105
|
+
`FooBarQuux` -- a substantive phrase naming the modeled
|
|
106
|
+
entity, in singular form and without a `The` prefix.
|
|
107
|
+
|
|
108
|
+
- `path`: a `kebab-case` path component such as
|
|
109
|
+
`foo-bar-quux` -- lower-case ASCII letters, digits, and `-`
|
|
110
|
+
only, never starting or ending with `-`.
|
|
111
|
+
|
|
112
|
+
- `name`: an `UpperCamelCase` *product name* such as
|
|
113
|
+
`FooBarQuux` -- optimize for a *brand*, not for a
|
|
114
|
+
description: short (preferably two to three syllables),
|
|
115
|
+
pronounceable, memorable, and distinctive. Coinages,
|
|
116
|
+
blends, and evocative metaphors are explicitly welcome
|
|
117
|
+
here, and a plain concatenation of the hint words is
|
|
118
|
+
explicitly not.
|
|
119
|
+
|
|
120
|
+
Store the candidates in <results/>. Do not output anything.
|
|
121
|
+
|
|
122
|
+
</step>
|
|
123
|
+
|
|
124
|
+
4. <step id="STEP 4: Render Result">
|
|
125
|
+
|
|
126
|
+
1. <if condition="<hint/> is empty">
|
|
127
|
+
Set <hint-shown>*(none -- random UUID)*</hint-shown>.
|
|
128
|
+
</if>
|
|
129
|
+
<else>
|
|
130
|
+
Set <hint-shown><hint/></hint-shown>.
|
|
131
|
+
</else>
|
|
132
|
+
|
|
133
|
+
2. Output the minted identifiers of <results/>, one per line and
|
|
134
|
+
each enclosed in backticks, with the following <template/>:
|
|
135
|
+
|
|
136
|
+
<template>
|
|
137
|
+
<ase-tpl-boxed title="MINT" subtitle="<type/>">
|
|
138
|
+
● **HINT**: <hint-shown/>
|
|
139
|
+
|
|
140
|
+
○ `<result-1/>`
|
|
141
|
+
○ `<result-2/>`
|
|
142
|
+
○ [...]
|
|
143
|
+
</ase-tpl-boxed>
|
|
144
|
+
</template>
|
|
145
|
+
|
|
146
|
+
3. <if condition="<warning/> is non-empty">
|
|
147
|
+
Additionally output the following <template/> directly below the
|
|
148
|
+
box:
|
|
149
|
+
|
|
150
|
+
<template>
|
|
151
|
+
⧉ **ASE**: ✪ skill: **ase-meta-mint**, ▶ WARNING: <warning/>
|
|
152
|
+
</template>
|
|
153
|
+
</if>
|
|
154
|
+
|
|
155
|
+
</step>
|
|
156
|
+
|
|
157
|
+
</flow>
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
|
|
2
|
+
## NAME
|
|
3
|
+
|
|
4
|
+
`ase-meta-mint` - Mint an Identifier or Name
|
|
5
|
+
|
|
6
|
+
## SYNOPSIS
|
|
7
|
+
|
|
8
|
+
`ase-meta-mint`
|
|
9
|
+
[`--help`|`-h`]
|
|
10
|
+
[`--type`|`-t` `uuid`|`sha1`|`const`|`var`|`class`|`func`|`path`|`name`]
|
|
11
|
+
[`--count`|`-c` *count*]
|
|
12
|
+
[*hint*]
|
|
13
|
+
|
|
14
|
+
## DESCRIPTION
|
|
15
|
+
|
|
16
|
+
The `ase-meta-mint` skill *mints* an identifier or a name of a requested
|
|
17
|
+
type out of the free-text *hint* formed by the positional arguments. It
|
|
18
|
+
dispatches on `--type` and emits the generated strings as its result.
|
|
19
|
+
|
|
20
|
+
The two *hash-derived* types are delegated to the `ase_mint` tool of the
|
|
21
|
+
`ase` MCP server, which derives them reproducibly instead of guessing
|
|
22
|
+
them:
|
|
23
|
+
|
|
24
|
+
- `uuid`:
|
|
25
|
+
a deterministic *UUID V5* over the *hint*, within the fixed *ASE*
|
|
26
|
+
namespace (itself a *UUID V5* over `https://ase.tools` in the
|
|
27
|
+
standard URL namespace), or a random *UUID V4* if no *hint* is
|
|
28
|
+
given.
|
|
29
|
+
|
|
30
|
+
- `sha1`:
|
|
31
|
+
the 40-character hexadecimal *SHA-1* digest of the *hint*.
|
|
32
|
+
|
|
33
|
+
The six *linguistic* types are derived by the skill itself: the *hint*
|
|
34
|
+
is distilled into its essential words, which are then assembled
|
|
35
|
+
according to the conventions of the type:
|
|
36
|
+
|
|
37
|
+
- `const`:
|
|
38
|
+
an `UPPER_SNAKE_CASE` constant identifier, such as `FOO_BAR_QUUX`.
|
|
39
|
+
|
|
40
|
+
- `var`:
|
|
41
|
+
a `lowerCamelCase` variable identifier, such as `fooBarQuux`, whose
|
|
42
|
+
*last* part is a substantive naming what the value *is*, never a
|
|
43
|
+
verb.
|
|
44
|
+
|
|
45
|
+
- `func`:
|
|
46
|
+
a `lowerCamelCase` function identifier, such as `fooBarQuux`, whose
|
|
47
|
+
*first* part is a verb naming what the function *does*.
|
|
48
|
+
|
|
49
|
+
- `class`:
|
|
50
|
+
an `UpperCamelCase` class identifier, such as `FooBarQuux`, as a
|
|
51
|
+
singular substantive phrase naming the modeled entity.
|
|
52
|
+
|
|
53
|
+
- `path`:
|
|
54
|
+
a `kebab-case` path component, such as `foo-bar-quux`.
|
|
55
|
+
|
|
56
|
+
- `name`:
|
|
57
|
+
an `UpperCamelCase` *product name*, such as `FooBarQuux`, optimized
|
|
58
|
+
for a brand rather than for a description: short, pronounceable,
|
|
59
|
+
memorable, and distinctive.
|
|
60
|
+
|
|
61
|
+
A *hint* is mandatory for every type except `uuid`, which falls back to
|
|
62
|
+
a random *UUID V4* without one.
|
|
63
|
+
|
|
64
|
+
## OPTIONS
|
|
65
|
+
|
|
66
|
+
`--type`|`-t` `uuid`|`sha1`|`const`|`var`|`class`|`func`|`path`|`name`:
|
|
67
|
+
Select the type of the minted identifier or name (default: `uuid`).
|
|
68
|
+
|
|
69
|
+
`--count`|`-c` *count*:
|
|
70
|
+
Mint *count* identifiers instead of just one (default: `1`, maximum:
|
|
71
|
+
`100`). For the hash-derived types it is honored only for an empty
|
|
72
|
+
*hint*, where *count* random *UUID V4* values are emitted; with a
|
|
73
|
+
non-empty *hint*, hashing is a pure function of that *hint* and
|
|
74
|
+
hence always yields exactly one identifier, so *count* is clamped to
|
|
75
|
+
`1` and a warning is emitted. For the linguistic types, *count*
|
|
76
|
+
distinct candidates are emitted, ordered best-first.
|
|
77
|
+
|
|
78
|
+
## ARGUMENTS
|
|
79
|
+
|
|
80
|
+
*hint*:
|
|
81
|
+
The free-text hint the identifier or name is derived from. It may be
|
|
82
|
+
a short description, a phrase, or a few keywords. It is mandatory
|
|
83
|
+
for all types except `uuid`.
|
|
84
|
+
|
|
85
|
+
## SCENARIOS
|
|
86
|
+
|
|
87
|
+
- You need a stable, reproducible UUID or SHA-1 digest for a concept
|
|
88
|
+
- You need a well-formed constant, variable, function, or class identifier
|
|
89
|
+
- You need a path component or slug derived from a description
|
|
90
|
+
- You need a catchy product name for a new component or tool
|
|
91
|
+
|
|
92
|
+
## EXAMPLES
|
|
93
|
+
|
|
94
|
+
Mint a deterministic UUID for a concept:
|
|
95
|
+
|
|
96
|
+
```text
|
|
97
|
+
❯ /ase-meta-mint --type uuid the ASE artifact kind resolution cache
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Mint a function identifier from a description:
|
|
101
|
+
|
|
102
|
+
```text
|
|
103
|
+
❯ /ase-meta-mint -t func compute the checksum of an artifact file
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Mint three product name candidates:
|
|
107
|
+
|
|
108
|
+
```text
|
|
109
|
+
❯ /ase-meta-mint -t name -c 3 a background service bridging a project into the agent tool
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## SEE ALSO
|
|
113
|
+
|
|
114
|
+
[`ase-task-id`](../ase-task-id/help.md), [`ase-meta-brainstorm`](../ase-meta-brainstorm/help.md), [`ase-code-craft`](../ase-code-craft/help.md), [`ase-arch-discover`](../ase-arch-discover/help.md).
|
|
@@ -39,14 +39,14 @@ the `ase-meta-proximity` sub-agent before its proximity is re-determined.
|
|
|
39
39
|
|
|
40
40
|
## OPTIONS
|
|
41
41
|
|
|
42
|
-
`--ground`|`-g`:
|
|
42
|
+
- `--ground`|`-g`:
|
|
43
43
|
Ground the determination in Internet/Web facts gathered by the
|
|
44
44
|
`ase-meta-proximity` agent before determining the proximity. Without
|
|
45
45
|
this option, the determination is derived from model knowledge only.
|
|
46
46
|
When combined with `--loop`, every newly navigated-to topic is
|
|
47
47
|
re-grounded.
|
|
48
48
|
|
|
49
|
-
`--loop`|`-l`:
|
|
49
|
+
- `--loop`|`-l`:
|
|
50
50
|
Present the neighboring topics in an interactive dialog and, upon
|
|
51
51
|
selection, adopt the picked topic as the new current topic and
|
|
52
52
|
restart the determination. Without this option, the proximity of the
|
|
@@ -54,7 +54,7 @@ the `ase-meta-proximity` sub-agent before its proximity is re-determined.
|
|
|
54
54
|
|
|
55
55
|
## ARGUMENTS
|
|
56
56
|
|
|
57
|
-
*topic*:
|
|
57
|
+
- *topic*:
|
|
58
58
|
The topic whose conceptual proximity is to be determined. It may be
|
|
59
59
|
a technical concept, a phenomenon, or any other subject; the skill
|
|
60
60
|
determines its parent, sibling, and child topics.
|
|
@@ -26,7 +26,7 @@ complete, unmodified individual responses.
|
|
|
26
26
|
|
|
27
27
|
## OPTIONS
|
|
28
28
|
|
|
29
|
-
`--models`|`-m` *model*[,...]:
|
|
29
|
+
- `--models`|`-m` *model*[,...]:
|
|
30
30
|
Restrict the *foreign* LLMs that are queried to the given
|
|
31
31
|
comma-separated list of *model* tokens. Recognized tokens are
|
|
32
32
|
`all`, `chatgpt`, `gemini`, `deepseek`, `grok`, `glm`, and `qwen`,
|
|
@@ -37,7 +37,7 @@ complete, unmodified individual responses.
|
|
|
37
37
|
|
|
38
38
|
## ARGUMENTS
|
|
39
39
|
|
|
40
|
-
*question*:
|
|
40
|
+
- *question*:
|
|
41
41
|
The question to ask all available AIs.
|
|
42
42
|
|
|
43
43
|
## SCENARIOS
|
|
@@ -50,7 +50,7 @@ the attribution of the quote.
|
|
|
50
50
|
|
|
51
51
|
## OPTIONS
|
|
52
52
|
|
|
53
|
-
`--ground`|`-g`:
|
|
53
|
+
- `--ground`|`-g`:
|
|
54
54
|
Gather quotes from the Internet/Web via the `ase-meta-search` skill
|
|
55
55
|
(dispatched in a sub-agent, querying all available search backends)
|
|
56
56
|
*in addition to* -- and never *instead* of -- the model knowledge,
|
|
@@ -63,7 +63,7 @@ the attribution of the quote.
|
|
|
63
63
|
and the skill falls back to the model knowledge only. Without this
|
|
64
64
|
option, the quotes are derived from model knowledge only.
|
|
65
65
|
|
|
66
|
-
`--proximity`|`-p`:
|
|
66
|
+
- `--proximity`|`-p`:
|
|
67
67
|
Widen the harvest beyond the given topic to its *conceptual
|
|
68
68
|
neighborhood* -- the parent (more general) topic, the four sibling
|
|
69
69
|
(same-level) topics, and the four child (more specialized) topics --
|
|
@@ -76,7 +76,7 @@ the attribution of the quote.
|
|
|
76
76
|
warning is emitted and the skill continues with the narrow topic
|
|
77
77
|
only. Without this option, only the given topic is harvested.
|
|
78
78
|
|
|
79
|
-
`--count`|`-c` *count*:
|
|
79
|
+
- `--count`|`-c` *count*:
|
|
80
80
|
Maximum total number of quotes across all four quadrants (default:
|
|
81
81
|
`8`, i.e. about two quotes per quadrant). The quotes are distributed
|
|
82
82
|
as evenly as possible across the quadrants, preferring the most
|
|
@@ -85,7 +85,7 @@ the attribution of the quote.
|
|
|
85
85
|
|
|
86
86
|
## ARGUMENTS
|
|
87
87
|
|
|
88
|
-
*topic-keywords*:
|
|
88
|
+
- *topic-keywords*:
|
|
89
89
|
The topic keywords the quotes are searched for. They act both as the
|
|
90
90
|
search query and as the keyword set of the *literalness* dimension of
|
|
91
91
|
the matrix.
|
|
@@ -55,7 +55,7 @@ before it is committed.
|
|
|
55
55
|
|
|
56
56
|
## OPTIONS
|
|
57
57
|
|
|
58
|
-
`--severity`|`-S`=(`LOW`|`MEDIUM`|`HIGH`):
|
|
58
|
+
- `--severity`|`-S`=(`LOW`|`MEDIUM`|`HIGH`):
|
|
59
59
|
Set the *severity floor* (default `LOW`): findings below the chosen
|
|
60
60
|
threshold are silently suppressed, ordered `LOW` < `MEDIUM` <
|
|
61
61
|
`HIGH`. The default `LOW` keeps all findings; `ACCEPTED` findings are
|
|
@@ -24,14 +24,14 @@ Brave, or `WebSearch` individually.
|
|
|
24
24
|
|
|
25
25
|
## OPTIONS
|
|
26
26
|
|
|
27
|
-
`--services`|`-s`=(`all`|`perplexity`|`brave`|`exa`|`websearch`)...:
|
|
27
|
+
- `--services`|`-s`=(`all`|`perplexity`|`brave`|`exa`|`websearch`)...:
|
|
28
28
|
The comma-separated list of search backends to query. The default
|
|
29
29
|
`all` queries every available backend;
|
|
30
30
|
otherwise only the listed backends are queried.
|
|
31
31
|
|
|
32
32
|
## ARGUMENTS
|
|
33
33
|
|
|
34
|
-
*query*:
|
|
34
|
+
- *query*:
|
|
35
35
|
The search query to dispatch to the search services.
|
|
36
36
|
|
|
37
37
|
## SCENARIOS
|
|
@@ -50,20 +50,20 @@ cheerleading.
|
|
|
50
50
|
|
|
51
51
|
## OPTIONS
|
|
52
52
|
|
|
53
|
-
`--count`|`-c` *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`|`-r` *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
64
|
## ARGUMENTS
|
|
65
65
|
|
|
66
|
-
*thesis*:
|
|
66
|
+
- *thesis*:
|
|
67
67
|
The statement, claim, or position to be charitably strengthened.
|
|
68
68
|
It may be technical, factual, or opinion-based; the skill defends
|
|
69
69
|
its strongest ("steelman") interpretation.
|
|
@@ -31,13 +31,13 @@ source code changes.
|
|
|
31
31
|
|
|
32
32
|
## OPTIONS
|
|
33
33
|
|
|
34
|
-
`--depth`|`-d` *N*:
|
|
34
|
+
- `--depth`|`-d` *N*:
|
|
35
35
|
The *maximum* number of "why" iterations (the Five-Whys chain
|
|
36
36
|
length), acting as an *upper bound* only - the analysis still stops
|
|
37
37
|
early once the root cause is reached. Defaults to *5*. A non-numeric
|
|
38
38
|
or non-positive value falls back to the default.
|
|
39
39
|
|
|
40
|
-
`--width`|`-w` *M*:
|
|
40
|
+
- `--width`|`-w` *M*:
|
|
41
41
|
The *maximum* number of *candidate sub-causes* to surface per "why"
|
|
42
42
|
level. With the default *1*, the skill walks a single causality chain
|
|
43
43
|
(classic Five-Whys); with *M* > 1, each level surfaces up to *M*
|
|
@@ -51,7 +51,7 @@ source code changes.
|
|
|
51
51
|
|
|
52
52
|
## ARGUMENTS
|
|
53
53
|
|
|
54
|
-
*fact*:
|
|
54
|
+
- *fact*:
|
|
55
55
|
The observed *fact* (symptom, problem, or surprising outcome)
|
|
56
56
|
whose root cause should be investigated. The skill implicitly
|
|
57
57
|
prepends "Why" to form the initial question.
|
|
@@ -338,8 +338,9 @@ Procedure
|
|
|
338
338
|
following the `Generated Skill Contract` above.
|
|
339
339
|
|
|
340
340
|
3. Write <skill-content/> to <target-skill/>, creating the directory
|
|
341
|
-
`<dir/>/<new-skill-name/>` if it does not exist yet.
|
|
342
|
-
|
|
341
|
+
`<dir/>/<new-skill-name/>` if it does not exist yet. Then call the
|
|
342
|
+
`ase_text_metric(file: "<target-skill/>")` tool of the `ase` MCP
|
|
343
|
+
server and set <words/> to the `words` field of its result.
|
|
343
344
|
|
|
344
345
|
4. Report the result with the following <template/>:
|
|
345
346
|
|
|
@@ -66,7 +66,7 @@ agent tool:
|
|
|
66
66
|
|
|
67
67
|
## OPTIONS
|
|
68
68
|
|
|
69
|
-
`--scope`|`-s` `local`|`user`:
|
|
69
|
+
- `--scope`|`-s` `local`|`user`:
|
|
70
70
|
Where the generated skill is stored. With `local` (the default),
|
|
71
71
|
it is written into the current project, where it can be committed
|
|
72
72
|
and reviewed alongside the code. With `user`, it is written into the
|
|
@@ -77,20 +77,20 @@ agent tool:
|
|
|
77
77
|
Copilot*, and `.agents/skills/` and `~/.codex/skills/` under *OpenAI
|
|
78
78
|
Codex*.
|
|
79
79
|
|
|
80
|
-
`--force`|`-f`:
|
|
80
|
+
- `--force`|`-f`:
|
|
81
81
|
Overwrite an already existing skill. Without this option, the skill
|
|
82
82
|
refuses with an error as soon as the target `SKILL.md` exists, so
|
|
83
83
|
hand-edited skills are never lost silently.
|
|
84
84
|
|
|
85
85
|
## ARGUMENTS
|
|
86
86
|
|
|
87
|
-
*skill-name*:
|
|
87
|
+
- *skill-name*:
|
|
88
88
|
Name of the skill to generate, matching `^[a-zA-Z][a-zA-Z0-9_-]*$`.
|
|
89
89
|
It is used as the directory name, as the frontmatter `name`, and as
|
|
90
90
|
the resulting `/`*skill-name* command (respectively the
|
|
91
91
|
`$`*skill-name* mention under *OpenAI Codex*).
|
|
92
92
|
|
|
93
|
-
*workflow-description*:
|
|
93
|
+
- *workflow-description*:
|
|
94
94
|
Free-text description of the workflow the generated skill should
|
|
95
95
|
perform. Mentioning that actions run "in parallel", that they are
|
|
96
96
|
dispatched "in a sub-agent", or naming concrete `ase-xxx-xxx` skills
|
|
@@ -15,13 +15,16 @@ START -> ase-arch-discover
|
|
|
15
15
|
START -> ase-code-insight
|
|
16
16
|
START -> ase-code-explain
|
|
17
17
|
START -> ase-code-lint
|
|
18
|
-
START -> ase-docs-
|
|
18
|
+
START -> ase-docs-shorten
|
|
19
|
+
START -> ase-docs-refine
|
|
19
20
|
START -> ase-docs-proofread
|
|
21
|
+
START -> ase-docs-distill
|
|
20
22
|
START -> ase-meta-review
|
|
21
23
|
START -> ase-meta-diff
|
|
22
24
|
START -> ase-meta-changelog
|
|
23
25
|
START -> ase-meta-commit
|
|
24
26
|
START -> ase-meta-proximity
|
|
27
|
+
START -> ase-meta-mint
|
|
25
28
|
START -> ase-meta-workflow
|
|
26
29
|
START -> ase-code-dissect
|
|
27
30
|
ase-help-skill -> END
|
|
@@ -41,13 +44,16 @@ ase-arch-discover -> END
|
|
|
41
44
|
ase-code-insight -> END
|
|
42
45
|
ase-code-explain -> END
|
|
43
46
|
ase-code-lint -> END
|
|
44
|
-
ase-docs-
|
|
47
|
+
ase-docs-shorten -> END
|
|
48
|
+
ase-docs-refine -> END
|
|
45
49
|
ase-docs-proofread -> END
|
|
50
|
+
ase-docs-distill -> END
|
|
46
51
|
ase-meta-review -> END
|
|
47
52
|
ase-meta-diff -> END
|
|
48
53
|
ase-meta-changelog -> END
|
|
49
54
|
ase-meta-commit -> END
|
|
50
55
|
ase-meta-proximity -> END
|
|
56
|
+
ase-meta-mint -> END
|
|
51
57
|
ase-meta-workflow -> END
|
|
52
58
|
ase-code-dissect -> END
|
|
53
59
|
START -> SKETCH
|
|
@@ -454,7 +454,7 @@ empty <todo-what/> or <todo-how/> renders as `(none)`:
|
|
|
454
454
|
*NOT* run any build, tests, linter, or type-checker.
|
|
455
455
|
|
|
456
456
|
1. Validate the specification and capture its <diagnostics/> array
|
|
457
|
-
of `{ file, line, column, message }` objects:
|
|
457
|
+
of `{ file, line, column, severity, message }` objects:
|
|
458
458
|
|
|
459
459
|
<if condition="<worktree-dir/> is not empty">
|
|
460
460
|
Run the command `ase spec lint` with <worktree-dir/> as its
|