@kudusov.takhir/ba-toolkit 3.5.0 → 3.7.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,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,188 +1,89 @@
1
- # Risk Register: {PROJECT_NAME}
1
+ # Risk Register: [PROJECT_NAME]
2
2
 
3
- **Domain:** {DOMAIN}
4
- **Date:** {DATE}
5
- **Slug:** {SLUG}
6
- **Sources:** {list of artifacts scanned}
3
+ **Version:** 0.1
4
+ **Status:** Draft
5
+ **Domain:** [DOMAIN]
6
+ **Date:** [DATE]
7
+ **Slug:** [SLUG]
8
+ **Risk tolerance:** Low / Medium / High
9
+ **Standard:** ISO 31000 + PMI PMBOK 7
10
+ **Sources:** [list of artifact files scanned]
7
11
 
8
12
  ---
9
13
 
10
14
  ## Summary
11
15
 
12
16
  | Priority | Count |
13
- |---------|-------|
14
- | 🔴 Critical | 1 |
15
- | 🟡 High | 2 |
16
- | 🟢 Medium | 3 |
17
- | ⚪ Low | 1 |
18
- | **Total** | **7** |
17
+ |----------|-------|
18
+ | 🔴 Critical | [N] |
19
+ | 🟡 High | [N] |
20
+ | 🟢 Medium | [N] |
21
+ | ⚪ Low | [N] |
22
+ | **Total** | **[N]** |
19
23
 
20
24
  ---
21
25
 
22
26
  ## Risk Register
23
27
 
24
- | ID | Title | Category | Probability | Impact | Score | Priority | Status |
25
- |----|-------|----------|:-----------:|:------:|:-----:|---------|--------|
26
- | RISK-01 | Third-party data source rate limits unclear | External | 4 | 5 | 20 | 🔴 Critical | Open |
27
- | RISK-02 | GDPR data-processing agreement unsigned | Compliance | 3 | 4 | 12 | 🟡 High | Open |
28
- | RISK-03 | Columnar query performance under concurrent load unproven | Technical | 3 | 3 | 9 | 🟡 High | Open |
29
- | RISK-04 | Scope creep from stakeholder wish list | Business | 3 | 2 | 6 | 🟢 Medium | Open |
30
- | RISK-05 | OIDC / SSO library breaking changes | External | 2 | 3 | 6 | 🟢 Medium | Open |
31
- | RISK-06 | Data model changes after /datadict | Technical | 2 | 3 | 6 | 🟢 Medium | Open |
32
- | RISK-07 | Development team unfamiliar with analytics domain | Business | 2 | 1 | 2 | ⚪ Low | Open |
28
+ | ID | Title | Category | P | I | Score | V | Priority | Treatment | Owner | Review | Status |
29
+ |----|-------|----------|:-:|:-:|:-----:|:-:|----------|-----------|-------|--------|--------|
30
+ | RISK-01 | [Short title] | Technical / Business / Compliance / External | 4 | 5 | 20 | Days | 🔴 Critical | Reduce | [Owner] | Monthly | Open |
31
+ | RISK-02 | [Short title] | [Category] | [1–5] | [1–5] | [P×I] | [Velocity] | [Priority] | [Avoid / Reduce / Transfer / Accept] | [Owner] | [Cadence] | Open / In Progress / Closed |
33
32
 
34
- ---
35
-
36
- ## Risk Details
37
-
38
- ### RISK-01 — Third-party data source rate limits unclear
39
-
40
- **Category:** External
41
- **Probability:** 4 / 5 — Likely
42
- **Impact:** 5 / 5 — Critical
43
- **Score:** 20 🔴 Critical
44
- **Status:** Open
45
- **Source:** `07a_research_{slug}.md`
46
-
47
- **Description:**
48
- The product depends on timely event delivery from third-party integrations (Segment and warehouse connectors). The published rate limits do not guarantee sustained throughput at the projected MVP event volume. If a critical integration is rate-limited or breaks its contract, dashboards will show stale or incomplete data and user trust erodes quickly.
49
-
50
- **Mitigation:**
51
- Run a sustained-throughput test against each integration in sprint 0. Negotiate higher quotas with the providers before launch. Add per-source ingestion lag as a monitored NFR metric with an alert threshold.
52
-
53
- **Contingency:**
54
- Enable an ingestion backpressure queue and surface a workspace-level banner when a source is lagging more than 5 minutes behind real-time. Prioritise critical event streams over low-value ones until the lag recovers.
55
-
56
- **Owner:** Tech Lead
33
+ > Columns: P = Probability (1–5), I = Impact (1–5), Score = P × I, V = Velocity (Years / Months / Weeks / Days / Immediate). Treatment: Avoid / Reduce / Transfer / Accept. Review: Monthly / Quarterly / Ad hoc.
57
34
 
58
35
  ---
59
36
 
60
- ### RISK-02 — GDPR data-processing agreement unsigned
61
-
62
- **Category:** Compliance
63
- **Probability:** 3 / 5 — Possible
64
- **Impact:** 4 / 5 — Major
65
- **Score:** 12 🟡 High
66
- **Status:** Open
67
- **Source:** `01_brief_{slug}.md`
68
-
69
- **Description:**
70
- The product collects first-party user-behavioural events from EU workspaces. The Brief listed the GDPR data-processing agreement (DPA) with the selected cloud provider as an assumption. If the DPA is delayed or blocked by legal review, the EU launch date will slip regardless of development readiness.
71
-
72
- **Mitigation:**
73
- Engage legal counsel early to track DPA status. Decouple development milestones from the legal timeline so that technical readiness does not block on paperwork. Draft the workspace-level privacy controls (PII redaction, data residency) independently of the final DPA text.
74
-
75
- **Contingency:**
76
- Launch in non-EU regions first (US, CA, APAC) while the EU DPA is pending. Gate EU workspace signups behind a feature flag tied to DPA status.
77
-
78
- **Owner:** Product Manager
79
-
80
- ---
81
-
82
- ### RISK-03 — Columnar query performance under concurrent load unproven
83
-
84
- **Category:** Technical
85
- **Probability:** 3 / 5 — Possible
86
- **Impact:** 3 / 5 — Moderate
87
- **Score:** 9 🟡 High
88
- **Status:** Open
89
- **Source:** `07a_research_{slug}.md`
90
-
91
- **Description:**
92
- The ADR for the analytics query layer chose ClickHouse as the primary store. This setup has not been load-tested for the projected 200 concurrent dashboard viewers reading against a 10 M-event dataset. If query throughput assumptions are wrong, dashboards will exceed the 500 ms p95 NFR target and degrade UX.
93
-
94
- **Mitigation:**
95
- Run a load-test spike in the first development sprint against the reference dataset. Define a caching fallback (5-minute materialised query cache) if raw query throughput does not meet targets.
96
-
97
- **Contingency:**
98
- Enable the query cache globally and mark cached dashboards with a "last refreshed" timestamp. Communicate the change as a phased rollout feature.
99
-
100
- **Owner:** Tech Lead
101
-
102
- ---
103
-
104
- ### RISK-04 — Scope creep from stakeholder wish list
105
-
106
- **Category:** Business
107
- **Probability:** 3 / 5 — Possible
108
- **Impact:** 2 / 5 — Minor
109
- **Score:** 6 🟢 Medium
110
- **Status:** Open
111
- **Source:** `01_brief_{slug}.md`
112
-
113
- **Description:**
114
- Several features were marked out of scope during the Brief interview but stakeholders indicated they "might be needed later." Without a change control process, these may be re-introduced mid-development, inflating the MVP scope.
115
-
116
- **Mitigation:**
117
- Establish a formal change request process referenced in the Handoff document. All scope additions must go through `/stories` and be re-estimated.
118
-
119
- **Contingency:**
120
- Freeze scope at the start of each sprint. Defer any mid-sprint scope additions to the next sprint backlog.
121
-
122
- **Owner:** Product Manager
123
-
124
- ---
125
-
126
- ### RISK-05 — OIDC / SSO library breaking changes
127
-
128
- **Category:** External
129
- **Probability:** 2 / 5 — Unlikely
130
- **Impact:** 3 / 5 — Moderate
131
- **Score:** 6 🟢 Medium
132
- **Status:** Open
133
- **Source:** `07a_research_{slug}.md`
134
-
135
- **Description:**
136
- The product uses a third-party OIDC / SAML library for workspace SSO. Similar libraries have released breaking changes in previous majors without long deprecation windows. If the library releases a breaking change after development, sign-up and SSO flows may require rework.
137
-
138
- **Mitigation:**
139
- Pin the library version used in development. Monitor the library changelog and security advisories. Abstract SSO calls behind a thin adapter layer so a future swap to a different provider is isolated to one module.
140
-
141
- **Contingency:**
142
- Allocate a 3-day buffer in the release plan for library compatibility fixes.
143
-
144
- **Owner:** Frontend Lead
145
-
146
- ---
147
-
148
- ### RISK-06 — Data model changes after /datadict
37
+ ## Risk Details
149
38
 
150
- **Category:** Technical
151
- **Probability:** 2 / 5 — Unlikely
152
- **Impact:** 3 / 5 — Moderate
153
- **Score:** 6 🟢 Medium
154
- **Status:** Open
155
- **Source:** `07_datadict_{slug}.md`
39
+ ### RISK-01 — [Short title]
40
+
41
+ | Field | Value |
42
+ |-------|-------|
43
+ | **Category** | Technical / Business / Compliance / External |
44
+ | **Probability** | [1–5] — [Very unlikely / Unlikely / Possible / Likely / Very likely] |
45
+ | **Impact** | [1–5] — [Negligible / Minor / Moderate / Major / Critical] |
46
+ | **Score** | [P × I] [🔴/🟡/🟢/⚪ priority] |
47
+ | **Velocity** | [Years / Months / Weeks / Days / Immediate] — [reaction-time implication] |
48
+ | **Treatment strategy** | Avoid / Reduce / Transfer / Accept |
49
+ | **Status** | Open / In Progress / Closed |
50
+ | **Source** | [artifact file + section] |
51
+ | **Owner** | [Single accountable role — e.g. Tech Lead, Product Manager, Compliance Officer] |
52
+ | **Review cadence** | Monthly / Quarterly / Ad hoc |
156
53
 
157
54
  **Description:**
158
- The Data Dictionary was finalised before the API Contract was fully detailed. Late-stage entity or field changes discovered during API design may require cascading updates across the SRS, Stories, and AC artifacts.
55
+ [Full description of the risk and the conditions under which it materialises. State the condition and the consequence "If X happens, then Y will occur."]
159
56
 
160
- **Mitigation:**
161
- Run `/trace` after `/apicontract` to detect any new cross-artifact inconsistencies. Address CRITICAL gaps before handoff.
57
+ **Mitigation:** *(actions taken before the risk materialises — Reduce strategy)*
58
+ [Steps to lower the probability or impact. Required for all Reduce-strategy risks. Optional for Avoid (mitigation = the avoidance action itself), Transfer (mitigation = the transfer mechanism), and Accept (mitigation = N/A by definition).]
162
59
 
163
- **Contingency:**
164
- Use `/revise` on affected artifacts to propagate changes. Document the delta in the Handoff open items list.
165
-
166
- **Owner:** Business Analyst
60
+ **Contingency:** *(actions taken after the risk materialises despite mitigation)*
61
+ [Steps to take if the risk fires anyway. Required for High and Critical risks regardless of treatment strategy.]
167
62
 
168
63
  ---
169
64
 
170
- ### RISK-07Development team unfamiliar with analytics domain
171
-
172
- **Category:** Business
173
- **Probability:** 2 / 5 — Unlikely
174
- **Impact:** 1 / 5 — Negligible
175
- **Score:** 2 Low
176
- **Status:** Open
177
- **Source:** `01_brief_{slug}.md`
65
+ ### RISK-02[Short title]
66
+
67
+ | Field | Value |
68
+ |-------|-------|
69
+ | **Category** | [Category] |
70
+ | **Probability** | [1–5] |
71
+ | **Impact** | [1–5] |
72
+ | **Score** | [P × I] |
73
+ | **Velocity** | [Velocity] |
74
+ | **Treatment strategy** | [Strategy] |
75
+ | **Status** | Open |
76
+ | **Source** | [artifact + section] |
77
+ | **Owner** | [Owner] |
78
+ | **Review cadence** | [Cadence] |
178
79
 
179
80
  **Description:**
180
- The engineering team has limited prior experience with columnar analytics storage. Domain-specific concepts (event schemas, funnel aggregation, cohort joins) may be misunderstood during implementation, leading to query correctness bugs on edge cases.
81
+ [Description.]
181
82
 
182
83
  **Mitigation:**
183
- Include a domain onboarding session as part of sprint 0. Reference the SaaS domain glossary in the Handoff document.
84
+ [Mitigation steps.]
184
85
 
185
86
  **Contingency:**
186
- Schedule a BA review checkpoint after the first feature is implemented end-to-end.
87
+ [Contingency steps.]
187
88
 
188
- **Owner:** Product Manager
89
+ <!-- Repeat RISK block for each risk. Numbering: RISK-01, RISK-02, ... -->
@@ -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]