@kudusov.takhir/ba-toolkit 1.2.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 +125 -0
- package/COMMANDS.md +69 -0
- package/LICENSE +21 -0
- package/README.md +842 -0
- package/README.ru.md +846 -0
- package/bin/ba-toolkit.js +468 -0
- package/package.json +49 -0
- package/skills/ac/SKILL.md +88 -0
- package/skills/analyze/SKILL.md +126 -0
- package/skills/apicontract/SKILL.md +113 -0
- package/skills/brief/SKILL.md +120 -0
- package/skills/clarify/SKILL.md +96 -0
- package/skills/datadict/SKILL.md +98 -0
- package/skills/estimate/SKILL.md +124 -0
- package/skills/export/SKILL.md +215 -0
- package/skills/glossary/SKILL.md +145 -0
- package/skills/handoff/SKILL.md +146 -0
- package/skills/nfr/SKILL.md +85 -0
- package/skills/principles/SKILL.md +182 -0
- package/skills/references/closing-message.md +33 -0
- package/skills/references/domains/ecommerce.md +209 -0
- package/skills/references/domains/fintech.md +180 -0
- package/skills/references/domains/healthcare.md +223 -0
- package/skills/references/domains/igaming.md +183 -0
- package/skills/references/domains/logistics.md +221 -0
- package/skills/references/domains/on-demand.md +231 -0
- package/skills/references/domains/real-estate.md +241 -0
- package/skills/references/domains/saas.md +185 -0
- package/skills/references/domains/social-media.md +234 -0
- package/skills/references/environment.md +57 -0
- package/skills/references/prerequisites.md +191 -0
- package/skills/references/templates/README.md +35 -0
- package/skills/references/templates/ac-template.md +58 -0
- package/skills/references/templates/analyze-template.md +65 -0
- package/skills/references/templates/apicontract-template.md +183 -0
- package/skills/references/templates/brief-template.md +51 -0
- package/skills/references/templates/datadict-template.md +75 -0
- package/skills/references/templates/export-template.md +112 -0
- package/skills/references/templates/handoff-template.md +102 -0
- package/skills/references/templates/nfr-template.md +97 -0
- package/skills/references/templates/principles-template.md +118 -0
- package/skills/references/templates/research-template.md +99 -0
- package/skills/references/templates/risk-template.md +188 -0
- package/skills/references/templates/scenarios-template.md +93 -0
- package/skills/references/templates/sprint-template.md +158 -0
- package/skills/references/templates/srs-template.md +90 -0
- package/skills/references/templates/stories-template.md +60 -0
- package/skills/references/templates/trace-template.md +59 -0
- package/skills/references/templates/usecases-template.md +51 -0
- package/skills/references/templates/wireframes-template.md +96 -0
- package/skills/research/SKILL.md +136 -0
- package/skills/risk/SKILL.md +163 -0
- package/skills/scenarios/SKILL.md +113 -0
- package/skills/sprint/SKILL.md +174 -0
- package/skills/srs/SKILL.md +124 -0
- package/skills/stories/SKILL.md +85 -0
- package/skills/trace/SKILL.md +85 -0
- package/skills/usecases/SKILL.md +91 -0
- package/skills/wireframes/SKILL.md +107 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Project Principles: [PROJECT_NAME]
|
|
2
|
+
|
|
3
|
+
**Version:** 1.0
|
|
4
|
+
**Date:** [DATE]
|
|
5
|
+
**Domain:** [DOMAIN]
|
|
6
|
+
**Slug:** [SLUG]
|
|
7
|
+
|
|
8
|
+
## 1. Artifact Language
|
|
9
|
+
|
|
10
|
+
All artifacts are generated in: [LANGUAGE]
|
|
11
|
+
|
|
12
|
+
## 2. ID Conventions
|
|
13
|
+
|
|
14
|
+
| Artifact | Format | Example |
|
|
15
|
+
|----------|--------|---------|
|
|
16
|
+
| Functional Requirements | FR-NNN | FR-001 |
|
|
17
|
+
| User Stories | US-NNN | US-001 |
|
|
18
|
+
| Use Cases | UC-NNN | UC-001 |
|
|
19
|
+
| Acceptance Criteria | AC-NNN-NN | AC-001-01 |
|
|
20
|
+
| Non-functional Requirements | NFR-NNN | NFR-001 |
|
|
21
|
+
| Architecture Decisions | ADR-NNN | ADR-001 |
|
|
22
|
+
| Data Entities | PascalCase (English) | UserAccount |
|
|
23
|
+
| API Endpoints | REST path | POST /users |
|
|
24
|
+
| Wireframes | WF-NNN | WF-001 |
|
|
25
|
+
| Validation Scenarios | SC-NNN | SC-001 |
|
|
26
|
+
|
|
27
|
+
## 3. Traceability Requirements
|
|
28
|
+
|
|
29
|
+
Mandatory links — violations flagged as **CRITICAL** by `/analyze` and `/trace`:
|
|
30
|
+
|
|
31
|
+
- Every FR must have at least one linked US (after `/stories`).
|
|
32
|
+
- Every Must-priority US must have at least one AC (after `/ac`).
|
|
33
|
+
- Every NFR must have a measurable metric.
|
|
34
|
+
- Every WF must link to at least one US.
|
|
35
|
+
|
|
36
|
+
Recommended links — violations flagged as **HIGH**:
|
|
37
|
+
|
|
38
|
+
- Must-priority US should have a linked UC (or documented exception).
|
|
39
|
+
- Every Data Entity should link to at least one FR or US.
|
|
40
|
+
- Every API endpoint should link to at least one FR or US.
|
|
41
|
+
|
|
42
|
+
Optional links — violations flagged as **MEDIUM**:
|
|
43
|
+
|
|
44
|
+
- Should-priority US may skip UC.
|
|
45
|
+
- Could/Won't items may be undocumented in later artifacts.
|
|
46
|
+
|
|
47
|
+
## 4. Definition of Ready
|
|
48
|
+
|
|
49
|
+
An artifact is ready to `/done` when all of the following are true:
|
|
50
|
+
|
|
51
|
+
### Functional Requirement (FR)
|
|
52
|
+
- [ ] Description present and unambiguous.
|
|
53
|
+
- [ ] Actor identified (not "the system" or "the user" without role).
|
|
54
|
+
- [ ] Priority assigned (MoSCoW).
|
|
55
|
+
- [ ] Input/Output specified.
|
|
56
|
+
|
|
57
|
+
### User Story (US)
|
|
58
|
+
- [ ] Role, Action, and Value filled.
|
|
59
|
+
- [ ] Priority assigned.
|
|
60
|
+
- [ ] Linked FR reference present.
|
|
61
|
+
|
|
62
|
+
### Use Case (UC)
|
|
63
|
+
- [ ] Actor, Preconditions, Main Flow, and at least one Exceptional Flow present.
|
|
64
|
+
- [ ] Linked US reference present.
|
|
65
|
+
|
|
66
|
+
### Acceptance Criterion (AC)
|
|
67
|
+
- [ ] Given / When / Then all present and specific.
|
|
68
|
+
- [ ] Type specified (positive / negative / boundary).
|
|
69
|
+
- [ ] Linked US reference present.
|
|
70
|
+
|
|
71
|
+
### NFR
|
|
72
|
+
- [ ] Category specified.
|
|
73
|
+
- [ ] Measurable metric present (numeric target, not adjective).
|
|
74
|
+
- [ ] Verification method specified.
|
|
75
|
+
|
|
76
|
+
### Data Entity
|
|
77
|
+
- [ ] All attributes have types and constraints.
|
|
78
|
+
- [ ] FK references point to existing entities.
|
|
79
|
+
|
|
80
|
+
### API Endpoint
|
|
81
|
+
- [ ] Request and Response schemas present.
|
|
82
|
+
- [ ] At least one error code documented.
|
|
83
|
+
- [ ] Linked FR/US present.
|
|
84
|
+
|
|
85
|
+
### Wireframe (WF)
|
|
86
|
+
- [ ] All four states present: default, loading, empty, error.
|
|
87
|
+
- [ ] Navigation links (from / to) specified.
|
|
88
|
+
- [ ] Linked US present.
|
|
89
|
+
|
|
90
|
+
## 5. NFR Baseline
|
|
91
|
+
|
|
92
|
+
The following NFR categories are required regardless of domain:
|
|
93
|
+
|
|
94
|
+
- **Security:** authentication method, data encryption at rest and in transit.
|
|
95
|
+
- **Availability:** uptime SLA with a numeric target.
|
|
96
|
+
- **Compliance:** applicable laws and data retention policy.
|
|
97
|
+
|
|
98
|
+
[ADDITIONAL_NFR_CATEGORIES]
|
|
99
|
+
|
|
100
|
+
## 6. Quality Gates
|
|
101
|
+
|
|
102
|
+
For `/analyze` findings:
|
|
103
|
+
|
|
104
|
+
- **CRITICAL:** must be resolved. `/done` is blocked.
|
|
105
|
+
- **HIGH:** [BLOCK_OR_WARN] — [PROJECT_DECISION].
|
|
106
|
+
- **MEDIUM:** documented and may be deferred.
|
|
107
|
+
- **LOW:** informational only.
|
|
108
|
+
|
|
109
|
+
## 7. Output Folder Structure
|
|
110
|
+
|
|
111
|
+
**Mode:** [flat | subfolder]
|
|
112
|
+
|
|
113
|
+
- `flat` (default) — all artifacts saved directly in the output directory.
|
|
114
|
+
- `subfolder` — all artifacts saved under `{output_dir}/[SLUG]/`.
|
|
115
|
+
|
|
116
|
+
## 8. Project-Specific Notes
|
|
117
|
+
|
|
118
|
+
[ADDITIONAL_CONVENTIONS]
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Technology Research & Architecture Decisions: [PROJECT_NAME]
|
|
2
|
+
|
|
3
|
+
**Domain:** [DOMAIN]
|
|
4
|
+
**Date:** [DATE]
|
|
5
|
+
**Slug:** [SLUG]
|
|
6
|
+
**References:** `02_srs_[SLUG].md`, `06_nfr_[SLUG].md`, `07_datadict_[SLUG].md`
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Architecture Decision Records (ADRs)
|
|
11
|
+
|
|
12
|
+
### ADR-001: [Decision Title]
|
|
13
|
+
|
|
14
|
+
**Status:** Proposed | Accepted | Deprecated | Superseded by ADR-[NNN]
|
|
15
|
+
**Date:** [DATE]
|
|
16
|
+
|
|
17
|
+
**Context:**
|
|
18
|
+
[What situation or requirement forces us to make this decision? Reference specific NFRs or FRs.]
|
|
19
|
+
|
|
20
|
+
**Options Considered:**
|
|
21
|
+
|
|
22
|
+
| Option | Pros | Cons |
|
|
23
|
+
|--------|------|------|
|
|
24
|
+
| [Option A] | [pros] | [cons] |
|
|
25
|
+
| [Option B] | [pros] | [cons] |
|
|
26
|
+
|
|
27
|
+
**Decision:** [Option A / B / other], because [rationale].
|
|
28
|
+
|
|
29
|
+
**Consequences:**
|
|
30
|
+
- [Positive consequence]
|
|
31
|
+
- [Trade-off or risk]
|
|
32
|
+
|
|
33
|
+
**References:** NFR-[NNN], FR-[NNN]
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
### ADR-002: [Decision Title]
|
|
38
|
+
|
|
39
|
+
**Status:** Proposed | Accepted
|
|
40
|
+
**Date:** [DATE]
|
|
41
|
+
|
|
42
|
+
**Context:** [Context for this decision.]
|
|
43
|
+
|
|
44
|
+
**Options Considered:**
|
|
45
|
+
|
|
46
|
+
| Option | Pros | Cons |
|
|
47
|
+
|--------|------|------|
|
|
48
|
+
| [Option A] | [pros] | [cons] |
|
|
49
|
+
| [Option B] | [pros] | [cons] |
|
|
50
|
+
|
|
51
|
+
**Decision:** [Chosen option and rationale.]
|
|
52
|
+
|
|
53
|
+
**Consequences:**
|
|
54
|
+
- [Consequence]
|
|
55
|
+
|
|
56
|
+
<!-- Repeat ADR block for each major architectural decision. -->
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Integration Map
|
|
61
|
+
|
|
62
|
+
| Integration | Type | Protocol | Auth | Direction | Notes |
|
|
63
|
+
|-------------|------|----------|------|-----------|-------|
|
|
64
|
+
| [System name] | [REST / GraphQL / gRPC / Webhook / SDK] | [HTTPS / WSS] | [API key / OAuth / JWT] | Inbound / Outbound / Both | [notes] |
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Data Storage Decisions
|
|
69
|
+
|
|
70
|
+
| Data Type | Storage Technology | Rationale |
|
|
71
|
+
|-----------|-------------------|-----------|
|
|
72
|
+
| [e.g. User profiles] | [e.g. PostgreSQL] | [why] |
|
|
73
|
+
| [e.g. Session data] | [e.g. Redis] | [why] |
|
|
74
|
+
| [e.g. Media files] | [e.g. S3-compatible] | [why] |
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Real-time Strategy
|
|
79
|
+
|
|
80
|
+
**Requirement:** [What real-time feature needs this — e.g. live notifications, tracking]
|
|
81
|
+
**Approach:** [WebSocket / Server-Sent Events / Long-polling / None]
|
|
82
|
+
**Technology:** [e.g. Socket.io, native WebSocket, Pusher]
|
|
83
|
+
**Rationale:** [Why this approach over alternatives]
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Regulatory & Compliance Notes
|
|
88
|
+
|
|
89
|
+
| Requirement | Impact | Implementation Approach |
|
|
90
|
+
|-------------|--------|------------------------|
|
|
91
|
+
| [e.g. GDPR] | [what data is affected] | [how it will be addressed] |
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Open Questions
|
|
96
|
+
|
|
97
|
+
| # | Question | Owner | Target Date |
|
|
98
|
+
|---|---------|-------|-------------|
|
|
99
|
+
| 1 | [Unresolved technical question] | [Role] | [Date] |
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# Risk Register: {PROJECT_NAME}
|
|
2
|
+
|
|
3
|
+
**Domain:** {DOMAIN}
|
|
4
|
+
**Date:** {DATE}
|
|
5
|
+
**Slug:** {SLUG}
|
|
6
|
+
**Sources:** {list of artifacts scanned}
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Summary
|
|
11
|
+
|
|
12
|
+
| Priority | Count |
|
|
13
|
+
|---------|-------|
|
|
14
|
+
| 🔴 Critical | 1 |
|
|
15
|
+
| 🟡 High | 2 |
|
|
16
|
+
| 🟢 Medium | 3 |
|
|
17
|
+
| ⚪ Low | 1 |
|
|
18
|
+
| **Total** | **7** |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Risk Register
|
|
23
|
+
|
|
24
|
+
| ID | Title | Category | Probability | Impact | Score | Priority | Status |
|
|
25
|
+
|----|-------|----------|:-----------:|:------:|:-----:|---------|--------|
|
|
26
|
+
| RISK-01 | Payment provider SLA not guaranteed | External | 4 | 5 | 20 | 🔴 Critical | Open |
|
|
27
|
+
| RISK-02 | Regulatory approval timeline unknown | Compliance | 3 | 4 | 12 | 🟡 High | Open |
|
|
28
|
+
| RISK-03 | Real-time leaderboard at scale 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 | Telegram Mini App API 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 domain | Business | 2 | 1 | 2 | ⚪ Low | Open |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Risk Details
|
|
37
|
+
|
|
38
|
+
### RISK-01 — Payment provider SLA not guaranteed
|
|
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 selected payment provider has not provided a written SLA. If the provider experiences downtime during peak traffic, transactions will fail and user funds may be delayed, directly impacting revenue and trust.
|
|
49
|
+
|
|
50
|
+
**Mitigation:**
|
|
51
|
+
Negotiate and sign an SLA before launch. Implement a fallback payment provider in the API contract. Add payment provider availability as a monitored NFR metric.
|
|
52
|
+
|
|
53
|
+
**Contingency:**
|
|
54
|
+
Enable the fallback provider automatically via feature flag if primary provider error rate exceeds 5% over a 5-minute window.
|
|
55
|
+
|
|
56
|
+
**Owner:** Tech Lead
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
### RISK-02 — Regulatory approval timeline unknown
|
|
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 operates in a regulated iGaming jurisdiction. The licensing timeline was listed as an assumption in the Brief. If approval is delayed, the launch date will slip regardless of development readiness.
|
|
71
|
+
|
|
72
|
+
**Mitigation:**
|
|
73
|
+
Engage legal counsel early to track approval status. Decouple development milestones from the licensing timeline so that technical readiness does not block on regulatory process.
|
|
74
|
+
|
|
75
|
+
**Contingency:**
|
|
76
|
+
Prepare a soft launch in an unregulated market while the primary jurisdiction approval is pending.
|
|
77
|
+
|
|
78
|
+
**Owner:** Product Manager
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
### RISK-03 — Real-time leaderboard at scale 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 leaderboard service chose Redis Sorted Sets as the primary data structure. This approach has not been load-tested for the projected 10,000 concurrent users. If throughput assumptions are wrong, real-time updates will lag and degrade UX.
|
|
93
|
+
|
|
94
|
+
**Mitigation:**
|
|
95
|
+
Conduct a load test spike in the first development sprint. Define a fallback to polling-based updates (every 5s) if WebSocket throughput targets are not met.
|
|
96
|
+
|
|
97
|
+
**Contingency:**
|
|
98
|
+
Switch to polling-based leaderboard refresh with a 10-second interval. 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 — Telegram Mini App API 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 is built as a Telegram Mini App. Telegram has released breaking changes to the Mini Apps API in previous versions. If the API changes after development, UI components and deep links may require rework.
|
|
137
|
+
|
|
138
|
+
**Mitigation:**
|
|
139
|
+
Pin the Telegram Web App SDK version used in development. Monitor the Telegram changelog and the `@twa-dev/sdk` release notes. Abstract SDK calls behind a thin adapter layer.
|
|
140
|
+
|
|
141
|
+
**Contingency:**
|
|
142
|
+
Allocate a 3-day buffer in the release plan for SDK compatibility fixes.
|
|
143
|
+
|
|
144
|
+
**Owner:** Frontend Lead
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
### RISK-06 — Data model changes after /datadict
|
|
149
|
+
|
|
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`
|
|
156
|
+
|
|
157
|
+
**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.
|
|
159
|
+
|
|
160
|
+
**Mitigation:**
|
|
161
|
+
Run `/trace` after `/apicontract` to detect any new cross-artifact inconsistencies. Address CRITICAL gaps before handoff.
|
|
162
|
+
|
|
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
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
### RISK-07 — Development team unfamiliar with 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`
|
|
178
|
+
|
|
179
|
+
**Description:**
|
|
180
|
+
The engineering team has limited prior experience with iGaming products. Domain-specific concepts (RTP, bonus wagering, KYC flows) may be misunderstood during implementation, leading to minor defects in edge cases.
|
|
181
|
+
|
|
182
|
+
**Mitigation:**
|
|
183
|
+
Include a domain onboarding session as part of sprint 0. Reference the iGaming domain glossary in the Handoff document.
|
|
184
|
+
|
|
185
|
+
**Contingency:**
|
|
186
|
+
Schedule a BA review checkpoint after the first feature is implemented end-to-end.
|
|
187
|
+
|
|
188
|
+
**Owner:** Product Manager
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Validation Scenarios: [PROJECT_NAME]
|
|
2
|
+
|
|
3
|
+
**Domain:** [DOMAIN]
|
|
4
|
+
**Date:** [DATE]
|
|
5
|
+
**Slug:** [SLUG]
|
|
6
|
+
**References:** `03_stories_[SLUG].md`, `05_ac_[SLUG].md`, `09_wireframes_[SLUG].md`, `08_apicontract_[SLUG].md`
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Scenario Index
|
|
11
|
+
|
|
12
|
+
| ID | Title | Persona | Priority | Type |
|
|
13
|
+
|----|-------|---------|---------|------|
|
|
14
|
+
| SC-001 | [Title] | [Persona] | P1 | Happy path |
|
|
15
|
+
| SC-002 | [Title] | [Persona] | P2 | Negative |
|
|
16
|
+
| SC-003 | [Title] | [Persona] | P1 | Edge case |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## SC-001: [Scenario Title]
|
|
21
|
+
|
|
22
|
+
**Persona:** [Name and role — e.g. "Alex, a returning customer"]
|
|
23
|
+
**Type:** Happy path | Negative | Edge case | Performance | Security
|
|
24
|
+
**Priority:** P1 (critical) | P2 (important) | P3 (nice to have)
|
|
25
|
+
**Entry point:** [Where the scenario starts — e.g. "Home screen, not logged in"]
|
|
26
|
+
**Platform:** Web | iOS | Android | API
|
|
27
|
+
**Linked Stories:** US-[NNN], US-[NNN]
|
|
28
|
+
**Linked AC:** US-[NNN] Scenario [N]
|
|
29
|
+
|
|
30
|
+
### Steps
|
|
31
|
+
|
|
32
|
+
| # | Actor | Action | Expected Result | Ref |
|
|
33
|
+
|---|-------|--------|----------------|-----|
|
|
34
|
+
| 1 | [Persona] | [Does something] | [What happens] | WF-[NNN] |
|
|
35
|
+
| 2 | System | [Responds] | [State changes] | API: `POST /[endpoint]` |
|
|
36
|
+
| 3 | [Persona] | [Continues] | [UI updates] | AC: US-[NNN] S[N] |
|
|
37
|
+
|
|
38
|
+
### Expected Outcome
|
|
39
|
+
|
|
40
|
+
[What the final state is when the scenario completes successfully.]
|
|
41
|
+
|
|
42
|
+
### Failure Conditions
|
|
43
|
+
|
|
44
|
+
| Condition | Expected Behaviour |
|
|
45
|
+
|-----------|-------------------|
|
|
46
|
+
| [What could go wrong] | [How the system should handle it] |
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## SC-002: [Scenario Title]
|
|
51
|
+
|
|
52
|
+
**Persona:** [Persona]
|
|
53
|
+
**Type:** Negative | Happy path | Edge case
|
|
54
|
+
**Priority:** P1 | P2 | P3
|
|
55
|
+
**Entry point:** [Start state]
|
|
56
|
+
**Platform:** [Platform]
|
|
57
|
+
**Linked Stories:** US-[NNN]
|
|
58
|
+
**Linked AC:** US-[NNN] Scenario [N]
|
|
59
|
+
|
|
60
|
+
### Steps
|
|
61
|
+
|
|
62
|
+
| # | Actor | Action | Expected Result | Ref |
|
|
63
|
+
|---|-------|--------|----------------|-----|
|
|
64
|
+
| 1 | [Persona] | [Action] | [Result] | WF-[NNN] |
|
|
65
|
+
| 2 | System | [Response] | [State] | |
|
|
66
|
+
|
|
67
|
+
### Expected Outcome
|
|
68
|
+
|
|
69
|
+
[Final state after scenario.]
|
|
70
|
+
|
|
71
|
+
### Failure Conditions
|
|
72
|
+
|
|
73
|
+
| Condition | Expected Behaviour |
|
|
74
|
+
|-----------|-------------------|
|
|
75
|
+
| [Condition] | [Behaviour] |
|
|
76
|
+
|
|
77
|
+
<!-- Repeat SC block for each scenario. Numbering: SC-001, SC-002, ... -->
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Coverage Summary
|
|
82
|
+
|
|
83
|
+
| Artifact | Covered | Not Covered |
|
|
84
|
+
|---------|---------|------------|
|
|
85
|
+
| User Stories | [N] / [Total] | US-[NNN], … |
|
|
86
|
+
| Acceptance Criteria Scenarios | [N] / [Total] | |
|
|
87
|
+
| API Endpoints | [N] / [Total] | `[endpoint]`, … |
|
|
88
|
+
| Wireframe screens | [N] / [Total] | WF-[NNN], … |
|
|
89
|
+
|
|
90
|
+
**Happy path scenarios:** [N]
|
|
91
|
+
**Negative scenarios:** [N]
|
|
92
|
+
**Edge case scenarios:** [N]
|
|
93
|
+
**Total scenarios:** [N]
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Sprint Plan: Dragon Fortune
|
|
2
|
+
|
|
3
|
+
**Domain:** iGaming
|
|
4
|
+
**Date:** 2026-04-08
|
|
5
|
+
**Slug:** dragon-fortune
|
|
6
|
+
**Sprint length:** 2 weeks
|
|
7
|
+
**Team velocity:** 35 SP per sprint
|
|
8
|
+
**Sources:** `00_estimate_dragon-fortune.md`, `03_stories_dragon-fortune.md`, `00_risks_dragon-fortune.md`, `02_srs_dragon-fortune.md`
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Summary
|
|
13
|
+
|
|
14
|
+
| Sprint | Goal | Stories | Points | Capacity |
|
|
15
|
+
|--------|------|:-------:|:------:|:--------:|
|
|
16
|
+
| SP-00 | Setup: environment, CI/CD, Telegram Mini App scaffold | — | — | — |
|
|
17
|
+
| SP-01 | Players can register via Telegram and spin a slot for the first time | 6 | 34 SP | 97% |
|
|
18
|
+
| SP-02 | Players can deposit, withdraw, and view wallet balance | 5 | 32 SP | 91% |
|
|
19
|
+
| SP-03 | Referral programme and bonus mechanics are live | 5 | 30 SP | 86% |
|
|
20
|
+
| SP-04 | Admin panel: player management, game configuration, reporting | 4 | 28 SP | 80% |
|
|
21
|
+
| **Total** | | **20** | **124 SP** | |
|
|
22
|
+
|
|
23
|
+
**Planned:** 20 stories / 124 SP across 4 sprints (8 weeks)
|
|
24
|
+
**Unplanned backlog:** 4 stories / 18 SP (scope exceeds MVP capacity or marked Could/Won't)
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Sprint Details
|
|
29
|
+
|
|
30
|
+
### SP-00 — Setup and environment
|
|
31
|
+
|
|
32
|
+
**Duration:** Week 0 (pre-sprint)
|
|
33
|
+
**Capacity:** Setup only — no story points assigned
|
|
34
|
+
|
|
35
|
+
**Tasks:**
|
|
36
|
+
- Configure CI/CD pipeline (GitHub Actions).
|
|
37
|
+
- Provision staging environment on cloud infrastructure.
|
|
38
|
+
- Scaffold Telegram Mini App project with base authentication stub.
|
|
39
|
+
- Establish database schema baseline from `/datadict`.
|
|
40
|
+
- Team domain onboarding session (iGaming concepts, RTP, KYC flow).
|
|
41
|
+
|
|
42
|
+
**Definition of Done for SP-00:**
|
|
43
|
+
- [ ] All developers can run the project locally.
|
|
44
|
+
- [ ] Staging environment is accessible via Telegram.
|
|
45
|
+
- [ ] Base CI pipeline runs lint + unit tests on every push.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
### SP-01 — Players can register via Telegram and spin a slot for the first time
|
|
50
|
+
|
|
51
|
+
**Duration:** Weeks 1–2
|
|
52
|
+
**Capacity:** 35 SP
|
|
53
|
+
|
|
54
|
+
| US | Title | Epic | Priority | Risk | Estimate |
|
|
55
|
+
|----|-------|------|---------|------|---------|
|
|
56
|
+
| US-001 | Register via Telegram | E-01 Auth | Must | RISK-02 ↑ | 5 SP |
|
|
57
|
+
| US-002 | Launch slot game from Mini App | E-02 Gameplay | Must | — | 3 SP |
|
|
58
|
+
| US-003 | Execute a spin and see result | E-02 Gameplay | Must | RISK-03 ↑ | 13 SP |
|
|
59
|
+
| US-004 | View current wallet balance | E-03 Wallet | Must | — | 3 SP |
|
|
60
|
+
| US-005 | See responsible gambling session limit warning | E-05 Compliance | Must | — | 5 SP |
|
|
61
|
+
| US-006 | View game history (last 20 spins) | E-02 Gameplay | Should | — | 5 SP |
|
|
62
|
+
|
|
63
|
+
**Sprint total:** 34 SP / 35 SP capacity (97%)
|
|
64
|
+
|
|
65
|
+
**Definition of Done for SP-01:**
|
|
66
|
+
- [ ] All stories pass their Acceptance Criteria.
|
|
67
|
+
- [ ] Telegram login tested on iOS and Android Telegram clients.
|
|
68
|
+
- [ ] RNG certified spin result returned in under 200 ms at p95.
|
|
69
|
+
- [ ] No 🔴 Critical open items in `/analyze` for completed stories.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
### SP-02 — Players can deposit, withdraw, and view wallet balance
|
|
74
|
+
|
|
75
|
+
**Duration:** Weeks 3–4
|
|
76
|
+
**Capacity:** 35 SP
|
|
77
|
+
|
|
78
|
+
| US | Title | Epic | Priority | Risk | Estimate |
|
|
79
|
+
|----|-------|------|---------|------|---------|
|
|
80
|
+
| US-007 | Deposit via cryptocurrency | E-03 Wallet | Must | RISK-01 ↑ | 8 SP |
|
|
81
|
+
| US-008 | Deposit via local payment system | E-03 Wallet | Must | RISK-01 ↑ | 8 SP |
|
|
82
|
+
| US-009 | Request withdrawal | E-03 Wallet | Must | — | 8 SP |
|
|
83
|
+
| US-010 | View full transaction history | E-03 Wallet | Should | — | 5 SP |
|
|
84
|
+
| US-011 | Complete KYC identity verification | E-04 Compliance | Must | — | 3 SP |
|
|
85
|
+
|
|
86
|
+
**Sprint total:** 32 SP / 35 SP capacity (91%)
|
|
87
|
+
|
|
88
|
+
**Definition of Done for SP-02:**
|
|
89
|
+
- [ ] All stories pass their Acceptance Criteria.
|
|
90
|
+
- [ ] Payment provider sandbox integration verified end-to-end.
|
|
91
|
+
- [ ] KYC flow tested with test credentials from the provider.
|
|
92
|
+
- [ ] Withdrawal processed within 24 h in staging environment.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### SP-03 — Referral programme and bonus mechanics are live
|
|
97
|
+
|
|
98
|
+
**Duration:** Weeks 5–6
|
|
99
|
+
**Capacity:** 35 SP
|
|
100
|
+
|
|
101
|
+
| US | Title | Epic | Priority | Risk | Estimate |
|
|
102
|
+
|----|-------|------|---------|------|---------|
|
|
103
|
+
| US-012 | Share referral link and earn bonus | E-06 Referrals | Must | RISK-04 ↑ | 8 SP |
|
|
104
|
+
| US-013 | Claim welcome bonus on first deposit | E-06 Referrals | Must | — | 5 SP |
|
|
105
|
+
| US-014 | View active bonuses and wagering progress | E-06 Referrals | Should | — | 5 SP |
|
|
106
|
+
| US-015 | Set self-exclusion period | E-05 Compliance | Must | — | 5 SP |
|
|
107
|
+
| US-016 | Configure deposit limits | E-05 Compliance | Should | — | 7 SP |
|
|
108
|
+
|
|
109
|
+
**Sprint total:** 30 SP / 35 SP capacity (86%)
|
|
110
|
+
|
|
111
|
+
**Definition of Done for SP-03:**
|
|
112
|
+
- [ ] All stories pass their Acceptance Criteria.
|
|
113
|
+
- [ ] Fraud scoring on referral payouts is active and logged.
|
|
114
|
+
- [ ] Self-exclusion blocks all game access within 5 minutes of activation.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### SP-04 — Admin panel: player management, game configuration, reporting
|
|
119
|
+
|
|
120
|
+
**Duration:** Weeks 7–8
|
|
121
|
+
**Capacity:** 35 SP
|
|
122
|
+
|
|
123
|
+
| US | Title | Epic | Priority | Risk | Estimate |
|
|
124
|
+
|----|-------|------|---------|------|---------|
|
|
125
|
+
| US-017 | Admin views player list and profile | E-07 Admin | Must | — | 5 SP |
|
|
126
|
+
| US-018 | Admin adjusts RTP and payline configuration | E-07 Admin | Must | — | 8 SP |
|
|
127
|
+
| US-019 | Admin views revenue and activity report | E-07 Admin | Should | — | 8 SP |
|
|
128
|
+
| US-020 | Admin flags a player account for review | E-07 Admin | Should | — | 7 SP |
|
|
129
|
+
|
|
130
|
+
**Sprint total:** 28 SP / 35 SP capacity (80%)
|
|
131
|
+
|
|
132
|
+
**Definition of Done for SP-04:**
|
|
133
|
+
- [ ] All stories pass their Acceptance Criteria.
|
|
134
|
+
- [ ] RTP configuration change takes effect within 1 spin cycle.
|
|
135
|
+
- [ ] Revenue report matches transaction ledger to within 0.01%.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Unplanned Backlog
|
|
140
|
+
|
|
141
|
+
Stories not assigned to any sprint — below MVP capacity or marked Could/Won't:
|
|
142
|
+
|
|
143
|
+
| US | Title | Epic | Priority | Estimate | Reason |
|
|
144
|
+
|----|-------|------|---------|---------|--------|
|
|
145
|
+
| US-021 | Export transaction history as PDF | E-03 Wallet | Could | 5 SP | Capacity exceeded — defer to v1.1 |
|
|
146
|
+
| US-022 | Multi-language support (EN / RU / KZ) | E-01 Auth | Could | 8 SP | Deferred — requires i18n infrastructure |
|
|
147
|
+
| US-023 | Live chat support widget | E-08 Support | Could | 3 SP | Deferred — third-party integration |
|
|
148
|
+
| US-024 | Affiliate dashboard | E-06 Referrals | Won't | 2 SP | Out of MVP scope |
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Assumptions
|
|
153
|
+
|
|
154
|
+
- Sprint velocity: 35 SP based on a team of 4 full-stack developers (2 sprints of historical data from similar projects).
|
|
155
|
+
- SP-00 is a pre-sprint setup week; its effort is not tracked in Story Points.
|
|
156
|
+
- Frontend and backend are developed in parallel within each sprint.
|
|
157
|
+
- No hard release deadline was specified; the plan targets an 8-week MVP delivery window.
|
|
158
|
+
- Risk-elevated stories (RISK-01, RISK-02, RISK-03, RISK-04) were pulled into earlier sprints to validate mitigations sooner.
|