@rse/ase 0.9.65 → 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/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
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
|
|
2
|
+
## NAME
|
|
3
|
+
|
|
4
|
+
`ase-docs-shorten` - Shorten a Document to a Target Length
|
|
5
|
+
|
|
6
|
+
## SYNOPSIS
|
|
7
|
+
|
|
8
|
+
`ase-docs-shorten`
|
|
9
|
+
[`--help`|`-h`]
|
|
10
|
+
[`--auto`|`-a`]
|
|
11
|
+
(`--chars`|`-c` *N* | `--words`|`-w` *N*)
|
|
12
|
+
*docs-reference*
|
|
13
|
+
|
|
14
|
+
## DESCRIPTION
|
|
15
|
+
|
|
16
|
+
The `ase-docs-shorten` skill reduces the length of a *single* document
|
|
17
|
+
until it reaches a requested *target length*. The investigation is
|
|
18
|
+
dispatched to a sub-agent (`ase:ase-docs-shorten`) so that scanning
|
|
19
|
+
details do not leak into the user-visible transcript.
|
|
20
|
+
|
|
21
|
+
The target length is stated either as `--chars` *N* or as `--words` *N*.
|
|
22
|
+
The two options are *mutually exclusive*, exactly *one* of them is
|
|
23
|
+
*mandatory*, and neither carries a default, because the target length is
|
|
24
|
+
the very quantity the shortening optimizes for. A document reference
|
|
25
|
+
which expands to *more than one* document is rejected, as it would leave
|
|
26
|
+
open whether the target bounds each document or their sum.
|
|
27
|
+
|
|
28
|
+
The shortening runs as a *three-stage cascade*, and a stage is entered
|
|
29
|
+
*only* while the target is still not met:
|
|
30
|
+
|
|
31
|
+
1. *Tighten*: shorten individual sentences without losing any content -
|
|
32
|
+
filler words struck, nominal constructions turned into verbs,
|
|
33
|
+
redundant restatements within a sentence cut.
|
|
34
|
+
|
|
35
|
+
2. *Drop*: remove low-value content - redundant restatements,
|
|
36
|
+
illustrative examples, asides, parentheticals, and the whole
|
|
37
|
+
sentences or list items which carry the least value for the reader.
|
|
38
|
+
Content is genuinely lost in this stage.
|
|
39
|
+
|
|
40
|
+
3. *Compress*: merge and rewrite the remaining content into shorter
|
|
41
|
+
expressions and sentences - related sentences fused, prose
|
|
42
|
+
enumerations turned into compact lists, multi-sentence passages
|
|
43
|
+
re-expressed as single sentences.
|
|
44
|
+
|
|
45
|
+
The skill never shortens *beyond* the target: it stops at the first
|
|
46
|
+
change which reaches it. What *survives* the shortening stays exact -
|
|
47
|
+
every surviving fact, number, technical term, qualifier, and negation is
|
|
48
|
+
preserved verbatim, nothing is invented, the order of the surviving
|
|
49
|
+
argument is kept, and fenced code blocks, inline code spans, link
|
|
50
|
+
targets, Markdown frontmatter, and the heading structure are never
|
|
51
|
+
touched.
|
|
52
|
+
|
|
53
|
+
Each proposed change is cut as a *whole block* - a paragraph, a list
|
|
54
|
+
item, a blockquote, or a heading with its following paragraph - because
|
|
55
|
+
a shortening is only judgeable in the context of the whole block it
|
|
56
|
+
rewrites. It is rendered as a *unified diff* with up to two lines of
|
|
57
|
+
context, annotated with the length it saves, exactly as in
|
|
58
|
+
[`ase-docs-refine`](../ase-docs-refine/help.md) and
|
|
59
|
+
[`ase-docs-proofread`](../ase-docs-proofread/help.md). The user
|
|
60
|
+
either accepts or rejects each block interactively (or refines it via a
|
|
61
|
+
free-text hint, which re-proposes the block without limit) or - with
|
|
62
|
+
`--auto` - applies all of them automatically. A closing *LENGTH REPORT*
|
|
63
|
+
states the achieved length against the target, so rejected blocks stay
|
|
64
|
+
visible in the outcome.
|
|
65
|
+
|
|
66
|
+
`ase-docs-shorten` is the length-reducing member of the document triple.
|
|
67
|
+
The recommended order over one document is `ase-docs-shorten` first (cut
|
|
68
|
+
the bulk), then [`ase-docs-refine`](../ase-docs-refine/help.md) (polish
|
|
69
|
+
what survives), then
|
|
70
|
+
[`ase-docs-proofread`](../ase-docs-proofread/help.md) (final correctness
|
|
71
|
+
pass), so no polishing effort is spent on text which is later dropped.
|
|
72
|
+
|
|
73
|
+
## OPTIONS
|
|
74
|
+
|
|
75
|
+
- `--chars`|`-c` *N*:
|
|
76
|
+
Shorten the document to at most *N* characters, counted over the
|
|
77
|
+
entire document content including whitespace and newlines.
|
|
78
|
+
Mutually exclusive with `--words`.
|
|
79
|
+
|
|
80
|
+
- `--words`|`-w` *N*:
|
|
81
|
+
Shorten the document to at most *N* whitespace-separated words,
|
|
82
|
+
counted over the entire document content.
|
|
83
|
+
Mutually exclusive with `--chars`.
|
|
84
|
+
|
|
85
|
+
- `--auto`|`-a`:
|
|
86
|
+
Automatically apply every proposed shortening without asking the
|
|
87
|
+
user via the interactive dialog.
|
|
88
|
+
|
|
89
|
+
## ARGUMENTS
|
|
90
|
+
|
|
91
|
+
- *docs-reference*:
|
|
92
|
+
A reference to the *single* document to shorten. A reference
|
|
93
|
+
expanding to more than one document is rejected.
|
|
94
|
+
|
|
95
|
+
## SCENARIOS
|
|
96
|
+
|
|
97
|
+
- You want a README section cut down to a hard character budget
|
|
98
|
+
- You want an abstract brought under a word limit for a submission
|
|
99
|
+
- You want the least valuable examples and asides dropped first
|
|
100
|
+
- You want to see what a shortening costs before accepting it
|
|
101
|
+
- You want a whole document shortened unattended in one pass
|
|
102
|
+
- You want the achieved length reported against the target
|
|
103
|
+
|
|
104
|
+
## EXAMPLES
|
|
105
|
+
|
|
106
|
+
Shorten a document to at most 4000 characters interactively:
|
|
107
|
+
|
|
108
|
+
```text
|
|
109
|
+
❯ /ase-docs-shorten --chars 4000 README.md
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Shorten a document to at most 250 words unattended:
|
|
113
|
+
|
|
114
|
+
```text
|
|
115
|
+
❯ /ase-docs-shorten --auto --words 250 docs/abstract.md
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## SEE ALSO
|
|
119
|
+
|
|
120
|
+
[`ase-docs-refine`](../ase-docs-refine/help.md), [`ase-docs-proofread`](../ase-docs-proofread/help.md), [`ase-docs-distill`](../ase-docs-distill/help.md).
|
|
@@ -36,7 +36,7 @@ entirely through the intent argument and the interactive dialog.
|
|
|
36
36
|
|
|
37
37
|
## ARGUMENTS
|
|
38
38
|
|
|
39
|
-
*intent*:
|
|
39
|
+
- *intent*:
|
|
40
40
|
The free-text intent to be realized. It describes *what* the user
|
|
41
41
|
wants to achieve; the skill determines *which* ASE skills and *which*
|
|
42
42
|
options and arguments realize it.
|
|
@@ -37,8 +37,10 @@
|
|
|
37
37
|
○ `ase-sync-export`: Export Artifact Set to Side-by-Side Files
|
|
38
38
|
|
|
39
39
|
⎈ **DOCUMENTATION**
|
|
40
|
-
○ `ase-docs-
|
|
40
|
+
○ `ase-docs-shorten`: Shorten a Document to a Target Length
|
|
41
|
+
○ `ase-docs-refine`: Refine Document Wording
|
|
41
42
|
○ `ase-docs-proofread`: Proofread Documents
|
|
43
|
+
○ `ase-docs-distill`: Distill Document Key Points
|
|
42
44
|
|
|
43
45
|
⎈ **VERSION CONTROL**
|
|
44
46
|
○ `ase-meta-changelog`: Update ChangeLog Entries
|
|
@@ -63,6 +65,7 @@
|
|
|
63
65
|
|
|
64
66
|
⎈ **OTHER SKILLS**
|
|
65
67
|
○ `ase-meta-workflow`: Generate a Workflow Skill
|
|
68
|
+
○ `ase-meta-mint`: Mint an Identifier or Name
|
|
66
69
|
○ `ase-meta-config`: Configuration Management
|
|
67
70
|
○ `ase-meta-compat`: Self-Test ASE Compatibility
|
|
68
71
|
|
|
@@ -41,7 +41,7 @@ The skill exposes *no* option flags beyond `--help`/`-h`.
|
|
|
41
41
|
|
|
42
42
|
## ARGUMENTS
|
|
43
43
|
|
|
44
|
-
*skill-name*:
|
|
44
|
+
- *skill-name*:
|
|
45
45
|
The full name of the ASE skill, any abbreviation of it, or a
|
|
46
46
|
description of its purpose. If omitted, the entire skill catalog is
|
|
47
47
|
listed.
|
|
@@ -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
|