@rse/ase 0.9.62 → 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.
@@ -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.