@kudusov.takhir/ba-toolkit 3.4.1 → 3.6.0

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.
@@ -1,5 +1,7 @@
1
1
  # Project Brief: [PROJECT_NAME]
2
2
 
3
+ **Version:** 0.1
4
+ **Status:** Draft
3
5
  **Domain:** [DOMAIN]
4
6
  **Date:** [DATE]
5
7
  **Slug:** [SLUG]
@@ -11,41 +13,99 @@
11
13
  ## 2. Business Goals and Success Metrics
12
14
 
13
15
  | # | Goal | Success Metric |
14
- |---|------|---------------|
16
+ |---|------|----------------|
15
17
  | 1 | [goal] | [measurable metric] |
16
18
 
17
19
  ## 3. Target Audience
18
20
 
21
+ ### 3.1 Buyer
22
+
23
+ [Who pays for the product. Decision criteria, budget cycle, procurement constraints.]
24
+
25
+ | Segment | Description | Geography |
26
+ |---------|-------------|-----------|
27
+ | [segment] | [description] | [region] |
28
+
29
+ ### 3.2 User (if different from Buyer)
30
+
31
+ [Who actually uses the product day to day. Skip this section if buyer = user.]
32
+
19
33
  | Segment | Description | Geography |
20
34
  |---------|-------------|-----------|
21
35
  | [segment] | [description] | [region] |
22
36
 
23
37
  ## 4. High-Level Functionality Overview
24
38
 
25
- [2–4 paragraphs or bullet list of the main functional areas. No technical detail — what the system does, not how.]
39
+ ### 4.1 In Scope
40
+
41
+ [2–4 paragraphs or bullet list of the main functional areas that ARE part of the first release. No technical detail — what the system does, not how.]
42
+
43
+ ### 4.2 Out of Scope
44
+
45
+ [Explicit list of capabilities that are NOT in scope for this brief. A brief is a contract — what is excluded matters as much as what is included. Use this section to head off scope creep on day one.]
46
+
47
+ - [out-of-scope item with one-line reason]
48
+
49
+ ## 5. Stakeholders and Decision-Making Authority
50
+
51
+ | Role | Responsibility | Interest | Sign-off authority |
52
+ |------|----------------|----------|--------------------|
53
+ | [role] | [what they do] | [what they care about] | Yes / No / Veto only |
26
54
 
27
- ## 5. Stakeholders and Roles
55
+ ## 6. Constraints
28
56
 
29
- | Role | Responsibility | Interest |
30
- |------|---------------|---------|
31
- | [role] | [what they do] | [what they care about] |
57
+ Imposed facts that cannot be changed during the project. Each constraint has a source (regulatory, contractual, technical, organisational) and an implication.
32
58
 
33
- ## 6. Constraints and Assumptions
59
+ | # | Constraint | Type | Source | Implication |
60
+ |---|------------|------|--------|-------------|
61
+ | 1 | [constraint] | Regulatory / Contractual / Technical / Organisational | [source] | [what this forces or forbids] |
34
62
 
35
- **Constraints:**
36
- - [constraint]
63
+ ## 7. Assumptions
37
64
 
38
- **Assumptions:**
39
- - [assumption]
65
+ Beliefs we have made about the world that may turn out wrong. Each assumption has an owner and a validation date — if invalidated, the assumption becomes a risk and the owner must escalate.
40
66
 
41
- ## 7. Risks
67
+ | # | Assumption | Owner | Validate by | Risk if false |
68
+ |---|------------|-------|-------------|---------------|
69
+ | 1 | [assumption] | [name / role] | [date] | [what breaks if this turns out false] |
70
+
71
+ ## 8. Risks
42
72
 
43
73
  | # | Risk | Probability | Impact | Mitigation |
44
- |---|------|-------------|--------|-----------|
45
- | 1 | [risk] | High/Med/Low | High/Med/Low | [mitigation] |
74
+ |---|------|-------------|--------|------------|
75
+ | 1 | [risk] | High / Med / Low | High / Med / Low | [mitigation] |
76
+
77
+ ## 9. Success and Failure Criteria
78
+
79
+ ### 9.1 Success Criteria
80
+
81
+ [Specific, measurable conditions that, if met, mean the project succeeded. Reference business goals from §2 where applicable.]
82
+
83
+ - [criterion]
84
+
85
+ ### 9.2 Failure Criteria
86
+
87
+ [Specific conditions that, if met, mean the project should be paused or cancelled. Asymmetric to success criteria — these are red lines, not "less than success".]
46
88
 
47
- ## 8. Glossary
89
+ - [criterion]
90
+
91
+ ## 10. Reference Products and Analogues
92
+
93
+ | Product | What it does well | What it does badly / misses | Relevance |
94
+ |---------|-------------------|-----------------------------|-----------|
95
+ | [name] | [one line] | [one line] | [why it matters to this project] |
96
+
97
+ ## 11. Glossary
98
+
99
+ The project's source-of-truth glossary. Propagated to all subsequent artifacts (`/srs`, `/stories`, `/glossary`). Add a term here once and reuse the same definition everywhere downstream.
48
100
 
49
101
  | Term | Definition |
50
- |------|-----------|
102
+ |------|------------|
51
103
  | [term] | [definition] |
104
+
105
+ ---
106
+
107
+ ## Approvals
108
+
109
+ | Name | Role | Approval Date | Notes |
110
+ |------|------|---------------|-------|
111
+ | [name] | [role] | [YYYY-MM-DD] | [optional notes] |
@@ -1,55 +1,98 @@
1
1
  # Data Dictionary: [PROJECT_NAME]
2
2
 
3
+ **Version:** 0.1
4
+ **Status:** Draft
3
5
  **Domain:** [DOMAIN]
4
6
  **Date:** [DATE]
5
7
  **Slug:** [SLUG]
6
8
  **References:** `02_srs_[SLUG].md`, `03_stories_[SLUG].md`
9
+ **Scope:** Logical data model only. Physical schema (DBMS choice, indexes, sharding) lives in `07a_research_[SLUG].md` ADRs.
7
10
 
8
11
  ---
9
12
 
10
13
  ## Entity: [EntityName]
11
14
 
12
- **Description:** [What this entity represents in the domain.]
13
- **Table / Collection:** `[table_name]`
14
- **Linked FR:** FR-[NNN]
15
+ | Field | Value |
16
+ |-------|-------|
17
+ | **Source** | FR-[NNN], US-[NNN] *(Required — what introduced this entity)* |
18
+ | **Owner** | [Team or role accountable for schema changes and data quality] |
19
+ | **Sensitivity** | Public / Internal / Confidential / PII / PCI / PHI / Financial |
20
+ | **Description** | [What this entity represents in the domain] |
21
+ | **Logical name** | `[entity_name]` *(physical table / collection name decided in /research)* |
15
22
 
16
- | Field | Type | Required | Default | Description | Constraints |
17
- |-------|------|----------|---------|-------------|------------|
23
+ ### Attributes
24
+
25
+ | Field | Logical Type | Required | Default | Description | Constraints |
26
+ |-------|--------------|----------|---------|-------------|-------------|
18
27
  | id | UUID | Yes | auto | Primary key | Unique |
19
- | [field] | [String \| Int \| Boolean \| Timestamp \| Decimal \| Enum \| FK] | Yes/No | [value or —] | [description] | [constraints, e.g. max 255, 0] |
20
- | created_at | Timestamp | Yes | now() | Record creation time | |
21
- | updated_at | Timestamp | Yes | now() | Last update time | |
28
+ | [field] | String / Integer / Decimal / Boolean / Timestamp / UUID / Enum / FK / JSON / Binary | Yes/No | [value or —] | [description] | [PK, FK, unique, not null, enum values, min/max, regex] |
29
+ | created_at | Timestamp | Yes | now() | Record creation time (UTC) | |
30
+ | updated_at | Timestamp | Yes | now() | Last update time (UTC) | |
31
+
32
+ ### Relationships
33
+
34
+ | Related Entity | Cardinality | FK Field | Cascade on Parent Delete |
35
+ |----------------|-------------|----------|--------------------------|
36
+ | [OtherEntity] | many-to-one | `[other_entity]_id` | Cascade / Restrict / Set null / Prevent |
37
+
38
+ ### State Machine *(required if entity has more than two distinct lifecycle states)*
39
+
40
+ **States:** Draft → Pending → Confirmed → InProgress → Completed → Archived
41
+ **Terminal states:** Completed, Cancelled, Failed
42
+
43
+ | From → To | Trigger | Allowed actor | Side effects |
44
+ |-----------|---------|---------------|--------------|
45
+ | Draft → Pending | submit() | Owner | Notification, audit log |
46
+ | Pending → Confirmed | approve() | Reviewer | Status email, FK lock |
47
+ | Confirmed → InProgress | start() | Owner | Timer starts |
48
+ | InProgress → Completed | finish() | Owner | Final notification, FK unlock |
49
+ | Any → Cancelled | cancel() | Owner / Admin | Reservation released, audit log |
50
+
51
+ ### Indexes *(logical — physical indexes decided by /research)*
52
+
53
+ - `[field]` — for [reason, e.g. "frequent lookup by email during login"]
54
+ - `(field_a, field_b)` — composite, for [reason]
55
+
56
+ ### Retention
22
57
 
23
- **Relationships:**
24
- - `[EntityName]` belongs to `[OtherEntity]` via `[field]` (many-to-one)
25
- - `[EntityName]` has many `[OtherEntity]` (one-to-many)
58
+ **Retention class:** [duration in years, or "indefinite", or "until consent withdrawn"]
59
+ **Reason:** [legal / regulatory / operational]
60
+ **Soft delete:** Yes (`deleted_at` timestamp) | No (hard delete only)
26
61
 
27
- **Indexes:**
28
- - `[field]` — for [reason, e.g. lookup by email]
62
+ ### Notes
29
63
 
30
- **Soft delete:** Yes `deleted_at` field / No — hard delete
31
- **Notes:** [Business rules, state machine, or special handling.]
64
+ [Business rules, validation logic, special handling, edge cases.]
32
65
 
33
66
  ---
34
67
 
35
68
  ## Entity: [EntityName2]
36
69
 
37
- **Description:** [What this entity represents in the domain.]
38
- **Table / Collection:** `[table_name]`
39
- **Linked FR:** FR-[NNN]
70
+ | Field | Value |
71
+ |-------|-------|
72
+ | **Source** | FR-[NNN] |
73
+ | **Owner** | [team] |
74
+ | **Sensitivity** | [class] |
75
+ | **Description** | [...] |
76
+ | **Logical name** | `[entity_name_2]` |
40
77
 
41
- | Field | Type | Required | Default | Description | Constraints |
42
- |-------|------|----------|---------|-------------|------------|
78
+ ### Attributes
79
+
80
+ | Field | Logical Type | Required | Default | Description | Constraints |
81
+ |-------|--------------|----------|---------|-------------|-------------|
43
82
  | id | UUID | Yes | auto | Primary key | Unique |
44
83
  | [field] | [type] | Yes/No | [value] | [description] | [constraints] |
45
- | created_at | Timestamp | Yes | now() | Record creation time | |
46
- | updated_at | Timestamp | Yes | now() | Last update time | |
84
+ | created_at | Timestamp | Yes | now() | (UTC) | |
85
+ | updated_at | Timestamp | Yes | now() | (UTC) | |
86
+
87
+ ### Relationships
47
88
 
48
- **Relationships:**
49
- - [relationship description]
89
+ | Related Entity | Cardinality | FK Field | Cascade on Parent Delete |
90
+ |----------------|-------------|----------|--------------------------|
91
+ | [Entity] | [cardinality] | `[fk_field]` | [cascade rule] |
50
92
 
51
- **Soft delete:** Yes / No
52
- **Notes:** [Special handling.]
93
+ ### Notes
94
+
95
+ [Notes.]
53
96
 
54
97
  <!-- Repeat Entity block for each domain entity. -->
55
98
 
@@ -65,6 +108,18 @@
65
108
 
66
109
  ---
67
110
 
111
+ ## FR → Entity Coverage Matrix
112
+
113
+ Forward traceability from each Functional Requirement in `02_srs_[SLUG].md` to the entities it reads or writes. An FR with no linked entity is flagged — every data-touching FR must have at least one linked entity.
114
+
115
+ | FR ID | FR Title | Linked Entities | Read / Write | Coverage Status |
116
+ |-------|----------|-----------------|--------------|-----------------|
117
+ | FR-001 | [title] | User, Session | R/W | ✓ |
118
+ | FR-002 | [title] | Order, OrderLine | R/W | ✓ |
119
+ | FR-003 | [title] | (none) | — | ⚠ Stateless FR — confirm intent |
120
+
121
+ ---
122
+
68
123
  ## Entity Relationship Overview
69
124
 
70
125
  ```
@@ -72,4 +127,4 @@
72
127
  [EntityName2] >── [EntityName3]
73
128
  ```
74
129
 
75
- _Full ERD: generated separately by the development team._
130
+ _Full ERD with physical layout: generated by the development team based on this logical model + `07a_research_[SLUG].md` ADRs._
@@ -1,97 +1,203 @@
1
1
  # Non-functional Requirements: [PROJECT_NAME]
2
2
 
3
+ **Version:** 0.1
4
+ **Status:** Draft
3
5
  **Domain:** [DOMAIN]
4
6
  **Date:** [DATE]
5
7
  **Slug:** [SLUG]
6
8
  **References:** `02_srs_[SLUG].md`, `00_principles_[SLUG].md`
9
+ **Standard:** ISO/IEC 25010:2011 Software Quality Model
10
+
11
+ > Every NFR maps to one of the 8 ISO 25010 characteristics: Functional Suitability, Performance Efficiency, Compatibility, Usability, Reliability, Security, Maintainability, Portability. Project-specific extensions (Compliance, Localisation, Observability) are marked as such and reference the parent ISO characteristic.
7
12
 
8
13
  ---
9
14
 
10
- ## NFR-001: Performance
15
+ ## Performance Efficiency (ISO 25010)
11
16
 
12
- | Attribute | Requirement | Measurement Method |
13
- |-----------|------------|-------------------|
14
- | [Page / operation] | [Target, e.g. < 2s p95] | [Lighthouse / load test / APM] |
17
+ ### NFR-001: [Sub-characteristic Time behaviour]
15
18
 
16
- **Rationale:** [Why this target matters for this project.]
19
+ | Field | Value |
20
+ |-------|-------|
21
+ | **Sub-characteristic** | Time behaviour |
22
+ | **Description** | [Page / operation / endpoint] response time target |
23
+ | **Metric** | p95 latency in milliseconds |
24
+ | **Acceptance threshold** | < 300ms p95, < 800ms p99 |
25
+ | **Verification** | Load test (k6 / Locust) running [scenario], measured by APM (Datadog / New Relic / Grafana) |
26
+ | **Source** | NFR-baseline from `00_principles_[SLUG].md` §5 / FR-NNN constraint / regulatory requirement |
27
+ | **Rationale** | [Why this target — competitive benchmark, user-perception threshold, contractual SLA] |
28
+ | **Priority** | Must |
29
+ | **Linked FR** | FR-[NNN] |
17
30
 
18
31
  ---
19
32
 
20
- ## NFR-002: Scalability
21
-
22
- | Attribute | Requirement | Measurement Method |
23
- |-----------|------------|-------------------|
24
- | Concurrent users | [N at peak] | [Load test scenario] |
25
- | Data volume | [N records, N GB] | [Capacity model] |
33
+ ### NFR-002: [Sub-characteristic — Capacity]
26
34
 
27
- **Rationale:** [Expected growth, peak events.]
35
+ | Field | Value |
36
+ |-------|-------|
37
+ | **Sub-characteristic** | Capacity |
38
+ | **Description** | Concurrent users / requests per second the system supports |
39
+ | **Metric** | Concurrent users at peak; sustained RPS |
40
+ | **Acceptance threshold** | [N concurrent users; N RPS sustained for 30 min without error rate > 0.1%] |
41
+ | **Verification** | Load test scenario [name], pass / fail at the threshold |
42
+ | **Source** | [Brief goal G-N or stakeholder] |
43
+ | **Rationale** | [Expected growth, peak events — Black Friday, end-of-quarter, exam day] |
44
+ | **Priority** | Should |
45
+ | **Linked FR** | FR-[NNN] |
28
46
 
29
47
  ---
30
48
 
31
- ## NFR-003: Availability & Reliability
49
+ ## Reliability (ISO 25010)
50
+
51
+ ### NFR-003: [Sub-characteristic — Availability]
52
+
53
+ | Field | Value |
54
+ |-------|-------|
55
+ | **Sub-characteristic** | Availability |
56
+ | **Description** | Service uptime target |
57
+ | **Metric** | Uptime % over rolling 30-day window |
58
+ | **Acceptance threshold** | 99.9% (8.76 hours downtime/year) |
59
+ | **Verification** | Status page measurement, third-party uptime monitor |
60
+ | **Source** | [SLA contract / regulatory requirement] |
61
+ | **Rationale** | [Customer-facing SLA, internal commitment] |
62
+ | **Priority** | Must |
63
+ | **Linked FR** | All customer-facing FRs |
64
+
65
+ ### NFR-004: [Sub-characteristic — Recoverability]
66
+
67
+ | Field | Value |
68
+ |-------|-------|
69
+ | **Sub-characteristic** | Recoverability |
70
+ | **Description** | Disaster-recovery RTO / RPO |
71
+ | **Metric** | RTO (Recovery Time Objective) in hours; RPO (Recovery Point Objective) in minutes |
72
+ | **Acceptance threshold** | RTO < 4h, RPO < 15min |
73
+ | **Verification** | Documented runbook, tested via DR drill quarterly |
74
+ | **Source** | [Compliance / business continuity policy] |
75
+ | **Rationale** | [Cost of downtime, regulatory requirement] |
76
+ | **Priority** | Must |
32
77
 
33
- | Service | SLA | Maintenance Window |
34
- |---------|-----|--------------------|
35
- | [Service name] | 99.9% | [Sun 02:00–04:00 UTC] |
78
+ ---
36
79
 
37
- **RTO:** [Recovery Time Objective, e.g. < 4h]
38
- **RPO:** [Recovery Point Objective, e.g. < 1h]
80
+ ## Security (ISO 25010)
81
+
82
+ ### NFR-005: [Sub-characteristic — Confidentiality]
83
+
84
+ | Field | Value |
85
+ |-------|-------|
86
+ | **Sub-characteristic** | Confidentiality |
87
+ | **Description** | Encryption at rest and in transit |
88
+ | **Metric** | Encryption algorithm + key length |
89
+ | **Acceptance threshold** | TLS 1.2+ in transit; AES-256 at rest |
90
+ | **Verification** | TLS scan, infrastructure config review, pen-test |
91
+ | **Source** | [SOC 2 / PCI DSS / HIPAA / GDPR] |
92
+ | **Rationale** | Regulatory baseline + customer trust |
93
+ | **Priority** | Must |
94
+
95
+ ### NFR-006: [Sub-characteristic — Authenticity / Accountability]
96
+
97
+ | Field | Value |
98
+ |-------|-------|
99
+ | **Sub-characteristic** | Authenticity, Accountability |
100
+ | **Description** | Authentication strength, audit trail per user action |
101
+ | **Metric** | MFA coverage, audit log completeness |
102
+ | **Acceptance threshold** | MFA mandatory for admin role; every PII access logged with actor + timestamp |
103
+ | **Verification** | Audit log inspection, security review |
104
+ | **Source** | [SOC 2 CC6.1, regulatory requirement] |
105
+ | **Rationale** | Compliance + incident-response capability |
106
+ | **Priority** | Must |
39
107
 
40
108
  ---
41
109
 
42
- ## NFR-004: Security
110
+ ## Compatibility (ISO 25010)
43
111
 
44
- | Control | Requirement |
45
- |---------|-------------|
46
- | Authentication | [e.g. JWT, OAuth 2.0, MFA for admin] |
47
- | Authorisation | [e.g. RBAC, row-level security] |
48
- | Data in transit | [TLS 1.2+] |
49
- | Data at rest | [AES-256] |
50
- | [Other control] | [requirement] |
112
+ ### NFR-007: [Sub-characteristic Interoperability]
51
113
 
52
- **Compliance standard:** [PCI DSS / HIPAA / GDPR / none]
114
+ | Field | Value |
115
+ |-------|-------|
116
+ | **Sub-characteristic** | Interoperability |
117
+ | **Description** | Data-exchange formats with external systems |
118
+ | **Metric** | Supported formats |
119
+ | **Acceptance threshold** | JSON over REST + CSV export + webhook OUT |
120
+ | **Verification** | Integration tests with each external system |
121
+ | **Source** | [Stakeholder name / partner contract] |
122
+ | **Rationale** | [Why these formats — partner constraints] |
123
+ | **Priority** | Must |
53
124
 
54
125
  ---
55
126
 
56
- ## NFR-005: Maintainability
127
+ ## Usability (ISO 25010)
57
128
 
58
- | Attribute | Requirement |
59
- |-----------|-------------|
60
- | Code coverage | [≥ 80% unit test coverage] |
61
- | Deployment | [CI/CD, zero-downtime deployments] |
62
- | Logging | [Structured JSON logs, retained N days] |
63
- | Alerting | [P1 alert on-call within 5 min] |
129
+ ### NFR-008: [Sub-characteristic Accessibility]
130
+
131
+ | Field | Value |
132
+ |-------|-------|
133
+ | **Sub-characteristic** | Accessibility (Usability sub-characteristic in ISO 25010) |
134
+ | **Description** | WCAG conformance level |
135
+ | **Metric** | WCAG 2.1 conformance level |
136
+ | **Acceptance threshold** | WCAG 2.1 AA on all customer-facing surfaces |
137
+ | **Verification** | Automated (axe-core) + manual testing with NVDA, JAWS, VoiceOver |
138
+ | **Source** | [Section 508 / EN 301 549 / domain reference] |
139
+ | **Rationale** | Legal requirement (EU public sector, US federal) + customer base inclusion |
140
+ | **Priority** | Must |
64
141
 
65
142
  ---
66
143
 
67
- ## NFR-006: Usability & Accessibility
144
+ ## Maintainability (ISO 25010)
145
+
146
+ ### NFR-009: [Sub-characteristic — Testability]
68
147
 
69
- | Attribute | Requirement |
70
- |-----------|-------------|
71
- | Accessibility | [WCAG 2.1 AA] |
72
- | Browser support | [Chrome, Safari, Firefox latest 2 versions] |
73
- | Mobile | [Responsive, iOS 15+, Android 10+] |
74
- | Language | [EN / RU / other] |
148
+ | Field | Value |
149
+ |-------|-------|
150
+ | **Sub-characteristic** | Testability |
151
+ | **Description** | Automated test coverage target |
152
+ | **Metric** | Unit + integration test coverage % |
153
+ | **Acceptance threshold** | 80% line coverage on core domain modules |
154
+ | **Verification** | CI report on every PR |
155
+ | **Source** | [Internal engineering standard] |
156
+ | **Rationale** | Catch regressions, support refactoring |
157
+ | **Priority** | Should |
75
158
 
76
159
  ---
77
160
 
78
- ## NFR-007: [Additional Category]
161
+ ## Portability (ISO 25010)
79
162
 
80
- | Attribute | Requirement | Measurement Method |
81
- |-----------|------------|-------------------|
82
- | [attribute] | [requirement] | [method] |
163
+ ### NFR-010: [Sub-characteristic Adaptability]
83
164
 
84
- <!-- Add or remove NFR sections based on project needs. Numbering: NFR-001, NFR-002, ... -->
165
+ | Field | Value |
166
+ |-------|-------|
167
+ | **Sub-characteristic** | Adaptability |
168
+ | **Description** | Browser / OS / device support matrix |
169
+ | **Metric** | Supported browser × OS × device combinations |
170
+ | **Acceptance threshold** | Latest 2 major versions of Chrome, Safari, Firefox, Edge; iOS 15+, Android 10+ |
171
+ | **Verification** | Cross-browser test suite |
172
+ | **Source** | [User analytics on existing audience] |
173
+ | **Rationale** | Coverage of 95%+ of expected user base |
174
+ | **Priority** | Should |
175
+
176
+ <!-- Add NFR sections as needed. Every NFR maps to an ISO 25010 characteristic. -->
85
177
 
86
178
  ---
87
179
 
88
- ## Priority Summary
180
+ ## FR → NFR Coverage Matrix
181
+
182
+ Forward traceability from each Functional Requirement in `02_srs_[SLUG].md` §3 to the NFRs that govern its quality. A Must-priority FR with no linked NFR is flagged — every customer-facing Must FR should have at least one Performance, Reliability, or Security NFR attached.
183
+
184
+ | FR ID | FR Title | Linked NFRs | Coverage Status |
185
+ |-------|----------|-------------|-----------------|
186
+ | FR-001 | [title] | NFR-001, NFR-003, NFR-005 | ✓ |
187
+ | FR-002 | [title] | NFR-001, NFR-005 | ✓ |
188
+ | FR-003 | [title] | (uncovered) | ✗ |
189
+
190
+ ---
89
191
 
90
- | ID | Category | Priority |
91
- |----|----------|---------|
92
- | NFR-001 | Performance | Must |
93
- | NFR-002 | Scalability | Should |
94
- | NFR-003 | Availability | Must |
95
- | NFR-004 | Security | Must |
96
- | NFR-005 | Maintainability | Should |
97
- | NFR-006 | Usability | Should |
192
+ ## Priority Summary by ISO 25010 Characteristic
193
+
194
+ | ISO 25010 Characteristic | NFRs | Must | Should | Could |
195
+ |--------------------------|------|------|--------|-------|
196
+ | Performance Efficiency | NFR-001, NFR-002 | 1 | 1 | 0 |
197
+ | Reliability | NFR-003, NFR-004 | 2 | 0 | 0 |
198
+ | Security | NFR-005, NFR-006 | 2 | 0 | 0 |
199
+ | Compatibility | NFR-007 | 1 | 0 | 0 |
200
+ | Usability | NFR-008 | 1 | 0 | 0 |
201
+ | Maintainability | NFR-009 | 0 | 1 | 0 |
202
+ | Portability | NFR-010 | 0 | 1 | 0 |
203
+ | Functional Suitability | (covered by FRs) | — | — | — |
@@ -1,9 +1,11 @@
1
1
  # Validation Scenarios: [PROJECT_NAME]
2
2
 
3
+ **Version:** 0.1
4
+ **Status:** Draft
3
5
  **Domain:** [DOMAIN]
4
6
  **Date:** [DATE]
5
7
  **Slug:** [SLUG]
6
- **References:** `03_stories_[SLUG].md`, `05_ac_[SLUG].md`, `09_wireframes_[SLUG].md`, `08_apicontract_[SLUG].md`
8
+ **References:** `02_srs_[SLUG].md`, `03_stories_[SLUG].md`, `05_ac_[SLUG].md`, `06_nfr_[SLUG].md`, `08_apicontract_[SLUG].md`, `09_wireframes_[SLUG].md`
7
9
 
8
10
  ---
9
11
 
@@ -19,13 +21,17 @@
19
21
 
20
22
  ## SC-001: [Scenario Title]
21
23
 
22
- **Persona:** [Name and role — e.g. "Alex, a returning customer"]
24
+ **Persona:** [Name and role — e.g. "Alex, a returning customer in DE who buys 4–6 times per year"]
23
25
  **Type:** Happy path | Negative | Edge case | Performance | Security
24
26
  **Priority:** P1 (critical) | P2 (important) | P3 (nice to have)
27
+ **Frequency:** [How often this scenario runs in production — "every login", "once per month per user", "twice per year per admin"]
28
+ **Stakes:** [Cost of failure — "data loss", "lost revenue ~€X per failed run", "regulatory breach", "reputation"]
25
29
  **Entry point:** [Where the scenario starts — e.g. "Home screen, not logged in"]
26
30
  **Platform:** Web | iOS | Android | API
27
- **Linked Stories:** US-[NNN], US-[NNN]
28
- **Linked AC:** US-[NNN] Scenario [N]
31
+ **Source — Linked Stories:** US-[NNN], US-[NNN]
32
+ **Source — Linked FR:** FR-[NNN]
33
+ **Source — Linked NFR:** NFR-[NNN] *(if scenario validates a quality attribute)*
34
+ **Linked AC:** AC-[NNN]-[NN], AC-[NNN]-[NN]
29
35
 
30
36
  ### Steps
31
37
 
@@ -82,12 +88,16 @@
82
88
 
83
89
  | Artifact | Covered | Not Covered |
84
90
  |---------|---------|------------|
85
- | User Stories | [N] / [Total] | US-[NNN], … |
86
- | Acceptance Criteria Scenarios | [N] / [Total] | |
91
+ | User Stories (Must) | [N] / [Total] | US-[NNN], … |
92
+ | Functional Requirements (Must) | [N] / [Total] | FR-[NNN], … |
93
+ | Non-functional Requirements | [N] / [Total] | NFR-[NNN], … |
94
+ | Acceptance Criteria | [N] / [Total] | AC-[NNN]-[NN], … |
87
95
  | API Endpoints | [N] / [Total] | `[endpoint]`, … |
88
96
  | Wireframe screens | [N] / [Total] | WF-[NNN], … |
89
97
 
90
98
  **Happy path scenarios:** [N]
91
99
  **Negative scenarios:** [N]
92
100
  **Edge case scenarios:** [N]
101
+ **Performance scenarios:** [N]
102
+ **Security scenarios:** [N]
93
103
  **Total scenarios:** [N]