@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.
- package/CHANGELOG.md +112 -1
- package/package.json +1 -1
- package/skills/ac/SKILL.md +8 -15
- package/skills/analyze/SKILL.md +57 -17
- package/skills/apicontract/SKILL.md +21 -8
- package/skills/clarify/SKILL.md +31 -11
- package/skills/datadict/SKILL.md +20 -37
- package/skills/estimate/SKILL.md +41 -9
- package/skills/glossary/SKILL.md +24 -7
- package/skills/nfr/SKILL.md +19 -20
- package/skills/references/templates/ac-template.md +72 -21
- package/skills/references/templates/analyze-template.md +23 -15
- package/skills/references/templates/apicontract-template.md +38 -5
- package/skills/references/templates/datadict-template.md +82 -27
- package/skills/references/templates/nfr-template.md +161 -55
- package/skills/references/templates/risk-template.md +58 -157
- package/skills/references/templates/scenarios-template.md +16 -6
- package/skills/references/templates/sprint-template.md +71 -104
- package/skills/references/templates/trace-template.md +83 -19
- package/skills/references/templates/usecases-template.md +40 -11
- package/skills/references/templates/wireframes-template.md +30 -6
- package/skills/risk/SKILL.md +43 -9
- package/skills/scenarios/SKILL.md +7 -43
- package/skills/sprint/SKILL.md +36 -89
- package/skills/trace/SKILL.md +19 -36
- package/skills/usecases/SKILL.md +14 -29
- package/skills/wireframes/SKILL.md +9 -6
|
@@ -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
|
-
##
|
|
15
|
+
## Performance Efficiency (ISO 25010)
|
|
11
16
|
|
|
12
|
-
|
|
13
|
-
|-----------|------------|-------------------|
|
|
14
|
-
| [Page / operation] | [Target, e.g. < 2s p95] | [Lighthouse / load test / APM] |
|
|
17
|
+
### NFR-001: [Sub-characteristic — Time behaviour]
|
|
15
18
|
|
|
16
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
34
|
-
|---------|-----|--------------------|
|
|
35
|
-
| [Service name] | 99.9% | [Sun 02:00–04:00 UTC] |
|
|
78
|
+
---
|
|
36
79
|
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
##
|
|
110
|
+
## Compatibility (ISO 25010)
|
|
43
111
|
|
|
44
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
127
|
+
## Usability (ISO 25010)
|
|
57
128
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
|
61
|
-
|
|
62
|
-
|
|
|
63
|
-
|
|
|
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
|
-
##
|
|
144
|
+
## Maintainability (ISO 25010)
|
|
145
|
+
|
|
146
|
+
### NFR-009: [Sub-characteristic — Testability]
|
|
68
147
|
|
|
69
|
-
|
|
|
70
|
-
|
|
71
|
-
|
|
|
72
|
-
|
|
|
73
|
-
|
|
|
74
|
-
|
|
|
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
|
-
##
|
|
161
|
+
## Portability (ISO 25010)
|
|
79
162
|
|
|
80
|
-
|
|
81
|
-
|-----------|------------|-------------------|
|
|
82
|
-
| [attribute] | [requirement] | [method] |
|
|
163
|
+
### NFR-010: [Sub-characteristic — Adaptability]
|
|
83
164
|
|
|
84
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
91
|
-
|
|
92
|
-
|
|
|
93
|
-
|
|
94
|
-
| NFR-
|
|
95
|
-
| NFR-004 |
|
|
96
|
-
| NFR-005 |
|
|
97
|
-
| NFR-
|
|
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:
|
|
1
|
+
# Risk Register: [PROJECT_NAME]
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
**
|
|
5
|
-
**
|
|
6
|
-
**
|
|
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 |
|
|
15
|
-
| 🟡 High |
|
|
16
|
-
| 🟢 Medium |
|
|
17
|
-
| ⚪ Low |
|
|
18
|
-
| **Total** | **
|
|
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 |
|
|
25
|
-
|
|
26
|
-
| RISK-01 |
|
|
27
|
-
| RISK-02 |
|
|
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
|
-
|
|
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
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
**
|
|
155
|
-
**
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
**
|
|
175
|
-
**
|
|
176
|
-
**
|
|
177
|
-
**
|
|
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
|
-
|
|
81
|
+
[Description.]
|
|
181
82
|
|
|
182
83
|
**Mitigation:**
|
|
183
|
-
|
|
84
|
+
[Mitigation steps.]
|
|
184
85
|
|
|
185
86
|
**Contingency:**
|
|
186
|
-
|
|
87
|
+
[Contingency steps.]
|
|
187
88
|
|
|
188
|
-
|
|
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`, `
|
|
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
|
|
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
|
-
|
|
|
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]
|