@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.
Files changed (37) hide show
  1. package/dst/ase-artifact.js +19 -8
  2. package/dst/ase-config.js +12 -8
  3. package/dst/ase-hook.js +8 -0
  4. package/dst/ase-service.js +2 -0
  5. package/dst/ase-spec.js +241 -0
  6. package/dst/ase.js +2 -0
  7. package/package.json +10 -8
  8. package/plugin/.claude-plugin/plugin.json +1 -1
  9. package/plugin/.codex-plugin/plugin.json +1 -1
  10. package/plugin/.github/plugin/plugin.json +1 -1
  11. package/plugin/agents/ase-code-lint.md +47 -3
  12. package/plugin/etc/stx.conf +5 -3
  13. package/plugin/meta/ase-common-grill.md +89 -0
  14. package/plugin/meta/ase-dialog.md +6 -0
  15. package/plugin/meta/ase-format-meta.md +23 -105
  16. package/plugin/meta/ase-format-spec.md +22 -1326
  17. package/plugin/meta/ase-tenets.md +63 -4
  18. package/plugin/package.json +6 -2
  19. package/plugin/skills/ase-arch-analyze/SKILL.md +1 -1
  20. package/plugin/skills/ase-code-analyze/SKILL.md +1 -1
  21. package/plugin/skills/ase-code-analyze/help.md +2 -1
  22. package/plugin/skills/ase-code-edit/SKILL.md +142 -140
  23. package/plugin/skills/ase-code-lint/SKILL.md +5 -5
  24. package/plugin/skills/ase-code-lint/help.md +23 -8
  25. package/plugin/skills/ase-help-skill/catalog.md +3 -0
  26. package/plugin/skills/ase-meta-review/help.md +1 -1
  27. package/plugin/skills/ase-spec-edit/SKILL.md +520 -0
  28. package/plugin/skills/ase-spec-edit/help.md +130 -0
  29. package/plugin/skills/ase-sync-export/SKILL.md +57 -116
  30. package/plugin/skills/ase-sync-export/help.md +30 -42
  31. package/plugin/skills/ase-sync-import/SKILL.md +37 -15
  32. package/plugin/skills/ase-sync-import/help.md +14 -10
  33. package/plugin/skills/ase-sync-reconcile/SKILL.md +37 -16
  34. package/plugin/skills/ase-sync-reconcile/help.md +19 -16
  35. package/plugin/skills/ase-task-grill/SKILL.md +120 -59
  36. package/plugin/skills/ase-task-grill/help.md +42 -12
  37. 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 three levels of documentation:
5
+ **ASE** knows about the following **Artifact Set**s of a project, each
6
+ identified by a unique <artifact-set-id/>:
6
7
 
7
- - **Artifact Set**:
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
- At the root, at level 1, there are the following known **Artifact Set**s:
16
+ - `Source Code` (`CODE`), aka "Software Implementation Results (IMP)",
17
+ "Code", or "Software".
10
18
 
11
- - `Specification` (`SPEC`), aka "Software Requirements Specification
12
- (SRS)", "Product Requirements Document (PRD)", or just
13
- "Requirements".
19
+ - `Documentation` (`DOCS`), aka "Software Documentation Results (DOC)".
14
20
 
15
- - `Architecture` (`ARCH`), aka "Software Architecture Specification
16
- (SAS)", "Architecture Description", or "Architecture Decision
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
- - `Source Code` (`CODE`), aka "Software Implementation Results (IMP)",
20
- "Code", or "Software".
24
+ - `Infrastructure` (`INFR`), aka "Infrastructure as Code (IaC)",
25
+ "Deployment", or "Operations".
21
26
 
22
- - `Documentation` (`DOCS`), aka "Software Documentation Results (DOC)".
27
+ - `Other` (`OTHR`), the implicit catch-all for any artifacts not
28
+ covered by the other **Artifact Set**s.
23
29
 
24
- - `Tasks` (`TASK`), aka "Task Plans", "Issues", or "User Stories".
25
-
26
- - `Infrastructure` (`INFR`), aka "Infrastructure as Code (IaC)",
27
- "Deployment", or "Operations".
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.