@rse/ase 0.9.1 → 0.9.2

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.
@@ -7,11 +7,20 @@ Specification (SPEC)
7
7
  The **Artifact Set** **Specification (SPEC)** specifies the "input"
8
8
  and the "what" of the Software Engineering project.
9
9
 
10
- Each **Artifact** of the **Artifact Set** **Specification (SPEC)**
11
- is stored under `docs/spec/SPEC-<artifact-id/>-<artifact-slug/>.md`,
12
- relative to the project root directory, and with <artifact-slug/> being
13
- derived from <artifact-name/> (see below) by lower-casing and using `-`
14
- characters instead of spaces.
10
+ Each **Artifact** of the **Artifact Set**
11
+ **Specification (SPEC)** is stored under
12
+ `docs/spec/SPEC-<artifact-no/>-<artifact-id/>-<artifact-slug/>.md`,
13
+ relative to the project root directory, with <artifact-no/> being the
14
+ zero-padded, two-digit sequence number of the **Artifact** (starting at
15
+ `01`) according to the order of the **Artifact** list below, and with
16
+ <artifact-slug/> being derived from <artifact-name/> (see below) by
17
+ Pascal-casing each word (upper-casing its first letter) and using `-`
18
+ characters instead of spaces (e.g. `Customer-Journey`).
19
+
20
+ Each **Artifact** file *MUST* begin with a single blank line before its
21
+ `#` heading and end with a single blank line after its last content line
22
+ (followed by the trailing newline), mirroring the blank lines shown
23
+ inside the `<format>` blocks below.
15
24
 
16
25
  Each **Artifact** contains two timestamps: the <timestamp-created/>
17
26
  is the timestamp when this **Artifact** was created. The
@@ -26,70 +35,207 @@ The **Artifact Set** **Specification (SPEC)** consists of the following
26
35
  distinct **Artifact**s (listed under their <artifact-name/> and their
27
36
  <artifact-id/>):
28
37
 
29
- - **Customer Journey (CJ)**:
30
- The end-to-end experience a customer has while discovering, adopting,
31
- and using the solution, mapping their steps, touchpoints, and emotions
32
- over time.
33
-
34
- - **Solution Vision (SV)**:
38
+ 01. **Solution Vision (SV)**:
35
39
  The high-level, aspirational description of the solution, capturing
36
40
  its purpose, value proposition, and the desired future state it aims
37
41
  to achieve.
38
42
 
39
- - **Functional Requirements (FR)**:
43
+ 02. **Personas (PE)**:
44
+ The *archetypal* user profiles representing distinct user groups,
45
+ capturing their goals, needs, behaviors, and context.
46
+
47
+ 03. **Customer Journey (CJ)**:
48
+ The end-to-end experience a customer has while discovering, adopting,
49
+ and using the solution, mapping their steps, touchpoints, and emotions
50
+ over time.
51
+
52
+ 04. **Functional Requirements (FR)**:
40
53
  The concrete behaviors and capabilities the solution must provide,
41
54
  describing *what* the system does in terms of functions, features, and
42
55
  operations.
43
56
 
44
- - **Non-Functional Requirements (NR)**:
57
+ 05. **Non-Functional Requirements (NR)**:
45
58
  The quality attributes and constraints the solution must satisfy, such
46
59
  as performance, security, scalability, reliability, and usability.
47
60
 
48
- - **Data Model (DM)**:
61
+ 06. **Business Rules (BR)**:
62
+ The domain invariants, policies, and decision logic that must always
63
+ hold true in the problem domain, independent of any single feature,
64
+ constraining the Functional and Non-Functional Requirements.
65
+
66
+ 07. **Data Model (DM)**:
49
67
  The structure of named entities, named attributes, and named directed
50
68
  relationships (including a cardinality) of the data the solution
51
69
  manages, defining how information is organized and connected.
52
70
 
53
- - **Use Cases (UC)**:
54
- The discrete goals users pursue with the solution, each describing an
55
- actor's interaction to achieve a specific outcome.
71
+ 08. **State Model (SM)**:
72
+ For each entity with a non-trivial lifecycle, the legal states it can
73
+ occupy and the permitted transitions between them over its lifetime,
74
+ making the forbidden moves as explicit as the allowed ones.
56
75
 
57
- - **Use Case Scenarios (US)**:
58
- The concrete step-by-step flows through a **Use Case**, detailing the
59
- sequence of actions for main, alternative, and exceptional paths.
76
+ 09. **Glossary (GL)**:
77
+ The ubiquitous language of the domain, defining the meaning of each
78
+ domain term in business language, together with its synonyms and the
79
+ ambiguities to avoid, shared consistently across all Artifacts.
60
80
 
61
- - **Personas (PE)**:
62
- The *archetypal* user profiles representing distinct user groups,
63
- capturing their goals, needs, behaviors, and context.
81
+ 10. **Use Cases (UC)**:
82
+ The discrete goals users pursue with the solution, each describing
83
+ an actor's interaction to achieve a specific outcome. For each Use
84
+ Case, also the concrete step-by-step flows, detailing the sequence
85
+ of actions for main, alternative, and exceptional paths.
64
86
 
65
- - **Test Cases (TC)**:
87
+ 11. **Test Cases (TC)**:
66
88
  The verifiable conditions and steps used to confirm that requirements
67
89
  are correctly implemented, with mandatory defined inputs, mandatory
68
90
  expected outcomes, and optional pre- and post-conditions.
69
91
 
70
- - **Interaction Concept (IC)**:
92
+ 12. **Interaction Concept (IC)**:
71
93
  The overarching idea of how users interact with the solution,
72
94
  describing the intended workflows and interaction philosophy (e.g.
73
95
  auto-save behavior).
74
96
 
75
- - **Language Conventions (LC)**:
97
+ 13. **Language Conventions (LC)**:
76
98
  The terminology, naming, tone, and wording standards used consistently
77
99
  across the solution and its content.
78
100
 
79
- - **Dialog Patterns (DP)**:
101
+ 14. **Dialog Patterns (DP)**:
80
102
  The reusable interaction structures governing how the system and user
81
103
  exchange information across recurring conversational or UI flows (e.g.
82
104
  master-detail dialog).
83
105
 
84
- - **Dialog Storyboard (SB)**:
106
+ 15. **Dialog Storyboard (DS)**:
85
107
  The sequenced visual or textual depiction of a specific dialog flow,
86
108
  illustrating how an interaction unfolds screen by screen or turn by
87
109
  turn.
88
110
 
89
- - **Visual Design (VD)**:
111
+ 16. **Visual Design (VD)**:
90
112
  The aesthetic and layout aspects of the solution, defining colors,
91
113
  typography, spacing, imagery, and overall look and feel.
92
114
 
115
+ The **Artifact**s have the following cross-references:
116
+
117
+ ```text
118
+ SPEC-03-CJ Customer Journey ──(step actor)─► SPEC-02-PE Personas
119
+ SPEC-06-BR Business Rules ──(constrains)─► SPEC-04-FR Functional Requirements
120
+ SPEC-06-BR Business Rules ──(constrains)─► SPEC-05-NR Non-Functional Requirements
121
+ SPEC-08-SM State Model ──(of entity)─► SPEC-07-DM Data Model
122
+ SPEC-10-UC Use Cases ──(use case actor)─► SPEC-02-PE Personas
123
+ SPEC-10-UC Use Cases ──(realizes)─► SPEC-04-FR Functional Requirements
124
+ SPEC-10-UC Use Cases ──(transitions)─► SPEC-08-SM State Model
125
+ SPEC-11-TC Test Cases ──(verifies)─► SPEC-04-FR Functional Requirements
126
+ SPEC-11-TC Test Cases ──(verifies)─► SPEC-05-NR Non-Functional Requirements
127
+ SPEC-15-DS Dialog Storyboard ──(scenario)─► SPEC-10-UC Use Cases
128
+ SPEC-15-DS Dialog Storyboard ──(pattern)─► SPEC-14-DP Dialog Patterns
129
+ ```
130
+
131
+ Solution Vision (SV)
132
+ --------------------
133
+
134
+ The high-level, aspirational description of the solution, capturing
135
+ its purpose, value proposition, and the desired future state it aims
136
+ to achieve.
137
+
138
+ - Format:
139
+
140
+ <format>
141
+
142
+ # SPECIFICATION: SOLUTION VISION (SPEC-SV)
143
+
144
+ ✳ Created: **<timestamp-created/>**
145
+ ✎ Modified: **<timestamp-modified/>**
146
+
147
+ <spec-sv-aspect/>
148
+ <spec-sv-aspect/>
149
+ [...]
150
+
151
+ </format>
152
+
153
+ - <spec-sv-aspect/> format:
154
+
155
+ <format>
156
+
157
+ ## ASPECT: <spec-sv-aspect-name/> <a id="SPEC-SV-<spec-sv-aspect-id/>"></a>
158
+
159
+ <spec-sv-aspect-statement/>
160
+
161
+ </format>
162
+
163
+ - <spec-sv-aspect/> details:
164
+
165
+ - <spec-sv-aspect-id/>: per-artifact unique "slug" of always 1-3
166
+ lower-cased words (concatenated with "-" characters and
167
+ in total not longer than 30 characters), derived from
168
+ <spec-sv-aspect-name/>.
169
+
170
+ - <spec-sv-aspect-name/>: a short (2-5 word) summary of the vision
171
+ aspect. The recommended aspects are `Purpose` (why the solution
172
+ exists), `Target Audience` (who it serves), `Value Proposition`
173
+ (the unique benefit offered), `Differentiators` (how it stands
174
+ apart from alternatives), and `Future State` (the desired
175
+ outcome once adopted).
176
+
177
+ - <spec-sv-aspect-statement/>: a concise paragraph (1-3 sentences)
178
+ of prose describing the vision aspect in an aspirational but
179
+ unambiguous tone.
180
+
181
+ Personas (PE)
182
+ -------------
183
+
184
+ The *archetypal* user profiles representing distinct user groups,
185
+ capturing their goals, needs, behaviors, and context.
186
+
187
+ - Format:
188
+
189
+ <format>
190
+
191
+ # SPECIFICATION: PERSONAS (SPEC-PE)
192
+
193
+ ✳ Created: **<timestamp-created/>**
194
+ ✎ Modified: **<timestamp-modified/>**
195
+
196
+ <spec-pe-persona/>
197
+ <spec-pe-persona/>
198
+ [...]
199
+
200
+ </format>
201
+
202
+ - <spec-pe-persona/> format:
203
+
204
+ <format>
205
+
206
+ ## PERSONA: <spec-pe-persona-name/> <a id="SPEC-PE-<spec-pe-persona-id/>"></a>
207
+
208
+ - Gender: <spec-pe-persona-gender/>
209
+ - Age: <spec-pe-persona-age/>
210
+ - Role: <spec-pe-persona-role/>
211
+
212
+ "<spec-pe-persona-quote/>"
213
+
214
+ </format>
215
+
216
+ - <spec-pe-persona/> details:
217
+
218
+ - <spec-pe-persona-id/>: per-artifact unique "slug" of always 1-3
219
+ lower-cased words (concatenated with "-" characters and
220
+ in total not longer than 30 characters), derived from
221
+ <spec-pe-persona-name/>.
222
+
223
+ - <spec-pe-persona-name/>: per-artifact unique first name of fictional
224
+ described person.
225
+
226
+ - <spec-pe-persona-gender/>: the gender of the persona: `male`,
227
+ `female`, or `diverse`.
228
+
229
+ - <spec-pe-persona-age/>: the age in years of the persona.
230
+
231
+ - <spec-pe-persona-role/>: the role of the persona.
232
+
233
+ - <spec-pe-persona-quote/>: a short and bold, first-person statement —
234
+ written in the persona's own voice — that captures their core
235
+ attitude, motivation, frustration, or need in a single memorable line.
236
+ It's sometimes called the persona's "tagline," "mantra," or "defining
237
+ statement."
238
+
93
239
  Customer Journey (CJ)
94
240
  ---------------------
95
241
 
@@ -116,7 +262,7 @@ over time.
116
262
 
117
263
  <format>
118
264
 
119
- ## STEP SPEC-CJ-<spec-cj-step-id/>: <spec-cj-step-name/>
265
+ ## STEP: <spec-cj-step-name/> <a id="SPEC-CJ-<spec-cj-step-id/>"></a>
120
266
 
121
267
  - Stage: <spec-cj-step-stage/>
122
268
  - Actor: <spec-cj-step-actor/>
@@ -166,56 +312,6 @@ over time.
166
312
  - In case a <spec-cj-step/> has no pain point at all, the
167
313
  entire `- Pain Point:` bullet point is omitted.
168
314
 
169
- Solution Vision (SV)
170
- --------------------
171
-
172
- The high-level, aspirational description of the solution, capturing
173
- its purpose, value proposition, and the desired future state it aims
174
- to achieve.
175
-
176
- - Format:
177
-
178
- <format>
179
-
180
- # SPECIFICATION: SOLUTION VISION (SPEC-SV)
181
-
182
- ✳ Created: **<timestamp-created/>**
183
- ✎ Modified: **<timestamp-modified/>**
184
-
185
- <spec-sv-aspect/>
186
- <spec-sv-aspect/>
187
- [...]
188
-
189
- </format>
190
-
191
- - <spec-sv-aspect/> format:
192
-
193
- <format>
194
-
195
- ## ASPECT SPEC-SV-<spec-sv-aspect-id/>: <spec-sv-aspect-name/>
196
-
197
- <spec-sv-aspect-statement/>
198
-
199
- </format>
200
-
201
- - <spec-sv-aspect/> details:
202
-
203
- - <spec-sv-aspect-id/>: per-artifact unique "slug" of always 1-3
204
- lower-cased words (concatenated with "-" characters and
205
- in total not longer than 30 characters), derived from
206
- <spec-sv-aspect-name/>.
207
-
208
- - <spec-sv-aspect-name/>: a short (2-5 word) summary of the vision
209
- aspect. The recommended aspects are `Purpose` (why the solution
210
- exists), `Target Audience` (who it serves), `Value Proposition`
211
- (the unique benefit offered), `Differentiators` (how it stands
212
- apart from alternatives), and `Future State` (the desired
213
- outcome once adopted).
214
-
215
- - <spec-sv-aspect-statement/>: a concise paragraph (1-3 sentences)
216
- of prose describing the vision aspect in an aspirational but
217
- unambiguous tone.
218
-
219
315
  Functional Requirements (FR)
220
316
  ----------------------------
221
317
 
@@ -242,12 +338,12 @@ operations.
242
338
 
243
339
  <format>
244
340
 
245
- ## REQUIREMENT SPEC-FR-<spec-fr-requirement-id/>: <spec-fr-requirement-name/>
341
+ ## REQUIREMENT: <spec-fr-requirement-name/> <a id="SPEC-FR-<spec-fr-requirement-id/>"></a>
246
342
 
247
343
  - Priority: <spec-fr-requirement-priority/>
248
344
 
249
- <spec-fr-requirement-statement/>
250
- (why: <spec-fr-requirement-rationale/>)
345
+ <spec-fr-requirement-statement/>,
346
+ **BECAUSE** <spec-fr-requirement-rationale/>.
251
347
 
252
348
  </format>
253
349
 
@@ -262,18 +358,21 @@ operations.
262
358
  functional requirement.
263
359
 
264
360
  - <spec-fr-requirement-priority/>: the MoSCoW priority of the
265
- requirement: `MUST`, `SHOULD`, `COULD`, or `WONT`.
361
+ requirement: `MUST`, `SHOULD`, `COULD`, or `WONT`. The `WONT`
362
+ priority records a requirement deliberately excluded from the
363
+ current scope ("won't have this time"), preserving the conscious
364
+ decision rather than silently dropping it.
266
365
 
267
366
  - <spec-fr-requirement-statement/>: a concise paragraph (1-3
268
367
  sentences) of prose describing *what* the solution must do,
269
- written with the keyword `MUST`, `SHOULD`, `COULD`, or `WILL
270
- NOT` to indicate the obligation level.
368
+ written with the keyword `MUST`, `SHOULD`, `COULD`, or `WONT`
369
+ to indicate the obligation level.
271
370
 
272
371
  - <spec-fr-requirement-rationale/>: the 1-sentence rationale ("why")
273
372
  of the functional requirement.
274
373
 
275
374
  - In case the rationale is not present, the
276
- entire `(why: [...])` chunk is omitted.
375
+ entire `, **BECAUSE** [...]` clause is omitted.
277
376
 
278
377
  Non-Functional Requirements (NR)
279
378
  --------------------------------
@@ -300,14 +399,13 @@ as performance, security, scalability, reliability, and usability.
300
399
 
301
400
  <format>
302
401
 
303
- ## REQUIREMENT SPEC-NR-<spec-nr-requirement-id/>: <spec-nr-requirement-name/>
402
+ ## REQUIREMENT: <spec-nr-requirement-name/> <a id="SPEC-NR-<spec-nr-requirement-id/>"></a>
304
403
 
305
- - Category: <spec-nr-requirement-category/>
306
404
  - Priority: <spec-nr-requirement-priority/>
307
- - Metric: <spec-nr-requirement-metric/>
405
+ - Category: <spec-nr-requirement-category/>
308
406
 
309
- <spec-nr-requirement-statement/>
310
- (why: <spec-nr-requirement-rationale/>)
407
+ <spec-nr-requirement-statement/>,
408
+ **BECAUSE** <spec-nr-requirement-rationale/>.
311
409
 
312
410
  </format>
313
411
 
@@ -321,28 +419,108 @@ as performance, security, scalability, reliability, and usability.
321
419
  - <spec-nr-requirement-name/>: a short (3-8 word) summary of the
322
420
  non-functional requirement.
323
421
 
324
- - <spec-nr-requirement-category/>: the quality attribute category
325
- the requirement addresses, one of `Performance`, `Scalability`,
326
- `Reliability`, `Availability`, `Security`, `Privacy`,
327
- `Usability`, `Accessibility`, `Maintainability`, `Portability`,
328
- `Compatibility`, or `Compliance`.
329
-
330
422
  - <spec-nr-requirement-priority/>: the MoSCoW priority of the
331
- requirement: `MUST`, `SHOULD`, `COULD`, or `WONT`.
423
+ requirement: `MUST`, `SHOULD`, `COULD`, or `WONT`. The `WONT`
424
+ priority records a requirement deliberately excluded from the
425
+ current scope ("won't have this time"), preserving the conscious
426
+ decision rather than silently dropping it.
332
427
 
333
- - <spec-nr-requirement-metric/>: the measurable, verifiable
334
- threshold or target by which the requirement is judged satisfied
335
- (e.g. `p95 latency < 200ms`, `99.9% uptime`).
428
+ - <spec-nr-requirement-category/>: the quality attribute category
429
+ the requirement addresses, one of `Performance`,
430
+ `Compatibility`, `Usability`, `Reliability`, `Security`,
431
+ `Safety`, `Maintainability`, `Flexibility`, and `Compliance`,
432
+ according to the top-level characteristics in the ISO/IEC
433
+ 25010:2023 Software-Quality Model (except for `Functional
434
+ Suitability` which is described by our Functional Requirements
435
+ (FR)).
336
436
 
337
437
  - <spec-nr-requirement-statement/>: a concise paragraph (1-3
338
438
  sentences) of prose describing the quality attribute or
339
- constraint the solution must satisfy.
439
+ constraint the solution must satisfy. It especially *MUST*
440
+ contain a *METRIC* within the <spec-nr-requirement-category/>,
441
+ which (according to the SMART principle) is the *specific*,
442
+ *measurable*, *achievable*, *relevant* and *time-bound*
443
+ threshold or target by which the requirement is judged satisfied
444
+ (e.g. `p95 latency < 200ms`, `99.9% uptime`).
340
445
 
341
446
  - <spec-nr-requirement-rationale/>: the 1-sentence rationale ("why")
342
447
  of the non-functional requirement.
343
448
 
344
449
  - In case the rationale is not present, the
345
- entire `(why: [...])` chunk is omitted.
450
+ entire `, **BECAUSE** [...]` clause is omitted.
451
+
452
+ Business Rules (BR)
453
+ -------------------
454
+
455
+ The domain invariants, policies, and decision logic that must always
456
+ hold true in the problem domain, independent of any single feature,
457
+ constraining the Functional and Non-Functional Requirements.
458
+
459
+ - Format:
460
+
461
+ <format>
462
+
463
+ # SPECIFICATION: BUSINESS RULES (SPEC-BR)
464
+
465
+ ✳ Created: **<timestamp-created/>**
466
+ ✎ Modified: **<timestamp-modified/>**
467
+
468
+ <spec-br-rule/>
469
+ <spec-br-rule/>
470
+ [...]
471
+
472
+ </format>
473
+
474
+ - <spec-br-rule/> format:
475
+
476
+ <format>
477
+
478
+ ## RULE: <spec-br-rule-name/> <a id="SPEC-BR-<spec-br-rule-id/>"></a>
479
+
480
+ - Category: <spec-br-rule-category/>
481
+ - Constrains: <spec-br-rule-constrains/>
482
+
483
+ <spec-br-rule-statement/>,
484
+ **BECAUSE** <spec-br-rule-rationale/>.
485
+
486
+ </format>
487
+
488
+ - <spec-br-rule/> details:
489
+
490
+ - <spec-br-rule-id/>: per-artifact unique "slug" of always 1-3
491
+ lower-cased words (concatenated with "-" characters and
492
+ in total not longer than 30 characters), derived from
493
+ <spec-br-rule-name/>.
494
+
495
+ - <spec-br-rule-name/>: a short (3-8 word) summary of the business
496
+ rule.
497
+
498
+ - <spec-br-rule-category/>: the kind of rule, one of `Invariant`
499
+ (a condition that must always hold), `Constraint` (a limit on
500
+ allowed values or actions), `Derivation` (a value computed from
501
+ others), or `Policy` (a deliberate business decision or
502
+ guideline).
503
+
504
+ - <spec-br-rule-constrains/>: a comma-separated list of zero or more
505
+ `SPEC-FR-<spec-fr-requirement-id/>` or
506
+ `SPEC-NR-<spec-nr-requirement-id/>` references to the
507
+ corresponding **Aspect**s of the Functional or Non-Functional
508
+ Requirements **Artifact** the rule constrains.
509
+
510
+ - <spec-br-rule-statement/>: a concise paragraph (1-3 sentences) of
511
+ prose stating the rule declaratively as a condition that must
512
+ hold, written with the keyword `MUST`, `SHOULD`, or `MUST NOT`
513
+ to indicate the obligation level, and naming the domain terms it
514
+ governs (defined in the Glossary **Artifact**).
515
+
516
+ - <spec-br-rule-rationale/>: the 1-sentence rationale ("why") of the
517
+ business rule.
518
+
519
+ - In case the rule constrains no specific requirement, the
520
+ entire `- Constrains:` bullet point is omitted.
521
+
522
+ - In case the rationale is not present, the
523
+ entire `, **BECAUSE** [...]` clause is omitted.
346
524
 
347
525
  Data Model (DM)
348
526
  ---------------
@@ -370,24 +548,24 @@ manages, defining how information is organized and connected.
370
548
 
371
549
  <format>
372
550
 
373
- ## ENTITY SPEC-DM-<spec-dm-entity-id/>: <spec-dm-entity-name/>
551
+ ## ENTITY: `<spec-dm-entity-name/>` <a id="SPEC-DM-<spec-dm-entity-id/>"></a>
374
552
 
375
- <spec-dm-entity-description/>
376
- (why: <spec-dm-entity-rationale/>)
553
+ <spec-dm-entity-description/>,
554
+ **BECAUSE** <spec-dm-entity-rationale/>.
377
555
 
378
556
  ### ATTRIBUTES
379
557
 
380
- - **<spec-dm-attribute-id/>**: <spec-dm-attribute-qualifier/><spec-dm-attribute-type/>:
381
- <spec-dm-attribute-description/>
382
- (why: <spec-dm-attribute-rationale/>)
558
+ - `<spec-dm-attribute-id/>`: `<spec-dm-attribute-qualifier/><spec-dm-attribute-type/>`:<br/>
559
+ <spec-dm-attribute-description/>,
560
+ **BECAUSE** <spec-dm-attribute-rationale/>.
383
561
 
384
562
  - [...]
385
563
 
386
564
  ### RELATIONS
387
565
 
388
- - **<spec-dm-relation-id/>**: <spec-dm-relation-target/>(<spec-dm-relation-cardinality/>):
389
- <spec-dm-relation-description/>
390
- (why: <spec-dm-relation-rationale/>)
566
+ - `<spec-dm-relation-id/>`: [`<spec-dm-relation-target/>`](#<spec-dm-relation-id/>)(`<spec-dm-relation-cardinality/>`):<br/>
567
+ <spec-dm-relation-description/>,
568
+ **BECAUSE** <spec-dm-relation-rationale/>.
391
569
 
392
570
  - [...]
393
571
 
@@ -437,6 +615,9 @@ manages, defining how information is organized and connected.
437
615
  - <spec-dm-relation-target/>: the <spec-dm-entity-name/> of the
438
616
  entity the directed relation targets.
439
617
 
618
+ - <spec-dm-relation-id/>: the <spec-dm-entity-id/> of the
619
+ entity the directed relation targets.
620
+
440
621
  - <spec-dm-relation-cardinality/>: the cardinality of the entity
441
622
  relation at the target entity: `0..1` for zero or one
442
623
  ("optional"), `1` for exactly one ("mandatory"), `0..n` for
@@ -446,191 +627,276 @@ manages, defining how information is organized and connected.
446
627
  entire `### RELATIONS` block is omitted.
447
628
 
448
629
  - In case any rationale is not present, the
449
- entire `(why: [...])` chunk is omitted.
630
+ entire `, **BECAUSE** [...]` clause is omitted.
450
631
 
451
- Use Cases (UC)
452
- --------------
632
+ State Model (SM)
633
+ ----------------
453
634
 
454
- The discrete goals users pursue with the solution, each describing an
455
- actor's interaction to achieve a specific outcome.
635
+ For each entity with a non-trivial lifecycle, the legal states it can
636
+ occupy and the permitted transitions between them over its lifetime,
637
+ making the forbidden moves as explicit as the allowed ones.
456
638
 
457
639
  - Format:
458
640
 
459
641
  <format>
460
642
 
461
- # SPECIFICATION: USE CASES (SPEC-UC)
643
+ # SPECIFICATION: STATE MODEL (SPEC-SM)
462
644
 
463
645
  ✳ Created: **<timestamp-created/>**
464
646
  ✎ Modified: **<timestamp-modified/>**
465
647
 
466
- <spec-uc-usecase/>
467
- <spec-uc-usecase/>
648
+ <spec-sm-lifecycle/>
649
+ <spec-sm-lifecycle/>
468
650
  [...]
469
651
 
470
652
  </format>
471
653
 
472
- - <spec-uc-usecase/> format:
654
+ - <spec-sm-lifecycle/> format:
473
655
 
474
656
  <format>
475
657
 
476
- ## USE CASE SPEC-UC-<spec-uc-usecase-id/>: <spec-uc-usecase-name/>
658
+ ## LIFECYCLE: <spec-sm-lifecycle-name/> <a id="SPEC-SM-<spec-sm-lifecycle-id/>"></a>
477
659
 
478
- - Actor: <spec-uc-usecase-actor/>
479
- - Goal: <spec-uc-usecase-goal/>
480
- - Precondition: <spec-uc-usecase-precondition/>
481
- - Postcondition: <spec-uc-usecase-postcondition/>
660
+ - Entity: <spec-sm-lifecycle-entity/>
661
+ - Initial: <spec-sm-lifecycle-initial/>
662
+ - Final: <spec-sm-lifecycle-final/>
482
663
 
483
- <spec-uc-usecase-description/>
664
+ ### STATES
665
+
666
+ - `<spec-sm-state-name/>`:
667
+ <spec-sm-state-description/>.
668
+
669
+ - [...]
670
+
671
+ ### TRANSITIONS
672
+
673
+ - `<spec-sm-transition-from/>` ─(<spec-sm-transition-event/>)─► `<spec-sm-transition-to/>`:
674
+ <spec-sm-transition-effect/>,
675
+ **WHEN** <spec-sm-transition-guard/>.
676
+
677
+ - [...]
484
678
 
485
679
  </format>
486
680
 
487
- - <spec-uc-usecase/> details:
681
+ - <spec-sm-lifecycle/> details:
488
682
 
489
- - <spec-uc-usecase-id/>: per-artifact unique "slug" of always 1-3
683
+ - <spec-sm-lifecycle-id/>: per-artifact unique "slug" of always 1-3
490
684
  lower-cased words (concatenated with "-" characters and
491
685
  in total not longer than 30 characters), derived from
492
- <spec-uc-usecase-name/>.
686
+ <spec-sm-lifecycle-name/>.
493
687
 
494
- - <spec-uc-usecase-name/>: a short (3-8 word) summary of the use
495
- case, phrased as an actor goal (e.g. `Reset Forgotten Password`).
688
+ - <spec-sm-lifecycle-name/>: a short (1-3 word) name of the lifecycle,
689
+ normally the name of the entity it governs.
496
690
 
497
- - <spec-uc-usecase-actor/> is a `SPEC-PE-<spec-pe-persona-id/>`
498
- reference to the corresponding **Aspect** of the Personas
499
- **Artifact**, denoting the primary actor pursuing the goal.
691
+ - <spec-sm-lifecycle-entity/> is a `SPEC-DM-<spec-dm-entity-id/>`
692
+ reference to the corresponding **Aspect** of the Data Model
693
+ **Artifact** whose lifecycle this models.
500
694
 
501
- - <spec-uc-usecase-goal/>: the 1-sentence statement of what the
502
- actor wants to achieve through this use case.
695
+ - <spec-sm-lifecycle-initial/>: the <spec-sm-state-name/> of the
696
+ single state every instance of the entity enters upon creation.
503
697
 
504
- - <spec-uc-usecase-precondition/>: the condition that must hold
505
- before the use case can begin.
698
+ - <spec-sm-lifecycle-final/>: a comma-separated list of one or more
699
+ <spec-sm-state-name/>s in which the entity may legally come to
700
+ rest permanently (terminal states).
506
701
 
507
- - <spec-uc-usecase-postcondition/>: the condition that holds after
508
- the use case completes successfully.
702
+ - <spec-sm-state-name/>: a short, Pascal-cased, per-lifecycle unique
703
+ name of one state the entity can occupy (e.g. `Draft`,
704
+ `Shipped`).
509
705
 
510
- - <spec-uc-usecase-description/>: a concise paragraph (1-3
511
- sentences) of prose describing the use case at a glance, without
512
- prescribing the step-by-step flow (which belongs to the **Use
513
- Case Scenarios** **Artifact**).
706
+ - <spec-sm-state-description/>: the 1-sentence description ("what
707
+ holds true") of the state.
514
708
 
515
- - In case a precondition or postcondition is not present, the
516
- respective bullet point is omitted.
709
+ - <spec-sm-transition-from/>: the <spec-sm-state-name/> the
710
+ transition departs from.
711
+
712
+ - <spec-sm-transition-to/>: the <spec-sm-state-name/> the transition
713
+ arrives at.
714
+
715
+ - <spec-sm-transition-event/>: a short, lower-cased verb naming the
716
+ event or action that triggers the transition (e.g. `submit`,
717
+ `ship`, `cancel`).
517
718
 
518
- Use Case Scenarios (US)
519
- -----------------------
719
+ - <spec-sm-transition-effect/>: the 1-sentence description ("what
720
+ happens") of the side effect the transition produces.
520
721
 
521
- The concrete step-by-step flows through a **Use Case**, detailing the
522
- sequence of actions for main, alternative, and exceptional paths.
722
+ - <spec-sm-transition-guard/>: the condition that must hold for the
723
+ transition to be permitted; any move not listed as a transition
724
+ is implicitly forbidden.
725
+
726
+ - Every <spec-sm-state-name/> used in a transition *MUST* be
727
+ declared in the `### STATES` block, and every non-final state
728
+ *MUST* have at least one outgoing transition.
729
+
730
+ - In case a transition has no side effect, the
731
+ entire `<spec-sm-transition-effect/>,` clause is omitted.
732
+
733
+ - In case a transition has no guard, the
734
+ entire `, **WHEN** [...]` clause is omitted.
735
+
736
+ Glossary (GL)
737
+ -------------
738
+
739
+ The ubiquitous language of the domain, defining the meaning of each
740
+ domain term in business language, together with its synonyms and the
741
+ ambiguities to avoid, shared consistently across all Artifacts.
523
742
 
524
743
  - Format:
525
744
 
526
745
  <format>
527
746
 
528
- # SPECIFICATION: USE CASE SCENARIOS (SPEC-US)
747
+ # SPECIFICATION: GLOSSARY (SPEC-GL)
529
748
 
530
749
  ✳ Created: **<timestamp-created/>**
531
750
  ✎ Modified: **<timestamp-modified/>**
532
751
 
533
- <spec-us-scenario/>
534
- <spec-us-scenario/>
752
+ <spec-gl-term/>
753
+ <spec-gl-term/>
535
754
  [...]
536
755
 
537
756
  </format>
538
757
 
539
- - <spec-us-scenario/> format:
758
+ - <spec-gl-term/> format:
540
759
 
541
760
  <format>
542
761
 
543
- ## SCENARIO SPEC-US-<spec-us-scenario-id/>: <spec-us-scenario-name/>
762
+ ## TERM: <spec-gl-term-name/> <a id="SPEC-GL-<spec-gl-term-id/>"></a>
544
763
 
545
- - Use Case: <spec-us-scenario-usecase/>
546
- - Type: <spec-us-scenario-type/>
764
+ - Synonyms: <spec-gl-term-synonyms/>
547
765
 
548
- 1. <spec-us-scenario-step/>
549
- 2. <spec-us-scenario-step/>
550
- [...]
766
+ <spec-gl-term-definition/>
551
767
 
552
768
  </format>
553
769
 
554
- - <spec-us-scenario/> details:
770
+ - <spec-gl-term/> details:
555
771
 
556
- - <spec-us-scenario-id/>: per-artifact unique "slug" of always 1-3
772
+ - <spec-gl-term-id/>: per-artifact unique "slug" of always 1-3
557
773
  lower-cased words (concatenated with "-" characters and
558
774
  in total not longer than 30 characters), derived from
559
- <spec-us-scenario-name/>.
775
+ <spec-gl-term-name/>.
560
776
 
561
- - <spec-us-scenario-name/>: a short (3-8 word) summary of the
562
- scenario.
777
+ - <spec-gl-term-name/>: the canonical, preferred name of the domain
778
+ term, capitalized as it should appear in all Artifacts.
563
779
 
564
- - <spec-us-scenario-usecase/> is a `SPEC-UC-<spec-uc-usecase-id/>`
565
- reference to the corresponding **Aspect** of the Use Cases
566
- **Artifact** this scenario flows through.
780
+ - <spec-gl-term-synonyms/>: a comma-separated list of one or more
781
+ alternative names or abbreviations that refer to the same term
782
+ but are *not* the preferred form.
567
783
 
568
- - <spec-us-scenario-type/>: the path the scenario represents, one
569
- of `Main` (the primary, happy-path flow), `Alternative` (a
570
- valid but secondary flow), or `Exceptional` (an error or
571
- failure-handling flow).
784
+ - <spec-gl-term-definition/>: a concise paragraph (1-3 sentences) of
785
+ prose defining the term in business language, independent of any
786
+ implementation, and referencing other terms by their
787
+ <spec-gl-term-name/> where helpful.
572
788
 
573
- - <spec-us-scenario-step/>: a single, imperative step in the flow,
574
- naming the acting party (actor or system) and the action taken
575
- (e.g. `The user submits the login form.`). Steps are numbered
576
- sequentially to convey their order.
789
+ - In case a term has no synonyms, the
790
+ entire `- Synonyms:` bullet point is omitted.
577
791
 
578
- Personas (PE)
579
- -------------
792
+ Use Cases (UC)
793
+ --------------
580
794
 
581
- The *archetypal* user profiles representing distinct user groups,
582
- capturing their goals, needs, behaviors, and context.
795
+ The discrete goals users pursue with the solution, each describing an
796
+ actor's interaction to achieve a specific outcome. For each Use Case,
797
+ also the concrete step-by-step flows, detailing the sequence of actions
798
+ for main, alternative, and exceptional paths.
583
799
 
584
800
  - Format:
585
801
 
586
802
  <format>
587
803
 
588
- # SPECIFICATION: PERSONAS (SPEC-PE)
804
+ # SPECIFICATION: USE CASES (SPEC-UC)
589
805
 
590
806
  ✳ Created: **<timestamp-created/>**
591
807
  ✎ Modified: **<timestamp-modified/>**
592
808
 
593
- <spec-pe-persona/>
594
- <spec-pe-persona/>
809
+ <spec-uc-usecase/>
810
+ <spec-uc-usecase/>
595
811
  [...]
596
812
 
597
813
  </format>
598
814
 
599
- - <spec-pe-persona/> format:
815
+ - <spec-uc-usecase/> format:
600
816
 
601
817
  <format>
602
818
 
603
- ## PERSONA SPEC-PE-<spec-pe-persona-id/>: <spec-pe-persona-name/>
819
+ ## USE CASE: <spec-uc-usecase-name/> <a id="SPEC-UC-<spec-uc-usecase-id/>"></a>
604
820
 
605
- - Gender: <spec-pe-persona-gender/>
606
- - Age: <spec-pe-persona-age/>
607
- - Role: <spec-pe-persona-role/>
608
- - Quote: "<spec-pe-persona-quote/>"
821
+ - Actor: <spec-uc-usecase-actor/>
822
+ - Requirements: <spec-uc-usecase-requirements/>
823
+ - Goal: <spec-uc-usecase-goal/>
824
+ - Pre-Condition: <spec-uc-usecase-precondition/>
825
+ - Post-Condition: <spec-uc-usecase-postcondition/>
826
+
827
+ <spec-uc-usecase-description/>
828
+
829
+ <spec-uc-usecase-scenario/>
830
+ <spec-uc-usecase-scenario/>
831
+ [...]
609
832
 
610
833
  </format>
611
834
 
612
- - <spec-pe-persona/> details:
835
+ - <spec-uc-usecase/> details:
613
836
 
614
- - <spec-pe-persona-id/>: per-artifact unique "slug" of always 1-3
837
+ - <spec-uc-usecase-id/>: per-artifact unique "slug" of always 1-3
615
838
  lower-cased words (concatenated with "-" characters and
616
839
  in total not longer than 30 characters), derived from
617
- <spec-pe-persona-name/>.
840
+ <spec-uc-usecase-name/>.
618
841
 
619
- - <spec-pe-persona-name/>: per-artifact unique first name of fictional
620
- described person.
842
+ - <spec-uc-usecase-name/>: a short (3-8 word) summary of the use
843
+ case, phrased as an actor goal (e.g. `Reset Forgotten Password`).
621
844
 
622
- - <spec-pe-persona-gender/>: the gender of the persona: `male`,
623
- `female`, or `diverse`.
845
+ - <spec-uc-usecase-actor/> is a `SPEC-PE-<spec-pe-persona-id/>`
846
+ reference to the corresponding **Aspect** of the Personas
847
+ **Artifact**, denoting the primary actor pursuing the goal.
624
848
 
625
- - <spec-pe-persona-age/>: the age in years of the persona.
849
+ - <spec-uc-usecase-requirements/> is a comma-separated list of one
850
+ or more `SPEC-FR-<spec-fr-requirement-id/>` references to the
851
+ corresponding **Aspect**s of the Functional Requirements
852
+ **Artifact** the use case realizes.
626
853
 
627
- - <spec-pe-persona-role/>: the role of the persona.
854
+ - <spec-uc-usecase-goal/>: the 1-sentence statement of what the
855
+ actor wants to achieve through this use case.
628
856
 
629
- - <spec-pe-persona-quote/>: a short, first-person statement
630
- written in the persona's own voice — that captures their core
631
- attitude, motivation, frustration, or need in a single memorable line.
632
- It's sometimes called the persona's "tagline," "mantra," or "defining
633
- statement."
857
+ - <spec-uc-usecase-precondition/>: the condition that must hold
858
+ before the use case can begin.
859
+
860
+ - <spec-uc-usecase-postcondition/>: the condition that holds after
861
+ the use case completes successfully.
862
+
863
+ - <spec-uc-usecase-description/>: a concise paragraph (1-3
864
+ sentences) of prose describing the use case at a glance, without
865
+ prescribing the step-by-step flow (which belongs to the **Use
866
+ Case Scenarios** **Artifact**).
867
+
868
+ - In case the use case realizes no specific functional requirement,
869
+ the entire `- Requirements:` bullet point is omitted.
870
+
871
+ - In case a precondition or postcondition is not present, the
872
+ respective bullet point is omitted.
873
+
874
+ - <spec-uc-usecase-scenario/> format:
875
+
876
+ <format>
877
+
878
+ ### SCENARIO: <spec-uc-usecase-scenario-name/> (<spec-uc-usecase-scenario-type/>)
879
+
880
+ 1. <spec-uc-usecase-scenario-step/>
881
+ 2. <spec-uc-usecase-scenario-step/>
882
+ [...]
883
+
884
+ </format>
885
+
886
+ - <spec-uc-usecase-scenario/> details:
887
+
888
+ - <spec-uc-usecase-scenario-name/>: a short (3-8 word) summary of the
889
+ scenario.
890
+
891
+ - <spec-uc-usecase-scenario-type/>: the path the scenario represents, one
892
+ of `Main` (the primary, happy-path flow), `Alternative` (a
893
+ valid but secondary flow), or `Exceptional` (an error or
894
+ failure-handling flow).
895
+
896
+ - <spec-uc-usecase-scenario-step/>: a single, imperative step in the flow,
897
+ naming the acting party (actor or system) and the action taken
898
+ (e.g. `The user submits the login form.`). Steps are numbered
899
+ sequentially to convey their order.
634
900
 
635
901
  Test Cases (TC)
636
902
  ---------------
@@ -658,13 +924,13 @@ expected outcomes, and optional pre- and post-conditions.
658
924
 
659
925
  <format>
660
926
 
661
- ## TEST CASE SPEC-TC-<spec-tc-testcase-id/>: <spec-tc-testcase-name/>
927
+ ## TEST CASE: <spec-tc-testcase-name/> <a id="SPEC-TC-<spec-tc-testcase-id/>"></a>
662
928
 
663
- - Verifies: <spec-tc-testcase-verifies/>
664
- - Precondition: <spec-tc-testcase-precondition/>
665
- - Input: <spec-tc-testcase-input/>
666
- - Expected: <spec-tc-testcase-expected/>
667
- - Postcondition: <spec-tc-testcase-postcondition/>
929
+ - Verifies: <spec-tc-testcase-verifies/>
930
+ - Pre-Condition: <spec-tc-testcase-precondition/>
931
+ - Input: <spec-tc-testcase-input/>
932
+ - Expected: <spec-tc-testcase-expected/>
933
+ - Post-Condition: <spec-tc-testcase-postcondition/>
668
934
 
669
935
  </format>
670
936
 
@@ -695,7 +961,7 @@ expected outcomes, and optional pre- and post-conditions.
695
961
  - <spec-tc-testcase-postcondition/>: the state that must hold after
696
962
  the test completes (optional).
697
963
 
698
- - In case a precondition or postcondition is not present, the
964
+ - In case a pre-condition or post-condition is not present, the
699
965
  respective bullet point is omitted.
700
966
 
701
967
  Interaction Concept (IC)
@@ -724,10 +990,10 @@ auto-save behavior).
724
990
 
725
991
  <format>
726
992
 
727
- ## PRINCIPLE SPEC-IC-<spec-ic-principle-id/>: <spec-ic-principle-name/>
993
+ ## PRINCIPLE: <spec-ic-principle-name/> <a id="SPEC-IC-<spec-ic-principle-id/>"></a>
728
994
 
729
- <spec-ic-principle-statement/>
730
- (why: <spec-ic-principle-rationale/>)
995
+ <spec-ic-principle-statement/>,
996
+ **BECAUSE** <spec-ic-principle-rationale/>.
731
997
 
732
998
  </format>
733
999
 
@@ -750,7 +1016,7 @@ auto-save behavior).
750
1016
  of the interaction principle.
751
1017
 
752
1018
  - In case the rationale is not present, the
753
- entire `(why: [...])` chunk is omitted.
1019
+ entire `, **BECAUSE** [...]` clause is omitted.
754
1020
 
755
1021
  Language Conventions (LC)
756
1022
  -------------------------
@@ -777,7 +1043,7 @@ across the solution and its content.
777
1043
 
778
1044
  <format>
779
1045
 
780
- ## CONVENTION SPEC-LC-<spec-lc-convention-id/>: <spec-lc-convention-name/>
1046
+ ## CONVENTION: <spec-lc-convention-name/> <a id="SPEC-LC-<spec-lc-convention-id/>"></a>
781
1047
 
782
1048
  - Category: <spec-lc-convention-category/>
783
1049
 
@@ -837,12 +1103,13 @@ master-detail dialog).
837
1103
 
838
1104
  <format>
839
1105
 
840
- ## PATTERN SPEC-DP-<spec-dp-pattern-id/>: <spec-dp-pattern-name/>
1106
+ ## PATTERN: <spec-dp-pattern-name/> <a id="SPEC-DP-<spec-dp-pattern-id/>"></a>
841
1107
 
842
1108
  - Context: <spec-dp-pattern-context/>
1109
+ - Problem: <spec-dp-pattern-problem/>
843
1110
 
844
- <spec-dp-pattern-description/>
845
- (why: <spec-dp-pattern-rationale/>)
1111
+ <spec-dp-pattern-description/>,
1112
+ **BECAUSE** <spec-dp-pattern-rationale/>.
846
1113
 
847
1114
  </format>
848
1115
 
@@ -859,17 +1126,27 @@ master-detail dialog).
859
1126
  - <spec-dp-pattern-context/>: the recurring situation or flow in
860
1127
  which the pattern is applied.
861
1128
 
1129
+ - <spec-dp-pattern-problem/>: the 1-sentence tension or difficulty
1130
+ the pattern resolves ("why is the pattern needed"),
1131
+ stated independently of its solution (which belongs to
1132
+ <spec-dp-pattern-description/>) and its rationale (which belongs
1133
+ to <spec-dp-pattern-rationale/>).
1134
+
862
1135
  - <spec-dp-pattern-description/>: a concise paragraph (1-3
863
1136
  sentences) of prose describing the reusable interaction structure
864
1137
  and how the system and user exchange information within it.
865
1138
 
866
- - <spec-dp-pattern-rationale/>: the 1-sentence rationale ("why") of
867
- the dialog pattern.
1139
+ - <spec-dp-pattern-rationale/>: the 1-sentence justification for why
1140
+ the structure in <spec-dp-pattern-description/> is the right
1141
+ response — the benefit it secures or the trade-off it wins.
1142
+ Unlike <spec-dp-pattern-problem/> (which states *why the pattern
1143
+ is needed*, independent of any solution), the rationale states
1144
+ *why this particular solution is worth adopting*.
868
1145
 
869
1146
  - In case the rationale is not present, the
870
- entire `(why: [...])` chunk is omitted.
1147
+ entire `, **BECAUSE** [...]` clause is omitted.
871
1148
 
872
- Dialog Storyboard (SB)
1149
+ Dialog Storyboard (DS)
873
1150
  ----------------------
874
1151
 
875
1152
  The sequenced visual or textual depiction of a specific dialog flow,
@@ -880,59 +1157,66 @@ turn.
880
1157
 
881
1158
  <format>
882
1159
 
883
- # SPECIFICATION: DIALOG STORYBOARD (SPEC-SB)
1160
+ # SPECIFICATION: DIALOG STORYBOARD (SPEC-DS)
884
1161
 
885
1162
  ✳ Created: **<timestamp-created/>**
886
1163
  ✎ Modified: **<timestamp-modified/>**
887
1164
 
888
- <spec-sb-storyboard/>
889
- <spec-sb-storyboard/>
1165
+ <spec-ds-storyboard/>
1166
+ <spec-ds-storyboard/>
890
1167
  [...]
891
1168
 
892
1169
  </format>
893
1170
 
894
- - <spec-sb-storyboard/> format:
1171
+ - <spec-ds-storyboard/> format:
895
1172
 
896
1173
  <format>
897
1174
 
898
- ## STORYBOARD SPEC-SB-<spec-sb-storyboard-id/>: <spec-sb-storyboard-name/>
1175
+ ## STORYBOARD: <spec-ds-storyboard-name/> <a id="SPEC-DS-<spec-ds-storyboard-id/>"></a>
899
1176
 
900
- - Pattern: <spec-sb-storyboard-pattern/>
901
- - Scenario: <spec-sb-storyboard-scenario/>
1177
+ - Pattern: <spec-ds-storyboard-pattern/>
1178
+ - Use Case: <spec-ds-storyboard-usecase/>
1179
+ - Scenario: <spec-ds-storyboard-scenario/>
902
1180
 
903
- 1. **<spec-sb-frame-name/>**: <spec-sb-frame-description/>
904
- 2. **<spec-sb-frame-name/>**: <spec-sb-frame-description/>
1181
+ 1. **<spec-ds-frame-name/>**: <spec-ds-frame-description/>
1182
+ 2. **<spec-ds-frame-name/>**: <spec-ds-frame-description/>
905
1183
  [...]
906
1184
 
907
1185
  </format>
908
1186
 
909
- - <spec-sb-storyboard/> details:
1187
+ - <spec-ds-storyboard/> details:
910
1188
 
911
- - <spec-sb-storyboard-id/>: per-artifact unique "slug" of always
1189
+ - <spec-ds-storyboard-id/>: per-artifact unique "slug" of always
912
1190
  1-3 lower-cased words (concatenated with "-" characters and
913
1191
  in total not longer than 30 characters), derived from
914
- <spec-sb-storyboard-name/>.
1192
+ <spec-ds-storyboard-name/>.
915
1193
 
916
- - <spec-sb-storyboard-name/>: a short (3-8 word) summary of the
1194
+ - <spec-ds-storyboard-name/>: a short (3-8 word) summary of the
917
1195
  depicted dialog flow.
918
1196
 
919
- - <spec-sb-storyboard-pattern/> is a `SPEC-DP-<spec-dp-pattern-id/>`
1197
+ - <spec-ds-storyboard-pattern/> is a `SPEC-DP-<spec-dp-pattern-id/>`
920
1198
  reference to the corresponding **Aspect** of the Dialog Patterns
921
1199
  **Artifact** the storyboard instantiates (optional).
922
1200
 
923
- - <spec-sb-storyboard-scenario/> is a `SPEC-US-<spec-us-scenario-id/>`
924
- reference to the corresponding **Aspect** of the Use Case
925
- Scenarios **Artifact** the storyboard visualizes (optional).
1201
+ - <spec-ds-storyboard-usecase/> is a
1202
+ `SPEC-UC-<spec-uc-usecase-id/>` reference to the corresponding
1203
+ **Aspect** of the Use Case **Artifact** the storyboard
1204
+ visualizes (optional).
926
1205
 
927
- - <spec-sb-frame-name/>: a short (2-5 word) label for the screen,
1206
+ - <spec-ds-storyboard-scenario/> is a
1207
+ Use Case scenario type `<spec-uc-usecase-scenario-type/>` of
1208
+ the corresponding **Aspect** of the Use Case **Artifact** the
1209
+ storyboard visualizes (optional).
1210
+
1211
+ - <spec-ds-frame-name/>: a short (2-5 word) label for the screen,
928
1212
  turn, or state depicted by the storyboard frame. Frames are
929
1213
  numbered sequentially to convey their order.
930
1214
 
931
- - <spec-sb-frame-description/>: a concise (1-2 sentence) description
1215
+ - <spec-ds-frame-description/>: a concise (1-2 sentence) description
932
1216
  of what the user sees and does at this frame of the interaction.
933
1217
 
934
- - In case a pattern or scenario reference is not present, the
935
- respective bullet point is omitted.
1218
+ - In case a pattern, use case, or scenario reference is not present,
1219
+ the respective bullet point is omitted.
936
1220
 
937
1221
  Visual Design (VD)
938
1222
  ------------------
@@ -959,12 +1243,12 @@ typography, spacing, imagery, and overall look and feel.
959
1243
 
960
1244
  <format>
961
1245
 
962
- ## ELEMENT SPEC-VD-<spec-vd-element-id/>: <spec-vd-element-name/>
1246
+ ## ELEMENT: <spec-vd-element-name/> <a id="SPEC-VD-<spec-vd-element-id/>"></a>
963
1247
 
964
1248
  - Category: <spec-vd-element-category/>
965
1249
 
966
- <spec-vd-element-specification/>
967
- (why: <spec-vd-element-rationale/>)
1250
+ <spec-vd-element-specification/>,
1251
+ **BECAUSE** <spec-vd-element-rationale/>.
968
1252
 
969
1253
  </format>
970
1254
 
@@ -979,8 +1263,8 @@ typography, spacing, imagery, and overall look and feel.
979
1263
  design element.
980
1264
 
981
1265
  - <spec-vd-element-category/>: the aspect of visual design the
982
- element governs, one of `Color`, `Typography`, `Spacing`,
983
- `Layout`, `Iconography`, `Imagery`, `Motion`, or `Branding`.
1266
+ element governs, one of `Color`, `Typography`, `Iconography`,
1267
+ `Imagery`, `Layout`, or `Animation`.
984
1268
 
985
1269
  - <spec-vd-element-specification/>: a concise paragraph (1-3
986
1270
  sentences) of prose specifying the concrete values, tokens, or
@@ -991,4 +1275,4 @@ typography, spacing, imagery, and overall look and feel.
991
1275
  the visual design element.
992
1276
 
993
1277
  - In case the rationale is not present, the
994
- entire `(why: [...])` chunk is omitted.
1278
+ entire `, **BECAUSE** [...]` clause is omitted.