@rse/ase 0.9.61 → 0.9.63
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 +19 -8
- package/dst/ase-config.js +12 -8
- package/dst/ase-hook.js +8 -0
- package/dst/ase-service.js +2 -0
- package/dst/ase-spec.js +241 -0
- package/dst/ase.js +2 -0
- package/package.json +10 -8
- 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-code-lint.md +47 -3
- package/plugin/etc/stx.conf +5 -3
- package/plugin/meta/ase-common-grill.md +89 -0
- package/plugin/meta/ase-dialog.md +6 -0
- package/plugin/meta/ase-format-meta.md +23 -105
- package/plugin/meta/ase-format-spec.md +22 -1326
- package/plugin/meta/ase-tenets.md +63 -4
- package/plugin/package.json +6 -2
- package/plugin/skills/ase-arch-analyze/SKILL.md +1 -1
- package/plugin/skills/ase-code-analyze/SKILL.md +1 -1
- package/plugin/skills/ase-code-analyze/help.md +2 -1
- package/plugin/skills/ase-code-edit/SKILL.md +142 -140
- package/plugin/skills/ase-code-lint/SKILL.md +5 -5
- package/plugin/skills/ase-code-lint/help.md +23 -8
- package/plugin/skills/ase-help-skill/catalog.md +3 -0
- package/plugin/skills/ase-meta-review/help.md +1 -1
- package/plugin/skills/ase-spec-edit/SKILL.md +520 -0
- package/plugin/skills/ase-spec-edit/help.md +130 -0
- package/plugin/skills/ase-sync-export/SKILL.md +57 -116
- package/plugin/skills/ase-sync-export/help.md +30 -42
- package/plugin/skills/ase-sync-import/SKILL.md +37 -15
- package/plugin/skills/ase-sync-import/help.md +14 -10
- package/plugin/skills/ase-sync-reconcile/SKILL.md +37 -16
- package/plugin/skills/ase-sync-reconcile/help.md +19 -16
- package/plugin/skills/ase-task-grill/SKILL.md +120 -59
- package/plugin/skills/ase-task-grill/help.md +42 -12
- package/plugin/meta/ase-format-arch.md +0 -1164
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
|
|
2
|
+
Grill Skill Common Steps
|
|
3
|
+
========================
|
|
4
|
+
|
|
5
|
+
<define name="grill-understanding">
|
|
6
|
+
|
|
7
|
+
- GOAL:
|
|
8
|
+
|
|
9
|
+
Interactively interviewing the user *relentlessly* about every
|
|
10
|
+
*essential aspect* of <arg1/> *until* reaching a shared
|
|
11
|
+
understanding and no major decisions/questions are left open.
|
|
12
|
+
|
|
13
|
+
This especially means that you *MUST* clarify as many aspects as
|
|
14
|
+
necessary to ensure that for at least the most important decisions,
|
|
15
|
+
during a subsequent implementation, no essential freedom of choice
|
|
16
|
+
exists any longer.
|
|
17
|
+
|
|
18
|
+
- FOCUS:
|
|
19
|
+
|
|
20
|
+
Focusing on the following outside-in *Focus Areas*, in order of
|
|
21
|
+
descending importance for the grilling operation:
|
|
22
|
+
|
|
23
|
+
1. *DOMAIN*: Aspects affecting domain-specifics. These
|
|
24
|
+
aspects *MUST* be clarified, as they are about
|
|
25
|
+
the "what" of the solution and they
|
|
26
|
+
non-technically shape the solution noticeably.
|
|
27
|
+
|
|
28
|
+
2. *INTERFACE*: Aspects affecting externally observable
|
|
29
|
+
behavior or interfaces, especially aspects about user (UI)
|
|
30
|
+
and machine (API) interfaces. These aspects *MUST* be
|
|
31
|
+
clarified, as they are externally visible and
|
|
32
|
+
shape the boundary of the solution.
|
|
33
|
+
|
|
34
|
+
3. *ARCHITECTURE*: Aspects affecting software and system
|
|
35
|
+
architecture, especially decisions on structure, wiring,
|
|
36
|
+
placement, or dependencies. These aspects *SHOULD*
|
|
37
|
+
be clarified, as they technically shape the solution noticeably.
|
|
38
|
+
|
|
39
|
+
4. *IMPLEMENTATION*: Aspects affecting any other
|
|
40
|
+
implementation details, especially how <arg1/>
|
|
41
|
+
is realized in the code base. These aspects *CAN* be
|
|
42
|
+
clarified, as they shape technical inner details only.
|
|
43
|
+
|
|
44
|
+
- SEVERITY:
|
|
45
|
+
|
|
46
|
+
The *Focus Area* indicate the severity of the aspect:
|
|
47
|
+
|
|
48
|
+
- severity *MUST* for *DOMAIN* focus area
|
|
49
|
+
- severity *MUST* for *INTERFACE* focus area
|
|
50
|
+
- severity *SHOULD* for *ARCHITECTURE* focus area
|
|
51
|
+
- severity *MAY* for *IMPLEMENTATION* focus area
|
|
52
|
+
|
|
53
|
+
- INDICATORS:
|
|
54
|
+
|
|
55
|
+
Check the following indicators for identifying problematic
|
|
56
|
+
aspects:
|
|
57
|
+
|
|
58
|
+
- *Fuzzy Language*:
|
|
59
|
+
When the user uses vague or overloaded terms instead of
|
|
60
|
+
a precise or canonical term.
|
|
61
|
+
|
|
62
|
+
- *Conflicting Terminology*:
|
|
63
|
+
When the user uses a term that conflicts with the
|
|
64
|
+
existing terminology in the code base.
|
|
65
|
+
|
|
66
|
+
- *Conflicting Code*:
|
|
67
|
+
When the user states how something works, check whether the
|
|
68
|
+
current code state really agrees.
|
|
69
|
+
|
|
70
|
+
- *Non-Concrete Scenarios*:
|
|
71
|
+
When domain relationships are being discussed,
|
|
72
|
+
stress-test them with specific scenarios. Theoretically
|
|
73
|
+
invent realistic scenarios that probe edge cases and
|
|
74
|
+
force the user to be precise about the boundaries
|
|
75
|
+
between concepts.
|
|
76
|
+
|
|
77
|
+
- *Unspecified Architecture Patterns*:
|
|
78
|
+
When the realization of the functionality is known to
|
|
79
|
+
be reasonably realizable with more than one decent
|
|
80
|
+
architecture pattern, but no such pattern was
|
|
81
|
+
mentioned.
|
|
82
|
+
|
|
83
|
+
- *Unspecified Dependencies*:
|
|
84
|
+
When the realization of functionality usually is known
|
|
85
|
+
to be supported by the use of frameworks or libraries,
|
|
86
|
+
but no dependencies on such solutions were mentioned.
|
|
87
|
+
|
|
88
|
+
</define>
|
|
89
|
+
|
|
@@ -36,6 +36,12 @@ following procedure:
|
|
|
36
36
|
description. The second and following lines each provide an
|
|
37
37
|
answer label and an answer description.
|
|
38
38
|
|
|
39
|
+
Parse the first line by splitting it at its *first* `: ` into
|
|
40
|
+
<question-label/> (the text before) and <question-description/>
|
|
41
|
+
(the remaining text, *without* the label). The label is rendered
|
|
42
|
+
*only* as the box subtitle below, so <question-description/>
|
|
43
|
+
*MUST* *NOT* repeat it.
|
|
44
|
+
|
|
39
45
|
Do not output anything in this step!
|
|
40
46
|
|
|
41
47
|
2. Render the custom dialog, collect the user input, and dispatch on the result:
|
|
@@ -2,115 +2,33 @@
|
|
|
2
2
|
Artifact Meta Information
|
|
3
3
|
=========================
|
|
4
4
|
|
|
5
|
-
**ASE** knows about the following
|
|
5
|
+
**ASE** knows about the following **Artifact Set**s of a project, each
|
|
6
|
+
identified by a unique <artifact-set-id/>:
|
|
6
7
|
|
|
7
|
-
-
|
|
8
|
+
- `Specification` (`SPEC`), aka "Software Requirements Specification
|
|
9
|
+
(SRS)", "Product Requirements Document (PRD)", "Requirements",
|
|
10
|
+
"Software Architecture Specification (SAS)", "Architecture
|
|
11
|
+
Description", or "Architecture Decision Record (ADR)". It covers
|
|
12
|
+
both the *requirements* ("what") and the *architecture* ("how") of
|
|
13
|
+
the project and is authored in the **SpecBook** format (see
|
|
14
|
+
`ase-format-spec.md`).
|
|
8
15
|
|
|
9
|
-
|
|
16
|
+
- `Source Code` (`CODE`), aka "Software Implementation Results (IMP)",
|
|
17
|
+
"Code", or "Software".
|
|
10
18
|
|
|
11
|
-
|
|
12
|
-
(SRS)", "Product Requirements Document (PRD)", or just
|
|
13
|
-
"Requirements".
|
|
19
|
+
- `Documentation` (`DOCS`), aka "Software Documentation Results (DOC)".
|
|
14
20
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
Record (ADR)".
|
|
21
|
+
- `Tasks` (`TASK`), aka "Task Plans", "Issues", or "User Stories". It
|
|
22
|
+
is authored in the task plan format (see `ase-format-task.md`).
|
|
18
23
|
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
- `Infrastructure` (`INFR`), aka "Infrastructure as Code (IaC)",
|
|
25
|
+
"Deployment", or "Operations".
|
|
21
26
|
|
|
22
|
-
|
|
27
|
+
- `Other` (`OTHR`), the implicit catch-all for any artifacts not
|
|
28
|
+
covered by the other **Artifact Set**s.
|
|
23
29
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
- `Other` (`OTHR`), the implicit catch-all for any artifacts not
|
|
30
|
-
covered by the other **Artifact Set**s.
|
|
31
|
-
|
|
32
|
-
Each **Artifact Set** has a unique identifier <artifact-set-id/>,
|
|
33
|
-
which is one of `SPEC`, `ARCH`, `CODE`, `DOCS`, `TASK`, `INFR`, or
|
|
34
|
-
`OTHR`.
|
|
35
|
-
|
|
36
|
-
- **Artifact**:
|
|
37
|
-
|
|
38
|
-
At level 2, each **Artifact Set** is composed of many **Artifact**s.
|
|
39
|
-
Each **Artifact** has an identifier <artifact-id/>, which is an
|
|
40
|
-
upper-case, two-letter identifier (e.g. `CJ` for `Customer Journey`)
|
|
41
|
-
derived from the **Artifact** name. The <artifact-id/> is unique
|
|
42
|
-
only *within* its **Artifact Set**; the globally-unique handle of an
|
|
43
|
-
**Artifact** is the qualified form <artifact-set-id/>-<artifact-id/>
|
|
44
|
-
(e.g. `SPEC-DP` and `ARCH-DP` are distinct artifacts). All
|
|
45
|
-
references to an **Artifact** *MUST* use this qualified form.
|
|
46
|
-
|
|
47
|
-
Each **Artifact** also has a sequence number <artifact-no/>, which
|
|
48
|
-
is the zero-padded, two-digit position of the **Artifact** (starting
|
|
49
|
-
at `01`) within the ordered list of **Artifact**s of its **Artifact
|
|
50
|
-
Set**. The <artifact-no/> is used only in the **Artifact**'s file
|
|
51
|
-
name (for stable ordering) and is *not* part of the **Artifact**'s
|
|
52
|
-
or its **Aspect**s' identifiers.
|
|
53
|
-
|
|
54
|
-
All lines of an **Artifact** should be kept below 140 characters,
|
|
55
|
-
whenever possible by line-breaking with newlines after about 120
|
|
56
|
-
characters per line.
|
|
57
|
-
|
|
58
|
-
- **Aspect**:
|
|
59
|
-
|
|
60
|
-
At level 3, each **Artifact** is composed of many **Aspect**s.
|
|
61
|
-
Each **Aspect** has a unique identifier <aspect-id/>, which is a
|
|
62
|
-
unique "slug" of always 1-3 lower-cased words (concatenated with "-"
|
|
63
|
-
characters and in total not longer than 30 characters). An example
|
|
64
|
-
is `user-login`.
|
|
65
|
-
|
|
66
|
-
Each **Artifact** file *MUST* begin with a single blank line before its
|
|
67
|
-
`#` heading and end with a single blank line after its last content line
|
|
68
|
-
(followed by the trailing newline), mirroring the blank lines shown
|
|
69
|
-
inside the `<format>` blocks below.
|
|
70
|
-
|
|
71
|
-
Each **Artifact** contains two timestamps: the <timestamp-created/>
|
|
72
|
-
is the timestamp when this **Artifact** was created. The
|
|
73
|
-
<timestamp-modified/> is the timestamp when this **Artifact** was last
|
|
74
|
-
modified. Both use an ISO-style format value. The value of both can be
|
|
75
|
-
determined by a call to the `ase_timestamp(format: "yyyy-LL-dd HH:mm")`
|
|
76
|
-
tool of the `ase` MCP server, using the `text` field of its response.
|
|
77
|
-
Whenever an **Artifact** is updated, the <timestamp-modified/> *MUST* be
|
|
78
|
-
updated, too.
|
|
79
|
-
|
|
80
|
-
An **Artifact** *MAY* additionally declare an **Export** -- a derived,
|
|
81
|
-
ready-to-consume rendering of (part of) its content, materialized as a
|
|
82
|
-
*side-by-side* file next to the **Artifact** itself. An **Artifact**
|
|
83
|
-
without an `- Export:` bullet is *not* exported.
|
|
84
|
-
|
|
85
|
-
An **Export** is declared by a single `- Export:` bullet point in the
|
|
86
|
-
**Artifact**'s format definition (see `ase-format-spec.md` and
|
|
87
|
-
`ase-format-arch.md`), of the following format:
|
|
88
|
-
|
|
89
|
-
<format>
|
|
90
|
-
|
|
91
|
-
- Export: `<export-name/>.<export-ext/>`
|
|
92
|
-
<export-transform/>
|
|
93
|
-
|
|
94
|
-
</format>
|
|
95
|
-
|
|
96
|
-
with the following details:
|
|
97
|
-
|
|
98
|
-
- <export-ext/> is the file-name extension (without the leading dot,
|
|
99
|
-
e.g. `svg`, `md`) of the exported file, which also implies its
|
|
100
|
-
target format.
|
|
101
|
-
|
|
102
|
-
- <export-transform/> is a description of *how* the **Artifact**'s
|
|
103
|
-
content is transformed into the exported file (e.g. "the entities,
|
|
104
|
-
attributes, and relations rendered as a Mermaid `classDiagram` and
|
|
105
|
-
converted to SVG").
|
|
106
|
-
|
|
107
|
-
The exported file is stored *side-by-side* with the **Artifact** under
|
|
108
|
-
the path:
|
|
109
|
-
|
|
110
|
-
`<basedir/>/<artifact-set-id/>-<artifact-no/>-<artifact-id/>-<artifact-slug/>-<export-name/>.<export-ext/>`
|
|
111
|
-
|
|
112
|
-
where <artifact-slug/> is the same slug used in the **Artifact**'s own
|
|
113
|
-
file name -- derived from the **Artifact** name by Pascal-casing each
|
|
114
|
-
word and joining the words with `-` characters (e.g. `Customer-Journey`)
|
|
115
|
-
-- as defined by the **Artifact Set**'s own format definition (see
|
|
116
|
-
`ase-format-spec.md` and `ase-format-arch.md`).
|
|
30
|
+
The <artifact-set-id/> is one of `SPEC`, `CODE`, `DOCS`, `TASK`, `INFR`,
|
|
31
|
+
or `OTHR`. The files of every **Artifact Set** except `TASK` are resolved
|
|
32
|
+
via the `ase_artifact_list(kind: [ ... ])` tool of the `ase` MCP server
|
|
33
|
+
(with the lower-cased <artifact-set-id/> as `kind`), while the `TASK`
|
|
34
|
+
files are managed by the `ase_task_*` tools.
|