@rse/ase 0.9.0 → 0.9.1

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.
@@ -0,0 +1,994 @@
1
+
2
+ @./ase-format-meta.md
3
+
4
+ Specification (SPEC)
5
+ ====================
6
+
7
+ The **Artifact Set** **Specification (SPEC)** specifies the "input"
8
+ and the "what" of the Software Engineering project.
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.
15
+
16
+ Each **Artifact** contains two timestamps: the <timestamp-created/>
17
+ is the timestamp when this **Artifact** was created. The
18
+ <timestamp-modified/> is the timestamp when this **Artifact** was last
19
+ modified. Both use an ISO-style format value. The value of both can be
20
+ determined by a call to the `ase_timestamp(format: "yyyy-LL-dd HH:mm")`
21
+ tool of the `ase` MCP server and use the `text` field of its response.
22
+ Whenever an **Artifact** is updated, the <timestamp-modified/> *MUST* be
23
+ updated, too.
24
+
25
+ The **Artifact Set** **Specification (SPEC)** consists of the following
26
+ distinct **Artifact**s (listed under their <artifact-name/> and their
27
+ <artifact-id/>):
28
+
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)**:
35
+ The high-level, aspirational description of the solution, capturing
36
+ its purpose, value proposition, and the desired future state it aims
37
+ to achieve.
38
+
39
+ - **Functional Requirements (FR)**:
40
+ The concrete behaviors and capabilities the solution must provide,
41
+ describing *what* the system does in terms of functions, features, and
42
+ operations.
43
+
44
+ - **Non-Functional Requirements (NR)**:
45
+ The quality attributes and constraints the solution must satisfy, such
46
+ as performance, security, scalability, reliability, and usability.
47
+
48
+ - **Data Model (DM)**:
49
+ The structure of named entities, named attributes, and named directed
50
+ relationships (including a cardinality) of the data the solution
51
+ manages, defining how information is organized and connected.
52
+
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.
56
+
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.
60
+
61
+ - **Personas (PE)**:
62
+ The *archetypal* user profiles representing distinct user groups,
63
+ capturing their goals, needs, behaviors, and context.
64
+
65
+ - **Test Cases (TC)**:
66
+ The verifiable conditions and steps used to confirm that requirements
67
+ are correctly implemented, with mandatory defined inputs, mandatory
68
+ expected outcomes, and optional pre- and post-conditions.
69
+
70
+ - **Interaction Concept (IC)**:
71
+ The overarching idea of how users interact with the solution,
72
+ describing the intended workflows and interaction philosophy (e.g.
73
+ auto-save behavior).
74
+
75
+ - **Language Conventions (LC)**:
76
+ The terminology, naming, tone, and wording standards used consistently
77
+ across the solution and its content.
78
+
79
+ - **Dialog Patterns (DP)**:
80
+ The reusable interaction structures governing how the system and user
81
+ exchange information across recurring conversational or UI flows (e.g.
82
+ master-detail dialog).
83
+
84
+ - **Dialog Storyboard (SB)**:
85
+ The sequenced visual or textual depiction of a specific dialog flow,
86
+ illustrating how an interaction unfolds screen by screen or turn by
87
+ turn.
88
+
89
+ - **Visual Design (VD)**:
90
+ The aesthetic and layout aspects of the solution, defining colors,
91
+ typography, spacing, imagery, and overall look and feel.
92
+
93
+ Customer Journey (CJ)
94
+ ---------------------
95
+
96
+ The end-to-end experience a customer has while discovering, adopting,
97
+ and using the solution, mapping their steps, touchpoints, and emotions
98
+ over time.
99
+
100
+ - Format:
101
+
102
+ <format>
103
+
104
+ # SPECIFICATION: CUSTOMER JOURNEY (SPEC-CJ)
105
+
106
+ ✳ Created: **<timestamp-created/>**
107
+ ✎ Modified: **<timestamp-modified/>**
108
+
109
+ <spec-cj-step/>
110
+ <spec-cj-step/>
111
+ [...]
112
+
113
+ </format>
114
+
115
+ - <spec-cj-step/> format:
116
+
117
+ <format>
118
+
119
+ ## STEP SPEC-CJ-<spec-cj-step-id/>: <spec-cj-step-name/>
120
+
121
+ - Stage: <spec-cj-step-stage/>
122
+ - Actor: <spec-cj-step-actor/>
123
+ - Goal: <spec-cj-step-goal/>
124
+ - Touchpoint: <spec-cj-step-touchpoint/>
125
+ - Action: <spec-cj-step-action/>
126
+ - Emotion: <spec-cj-step-emotion/>
127
+ - Pain Point: <spec-cj-step-painpoint/>
128
+
129
+ </format>
130
+
131
+ - <spec-cj-step/> details:
132
+
133
+ - <spec-cj-step-id/>: per-artifact unique "slug" of always 1-3
134
+ lower-cased words (concatenated with "-" characters and
135
+ in total not longer than 30 characters), derived from
136
+ <spec-cj-step-name/>.
137
+
138
+ - <spec-cj-step-name/> is a summary (5-10 words) of the *step* at its
139
+ <spec-cj-step-touchpoint/>.
140
+
141
+ - <spec-cj-step-actor/> is a `SPEC-PE-<spec-pe-persona-id/>` reference to the
142
+ corresponding **Aspect** of the Personas **Artifact**.
143
+
144
+ - <spec-cj-step-stage/> is one of:
145
+
146
+ - `Awareness`: Customer is not aware of solution, but has a need.
147
+ - `Consideration`: Customer is aware of solution, and should consider its use.
148
+ - `Decision`: Customer wants to pick the solution.
149
+ - `Onboarding`: Customer is using the solution.
150
+ - `Retention`: Customer in the long-term stays a customer.
151
+ - `Advocacy`: Customer is a fan of solution and tells the tribe.
152
+
153
+ - <spec-cj-step-goal/> is what the actor wants to achieve at this step.
154
+
155
+ - <spec-cj-step-touchpoint/> is where or how the interaction happens
156
+ (e.g. landing page, email, support call).
157
+
158
+ - <spec-cj-step-action/> is what the actor actually does at this step.
159
+
160
+ - <spec-cj-step-emotion/> is the **AS IS** felt state at this step, given
161
+ as a word plus an intensity on a 1-5 Likert scale (e.g. `Curious (4)`).
162
+
163
+ - <spec-cj-step-painpoint/> is the **AS IS** friction or frustration the
164
+ actor encounters at this step (optional).
165
+
166
+ - In case a <spec-cj-step/> has no pain point at all, the
167
+ entire `- Pain Point:` bullet point is omitted.
168
+
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
+ Functional Requirements (FR)
220
+ ----------------------------
221
+
222
+ The concrete behaviors and capabilities the solution must provide,
223
+ describing *what* the system does in terms of functions, features, and
224
+ operations.
225
+
226
+ - Format:
227
+
228
+ <format>
229
+
230
+ # SPECIFICATION: FUNCTIONAL REQUIREMENTS (SPEC-FR)
231
+
232
+ ✳ Created: **<timestamp-created/>**
233
+ ✎ Modified: **<timestamp-modified/>**
234
+
235
+ <spec-fr-requirement/>
236
+ <spec-fr-requirement/>
237
+ [...]
238
+
239
+ </format>
240
+
241
+ - <spec-fr-requirement/> format:
242
+
243
+ <format>
244
+
245
+ ## REQUIREMENT SPEC-FR-<spec-fr-requirement-id/>: <spec-fr-requirement-name/>
246
+
247
+ - Priority: <spec-fr-requirement-priority/>
248
+
249
+ <spec-fr-requirement-statement/>
250
+ (why: <spec-fr-requirement-rationale/>)
251
+
252
+ </format>
253
+
254
+ - <spec-fr-requirement/> details:
255
+
256
+ - <spec-fr-requirement-id/>: per-artifact unique "slug" of always
257
+ 1-3 lower-cased words (concatenated with "-" characters and
258
+ in total not longer than 30 characters), derived from
259
+ <spec-fr-requirement-name/>.
260
+
261
+ - <spec-fr-requirement-name/>: a short (3-8 word) summary of the
262
+ functional requirement.
263
+
264
+ - <spec-fr-requirement-priority/>: the MoSCoW priority of the
265
+ requirement: `MUST`, `SHOULD`, `COULD`, or `WONT`.
266
+
267
+ - <spec-fr-requirement-statement/>: a concise paragraph (1-3
268
+ 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.
271
+
272
+ - <spec-fr-requirement-rationale/>: the 1-sentence rationale ("why")
273
+ of the functional requirement.
274
+
275
+ - In case the rationale is not present, the
276
+ entire `(why: [...])` chunk is omitted.
277
+
278
+ Non-Functional Requirements (NR)
279
+ --------------------------------
280
+
281
+ The quality attributes and constraints the solution must satisfy, such
282
+ as performance, security, scalability, reliability, and usability.
283
+
284
+ - Format:
285
+
286
+ <format>
287
+
288
+ # SPECIFICATION: NON-FUNCTIONAL REQUIREMENTS (SPEC-NR)
289
+
290
+ ✳ Created: **<timestamp-created/>**
291
+ ✎ Modified: **<timestamp-modified/>**
292
+
293
+ <spec-nr-requirement/>
294
+ <spec-nr-requirement/>
295
+ [...]
296
+
297
+ </format>
298
+
299
+ - <spec-nr-requirement/> format:
300
+
301
+ <format>
302
+
303
+ ## REQUIREMENT SPEC-NR-<spec-nr-requirement-id/>: <spec-nr-requirement-name/>
304
+
305
+ - Category: <spec-nr-requirement-category/>
306
+ - Priority: <spec-nr-requirement-priority/>
307
+ - Metric: <spec-nr-requirement-metric/>
308
+
309
+ <spec-nr-requirement-statement/>
310
+ (why: <spec-nr-requirement-rationale/>)
311
+
312
+ </format>
313
+
314
+ - <spec-nr-requirement/> details:
315
+
316
+ - <spec-nr-requirement-id/>: per-artifact unique "slug" of always
317
+ 1-3 lower-cased words (concatenated with "-" characters and
318
+ in total not longer than 30 characters), derived from
319
+ <spec-nr-requirement-name/>.
320
+
321
+ - <spec-nr-requirement-name/>: a short (3-8 word) summary of the
322
+ non-functional requirement.
323
+
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
+ - <spec-nr-requirement-priority/>: the MoSCoW priority of the
331
+ requirement: `MUST`, `SHOULD`, `COULD`, or `WONT`.
332
+
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`).
336
+
337
+ - <spec-nr-requirement-statement/>: a concise paragraph (1-3
338
+ sentences) of prose describing the quality attribute or
339
+ constraint the solution must satisfy.
340
+
341
+ - <spec-nr-requirement-rationale/>: the 1-sentence rationale ("why")
342
+ of the non-functional requirement.
343
+
344
+ - In case the rationale is not present, the
345
+ entire `(why: [...])` chunk is omitted.
346
+
347
+ Data Model (DM)
348
+ ---------------
349
+
350
+ The structure of named entities, named attributes, and named directed
351
+ relationships (including a cardinality) of the data the solution
352
+ manages, defining how information is organized and connected.
353
+
354
+ - Format:
355
+
356
+ <format>
357
+
358
+ # SPECIFICATION: DATA MODEL (SPEC-DM)
359
+
360
+ ✳ Created: **<timestamp-created/>**
361
+ ✎ Modified: **<timestamp-modified/>**
362
+
363
+ <spec-dm-entity/>
364
+ <spec-dm-entity/>
365
+ [...]
366
+
367
+ </format>
368
+
369
+ - <spec-dm-entity/> format:
370
+
371
+ <format>
372
+
373
+ ## ENTITY SPEC-DM-<spec-dm-entity-id/>: <spec-dm-entity-name/>
374
+
375
+ <spec-dm-entity-description/>
376
+ (why: <spec-dm-entity-rationale/>)
377
+
378
+ ### ATTRIBUTES
379
+
380
+ - **<spec-dm-attribute-id/>**: <spec-dm-attribute-qualifier/><spec-dm-attribute-type/>:
381
+ <spec-dm-attribute-description/>
382
+ (why: <spec-dm-attribute-rationale/>)
383
+
384
+ - [...]
385
+
386
+ ### RELATIONS
387
+
388
+ - **<spec-dm-relation-id/>**: <spec-dm-relation-target/>(<spec-dm-relation-cardinality/>):
389
+ <spec-dm-relation-description/>
390
+ (why: <spec-dm-relation-rationale/>)
391
+
392
+ - [...]
393
+
394
+ </format>
395
+
396
+ - <spec-dm-entity/> details:
397
+
398
+ - <spec-dm-entity-id/>: per-artifact unique "slug" of always 1-3
399
+ lower-cased words (concatenated with "-" characters and
400
+ in total not longer than 30 characters), derived from
401
+ <spec-dm-entity-name/>.
402
+
403
+ - <spec-dm-entity-name/>: Pascal-cased, 1-3 word long, per-artifact
404
+ unique name of the entity.
405
+
406
+ - <spec-dm-entity-description/>: the 1-sentence description ("what")
407
+ of the entity.
408
+
409
+ - <spec-dm-entity-rationale/>: the 1-sentence rationale ("why") of
410
+ the entity.
411
+
412
+ - <spec-dm-attribute-id/>: camel-cased, 1-3 word long, per-entity
413
+ unique identifier of the entity attribute.
414
+
415
+ - <spec-dm-attribute-qualifier/>: the optional prefix `unique `
416
+ to indicate inclusion into the primary key of the entity.
417
+
418
+ - <spec-dm-attribute-type/>: the type of the entity attribute:
419
+ `boolean`, `integer`, `float`, `uuid`, `string`, `bytes`,
420
+ `enum(XXX,YYY[,...])`, `date`, `time`, or `datetime`.
421
+
422
+ - <spec-dm-attribute-description/>: the 1-sentence description
423
+ ("what") of the entity attribute.
424
+
425
+ - <spec-dm-attribute-rationale/>: the 1-sentence rationale ("why")
426
+ of the entity attribute.
427
+
428
+ - <spec-dm-relation-id/>: camel-cased, 1-3 word long, per-entity
429
+ unique identifier of the entity relation.
430
+
431
+ - <spec-dm-relation-description/>: the 1-sentence description
432
+ ("what") of the entity relation.
433
+
434
+ - <spec-dm-relation-rationale/>: the 1-sentence rationale ("why") of
435
+ the entity relation.
436
+
437
+ - <spec-dm-relation-target/>: the <spec-dm-entity-name/> of the
438
+ entity the directed relation targets.
439
+
440
+ - <spec-dm-relation-cardinality/>: the cardinality of the entity
441
+ relation at the target entity: `0..1` for zero or one
442
+ ("optional"), `1` for exactly one ("mandatory"), `0..n` for
443
+ zero or more, and `1..n` for one or more.
444
+
445
+ - In case a <spec-dm-entity/> has no relations at all, the
446
+ entire `### RELATIONS` block is omitted.
447
+
448
+ - In case any rationale is not present, the
449
+ entire `(why: [...])` chunk is omitted.
450
+
451
+ Use Cases (UC)
452
+ --------------
453
+
454
+ The discrete goals users pursue with the solution, each describing an
455
+ actor's interaction to achieve a specific outcome.
456
+
457
+ - Format:
458
+
459
+ <format>
460
+
461
+ # SPECIFICATION: USE CASES (SPEC-UC)
462
+
463
+ ✳ Created: **<timestamp-created/>**
464
+ ✎ Modified: **<timestamp-modified/>**
465
+
466
+ <spec-uc-usecase/>
467
+ <spec-uc-usecase/>
468
+ [...]
469
+
470
+ </format>
471
+
472
+ - <spec-uc-usecase/> format:
473
+
474
+ <format>
475
+
476
+ ## USE CASE SPEC-UC-<spec-uc-usecase-id/>: <spec-uc-usecase-name/>
477
+
478
+ - Actor: <spec-uc-usecase-actor/>
479
+ - Goal: <spec-uc-usecase-goal/>
480
+ - Precondition: <spec-uc-usecase-precondition/>
481
+ - Postcondition: <spec-uc-usecase-postcondition/>
482
+
483
+ <spec-uc-usecase-description/>
484
+
485
+ </format>
486
+
487
+ - <spec-uc-usecase/> details:
488
+
489
+ - <spec-uc-usecase-id/>: per-artifact unique "slug" of always 1-3
490
+ lower-cased words (concatenated with "-" characters and
491
+ in total not longer than 30 characters), derived from
492
+ <spec-uc-usecase-name/>.
493
+
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`).
496
+
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.
500
+
501
+ - <spec-uc-usecase-goal/>: the 1-sentence statement of what the
502
+ actor wants to achieve through this use case.
503
+
504
+ - <spec-uc-usecase-precondition/>: the condition that must hold
505
+ before the use case can begin.
506
+
507
+ - <spec-uc-usecase-postcondition/>: the condition that holds after
508
+ the use case completes successfully.
509
+
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**).
514
+
515
+ - In case a precondition or postcondition is not present, the
516
+ respective bullet point is omitted.
517
+
518
+ Use Case Scenarios (US)
519
+ -----------------------
520
+
521
+ The concrete step-by-step flows through a **Use Case**, detailing the
522
+ sequence of actions for main, alternative, and exceptional paths.
523
+
524
+ - Format:
525
+
526
+ <format>
527
+
528
+ # SPECIFICATION: USE CASE SCENARIOS (SPEC-US)
529
+
530
+ ✳ Created: **<timestamp-created/>**
531
+ ✎ Modified: **<timestamp-modified/>**
532
+
533
+ <spec-us-scenario/>
534
+ <spec-us-scenario/>
535
+ [...]
536
+
537
+ </format>
538
+
539
+ - <spec-us-scenario/> format:
540
+
541
+ <format>
542
+
543
+ ## SCENARIO SPEC-US-<spec-us-scenario-id/>: <spec-us-scenario-name/>
544
+
545
+ - Use Case: <spec-us-scenario-usecase/>
546
+ - Type: <spec-us-scenario-type/>
547
+
548
+ 1. <spec-us-scenario-step/>
549
+ 2. <spec-us-scenario-step/>
550
+ [...]
551
+
552
+ </format>
553
+
554
+ - <spec-us-scenario/> details:
555
+
556
+ - <spec-us-scenario-id/>: per-artifact unique "slug" of always 1-3
557
+ lower-cased words (concatenated with "-" characters and
558
+ in total not longer than 30 characters), derived from
559
+ <spec-us-scenario-name/>.
560
+
561
+ - <spec-us-scenario-name/>: a short (3-8 word) summary of the
562
+ scenario.
563
+
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.
567
+
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).
572
+
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.
577
+
578
+ Personas (PE)
579
+ -------------
580
+
581
+ The *archetypal* user profiles representing distinct user groups,
582
+ capturing their goals, needs, behaviors, and context.
583
+
584
+ - Format:
585
+
586
+ <format>
587
+
588
+ # SPECIFICATION: PERSONAS (SPEC-PE)
589
+
590
+ ✳ Created: **<timestamp-created/>**
591
+ ✎ Modified: **<timestamp-modified/>**
592
+
593
+ <spec-pe-persona/>
594
+ <spec-pe-persona/>
595
+ [...]
596
+
597
+ </format>
598
+
599
+ - <spec-pe-persona/> format:
600
+
601
+ <format>
602
+
603
+ ## PERSONA SPEC-PE-<spec-pe-persona-id/>: <spec-pe-persona-name/>
604
+
605
+ - Gender: <spec-pe-persona-gender/>
606
+ - Age: <spec-pe-persona-age/>
607
+ - Role: <spec-pe-persona-role/>
608
+ - Quote: "<spec-pe-persona-quote/>"
609
+
610
+ </format>
611
+
612
+ - <spec-pe-persona/> details:
613
+
614
+ - <spec-pe-persona-id/>: per-artifact unique "slug" of always 1-3
615
+ lower-cased words (concatenated with "-" characters and
616
+ in total not longer than 30 characters), derived from
617
+ <spec-pe-persona-name/>.
618
+
619
+ - <spec-pe-persona-name/>: per-artifact unique first name of fictional
620
+ described person.
621
+
622
+ - <spec-pe-persona-gender/>: the gender of the persona: `male`,
623
+ `female`, or `diverse`.
624
+
625
+ - <spec-pe-persona-age/>: the age in years of the persona.
626
+
627
+ - <spec-pe-persona-role/>: the role of the persona.
628
+
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."
634
+
635
+ Test Cases (TC)
636
+ ---------------
637
+
638
+ The verifiable conditions and steps used to confirm that requirements
639
+ are correctly implemented, with mandatory defined inputs, mandatory
640
+ expected outcomes, and optional pre- and post-conditions.
641
+
642
+ - Format:
643
+
644
+ <format>
645
+
646
+ # SPECIFICATION: TEST CASES (SPEC-TC)
647
+
648
+ ✳ Created: **<timestamp-created/>**
649
+ ✎ Modified: **<timestamp-modified/>**
650
+
651
+ <spec-tc-testcase/>
652
+ <spec-tc-testcase/>
653
+ [...]
654
+
655
+ </format>
656
+
657
+ - <spec-tc-testcase/> format:
658
+
659
+ <format>
660
+
661
+ ## TEST CASE SPEC-TC-<spec-tc-testcase-id/>: <spec-tc-testcase-name/>
662
+
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/>
668
+
669
+ </format>
670
+
671
+ - <spec-tc-testcase/> details:
672
+
673
+ - <spec-tc-testcase-id/>: per-artifact unique "slug" of always 1-3
674
+ lower-cased words (concatenated with "-" characters and
675
+ in total not longer than 30 characters), derived from
676
+ <spec-tc-testcase-name/>.
677
+
678
+ - <spec-tc-testcase-name/>: a short (3-8 word) summary of the test
679
+ case.
680
+
681
+ - <spec-tc-testcase-verifies/> is a `SPEC-FR-<spec-fr-requirement-id/>`
682
+ or `SPEC-NR-<spec-nr-requirement-id/>` reference to the
683
+ corresponding **Aspect** of the Functional Requirements or
684
+ Non-Functional Requirements **Artifact** the test case verifies.
685
+
686
+ - <spec-tc-testcase-precondition/>: the state or setup that must
687
+ hold before the test is executed (optional).
688
+
689
+ - <spec-tc-testcase-input/>: the mandatory, concrete input data or
690
+ actions applied during the test.
691
+
692
+ - <spec-tc-testcase-expected/>: the mandatory, concrete expected
693
+ outcome or observable result that defines a passing test.
694
+
695
+ - <spec-tc-testcase-postcondition/>: the state that must hold after
696
+ the test completes (optional).
697
+
698
+ - In case a precondition or postcondition is not present, the
699
+ respective bullet point is omitted.
700
+
701
+ Interaction Concept (IC)
702
+ ------------------------
703
+
704
+ The overarching idea of how users interact with the solution,
705
+ describing the intended workflows and interaction philosophy (e.g.
706
+ auto-save behavior).
707
+
708
+ - Format:
709
+
710
+ <format>
711
+
712
+ # SPECIFICATION: INTERACTION CONCEPT (SPEC-IC)
713
+
714
+ ✳ Created: **<timestamp-created/>**
715
+ ✎ Modified: **<timestamp-modified/>**
716
+
717
+ <spec-ic-principle/>
718
+ <spec-ic-principle/>
719
+ [...]
720
+
721
+ </format>
722
+
723
+ - <spec-ic-principle/> format:
724
+
725
+ <format>
726
+
727
+ ## PRINCIPLE SPEC-IC-<spec-ic-principle-id/>: <spec-ic-principle-name/>
728
+
729
+ <spec-ic-principle-statement/>
730
+ (why: <spec-ic-principle-rationale/>)
731
+
732
+ </format>
733
+
734
+ - <spec-ic-principle/> details:
735
+
736
+ - <spec-ic-principle-id/>: per-artifact unique "slug" of always 1-3
737
+ lower-cased words (concatenated with "-" characters and
738
+ in total not longer than 30 characters), derived from
739
+ <spec-ic-principle-name/>.
740
+
741
+ - <spec-ic-principle-name/>: a short (2-5 word) summary of the
742
+ interaction principle (e.g. `Auto-Save`, `Optimistic Updates`,
743
+ `Undo over Confirm`).
744
+
745
+ - <spec-ic-principle-statement/>: a concise paragraph (1-3
746
+ sentences) of prose describing the interaction principle and how
747
+ it governs the user's experience across the solution.
748
+
749
+ - <spec-ic-principle-rationale/>: the 1-sentence rationale ("why")
750
+ of the interaction principle.
751
+
752
+ - In case the rationale is not present, the
753
+ entire `(why: [...])` chunk is omitted.
754
+
755
+ Language Conventions (LC)
756
+ -------------------------
757
+
758
+ The terminology, naming, tone, and wording standards used consistently
759
+ across the solution and its content.
760
+
761
+ - Format:
762
+
763
+ <format>
764
+
765
+ # SPECIFICATION: LANGUAGE CONVENTIONS (SPEC-LC)
766
+
767
+ ✳ Created: **<timestamp-created/>**
768
+ ✎ Modified: **<timestamp-modified/>**
769
+
770
+ <spec-lc-convention/>
771
+ <spec-lc-convention/>
772
+ [...]
773
+
774
+ </format>
775
+
776
+ - <spec-lc-convention/> format:
777
+
778
+ <format>
779
+
780
+ ## CONVENTION SPEC-LC-<spec-lc-convention-id/>: <spec-lc-convention-name/>
781
+
782
+ - Category: <spec-lc-convention-category/>
783
+
784
+ <spec-lc-convention-statement/>
785
+ (e.g. <spec-lc-convention-example/>)
786
+
787
+ </format>
788
+
789
+ - <spec-lc-convention/> details:
790
+
791
+ - <spec-lc-convention-id/>: per-artifact unique "slug" of always
792
+ 1-3 lower-cased words (concatenated with "-" characters and
793
+ in total not longer than 30 characters), derived from
794
+ <spec-lc-convention-name/>.
795
+
796
+ - <spec-lc-convention-name/>: a short (2-5 word) summary of the
797
+ language convention.
798
+
799
+ - <spec-lc-convention-category/>: the aspect of language the
800
+ convention governs, one of `Terminology` (preferred and
801
+ forbidden terms), `Naming` (naming patterns), `Tone` (voice and
802
+ register), `Capitalization`, `Punctuation`, or `Formatting`.
803
+
804
+ - <spec-lc-convention-statement/>: a concise paragraph (1-3
805
+ sentences) of prose describing the convention to be applied
806
+ consistently across the solution.
807
+
808
+ - <spec-lc-convention-example/>: a short, concrete illustration of
809
+ the convention in practice (optional).
810
+
811
+ - In case the example is not present, the
812
+ entire `(e.g. [...])` chunk is omitted.
813
+
814
+ Dialog Patterns (DP)
815
+ --------------------
816
+
817
+ The reusable interaction structures governing how the system and user
818
+ exchange information across recurring conversational or UI flows (e.g.
819
+ master-detail dialog).
820
+
821
+ - Format:
822
+
823
+ <format>
824
+
825
+ # SPECIFICATION: DIALOG PATTERNS (SPEC-DP)
826
+
827
+ ✳ Created: **<timestamp-created/>**
828
+ ✎ Modified: **<timestamp-modified/>**
829
+
830
+ <spec-dp-pattern/>
831
+ <spec-dp-pattern/>
832
+ [...]
833
+
834
+ </format>
835
+
836
+ - <spec-dp-pattern/> format:
837
+
838
+ <format>
839
+
840
+ ## PATTERN SPEC-DP-<spec-dp-pattern-id/>: <spec-dp-pattern-name/>
841
+
842
+ - Context: <spec-dp-pattern-context/>
843
+
844
+ <spec-dp-pattern-description/>
845
+ (why: <spec-dp-pattern-rationale/>)
846
+
847
+ </format>
848
+
849
+ - <spec-dp-pattern/> details:
850
+
851
+ - <spec-dp-pattern-id/>: per-artifact unique "slug" of always 1-3
852
+ lower-cased words (concatenated with "-" characters and
853
+ in total not longer than 30 characters), derived from
854
+ <spec-dp-pattern-name/>.
855
+
856
+ - <spec-dp-pattern-name/>: a short (2-5 word) summary of the dialog
857
+ pattern (e.g. `Master-Detail`, `Wizard`, `Inline Edit`).
858
+
859
+ - <spec-dp-pattern-context/>: the recurring situation or flow in
860
+ which the pattern is applied.
861
+
862
+ - <spec-dp-pattern-description/>: a concise paragraph (1-3
863
+ sentences) of prose describing the reusable interaction structure
864
+ and how the system and user exchange information within it.
865
+
866
+ - <spec-dp-pattern-rationale/>: the 1-sentence rationale ("why") of
867
+ the dialog pattern.
868
+
869
+ - In case the rationale is not present, the
870
+ entire `(why: [...])` chunk is omitted.
871
+
872
+ Dialog Storyboard (SB)
873
+ ----------------------
874
+
875
+ The sequenced visual or textual depiction of a specific dialog flow,
876
+ illustrating how an interaction unfolds screen by screen or turn by
877
+ turn.
878
+
879
+ - Format:
880
+
881
+ <format>
882
+
883
+ # SPECIFICATION: DIALOG STORYBOARD (SPEC-SB)
884
+
885
+ ✳ Created: **<timestamp-created/>**
886
+ ✎ Modified: **<timestamp-modified/>**
887
+
888
+ <spec-sb-storyboard/>
889
+ <spec-sb-storyboard/>
890
+ [...]
891
+
892
+ </format>
893
+
894
+ - <spec-sb-storyboard/> format:
895
+
896
+ <format>
897
+
898
+ ## STORYBOARD SPEC-SB-<spec-sb-storyboard-id/>: <spec-sb-storyboard-name/>
899
+
900
+ - Pattern: <spec-sb-storyboard-pattern/>
901
+ - Scenario: <spec-sb-storyboard-scenario/>
902
+
903
+ 1. **<spec-sb-frame-name/>**: <spec-sb-frame-description/>
904
+ 2. **<spec-sb-frame-name/>**: <spec-sb-frame-description/>
905
+ [...]
906
+
907
+ </format>
908
+
909
+ - <spec-sb-storyboard/> details:
910
+
911
+ - <spec-sb-storyboard-id/>: per-artifact unique "slug" of always
912
+ 1-3 lower-cased words (concatenated with "-" characters and
913
+ in total not longer than 30 characters), derived from
914
+ <spec-sb-storyboard-name/>.
915
+
916
+ - <spec-sb-storyboard-name/>: a short (3-8 word) summary of the
917
+ depicted dialog flow.
918
+
919
+ - <spec-sb-storyboard-pattern/> is a `SPEC-DP-<spec-dp-pattern-id/>`
920
+ reference to the corresponding **Aspect** of the Dialog Patterns
921
+ **Artifact** the storyboard instantiates (optional).
922
+
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).
926
+
927
+ - <spec-sb-frame-name/>: a short (2-5 word) label for the screen,
928
+ turn, or state depicted by the storyboard frame. Frames are
929
+ numbered sequentially to convey their order.
930
+
931
+ - <spec-sb-frame-description/>: a concise (1-2 sentence) description
932
+ of what the user sees and does at this frame of the interaction.
933
+
934
+ - In case a pattern or scenario reference is not present, the
935
+ respective bullet point is omitted.
936
+
937
+ Visual Design (VD)
938
+ ------------------
939
+
940
+ The aesthetic and layout aspects of the solution, defining colors,
941
+ typography, spacing, imagery, and overall look and feel.
942
+
943
+ - Format:
944
+
945
+ <format>
946
+
947
+ # SPECIFICATION: VISUAL DESIGN (SPEC-VD)
948
+
949
+ ✳ Created: **<timestamp-created/>**
950
+ ✎ Modified: **<timestamp-modified/>**
951
+
952
+ <spec-vd-element/>
953
+ <spec-vd-element/>
954
+ [...]
955
+
956
+ </format>
957
+
958
+ - <spec-vd-element/> format:
959
+
960
+ <format>
961
+
962
+ ## ELEMENT SPEC-VD-<spec-vd-element-id/>: <spec-vd-element-name/>
963
+
964
+ - Category: <spec-vd-element-category/>
965
+
966
+ <spec-vd-element-specification/>
967
+ (why: <spec-vd-element-rationale/>)
968
+
969
+ </format>
970
+
971
+ - <spec-vd-element/> details:
972
+
973
+ - <spec-vd-element-id/>: per-artifact unique "slug" of always 1-3
974
+ lower-cased words (concatenated with "-" characters and
975
+ in total not longer than 30 characters), derived from
976
+ <spec-vd-element-name/>.
977
+
978
+ - <spec-vd-element-name/>: a short (2-5 word) summary of the visual
979
+ design element.
980
+
981
+ - <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`.
984
+
985
+ - <spec-vd-element-specification/>: a concise paragraph (1-3
986
+ sentences) of prose specifying the concrete values, tokens, or
987
+ rules that define the visual design element (e.g. palette,
988
+ font family, scale).
989
+
990
+ - <spec-vd-element-rationale/>: the 1-sentence rationale ("why") of
991
+ the visual design element.
992
+
993
+ - In case the rationale is not present, the
994
+ entire `(why: [...])` chunk is omitted.