@rse/ase 0.9.48 → 0.9.50
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-config.js +45 -1
- package/dst/ase-guidance.js +89 -0
- package/dst/ase-hook.js +17 -6
- package/dst/ase-service.js +0 -2
- package/dst/ase-setup.js +7 -5
- package/dst/ase-statusline.js +28 -4
- package/package.json +2 -2
- 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/meta/ase-common-task.md +9 -0
- package/plugin/meta/ase-constitution.md +6 -21
- package/plugin/meta/ase-getopt.md +11 -1
- package/plugin/meta/ase-persona.md +2 -3
- package/plugin/meta/ase-skill.md +92 -4
- package/plugin/package.json +2 -2
- package/plugin/skills/ase-arch-analyze/SKILL.md +8 -6
- package/plugin/skills/ase-arch-discover/SKILL.md +12 -0
- package/plugin/skills/ase-code-analyze/SKILL.md +6 -4
- package/plugin/skills/ase-code-lint/SKILL.md +16 -0
- package/plugin/skills/ase-docs-proofread/SKILL.md +10 -0
- package/plugin/skills/ase-help-skill/SKILL.md +10 -2
- package/plugin/skills/ase-help-skill/catalog.md +1 -1
- package/plugin/skills/ase-meta-brainstorm/SKILL.md +8 -0
- package/plugin/skills/ase-meta-commit/SKILL.md +13 -0
- package/plugin/skills/ase-meta-config/SKILL.md +165 -0
- package/plugin/skills/ase-meta-config/help.md +136 -0
- package/plugin/skills/ase-meta-diaboli/help.md +1 -1
- package/plugin/skills/ase-meta-diff/SKILL.md +22 -0
- package/plugin/skills/ase-meta-review/SKILL.md +13 -1
- package/plugin/skills/ase-sync-export/SKILL.md +14 -0
- package/plugin/skills/ase-sync-import/SKILL.md +10 -0
- package/plugin/skills/ase-task-list/SKILL.md +21 -0
- package/plugin/skills/ase-task-view/SKILL.md +21 -0
- package/plugin/skills/ase-meta-persona/SKILL.md +0 -84
- package/plugin/skills/ase-meta-persona/help.md +0 -60
package/plugin/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"homepage": "https://ase.tools",
|
|
7
7
|
"repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
|
|
8
8
|
"bugs": { "url": "https://github.com/rse/ase/issues" },
|
|
9
|
-
"version": "0.9.
|
|
9
|
+
"version": "0.9.50",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"author": {
|
|
12
12
|
"name": "Dr. Ralf S. Engelschall",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"@rse/stx": "1.1.6",
|
|
18
18
|
"markdownlint": "0.41.1",
|
|
19
19
|
"markdownlint-cli2": "0.23.1",
|
|
20
|
-
"eslint": "10.
|
|
20
|
+
"eslint": "10.8.0",
|
|
21
21
|
"@eslint/markdown": "8.0.3",
|
|
22
22
|
"eslint-markdown": "0.12.1"
|
|
23
23
|
},
|
|
@@ -465,14 +465,16 @@ interface quality, quality attributes, and architecture governance.
|
|
|
465
465
|
"<title/>: <description/>" }` entry per reported PROBLEM and one
|
|
466
466
|
`{ command: "set", key: "ase-issue-T<n/>", val: "<title/>:
|
|
467
467
|
<description/>" }` entry per reported TRADEOFF.
|
|
468
|
-
</step>
|
|
469
468
|
|
|
470
|
-
|
|
471
|
-
|
|
469
|
+
Finally, give a final hint by expanding the following (which,
|
|
470
|
+
depending on the configured <ase-guidance-level/>, may expand into
|
|
471
|
+
nothing and hence emit no output at all):
|
|
472
|
+
|
|
473
|
+
<ase-tpl-hint level="minimal">
|
|
474
|
+
For deeper analysis, suggestions on solution approaches and then final source code changes, use `/ase-code-resolve P{n}` or `/ase-code-resolve T{n}` in the same or even a different session.
|
|
475
|
+
</ase-tpl-hint>
|
|
472
476
|
|
|
473
|
-
<template>
|
|
474
|
-
⧉ **ASE**: ↪ hint: **For deeper analysis, suggestions on solution approaches and then final source code changes, use `/ase-code-resolve P{n}` or `/ase-code-resolve T{n}` in the same or even a different session.**
|
|
475
|
-
</template>
|
|
476
477
|
</step>
|
|
478
|
+
|
|
477
479
|
</flow>
|
|
478
480
|
|
|
@@ -238,6 +238,18 @@ for the technology stack to *provide* the *needed functionality*
|
|
|
238
238
|
[...]
|
|
239
239
|
| **<name-N/>** | `<package-N/>` | <version-N/> | **<downloads-N/>** | **<stars-N/>** | **<updated-N/>** | <created-N/> | <deps-N/> |
|
|
240
240
|
</template>
|
|
241
|
+
|
|
242
|
+
3. Finally, give the closing hints by expanding the following
|
|
243
|
+
(which, depending on the configured <ase-guidance-level/>, may
|
|
244
|
+
each expand into nothing and hence emit no output at all):
|
|
245
|
+
|
|
246
|
+
<ase-tpl-hint level="normal">
|
|
247
|
+
To pick a single component from the ranking against weighted criteria, use `/ase-meta-evaluate`.
|
|
248
|
+
</ase-tpl-hint>
|
|
249
|
+
|
|
250
|
+
<ase-tpl-hint level="verbose">
|
|
251
|
+
Use `/ase-arch-discover --limit` to widen the candidate set, `--staleness` to change the aging threshold, and `--small-scope` to prefer small, focused components.
|
|
252
|
+
</ase-tpl-hint>
|
|
241
253
|
</step>
|
|
242
254
|
</flow>
|
|
243
255
|
|
|
@@ -196,11 +196,13 @@ problems in *performance* and *efficiency*, or problems in *security*.
|
|
|
196
196
|
followed by one `{ command: "set", key: "ase-issue-P<n/>", val:
|
|
197
197
|
"<title/>: <description/>" }` entry per reported problem.
|
|
198
198
|
|
|
199
|
-
Finally,
|
|
199
|
+
Finally, give a final hint by expanding the following (which,
|
|
200
|
+
depending on the configured <ase-guidance-level/>, may expand into
|
|
201
|
+
nothing and hence emit no output at all):
|
|
200
202
|
|
|
201
|
-
<
|
|
202
|
-
|
|
203
|
-
</
|
|
203
|
+
<ase-tpl-hint level="minimal">
|
|
204
|
+
For deeper analysis, suggestions on solution approaches and then final problem resolution, use `/ase-code-resolve P{n}` in the same or even a different session.
|
|
205
|
+
</ase-tpl-hint>
|
|
204
206
|
|
|
205
207
|
You *MUST* not output anything else in this STEP 3,
|
|
206
208
|
especially not any further explanations.
|
|
@@ -431,6 +431,22 @@ related to a set of code quality aspects.
|
|
|
431
431
|
<ase-tpl-bullet-secondary/> **LINT FINISHED**
|
|
432
432
|
</template>
|
|
433
433
|
|
|
434
|
+
5. Finally, give the closing hints by expanding the following
|
|
435
|
+
(which, depending on the configured <ase-guidance-level/>, may
|
|
436
|
+
each expand into nothing and hence emit no output at all):
|
|
437
|
+
|
|
438
|
+
<if condition="at least one problem in <problems/> was left uncorrected">
|
|
439
|
+
<ase-tpl-hint level="normal">
|
|
440
|
+
For problems whose correction demands more than a local edit, use `/ase-code-resolve` to derive and apply a full solution approach.
|
|
441
|
+
</ase-tpl-hint>
|
|
442
|
+
</if>
|
|
443
|
+
|
|
444
|
+
<if condition="<getopt-option-auto/> is not equal `true`">
|
|
445
|
+
<ase-tpl-hint level="verbose">
|
|
446
|
+
Use `/ase-code-lint --auto` to apply all corrections unattended, and `--severity` to raise the reporting floor.
|
|
447
|
+
</ase-tpl-hint>
|
|
448
|
+
</if>
|
|
449
|
+
|
|
434
450
|
</step>
|
|
435
451
|
|
|
436
452
|
</flow>
|
|
@@ -322,6 +322,16 @@ Analyze documents for spelling, punctuation, or grammar errors
|
|
|
322
322
|
<ase-tpl-bullet-secondary/> **PROOFREAD FINISHED**
|
|
323
323
|
</template>
|
|
324
324
|
|
|
325
|
+
5. Finally, give the closing hint by expanding the following
|
|
326
|
+
(which, depending on the configured <ase-guidance-level/>, may
|
|
327
|
+
expand into nothing and hence emit no output at all):
|
|
328
|
+
|
|
329
|
+
<if condition="<getopt-option-auto/> is not equal `true`">
|
|
330
|
+
<ase-tpl-hint level="verbose">
|
|
331
|
+
Use `/ase-docs-proofread --auto` to apply all corrections unattended.
|
|
332
|
+
</ase-tpl-hint>
|
|
333
|
+
</if>
|
|
334
|
+
|
|
325
335
|
</step>
|
|
326
336
|
|
|
327
337
|
</flow>
|
|
@@ -63,9 +63,17 @@ the *sole* index <skill-ref/> is resolved against:
|
|
|
63
63
|
<catalog/>
|
|
64
64
|
|
|
65
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
66
|
</template>
|
|
67
|
+
|
|
68
|
+
The rendered <catalog/> itself was explicitly requested and
|
|
69
|
+
hence is *always* emitted. Only the trailing pointer to the
|
|
70
|
+
per-skill manual page is a *hint*, so emit it by expanding the
|
|
71
|
+
following (which, depending on the configured
|
|
72
|
+
<ase-guidance-level/>, may expand into nothing):
|
|
73
|
+
|
|
74
|
+
<ase-tpl-hint level="normal">
|
|
75
|
+
run `/ase-help-skill ase-xxx-xxx` for manual page of individual skill
|
|
76
|
+
</ase-tpl-hint>
|
|
69
77
|
</if>
|
|
70
78
|
|
|
71
79
|
2. Set <skill-ref-raw/> to <skill-ref/> with only its leading and
|
|
@@ -271,6 +271,14 @@ Honor the following tenets throughout the brainstorming:
|
|
|
271
271
|
<ase-tpl-bullet-signal/> **RECOMMENDED IDEA**: <recommendation/>
|
|
272
272
|
</template>
|
|
273
273
|
|
|
274
|
+
5. Finally, give the closing hint by expanding the following (which,
|
|
275
|
+
depending on the configured <ase-guidance-level/>, may expand
|
|
276
|
+
into nothing and hence emit no output at all):
|
|
277
|
+
|
|
278
|
+
<ase-tpl-hint level="normal">
|
|
279
|
+
To turn the recommended idea into a plan, use `/ase-task-edit`; to turn it directly into code, use `/ase-code-craft`.
|
|
280
|
+
</ase-tpl-hint>
|
|
281
|
+
|
|
274
282
|
</step>
|
|
275
283
|
|
|
276
284
|
</flow>
|
|
@@ -71,6 +71,19 @@ currently staged Git changes.
|
|
|
71
71
|
|
|
72
72
|
Do *not* output any further explanation.
|
|
73
73
|
|
|
74
|
+
Finally, give the closing hint by expanding the following (which,
|
|
75
|
+
depending on the configured <ase-guidance-level/>, may expand into
|
|
76
|
+
nothing and hence emit no output at all):
|
|
77
|
+
|
|
78
|
+
<if condition="
|
|
79
|
+
a `CHANGELOG.md` file exists in the project (or in any affected
|
|
80
|
+
sub-package) and is *not* itself part of the staged changes
|
|
81
|
+
">
|
|
82
|
+
<ase-tpl-hint level="normal">
|
|
83
|
+
The staged changes do not touch `CHANGELOG.md` -- use `/ase-meta-changelog` to update its entries before committing.
|
|
84
|
+
</ase-tpl-hint>
|
|
85
|
+
</if>
|
|
86
|
+
|
|
74
87
|
</step>
|
|
75
88
|
|
|
76
89
|
</flow>
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ase-meta-config
|
|
3
|
+
argument-hint: "[--help|-h] [--scope|-s <scope>] <operation> [<args>]"
|
|
4
|
+
description: >
|
|
5
|
+
List, get, set, or delete the layered ASE configuration values across
|
|
6
|
+
the user/project/task/session scope chain.
|
|
7
|
+
Use when the user wants to "configure" ASE, or to inspect or change a
|
|
8
|
+
configuration key like `agent.persona`, `agent.guidance`, `agent.task`,
|
|
9
|
+
or `project.boxing`.
|
|
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
|
+
<skill name="ase-meta-config">
|
|
20
|
+
Configuration Management
|
|
21
|
+
</skill>
|
|
22
|
+
|
|
23
|
+
<expand name="getopt"
|
|
24
|
+
arg1="ase-meta-config"
|
|
25
|
+
arg2="--scope|-s=">
|
|
26
|
+
$ARGUMENTS
|
|
27
|
+
</expand>
|
|
28
|
+
|
|
29
|
+
<objective>
|
|
30
|
+
*List*, *get*, *set*, or *delete* the values of the *layered
|
|
31
|
+
configuration* of ASE, mirroring the non-interactive `ase config
|
|
32
|
+
<operation>` CLI subcommands *exclusively* through the `ase` MCP server.
|
|
33
|
+
</objective>
|
|
34
|
+
|
|
35
|
+
Procedure
|
|
36
|
+
---------
|
|
37
|
+
|
|
38
|
+
1. **Determine Operation:**
|
|
39
|
+
|
|
40
|
+
1. Set <arguments><getopt-arguments/></arguments>, with any leading
|
|
41
|
+
and trailing whitespace stripped. Split <arguments/> into
|
|
42
|
+
whitespace-separated tokens, honoring single and double quotes
|
|
43
|
+
(a quoted token is *one* token, with its surrounding quotes
|
|
44
|
+
removed). Set <operation/> to the *first* token, lower-cased,
|
|
45
|
+
and <operands/> to the list of the *remaining* tokens. If
|
|
46
|
+
<arguments/> is empty, set <operation>(none)</operation> and
|
|
47
|
+
<operands/> to the empty list. Inherit the always existing
|
|
48
|
+
<ase-session-id/> from the current context.
|
|
49
|
+
Do not output anything.
|
|
50
|
+
|
|
51
|
+
2. Determine the target scope chain:
|
|
52
|
+
|
|
53
|
+
<if condition="<getopt-option-scope/> is empty">
|
|
54
|
+
Set <scope>session:<ase-session-id/></scope>. Reads then cascade
|
|
55
|
+
`user` -> `project` -> `session`, and writes land on the *session*
|
|
56
|
+
layer -- the only layer on which the `agent.task` and `agent.skill`
|
|
57
|
+
keys are writable at all.
|
|
58
|
+
</if>
|
|
59
|
+
<else>
|
|
60
|
+
Set <scope><getopt-option-scope/></scope>, forwarding the given
|
|
61
|
+
scope chain verbatim.
|
|
62
|
+
</else>
|
|
63
|
+
|
|
64
|
+
Do not output anything.
|
|
65
|
+
|
|
66
|
+
3. You *MUST* *NOT* use `Bash`, `Read`, `Write`, `Edit`, or any
|
|
67
|
+
other filesystem-touching tool anywhere in this skill. *Every*
|
|
68
|
+
configuration access is performed *exclusively* through the
|
|
69
|
+
`ase_config_*` tools of the `ase` MCP server.
|
|
70
|
+
Do not output anything.
|
|
71
|
+
|
|
72
|
+
2. **Dispatch Operation:**
|
|
73
|
+
|
|
74
|
+
1. <if condition="<operation/> is `list` AND <operands/> is empty">
|
|
75
|
+
Call the `ase_config_list(scope: "<scope/>")` tool from the `ase`
|
|
76
|
+
MCP server. The result is a structured object with an `entries`
|
|
77
|
+
array where each entry has a `key`, a `value`, and a `scope` field.
|
|
78
|
+
|
|
79
|
+
- If the `entries` array is empty, output the following <template/>:
|
|
80
|
+
|
|
81
|
+
<template>
|
|
82
|
+
⧉ **ASE**: ⚙ config (scope: `<scope/>`): *(none)*
|
|
83
|
+
</template>
|
|
84
|
+
|
|
85
|
+
- Else output the following <template/>, where each <key/>,
|
|
86
|
+
<value/>, and <entry-scope/> correspond to one entry of the
|
|
87
|
+
`entries` array, in the given order:
|
|
88
|
+
|
|
89
|
+
<template>
|
|
90
|
+
⧉ **ASE**: ⚙ config (scope: `<scope/>`):
|
|
91
|
+
|
|
92
|
+
| *Key* | *Value* | *Scope* |
|
|
93
|
+
|------------------|------------------|------------------|
|
|
94
|
+
| `<key/>` | **<value/>** | `<entry-scope/>` |
|
|
95
|
+
| [...] | [...] | [...] |
|
|
96
|
+
|
|
97
|
+
</template>
|
|
98
|
+
</if>
|
|
99
|
+
|
|
100
|
+
2. <elseif condition="<operation/> is `get` AND <operands/> has exactly one token">
|
|
101
|
+
Set <key/> to the single token of <operands/>. Call the
|
|
102
|
+
`ase_config_get(key: "<key/>", scope: "<scope/>")` tool from the
|
|
103
|
+
`ase` MCP server and set <text/> to its `text` output field.
|
|
104
|
+
|
|
105
|
+
- If <text/> is empty, the key is not set at all. Output the
|
|
106
|
+
following <template/>:
|
|
107
|
+
|
|
108
|
+
<template>
|
|
109
|
+
⧉ **ASE**: ⚙ config: `<key/>` (scope: `<scope/>`): *(not set)*
|
|
110
|
+
</template>
|
|
111
|
+
|
|
112
|
+
- Else set <value/> to the JSON-decoded <text/> and output the
|
|
113
|
+
following <template/>:
|
|
114
|
+
|
|
115
|
+
<template>
|
|
116
|
+
⧉ **ASE**: ⚙ config: `<key/>` (scope: `<scope/>`): **<value/>**
|
|
117
|
+
</template>
|
|
118
|
+
</elseif>
|
|
119
|
+
|
|
120
|
+
3. <elseif condition="<operation/> is `set` AND <operands/> has exactly two tokens">
|
|
121
|
+
Set <key/> to the *first* and <value/> to the *second* token of
|
|
122
|
+
<operands/>. Call the `ase_config_set(key: "<key/>", val:
|
|
123
|
+
"<value/>", scope: "<scope/>")` tool from the `ase` MCP server.
|
|
124
|
+
|
|
125
|
+
Then, if <key/> is one of the three keys steering your *own*
|
|
126
|
+
behaviour, you *MUST* immediately adopt the new <value/> for
|
|
127
|
+
the remainder of the session -- *including* the output of this
|
|
128
|
+
very skill run -- by re-evaluating and internalizing the
|
|
129
|
+
corresponding rules of the constitution: for `agent.persona` set
|
|
130
|
+
<ase-persona-style><value/></ase-persona-style> and re-evaluate
|
|
131
|
+
the `Persona Communication Style` rules, for `agent.guidance` set
|
|
132
|
+
<ase-guidance-level><value/></ase-guidance-level> and re-evaluate
|
|
133
|
+
the `Guidance Hint Level` rules, and for `project.boxing` set
|
|
134
|
+
<ase-project-boxing><value/></ase-project-boxing> and re-evaluate
|
|
135
|
+
the `Artifact Boxing Transparency` rules. Do not output anything
|
|
136
|
+
for this.
|
|
137
|
+
|
|
138
|
+
Then only output the following <template/>:
|
|
139
|
+
|
|
140
|
+
<template>
|
|
141
|
+
⧉ **ASE**: ⚙ config: `<key/>` (scope: `<scope/>`): **<value/>** (*updated*)
|
|
142
|
+
</template>
|
|
143
|
+
</elseif>
|
|
144
|
+
|
|
145
|
+
4. <elseif condition="<operation/> is `delete` AND <operands/> has exactly one token">
|
|
146
|
+
Set <key/> to the single token of <operands/>. Call the
|
|
147
|
+
`ase_config_delete(key: "<key/>", scope: "<scope/>")` tool from
|
|
148
|
+
the `ase` MCP server. Then only output the following <template/>:
|
|
149
|
+
|
|
150
|
+
<template>
|
|
151
|
+
⧉ **ASE**: ⚙ config: `<key/>` (scope: `<scope/>`): (*deleted*)
|
|
152
|
+
</template>
|
|
153
|
+
</elseif>
|
|
154
|
+
|
|
155
|
+
5. <else>
|
|
156
|
+
The <operation/> is either missing, unknown, or was given with
|
|
157
|
+
the wrong number of operands. Notice that the `init` and `edit`
|
|
158
|
+
subcommands of the `ase config` CLI are deliberately *not*
|
|
159
|
+
mirrored by this skill. Only output the following <template/>
|
|
160
|
+
and then immediately *STOP* processing the entire current skill:
|
|
161
|
+
|
|
162
|
+
<template>
|
|
163
|
+
⧉ **ASE**: ☻ skill: **ase-meta-config**, ▶ ERROR: invalid operation: **<operation/>** (expected `list`, `get <key>`, `set <key> <value>`, or `delete <key>`)
|
|
164
|
+
</template>
|
|
165
|
+
</else>
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
|
|
2
|
+
## NAME
|
|
3
|
+
|
|
4
|
+
`ase-meta-config` - Configuration Management
|
|
5
|
+
|
|
6
|
+
## SYNOPSIS
|
|
7
|
+
|
|
8
|
+
`ase-meta-config`
|
|
9
|
+
[`--help`|`-h`]
|
|
10
|
+
[`--scope`|`-s` *scope*]
|
|
11
|
+
*operation*
|
|
12
|
+
[*args*]
|
|
13
|
+
|
|
14
|
+
## DESCRIPTION
|
|
15
|
+
|
|
16
|
+
The `ase-meta-config` skill lists, reads, writes, and removes the values
|
|
17
|
+
of the *layered ASE configuration* from inside the assistant session. It
|
|
18
|
+
mirrors the non-interactive subcommands of the `ase config` CLI, but
|
|
19
|
+
performs *every* access through the `ase_config_list`, `ase_config_get`,
|
|
20
|
+
`ase_config_set`, and `ase_config_delete` tools of the `ase` MCP server -
|
|
21
|
+
it never shells out and never touches a file directly.
|
|
22
|
+
|
|
23
|
+
The configuration is organized as a chain of *scopes*, canonically
|
|
24
|
+
ordered `default` < `user` < `project` < `task` < `session`. Reads
|
|
25
|
+
cascade from the strongest (rightmost) scope down to the weakest and
|
|
26
|
+
return the first value that is defined; writes are always confined to
|
|
27
|
+
the strongest (target) scope of the chain.
|
|
28
|
+
|
|
29
|
+
The recognized keys are grouped under `project.*` (`project.id`,
|
|
30
|
+
`project.name`, `project.boxing`, and the
|
|
31
|
+
`project.artifact.`*kind*`.{basedir,files}` globs) and `agent.*`
|
|
32
|
+
(`agent.persona`, `agent.guidance`, `agent.task`, and `agent.skill`).
|
|
33
|
+
Some keys are writable on selected scopes only; in particular
|
|
34
|
+
`agent.task` and `agent.skill` are writable on a `session` scope only,
|
|
35
|
+
and the `project.artifact.*` globs are writable on the `user` and
|
|
36
|
+
`project` scopes only.
|
|
37
|
+
|
|
38
|
+
The three keys steering the behaviour of the agent itself accept fixed
|
|
39
|
+
value sets: `agent.persona` selects the *communication style* and is one
|
|
40
|
+
of the decorative, eloquent, and explaining `writer`, the concise,
|
|
41
|
+
factual, and accurate `engineer` (the default), the layered,
|
|
42
|
+
pyramid-structured `journalist`, the brief, factual, and abbreviating
|
|
43
|
+
`telegrapher`, or the terse, rough, and stuttering `caveman`;
|
|
44
|
+
`agent.guidance` selects the amount of unsolicited hints and is one of
|
|
45
|
+
`none`, `minimal`, `normal` (the default), or `verbose`; and
|
|
46
|
+
`project.boxing` selects the artifact transparency and is one of `white`,
|
|
47
|
+
`grey`, or `black`. Setting `agent.persona`, `agent.guidance`, or
|
|
48
|
+
`project.boxing` takes effect immediately, i.e. still within the running
|
|
49
|
+
session.
|
|
50
|
+
|
|
51
|
+
The following *operations* exist:
|
|
52
|
+
|
|
53
|
+
- `list`: List all effective configuration entries of the scope chain as
|
|
54
|
+
a table of key, value, and the scope that supplied the value. For
|
|
55
|
+
overlapping keys only the value of the strongest scope is shown.
|
|
56
|
+
|
|
57
|
+
- `get` *key*: Report the effective value at the dotted *key*, or
|
|
58
|
+
`(not set)` if no scope of the chain defines it.
|
|
59
|
+
|
|
60
|
+
- `set` *key* *value*: Write *value* at the dotted *key* on the target
|
|
61
|
+
scope. The value is validated against the configuration schema before
|
|
62
|
+
it is persisted.
|
|
63
|
+
|
|
64
|
+
- `delete` *key*: Remove the value at the dotted *key* from the target
|
|
65
|
+
scope. A key that is not present is silently ignored.
|
|
66
|
+
|
|
67
|
+
The `init` and `edit` subcommands of the `ase config` CLI are
|
|
68
|
+
deliberately *not* mirrored: `edit` is bound to the interactive `$EDITOR`
|
|
69
|
+
and therefore has no meaning inside an assistant turn, and `init` is a
|
|
70
|
+
preset-bootstrapping operation that stays a shell concern next to `ase
|
|
71
|
+
setup`. Both remain available as `ase config init` and `ase config edit`
|
|
72
|
+
on the command line.
|
|
73
|
+
|
|
74
|
+
## OPTIONS
|
|
75
|
+
|
|
76
|
+
`--scope`|`-s` *scope*:
|
|
77
|
+
The scope chain to operate on, given as a comma-separated list of
|
|
78
|
+
`user`, `project`, `task:`*id*, and/or `session:`*id* terms, in any
|
|
79
|
+
order and at most one term per kind. The `user` term is always
|
|
80
|
+
implicitly added at the bottom of the chain, and `project` is
|
|
81
|
+
implicitly added whenever a project context exists. If the option is
|
|
82
|
+
omitted, the chain of the *current session* (`session:`*id*) is used,
|
|
83
|
+
so that reads see the full `user` -> `project` -> `session` cascade
|
|
84
|
+
and writes -- including those to the session-only keys `agent.task`
|
|
85
|
+
and `agent.skill` -- land on the session layer.
|
|
86
|
+
|
|
87
|
+
## ARGUMENTS
|
|
88
|
+
|
|
89
|
+
*operation*:
|
|
90
|
+
The operation to perform; one of `list`, `get`, `set`, or `delete`.
|
|
91
|
+
|
|
92
|
+
*args*:
|
|
93
|
+
The operands of the operation: none for `list`, a dotted *key* for
|
|
94
|
+
`get` and `delete`, and a dotted *key* plus a *value* for `set`.
|
|
95
|
+
|
|
96
|
+
## EXAMPLES
|
|
97
|
+
|
|
98
|
+
List all effective configuration entries:
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
❯ /ase-meta-config list
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Report the effective persona style:
|
|
105
|
+
|
|
106
|
+
```text
|
|
107
|
+
❯ /ase-meta-config get agent.persona
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Switch the communication style for the current session only:
|
|
111
|
+
|
|
112
|
+
```text
|
|
113
|
+
❯ /ase-meta-config set agent.persona telegrapher
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Switch the project boxing for the current session only:
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
❯ /ase-meta-config set project.boxing grey
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Persist the guidance level for the whole project instead:
|
|
123
|
+
|
|
124
|
+
```text
|
|
125
|
+
❯ /ase-meta-config --scope project set agent.guidance minimal
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Remove a value from the user-level configuration:
|
|
129
|
+
|
|
130
|
+
```text
|
|
131
|
+
❯ /ase-meta-config --scope user delete project.name
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## SEE ALSO
|
|
135
|
+
|
|
136
|
+
[`ase-task-id`](../ase-task-id/help.md).
|
|
@@ -74,5 +74,5 @@ Surface at least fifteen anti-theses:
|
|
|
74
74
|
## SEE ALSO
|
|
75
75
|
|
|
76
76
|
[`ase-meta-why`](../ase-meta-why/help.md), [`ase-meta-evaluate`](../ase-meta-evaluate/help.md), [`ase-meta-quorum`](../ase-meta-quorum/help.md),
|
|
77
|
-
[`ase-meta-
|
|
77
|
+
[`ase-meta-steelman`](../ase-meta-steelman/help.md).
|
|
78
78
|
|
|
@@ -356,5 +356,27 @@ Procedure
|
|
|
356
356
|
|
|
357
357
|
</step>
|
|
358
358
|
|
|
359
|
+
6. <step id="STEP 6: Give Final Hints">
|
|
360
|
+
|
|
361
|
+
Finally, give the closing hints by expanding the following (which,
|
|
362
|
+
depending on the configured <ase-guidance-level/>, may each expand
|
|
363
|
+
into nothing and hence emit no output at all):
|
|
364
|
+
|
|
365
|
+
<ase-tpl-hint level="normal">
|
|
366
|
+
For a human-reviewer-style critique of the very same staged changes, with an approve/reject verdict, use `/ase-meta-review`.
|
|
367
|
+
</ase-tpl-hint>
|
|
368
|
+
|
|
369
|
+
<if condition="
|
|
370
|
+
<getopt-option-coherence/> is not equal `true` or
|
|
371
|
+
<getopt-option-risk/> is not equal `true` or
|
|
372
|
+
<getopt-option-blast/> is not equal `true`
|
|
373
|
+
">
|
|
374
|
+
<ase-tpl-hint level="verbose">
|
|
375
|
+
Use `/ase-meta-diff --coherence --risk --blast` to additionally scrutinize the intent coherence, the risk profile, and the blast radius of the staged changes.
|
|
376
|
+
</ase-tpl-hint>
|
|
377
|
+
</if>
|
|
378
|
+
|
|
379
|
+
</step>
|
|
380
|
+
|
|
359
381
|
</flow>
|
|
360
382
|
|
|
@@ -151,7 +151,9 @@ Procedure
|
|
|
151
151
|
|
|
152
152
|
2. <if condition="<findings/> is empty">
|
|
153
153
|
Only output the following <template/> and then *SKIP* the
|
|
154
|
-
remainder of this STEP 3
|
|
154
|
+
remainder of this STEP 3 (an empty finding list implies the
|
|
155
|
+
`APPROVE` verdict, so the closing hint of substep 4 would expand
|
|
156
|
+
into nothing anyway):
|
|
155
157
|
|
|
156
158
|
<template>
|
|
157
159
|
|
|
@@ -191,6 +193,16 @@ Procedure
|
|
|
191
193
|
Do *not* output any further explanation.
|
|
192
194
|
</if>
|
|
193
195
|
|
|
196
|
+
4. Finally, give the closing hint by expanding the following
|
|
197
|
+
(which, depending on the configured <ase-guidance-level/>, may
|
|
198
|
+
expand into nothing and hence emit no output at all):
|
|
199
|
+
|
|
200
|
+
<if condition="<verdict/> starts with `REJECT`">
|
|
201
|
+
<ase-tpl-hint level="normal">
|
|
202
|
+
Use `/ase-code-resolve` to derive and apply a solution approach for the findings which demand changes.
|
|
203
|
+
</ase-tpl-hint>
|
|
204
|
+
</if>
|
|
205
|
+
|
|
194
206
|
</step>
|
|
195
207
|
|
|
196
208
|
</flow>
|
|
@@ -174,6 +174,20 @@ Procedure
|
|
|
174
174
|
|
|
175
175
|
</if>
|
|
176
176
|
|
|
177
|
+
3. Finally, give the closing hints by expanding the following
|
|
178
|
+
(which, depending on the configured <ase-guidance-level/>, may
|
|
179
|
+
each expand into nothing and hence emit no output at all):
|
|
180
|
+
|
|
181
|
+
<if condition="at least one export file was written">
|
|
182
|
+
<ase-tpl-hint level="normal">
|
|
183
|
+
Exports are *derived* and go stale as their source artifacts drift -- use `/ase-sync-reconcile` to align the artifacts first, then re-run this skill.
|
|
184
|
+
</ase-tpl-hint>
|
|
185
|
+
</if>
|
|
186
|
+
|
|
187
|
+
<ase-tpl-hint level="verbose">
|
|
188
|
+
Use `/ase-sync-export --source` to narrow the exported artifact kinds, and a trailing filtering hint to narrow the exports themselves.
|
|
189
|
+
</ase-tpl-hint>
|
|
190
|
+
|
|
177
191
|
</step>
|
|
178
192
|
|
|
179
193
|
</flow>
|
|
@@ -191,6 +191,16 @@ Procedure
|
|
|
191
191
|
|
|
192
192
|
</if>
|
|
193
193
|
|
|
194
|
+
7. Finally, give the closing hint by expanding the following (which,
|
|
195
|
+
depending on the configured <ase-guidance-level/>, may expand
|
|
196
|
+
into nothing and hence emit no output at all):
|
|
197
|
+
|
|
198
|
+
<if condition="at least one target artifact was generated or updated">
|
|
199
|
+
<ase-tpl-hint level="normal">
|
|
200
|
+
To propagate the imported information to the remaining artifact kinds, use `/ase-sync-reconcile`.
|
|
201
|
+
</ase-tpl-hint>
|
|
202
|
+
</if>
|
|
203
|
+
|
|
194
204
|
</step>
|
|
195
205
|
|
|
196
206
|
</flow>
|
|
@@ -72,3 +72,24 @@ Procedure
|
|
|
72
72
|
|
|
73
73
|
</template>
|
|
74
74
|
|
|
75
|
+
3. Finally, give the closing hints by expanding the following (which,
|
|
76
|
+
depending on the configured <ase-guidance-level/>, may each expand
|
|
77
|
+
into nothing and hence emit no output at all):
|
|
78
|
+
|
|
79
|
+
<if condition="the `tasks` array is NOT empty">
|
|
80
|
+
<ase-tpl-hint level="normal">
|
|
81
|
+
Use `/ase-task-id <id>` to switch to one of the listed tasks and `/ase-task-view` to inspect its plan.
|
|
82
|
+
</ase-tpl-hint>
|
|
83
|
+
</if>
|
|
84
|
+
<else>
|
|
85
|
+
<ase-tpl-hint level="normal">
|
|
86
|
+
No task plan exists yet -- use `/ase-task-edit` to create one through a conversational loop.
|
|
87
|
+
</ase-tpl-hint>
|
|
88
|
+
</else>
|
|
89
|
+
|
|
90
|
+
<if condition="<getopt-option-verbose/> is not equal `true`">
|
|
91
|
+
<ase-tpl-hint level="verbose">
|
|
92
|
+
Use `/ase-task-list --verbose` to additionally show the last-modified timestamp of each task plan.
|
|
93
|
+
</ase-tpl-hint>
|
|
94
|
+
</if>
|
|
95
|
+
|
|
@@ -93,3 +93,24 @@ Procedure
|
|
|
93
93
|
</template>
|
|
94
94
|
</if>
|
|
95
95
|
|
|
96
|
+
3. Finally, give the closing hints by expanding the following (which,
|
|
97
|
+
depending on the configured <ase-guidance-level/>, may each
|
|
98
|
+
expand into nothing and hence emit no output at all):
|
|
99
|
+
|
|
100
|
+
<if condition="<task-content/> is not empty">
|
|
101
|
+
<ase-tpl-hint level="normal">
|
|
102
|
+
Use `/ase-task-edit` or `/ase-task-grill` to refine this plan, `/ase-task-preflight` to dry-run it, and `/ase-task-implement` to realize it.
|
|
103
|
+
</ase-tpl-hint>
|
|
104
|
+
|
|
105
|
+
<if condition="<getopt-option-full/> is not equal `true` and the `## IMPLEMENTATION DRAFT` section was replaced with `[...]`">
|
|
106
|
+
<ase-tpl-hint level="verbose">
|
|
107
|
+
Use `/ase-task-view --full` to show the elided `IMPLEMENTATION DRAFT` section, too.
|
|
108
|
+
</ase-tpl-hint>
|
|
109
|
+
</if>
|
|
110
|
+
</if>
|
|
111
|
+
<else>
|
|
112
|
+
<ase-tpl-hint level="normal">
|
|
113
|
+
No plan exists under this task id -- use `/ase-task-list` to see the available tasks and `/ase-task-edit` to create a plan.
|
|
114
|
+
</ase-tpl-hint>
|
|
115
|
+
</else>
|
|
116
|
+
|