@rse/ase 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dst/ase-artifact.js +7 -56
- package/dst/ase-config.js +6 -9
- package/dst/ase-hook.js +16 -2
- package/dst/ase-ignore.js +129 -0
- package/dst/ase-setup.js +161 -71
- package/dst/ase-spec.js +26 -10
- package/dst/ase-table.js +80 -0
- package/package.json +7 -7
- 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-format-spec.md +19 -14
- package/plugin/meta/ase-format-specbook.yaml +23 -20
- package/plugin/meta/ase-skill.md +7 -0
- package/plugin/output-styles/ase-terse.md +58 -0
- package/plugin/skills/ase-help-intent/data.md +7 -6
- package/plugin/skills/ase-spec-activate/SKILL.md +14 -12
- package/plugin/skills/ase-spec-activate/help.md +7 -6
|
@@ -4,25 +4,30 @@
|
|
|
4
4
|
SpecBook Project Instantiation
|
|
5
5
|
==============================
|
|
6
6
|
|
|
7
|
-
- The **SpecBook SCHEMA Model** of this project depends on
|
|
8
|
-
|
|
9
|
-
`project.artifact.spec.schema` configuration value)
|
|
7
|
+
- The **SpecBook SCHEMA Model** of this project depends on the value
|
|
8
|
+
of the <ase-spec-schema/> placeholder (holding the
|
|
9
|
+
`project.artifact.spec.schema` configuration value), which is a
|
|
10
|
+
*whitespace-separated list* of schema entries, merged in the given
|
|
11
|
+
order into *one* **SpecBook SCHEMA Model**:
|
|
10
12
|
|
|
11
13
|
- If <ase-spec-schema/> is *empty*:
|
|
12
14
|
|
|
13
|
-
Then the
|
|
14
|
-
schema configuration bundled with **ASE** in the file
|
|
15
|
-
`meta/ase-format-specbook.yaml` (relative to the plugin root),
|
|
16
|
-
which you *MUST* read via the `Read` tool before working on the
|
|
17
|
-
specification of the **SpecBook SPEC Model**.
|
|
15
|
+
Then the list is treated as the single entry `std`.
|
|
18
16
|
|
|
19
|
-
-
|
|
17
|
+
- For each entry `std` in the list:
|
|
20
18
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
(relative to the
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
The entry names the standard YAML schema configuration bundled
|
|
20
|
+
with **ASE** in the file `meta/ase-format-specbook.yaml`
|
|
21
|
+
(relative to the plugin root).
|
|
22
|
+
|
|
23
|
+
- For each *other* entry in the list:
|
|
24
|
+
|
|
25
|
+
The entry names a custom YAML schema configuration file of the
|
|
26
|
+
project (relative to the project root).
|
|
27
|
+
|
|
28
|
+
You *MUST* read all resulting schema configuration files via the
|
|
29
|
+
`Read` tool before working on the specification of the **SpecBook
|
|
30
|
+
SPEC Model**.
|
|
26
31
|
|
|
27
32
|
- The **SpecBook SPEC Model** of this project is the set of specification
|
|
28
33
|
Markdown files in the directory <ase-spec-basedir/> (relative
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
optional: true
|
|
46
46
|
- name: THEME-STYLE
|
|
47
47
|
desc: The theme style.
|
|
48
|
-
value: enum(
|
|
48
|
+
value: enum(Dark,Light)
|
|
49
49
|
optional: true
|
|
50
50
|
- name: THEME-TONE
|
|
51
51
|
desc: The theme color tone.
|
|
@@ -190,7 +190,7 @@
|
|
|
190
190
|
diagram:
|
|
191
191
|
type: hub
|
|
192
192
|
center: self
|
|
193
|
-
nodes: "[[TERM:*]], [[PREMISE:*]], [[RULE:*]], [[DM.ENTITY:*]], [[ROLE:*]], [[PERSONA:*]]"
|
|
193
|
+
nodes: "[[TERM:*]], [[PREMISE:*]], [[RULE:*]], [[DM.ENTITY:*]], [[ROLE:*]], [[PERSONA:*]], [[WORKFLOW:*]], [[CONVENTION:*]], [[CV.ENTITY:*]]"
|
|
194
194
|
labeled: true
|
|
195
195
|
qualified: true
|
|
196
196
|
config:
|
|
@@ -257,7 +257,7 @@
|
|
|
257
257
|
diagram:
|
|
258
258
|
type: hub
|
|
259
259
|
center: self
|
|
260
|
-
nodes: "[[ROLE:*]], [[TERM:*]], [[PERSONA:*]], [[ACTIVITY:*]], [[USE-CASE:*]], [[CV.ENTITY:*]]"
|
|
260
|
+
nodes: "[[ROLE:*]], [[TERM:*]], [[PERSONA:*]], [[WORKFLOW:*]], [[ACTIVITY:*]], [[USE-CASE:*]], [[TRANSITION:*]], [[CV.ENTITY:*]]"
|
|
261
261
|
labeled: true
|
|
262
262
|
qualified: true
|
|
263
263
|
config:
|
|
@@ -292,8 +292,8 @@
|
|
|
292
292
|
optional: true
|
|
293
293
|
- name: GENDER
|
|
294
294
|
desc: >
|
|
295
|
-
The gender of the persona: `
|
|
296
|
-
value: enum(
|
|
295
|
+
The gender of the persona: `Male`, `Female`, or `Diverse`.
|
|
296
|
+
value: enum(Male,Female,Diverse)
|
|
297
297
|
optional: true
|
|
298
298
|
- name: AGE
|
|
299
299
|
desc: >
|
|
@@ -312,8 +312,8 @@
|
|
|
312
312
|
optional: true
|
|
313
313
|
- name: PROFICIENCY
|
|
314
314
|
desc: >
|
|
315
|
-
The technical and domain skill level of the persona: `
|
|
316
|
-
value: enum(
|
|
315
|
+
The technical and domain skill level of the persona: `Novice`, `Intermediate`, or `Expert`.
|
|
316
|
+
value: enum(Novice,Intermediate,Expert)
|
|
317
317
|
optional: true
|
|
318
318
|
- name: GOAL
|
|
319
319
|
desc: >
|
|
@@ -714,7 +714,7 @@
|
|
|
714
714
|
diagram:
|
|
715
715
|
type: hub
|
|
716
716
|
center: self
|
|
717
|
-
nodes: "[[USE-CASE:*]], [[ROLE:*]], [[PERSONA:*]], [[STEP:*]], [[ACTIVITY:*]], [[FR.REQUIREMENT:*]], [[RULE:*]], [[TRANSITION:*]], [[PERMISSION:*]], [[PRINCIPLE:*]], [[CV.ENTITY:*]]"
|
|
717
|
+
nodes: "[[USE-CASE:*]], [[ROLE:*]], [[PERSONA:*]], [[STEP:*]], [[ACTIVITY:*]], [[FR.REQUIREMENT:*]], [[RULE:*]], [[DM.ENTITY:*]], [[TRANSITION:*]], [[PERMISSION:*]], [[PRINCIPLE:*]], [[STORYBOARD:*]], [[CV.ENTITY:*]], [[TEST-CASE:*]]"
|
|
718
718
|
labeled: true
|
|
719
719
|
qualified: true
|
|
720
720
|
config:
|
|
@@ -830,7 +830,7 @@
|
|
|
830
830
|
diagram:
|
|
831
831
|
type: hub
|
|
832
832
|
center: self
|
|
833
|
-
nodes: "[[DM.ENTITY:*]], [[FR.REQUIREMENT:*]], [[USE-CASE:*]]"
|
|
833
|
+
nodes: "[[DM.ENTITY:*]], [[FR.REQUIREMENT:*]], [[USE-CASE:*]], [[LIFECYCLE:*]], [[FV.COMPONENT:*]], [[CONCERN:*]], [[TACTIC:*]], [[DECISION:*]], [[TEST-CASE:*]]"
|
|
834
834
|
edges: "[[RELATION:*]]"
|
|
835
835
|
labeled: true
|
|
836
836
|
qualified: true
|
|
@@ -894,14 +894,16 @@
|
|
|
894
894
|
desc: >
|
|
895
895
|
A named directed relation of the entity, carrying a camel-cased, 1-3 word long, per-entity unique identifier and targeting another entity, and described by a 1-sentence description ("what") plus a 1-sentence rationale ("why"). A relation carries no attributes of its own: a relation needing attributes (an "association class") is reified as an entity of its own, related from both sides.
|
|
896
896
|
optional: true
|
|
897
|
+
format:
|
|
898
|
+
maxTableColumns: 5
|
|
897
899
|
props:
|
|
898
900
|
- name: TARGET
|
|
899
901
|
desc: Reference to the DATA-MODEL entity the directed relation targets.
|
|
900
902
|
value: "[[DM.ENTITY:*]]"
|
|
901
903
|
- name: KIND
|
|
902
904
|
desc: >
|
|
903
|
-
The kind of the directed relation: `
|
|
904
|
-
value: enum(
|
|
905
|
+
The kind of the directed relation: `Association` for a plain reference to an independent target entity, `Aggregation` for a (optionally even shared) part-of relation whose target outlives the entity, or `Composition` for an exclusive part-of relation whose target is owned by and deleted with the entity; defaults to `Association`.
|
|
906
|
+
value: enum(Association,Aggregation,Composition)
|
|
905
907
|
optional: true
|
|
906
908
|
- name: ARITY
|
|
907
909
|
desc: >
|
|
@@ -1109,7 +1111,7 @@
|
|
|
1109
1111
|
diagram:
|
|
1110
1112
|
type: hub
|
|
1111
1113
|
center: self
|
|
1112
|
-
nodes: "[[INTERFACE:*]], [[TYPE:*]], [[ENDPOINT:*]]"
|
|
1114
|
+
nodes: "[[INTERFACE:*]], [[TYPE:*]], [[ENDPOINT:*]], [[FV.COMPONENT:*]]"
|
|
1113
1115
|
labeled: true
|
|
1114
1116
|
qualified: true
|
|
1115
1117
|
config:
|
|
@@ -1175,7 +1177,7 @@
|
|
|
1175
1177
|
diagram:
|
|
1176
1178
|
type: hub
|
|
1177
1179
|
center: self
|
|
1178
|
-
nodes: "[[TYPE:*]], [[INTERFACE:*]]"
|
|
1180
|
+
nodes: "[[TYPE:*]], [[INTERFACE:*]], [[ENDPOINT:*]]"
|
|
1179
1181
|
deep: true
|
|
1180
1182
|
labeled: true
|
|
1181
1183
|
qualified: true
|
|
@@ -1442,7 +1444,7 @@
|
|
|
1442
1444
|
diagram:
|
|
1443
1445
|
type: hub
|
|
1444
1446
|
center: self
|
|
1445
|
-
nodes: "[[PRINCIPLE:*]], [[PERSONA:*]], [[STEP:*]], [[USE-CASE:*]], [[PATTERN:*]]"
|
|
1447
|
+
nodes: "[[PRINCIPLE:*]], [[PERSONA:*]], [[STEP:*]], [[USE-CASE:*]], [[CONVENTION:*]], [[PATTERN:*]], [[ELEMENT:*]], [[DECISION:*]]"
|
|
1446
1448
|
labeled: true
|
|
1447
1449
|
qualified: true
|
|
1448
1450
|
config:
|
|
@@ -1554,7 +1556,7 @@
|
|
|
1554
1556
|
diagram:
|
|
1555
1557
|
type: hub
|
|
1556
1558
|
center: self
|
|
1557
|
-
nodes: "[[PATTERN:*]], [[PRINCIPLE:*]], [[STORYBOARD:*]]"
|
|
1559
|
+
nodes: "[[PATTERN:*]], [[PRINCIPLE:*]], [[STORYBOARD:*]], [[DECISION:*]]"
|
|
1558
1560
|
deep: true
|
|
1559
1561
|
labeled: true
|
|
1560
1562
|
qualified: true
|
|
@@ -1620,7 +1622,7 @@
|
|
|
1620
1622
|
diagram:
|
|
1621
1623
|
type: hub
|
|
1622
1624
|
center: self
|
|
1623
|
-
nodes: "[[STORYBOARD:*]], [[PERSONA:*]], [[SCENARIO:*]], [[PATTERN:*]]"
|
|
1625
|
+
nodes: "[[STORYBOARD:*]], [[PERSONA:*]], [[SCENARIO:*]], [[PATTERN:*]], [[MOCKUP:*]]"
|
|
1624
1626
|
deep: true
|
|
1625
1627
|
labeled: true
|
|
1626
1628
|
qualified: true
|
|
@@ -1867,7 +1869,7 @@
|
|
|
1867
1869
|
diagram:
|
|
1868
1870
|
type: hub
|
|
1869
1871
|
center: self
|
|
1870
|
-
nodes: "[[FV.COMPONENT:*]], [[FR.REQUIREMENT:*]], [[INTERFACE:*]], [[DM.ENTITY:*]], [[TACTIC:*]], [[DECISION:*]]"
|
|
1872
|
+
nodes: "[[FV.COMPONENT:*]], [[FR.REQUIREMENT:*]], [[INTERFACE:*]], [[DM.ENTITY:*]], [[UNIT:*]], [[NODE:*]], [[CONCERN:*]], [[TACTIC:*]], [[DECISION:*]]"
|
|
1871
1873
|
labeled: true
|
|
1872
1874
|
qualified: true
|
|
1873
1875
|
properties:
|
|
@@ -1960,6 +1962,7 @@
|
|
|
1960
1962
|
diagram:
|
|
1961
1963
|
type: hub
|
|
1962
1964
|
center: self
|
|
1965
|
+
nodes: "[[TS.TIER:*]], [[TS.TIER:*.COMPONENT:*]], [[DV.TIER:*]]"
|
|
1963
1966
|
hierarchy: true
|
|
1964
1967
|
properties:
|
|
1965
1968
|
- PRODUCT
|
|
@@ -1975,7 +1978,7 @@
|
|
|
1975
1978
|
diagram:
|
|
1976
1979
|
type: hub
|
|
1977
1980
|
center: self
|
|
1978
|
-
nodes: "[[TS.TIER:*.COMPONENT:*]], [[FV.COMPONENT:*]], [[TACTIC:*]], [[DECISION:*]]"
|
|
1981
|
+
nodes: "[[TS.TIER:*.COMPONENT:*]], [[FV.COMPONENT:*]], [[CONCERN:*]], [[TACTIC:*]], [[DECISION:*]]"
|
|
1979
1982
|
labeled: true
|
|
1980
1983
|
qualified: true
|
|
1981
1984
|
properties:
|
|
@@ -2434,7 +2437,7 @@
|
|
|
2434
2437
|
diagram:
|
|
2435
2438
|
type: hub
|
|
2436
2439
|
center: self
|
|
2437
|
-
nodes: "[[DV.TIER:*]], [[AREA:*]], [[NODE:*]], [[NETWORK:*]], [[FV.COMPONENT:*]], [[UNIT:*]], [[TACTIC:*]], [[DECISION:*]]"
|
|
2440
|
+
nodes: "[[DV.TIER:*]], [[AREA:*]], [[NODE:*]], [[NETWORK:*]], [[FV.COMPONENT:*]], [[UNIT:*]], [[CONCERN:*]], [[TACTIC:*]], [[DECISION:*]]"
|
|
2438
2441
|
labeled: true
|
|
2439
2442
|
qualified: true
|
|
2440
2443
|
properties:
|
|
@@ -2642,7 +2645,7 @@
|
|
|
2642
2645
|
diagram:
|
|
2643
2646
|
type: hub
|
|
2644
2647
|
center: self
|
|
2645
|
-
nodes: "[[TACTIC:*]], [[NR.REQUIREMENT:*]], [[FV.COMPONENT:*]], [[UNIT:*]], [[ASPECT:*]], [[NODE:*]], [[DM.ENTITY:*]], [[CONCERN:*]], [[DECISION:*]], [[TS.TIER:*.COMPONENT:*]]"
|
|
2648
|
+
nodes: "[[TACTIC:*]], [[NR.REQUIREMENT:*]], [[FV.COMPONENT:*]], [[UNIT:*]], [[ASPECT:*]], [[NODE:*]], [[DM.ENTITY:*]], [[CONCERN:*]], [[DECISION:*]], [[TS.TIER:*.COMPONENT:*]], [[TEST-CASE:*]]"
|
|
2646
2649
|
labeled: true
|
|
2647
2650
|
qualified: true
|
|
2648
2651
|
properties:
|
package/plugin/meta/ase-skill.md
CHANGED
|
@@ -476,6 +476,13 @@ Template Patterns
|
|
|
476
476
|
un-styled text <raw-title/>.
|
|
477
477
|
- Set <bar/> to the `─` character repeated exactly max(0, 67 - <raw-title-len/>)
|
|
478
478
|
times -- clamped to zero so an over-long title never yields a negative count.
|
|
479
|
+
- Pre-wrap every line of <content/> at *96 visible columns* (the box
|
|
480
|
+
width minus the `│ ` prefix, Markdown markup not counted), breaking
|
|
481
|
+
only at word boundaries and never inside an identifier, path, URL,
|
|
482
|
+
or quoted code: the agent tool wraps longer lines *without* the `│ `
|
|
483
|
+
prefix and visibly breaks the box. Indent each continuation line to
|
|
484
|
+
the text column of its first line (e.g. behind a key glyph, bullet,
|
|
485
|
+
or padded label), so gutters stay aligned.
|
|
479
486
|
- Set <body/> to <content/> with all non-empty lines prefixed with
|
|
480
487
|
`│ ` and all empty lines prefixed with just `│` (so no trailing
|
|
481
488
|
whitespace is produced). Do *not* prefix any line twice -- the
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "ase-terse"
|
|
3
|
+
description: Respond tersely, leading with results and skipping preamble and narration.
|
|
4
|
+
keep-coding-instructions: true
|
|
5
|
+
force-for-plugin: false
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## ASE Output Style
|
|
9
|
+
|
|
10
|
+
In your communication to the user you should:
|
|
11
|
+
|
|
12
|
+
- **Assume no shared context**:
|
|
13
|
+
The user has not read anything you read: no files, no tool output, no
|
|
14
|
+
search results. Only your messages. Assume the user has no prior context on
|
|
15
|
+
internal files or draft iterations.
|
|
16
|
+
|
|
17
|
+
- **Respond tersely**:
|
|
18
|
+
The user chose brevity over narration, so keep your responses short and
|
|
19
|
+
direct while doing the work just as thoroughly.
|
|
20
|
+
|
|
21
|
+
- **Lead with the result**:
|
|
22
|
+
Your **FIRST** sentence **MUST** state the direct answer, verdict, or status
|
|
23
|
+
immediately and with zero preamble (like "Let me...", "Now I'll...", etc.).
|
|
24
|
+
|
|
25
|
+
- **Cut narration, keep substance**:
|
|
26
|
+
Don't restate the request, the plan, or each step you took. Report outcomes,
|
|
27
|
+
decisions, and anything the user must act on.
|
|
28
|
+
|
|
29
|
+
- **Select formatting per output block**:
|
|
30
|
+
Map decisions/tradeoffs to a *table*, temporal steps to a *numbered
|
|
31
|
+
list*, concepts to *bulleted list* anchors, caveats/warnings/notices to a
|
|
32
|
+
*callout/quote* (`> **Notice:**`), previews of code edits to a *unified
|
|
33
|
+
diff*, and execution syntax to a *code block*.
|
|
34
|
+
|
|
35
|
+
- **Execute tools silently**:
|
|
36
|
+
Perform intermediate tool operations silently without narrating your intent
|
|
37
|
+
or planned tool calls in your messages.
|
|
38
|
+
|
|
39
|
+
- **State things plainly**:
|
|
40
|
+
Skip hedging boilerplate. Mention a caveat only when it changes what the
|
|
41
|
+
user should do next.
|
|
42
|
+
|
|
43
|
+
- **Give full detail on request**:
|
|
44
|
+
When the user asks for an explanation or detail, answer completely.
|
|
45
|
+
Conciseness never means withholding requested information.
|
|
46
|
+
|
|
47
|
+
- **Never trade correctness for brevity**:
|
|
48
|
+
Error reports, failing test output, security warnings, and confirmations for
|
|
49
|
+
destructive actions keep their full content.
|
|
50
|
+
|
|
51
|
+
- **End without closing recap**:
|
|
52
|
+
Avoid telling the user what you already said in the same turn.
|
|
53
|
+
|
|
54
|
+
Where these rules conflict with the default communication and formatting
|
|
55
|
+
guidance of the agent harness, these rules here win. But these rules never
|
|
56
|
+
override the ASE persona communication style, which stays in effect at all
|
|
57
|
+
times.
|
|
58
|
+
|
|
@@ -3172,12 +3172,13 @@ Generate a user-wide skill and overwrite a previous generation:
|
|
|
3172
3172
|
The `ase-spec-activate` skill activates the know-how about the
|
|
3173
3173
|
*SpecBook*-based specification (`SPEC`) of the project in the current
|
|
3174
3174
|
session: it loads the *SpecBook* format contract, reads the *SpecBook*
|
|
3175
|
-
schema configuration of the project (the
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3175
|
+
schema configuration of the project (the schema files configured via
|
|
3176
|
+
`project.artifact.spec.schema`, where the entry `std` -- also the default
|
|
3177
|
+
-- names the standard schema bundled with *ASE*), and resolves the list
|
|
3178
|
+
of `SPEC` artifacts in the configured specification base directory. The
|
|
3179
|
+
activation is reported in a `SPEC ACTIVATED` box, listing the schema
|
|
3180
|
+
files (each marked `standard` or `custom`) and the base directory with
|
|
3181
|
+
the number of resolved artifacts.
|
|
3181
3182
|
|
|
3182
3183
|
Once activated, the specification can be worked with *ad-hoc* in plain
|
|
3183
3184
|
conversation for the remainder of the session: reading, querying, and
|
|
@@ -67,19 +67,21 @@ an ad-hoc change, and it *never* touches the artifact kinds `CODE`,
|
|
|
67
67
|
|
|
68
68
|
3. **Activate Schema:**
|
|
69
69
|
|
|
70
|
-
1. Set <schema-
|
|
71
|
-
of the project (resolved as described
|
|
72
|
-
|
|
73
|
-
`custom` for a project-specific one. Do not
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
70
|
+
1. Set <schema-files/> to the list of file paths constituting the
|
|
71
|
+
**SpecBook SCHEMA Model** of the project (resolved as described
|
|
72
|
+
in `ase-format-spec.md`), each annotated with `standard` for the
|
|
73
|
+
bundled schema or `custom` for a project-specific one. Do not
|
|
74
|
+
output anything.
|
|
75
|
+
|
|
76
|
+
2. <if condition="the content of a file of <schema-files/> was *not* already read into the current context -- neither by an earlier run of this skill nor by a dedicated specification skill">
|
|
77
|
+
Read those files of the **SpecBook SCHEMA Model** in
|
|
78
|
+
<schema-files/> via the `Read` tool to learn the allowed object
|
|
79
|
+
kinds, properties, nestings, and value constraints. Do not
|
|
80
|
+
output anything.
|
|
79
81
|
</if>
|
|
80
82
|
<else>
|
|
81
|
-
Do *not* read <schema-
|
|
82
|
-
active in the context. Do not output anything.
|
|
83
|
+
Do *not* read the files of <schema-files/> again -- their content
|
|
84
|
+
is already active in the context. Do not output anything.
|
|
83
85
|
</else>
|
|
84
86
|
|
|
85
87
|
4. **Activate Artifacts:**
|
|
@@ -98,7 +100,7 @@ an ad-hoc change, and it *never* touches the artifact kinds `CODE`,
|
|
|
98
100
|
<template>
|
|
99
101
|
<ase-tpl-boxed title="SPEC" subtitle="ACTIVATED">
|
|
100
102
|
|
|
101
|
-
**SCHEMA**:
|
|
103
|
+
**SCHEMA**: <schema-files/> (one `<file/>` (`standard`|`custom`) entry per line, aligned)
|
|
102
104
|
**SPEC**: `<ase-spec-basedir/>` (<artifact-count/> artifacts)
|
|
103
105
|
|
|
104
106
|
</ase-tpl-boxed>
|
|
@@ -14,12 +14,13 @@
|
|
|
14
14
|
The `ase-spec-activate` skill activates the know-how about the
|
|
15
15
|
*SpecBook*-based specification (`SPEC`) of the project in the current
|
|
16
16
|
session: it loads the *SpecBook* format contract, reads the *SpecBook*
|
|
17
|
-
schema configuration of the project (the
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
schema configuration of the project (the schema files configured via
|
|
18
|
+
`project.artifact.spec.schema`, where the entry `std` -- also the default
|
|
19
|
+
-- names the standard schema bundled with *ASE*), and resolves the list
|
|
20
|
+
of `SPEC` artifacts in the configured specification base directory. The
|
|
21
|
+
activation is reported in a `SPEC ACTIVATED` box, listing the schema
|
|
22
|
+
files (each marked `standard` or `custom`) and the base directory with
|
|
23
|
+
the number of resolved artifacts.
|
|
23
24
|
|
|
24
25
|
Once activated, the specification can be worked with *ad-hoc* in plain
|
|
25
26
|
conversation for the remainder of the session: reading, querying, and
|