@nano-step/skill-manager 5.6.0 → 5.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +1 -1
- package/package.json +1 -1
- package/skills/nano-brain/AGENTS_SNIPPET.md +0 -9
- package/skills/rri-t-testing/SKILL.md +224 -0
- package/skills/rri-t-testing/assets/rri-t-coverage-dashboard.md +138 -0
- package/skills/rri-t-testing/assets/rri-t-memory-protocol.md +271 -0
- package/skills/rri-t-testing/assets/rri-t-persona-interview.md +249 -0
- package/skills/rri-t-testing/assets/rri-t-quality-scorecard.md +122 -0
- package/skills/rri-t-testing/assets/rri-t-risk-matrix.md +87 -0
- package/skills/rri-t-testing/assets/rri-t-stress-matrix.md +100 -0
- package/skills/rri-t-testing/assets/rri-t-test-case.md +181 -0
- package/skills/rri-t-testing/assets/rri-t-testability-gate.md +131 -0
- package/skills/rri-t-testing/assets/rri-t-traceability-matrix.md +105 -0
- package/skills/rri-t-testing/skill.json +9 -0
package/dist/utils.d.ts
CHANGED
package/dist/utils.js
CHANGED
|
@@ -13,7 +13,7 @@ exports.writeText = writeText;
|
|
|
13
13
|
const path_1 = __importDefault(require("path"));
|
|
14
14
|
const os_1 = __importDefault(require("os"));
|
|
15
15
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
16
|
-
exports.MANAGER_VERSION = "5.6.
|
|
16
|
+
exports.MANAGER_VERSION = "5.6.1";
|
|
17
17
|
async function detectOpenCodePaths() {
|
|
18
18
|
const homeConfig = path_1.default.join(os_1.default.homedir(), ".config", "opencode");
|
|
19
19
|
const cwd = process.cwd();
|
package/package.json
CHANGED
|
@@ -19,15 +19,6 @@ nano-brain supports two access methods. Try MCP first; if unavailable, use CLI.
|
|
|
19
19
|
|
|
20
20
|
### Session Workflow
|
|
21
21
|
|
|
22
|
-
**Start of session:** Check memory for relevant past context before exploring the codebase.
|
|
23
|
-
```
|
|
24
|
-
# MCP (if available):
|
|
25
|
-
memory_query("what have we done regarding {current task topic}")
|
|
26
|
-
|
|
27
|
-
# CLI fallback:
|
|
28
|
-
npx nano-brain query "what have we done regarding {current task topic}"
|
|
29
|
-
```
|
|
30
|
-
|
|
31
22
|
**End of session:** Save key decisions, patterns discovered, and debugging insights.
|
|
32
23
|
```
|
|
33
24
|
# MCP (if available):
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rri-t-testing
|
|
3
|
+
description: RRI-T v2 - Rapid Risk-Informed Testing with BMAD-enhanced risk scoring, traceability, quality gates, and nano-brain memory persistence
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# RRI-T v2.0 Testing Skill
|
|
7
|
+
|
|
8
|
+
Rapid Risk-Informed Testing methodology for AI agents. Guides systematic QA testing through 6 phases with risk scoring, traceability, quality gates, and cross-session memory persistence.
|
|
9
|
+
|
|
10
|
+
## When to Use
|
|
11
|
+
|
|
12
|
+
- Testing a new feature before release
|
|
13
|
+
- Validating a bug fix with regression coverage
|
|
14
|
+
- Assessing release readiness with quality gates
|
|
15
|
+
- Building test cases from requirements with traceability
|
|
16
|
+
- Resuming interrupted testing sessions via nano-brain
|
|
17
|
+
|
|
18
|
+
## Input Parameters
|
|
19
|
+
|
|
20
|
+
| Parameter | Required | Description |
|
|
21
|
+
|-----------|----------|-------------|
|
|
22
|
+
| `feature` | Yes | Feature name or PR reference |
|
|
23
|
+
| `tier` | No | Testing depth: `full` (default), `standard`, `minimal` |
|
|
24
|
+
| `acceptance_criteria` | No | List of acceptance criteria or link to spec |
|
|
25
|
+
| `environment` | No | Target environment (dev/staging/prod) |
|
|
26
|
+
|
|
27
|
+
## Workflow Phases
|
|
28
|
+
|
|
29
|
+
### Phase 0: ASSESS
|
|
30
|
+
|
|
31
|
+
Run testability gate, score risk, classify category, select tier, make go/no-go decision.
|
|
32
|
+
|
|
33
|
+
**Steps:**
|
|
34
|
+
1. Load `assets/rri-t-testability-gate.md` template
|
|
35
|
+
2. Validate prerequisites (environment, test data, deployment, acceptance criteria)
|
|
36
|
+
3. Assess testability (locators, API docs, auth flows, error states, baselines)
|
|
37
|
+
4. Score risk: Probability (1-3) x Impact (1-3) = Score (1-9)
|
|
38
|
+
5. Classify category: TECH / SEC / PERF / DATA / BUS / OPS
|
|
39
|
+
6. Select tier based on score
|
|
40
|
+
7. Decision: PROCEED / CONCERNS / BLOCK
|
|
41
|
+
|
|
42
|
+
**Output:** `00-assess.md`, `risk-matrix.md`
|
|
43
|
+
|
|
44
|
+
**MEMORY SAVE:** `rri-t/{feature}/assess` - Save risk register, tier, decision
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
### Phase 1: PREPARE
|
|
49
|
+
|
|
50
|
+
Define test scope, assign personas, select dimensions based on tier.
|
|
51
|
+
|
|
52
|
+
**Steps:**
|
|
53
|
+
1. Define test scope based on tier selection
|
|
54
|
+
2. Assign personas (5 for Full, 3 for Standard, 1 for Minimal)
|
|
55
|
+
3. Select dimensions (7 for Full, 4 for Standard, 2 for Minimal)
|
|
56
|
+
4. Set coverage targets per tier
|
|
57
|
+
5. Create output directory structure
|
|
58
|
+
|
|
59
|
+
**Output:** `01-prepare.md`
|
|
60
|
+
|
|
61
|
+
**MEMORY SAVE:** `rri-t/{feature}/prepare` - Save scope, persona assignments, dimension targets
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
### Phase 2: DISCOVER
|
|
66
|
+
|
|
67
|
+
Run persona interviews, map to dimensions, consolidate findings.
|
|
68
|
+
|
|
69
|
+
**Steps:**
|
|
70
|
+
1. Load `assets/rri-t-persona-interview.md` template
|
|
71
|
+
2. Run persona interviews using risk-tagged questions
|
|
72
|
+
3. Map questions to dimensions (D1-D7)
|
|
73
|
+
4. Consolidate findings into risk register update
|
|
74
|
+
5. Generate raw test ideas
|
|
75
|
+
|
|
76
|
+
**Output:** `02-discover.md`
|
|
77
|
+
|
|
78
|
+
**MEMORY SAVE:** `rri-t/{feature}/discover` - Save interview findings, test ideas, updated risks
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
### Phase 3: STRUCTURE
|
|
83
|
+
|
|
84
|
+
Create test cases, select stress axes, build traceability matrix.
|
|
85
|
+
|
|
86
|
+
**Steps:**
|
|
87
|
+
1. Load `assets/rri-t-test-case.md` template
|
|
88
|
+
2. Create test cases with Q-A-R-P-T format + risk category + traceability
|
|
89
|
+
3. Load `assets/rri-t-stress-matrix.md` and select relevant stress axes
|
|
90
|
+
4. Build traceability matrix using `assets/rri-t-traceability-matrix.md`
|
|
91
|
+
5. Identify coverage gaps
|
|
92
|
+
|
|
93
|
+
**Output:** `03-structure.md`, `traceability.md`
|
|
94
|
+
|
|
95
|
+
**MEMORY SAVE:** `rri-t/{feature}/structure` - Save test cases, traceability, gaps
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
### Phase 4: EXECUTE
|
|
100
|
+
|
|
101
|
+
Execute test cases via Playwright MCP, capture evidence, record results.
|
|
102
|
+
|
|
103
|
+
**Steps:**
|
|
104
|
+
1. Execute test cases using Playwright MCP browser automation
|
|
105
|
+
2. Capture evidence (screenshots, console logs, network requests)
|
|
106
|
+
3. Record results: PASS / FAIL / PAINFUL / MISSING
|
|
107
|
+
4. Calculate quality score using `assets/rri-t-quality-scorecard.md`
|
|
108
|
+
5. Log bugs found
|
|
109
|
+
|
|
110
|
+
**Output:** `04-execute.md`, `quality-scorecard.md`
|
|
111
|
+
|
|
112
|
+
**MEMORY SAVE:** `rri-t/{feature}/execute` - Save results, bugs, quality score
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
### Phase 5: ANALYZE
|
|
117
|
+
|
|
118
|
+
Fill coverage dashboard, apply gate rules, generate final report.
|
|
119
|
+
|
|
120
|
+
**Steps:**
|
|
121
|
+
1. Load `assets/rri-t-coverage-dashboard.md` template
|
|
122
|
+
2. Fill coverage dashboard with results
|
|
123
|
+
3. Complete traceability matrix with test results
|
|
124
|
+
4. Apply gate decision rules (PASS/CONCERNS/FAIL/WAIVED)
|
|
125
|
+
5. Generate final report
|
|
126
|
+
6. Extract reusable patterns for knowledge base
|
|
127
|
+
|
|
128
|
+
**Output:** `05-analyze.md`, `coverage-dashboard.md`
|
|
129
|
+
|
|
130
|
+
**MEMORY SAVE:** `rri-t/{feature}/analyze` - Save gate decision, report, lessons learned, reusable patterns
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Output Directory Structure
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
rri-t-{feature}/
|
|
138
|
+
00-assess.md # Phase 0: Testability gate + risk assessment
|
|
139
|
+
01-prepare.md # Phase 1: Scope, personas, dimensions
|
|
140
|
+
02-discover.md # Phase 2: Interview findings, test ideas
|
|
141
|
+
03-structure.md # Phase 3: Test cases, stress selections
|
|
142
|
+
04-execute.md # Phase 4: Execution log, evidence
|
|
143
|
+
05-analyze.md # Phase 5: Final analysis, recommendations
|
|
144
|
+
risk-matrix.md # Risk register with PxI scoring
|
|
145
|
+
traceability.md # Requirement-to-test mapping
|
|
146
|
+
quality-scorecard.md # 0-100 quality scoring
|
|
147
|
+
coverage-dashboard.md # Coverage metrics, gate decision
|
|
148
|
+
evidence/ # Screenshots, logs
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Templates
|
|
152
|
+
|
|
153
|
+
| Template | Purpose |
|
|
154
|
+
|----------|---------|
|
|
155
|
+
| `rri-t-testability-gate.md` | Phase 0 readiness checklist |
|
|
156
|
+
| `rri-t-risk-matrix.md` | PxI risk scoring template |
|
|
157
|
+
| `rri-t-traceability-matrix.md` | Requirement-to-test mapping |
|
|
158
|
+
| `rri-t-quality-scorecard.md` | 0-100 quality scoring |
|
|
159
|
+
| `rri-t-memory-protocol.md` | nano-brain save/resume protocol |
|
|
160
|
+
| `rri-t-test-case.md` | Q-A-R-P-T test case format |
|
|
161
|
+
| `rri-t-persona-interview.md` | 5-persona interview template |
|
|
162
|
+
| `rri-t-coverage-dashboard.md` | Coverage metrics dashboard |
|
|
163
|
+
| `rri-t-stress-matrix.md` | 8-axis stress testing scenarios |
|
|
164
|
+
|
|
165
|
+
## 7 Dimensions
|
|
166
|
+
|
|
167
|
+
| ID | Dimension | Target Coverage |
|
|
168
|
+
|----|-----------|-----------------|
|
|
169
|
+
| D1 | UI/UX | >= 85% |
|
|
170
|
+
| D2 | API | >= 85% |
|
|
171
|
+
| D3 | Performance | >= 70% |
|
|
172
|
+
| D4 | Security | >= 85% |
|
|
173
|
+
| D5 | Data Integrity | >= 85% |
|
|
174
|
+
| D6 | Infrastructure | >= 70% |
|
|
175
|
+
| D7 | Edge Cases | >= 85% |
|
|
176
|
+
|
|
177
|
+
## 5 Personas
|
|
178
|
+
|
|
179
|
+
| Persona | Focus |
|
|
180
|
+
|---------|-------|
|
|
181
|
+
| End User | Daily usage, speed, clarity, data safety |
|
|
182
|
+
| Business Analyst | Business rules, permissions, data consistency |
|
|
183
|
+
| QA Destroyer | Edge cases, race conditions, malformed inputs |
|
|
184
|
+
| DevOps Tester | Load, recovery, observability, scalability |
|
|
185
|
+
| Security Auditor | Auth, access control, data exposure, audit trails |
|
|
186
|
+
|
|
187
|
+
## Tier Selection
|
|
188
|
+
|
|
189
|
+
| Tier | Risk Score | Personas | Dimensions | Stress Axes | Est. Time |
|
|
190
|
+
|------|------------|----------|------------|-------------|-----------|
|
|
191
|
+
| Full | 6-9 | 5 | 7 | 8 | 2-4 hours |
|
|
192
|
+
| Standard | 3-5 | 3 | 4 | 4 | 1-2 hours |
|
|
193
|
+
| Minimal | 1-2 | 1 | 2 | 2 | 30-60 min |
|
|
194
|
+
|
|
195
|
+
## Release Gates
|
|
196
|
+
|
|
197
|
+
| State | Criteria |
|
|
198
|
+
|-------|----------|
|
|
199
|
+
| PASS | P0 coverage = 100% AND P1 >= 90% AND overall >= 80% |
|
|
200
|
+
| CONCERNS | P0 = 100% AND P1 = 80-89% AND mitigations documented |
|
|
201
|
+
| FAIL | P0 < 100% OR P1 < 80% OR unresolved security issues |
|
|
202
|
+
| WAIVED | FAIL + business approval + owner + expiry + remediation plan |
|
|
203
|
+
|
|
204
|
+
## Risk Categories
|
|
205
|
+
|
|
206
|
+
| Code | Category | Description |
|
|
207
|
+
|------|----------|-------------|
|
|
208
|
+
| TECH | Technical | Architecture/integration fragility |
|
|
209
|
+
| SEC | Security | Security vulnerabilities |
|
|
210
|
+
| PERF | Performance | Performance/scalability issues |
|
|
211
|
+
| DATA | Data | Data integrity/corruption |
|
|
212
|
+
| BUS | Business | Business logic errors |
|
|
213
|
+
| OPS | Operational | Deployment/operational issues |
|
|
214
|
+
|
|
215
|
+
## Guardrails
|
|
216
|
+
|
|
217
|
+
- Always run Phase 0 ASSESS before testing
|
|
218
|
+
- Score risk before testing (PxI formula)
|
|
219
|
+
- Use Q-A-R-P-T format for all test cases
|
|
220
|
+
- Map every test case to a requirement (traceability)
|
|
221
|
+
- Capture evidence for all FAIL and PAINFUL results
|
|
222
|
+
- Save to nano-brain after every phase
|
|
223
|
+
- Never skip security dimension for SEC-category risks
|
|
224
|
+
- Document all waivers with owner, expiry, remediation
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# RRI-T Coverage Dashboard — {feature_name}
|
|
2
|
+
|
|
3
|
+
Feature: {feature_name}
|
|
4
|
+
Date: {date}
|
|
5
|
+
Release Gate Status: {release_gate_status}
|
|
6
|
+
Release Version: {release_version}
|
|
7
|
+
Owner: {owner}
|
|
8
|
+
Prepared By: {prepared_by}
|
|
9
|
+
|
|
10
|
+
## Release Gate Criteria
|
|
11
|
+
|
|
12
|
+
| Rule | Criteria | Status |
|
|
13
|
+
| --- | --- | --- |
|
|
14
|
+
| RG-1 | All 7 dimensions >= 70% coverage | PASS / CONCERNS / FAIL / WAIVED |
|
|
15
|
+
| RG-2 | At least 5/7 dimensions >= 85% coverage | PASS / CONCERNS / FAIL / WAIVED |
|
|
16
|
+
| RG-3 | Zero P0 items in FAIL state | PASS / CONCERNS / FAIL / WAIVED |
|
|
17
|
+
| RG-4 | P0 coverage = 100% | PASS / CONCERNS / FAIL / WAIVED |
|
|
18
|
+
| RG-5 | P1 coverage >= 90% | PASS / CONCERNS / FAIL / WAIVED |
|
|
19
|
+
|
|
20
|
+
### Gate Status Definitions
|
|
21
|
+
|
|
22
|
+
| Status | Definition |
|
|
23
|
+
| --- | --- |
|
|
24
|
+
| PASS | Criteria fully met |
|
|
25
|
+
| CONCERNS | Criteria partially met with documented mitigations |
|
|
26
|
+
| FAIL | Criteria not met |
|
|
27
|
+
| WAIVED | Criteria not met but approved with owner, expiry, remediation |
|
|
28
|
+
|
|
29
|
+
## Dimension Coverage
|
|
30
|
+
|
|
31
|
+
| Dimension | Total | PASS | FAIL | PAINFUL | MISSING | Coverage % | Risk Score | Gate |
|
|
32
|
+
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
33
|
+
| D1: UI/UX | {d1_total} | {d1_pass} | {d1_fail} | {d1_painful} | {d1_missing} | {d1_coverage} | {d1_risk} | PASS / CONCERNS / FAIL / WAIVED |
|
|
34
|
+
| D2: API | {d2_total} | {d2_pass} | {d2_fail} | {d2_painful} | {d2_missing} | {d2_coverage} | {d2_risk} | PASS / CONCERNS / FAIL / WAIVED |
|
|
35
|
+
| D3: Performance | {d3_total} | {d3_pass} | {d3_fail} | {d3_painful} | {d3_missing} | {d3_coverage} | {d3_risk} | PASS / CONCERNS / FAIL / WAIVED |
|
|
36
|
+
| D4: Security | {d4_total} | {d4_pass} | {d4_fail} | {d4_painful} | {d4_missing} | {d4_coverage} | {d4_risk} | PASS / CONCERNS / FAIL / WAIVED |
|
|
37
|
+
| D5: Data Integrity | {d5_total} | {d5_pass} | {d5_fail} | {d5_painful} | {d5_missing} | {d5_coverage} | {d5_risk} | PASS / CONCERNS / FAIL / WAIVED |
|
|
38
|
+
| D6: Infrastructure | {d6_total} | {d6_pass} | {d6_fail} | {d6_painful} | {d6_missing} | {d6_coverage} | {d6_risk} | PASS / CONCERNS / FAIL / WAIVED |
|
|
39
|
+
| D7: Edge Cases | {d7_total} | {d7_pass} | {d7_fail} | {d7_painful} | {d7_missing} | {d7_coverage} | {d7_risk} | PASS / CONCERNS / FAIL / WAIVED |
|
|
40
|
+
|
|
41
|
+
Legend: PASS | FAIL | PAINFUL | MISSING
|
|
42
|
+
|
|
43
|
+
## Priority Breakdown
|
|
44
|
+
|
|
45
|
+
| Priority | Total | PASS | FAIL | PAINFUL | MISSING | Coverage % | Gate |
|
|
46
|
+
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
47
|
+
| P0 | {p0_total} | {p0_pass} | {p0_fail} | {p0_painful} | {p0_missing} | {p0_coverage} | PASS / CONCERNS / FAIL / WAIVED |
|
|
48
|
+
| P1 | {p1_total} | {p1_pass} | {p1_fail} | {p1_painful} | {p1_missing} | {p1_coverage} | PASS / CONCERNS / FAIL / WAIVED |
|
|
49
|
+
| P2 | {p2_total} | {p2_pass} | {p2_fail} | {p2_painful} | {p2_missing} | {p2_coverage} | PASS / CONCERNS / FAIL / WAIVED |
|
|
50
|
+
| P3 | {p3_total} | {p3_pass} | {p3_fail} | {p3_painful} | {p3_missing} | {p3_coverage} | PASS / CONCERNS / FAIL / WAIVED |
|
|
51
|
+
|
|
52
|
+
## Summary Metrics
|
|
53
|
+
|
|
54
|
+
- Total Test Cases: {total_tc}
|
|
55
|
+
- Overall Coverage %: {overall_coverage}
|
|
56
|
+
- Dimensions Passing Gate: {dimensions_passing_gate}
|
|
57
|
+
- P0 FAIL Count: {p0_fail_count}
|
|
58
|
+
- P0 PAINFUL Count: {p0_painful_count}
|
|
59
|
+
- MISSING Count: {missing_count}
|
|
60
|
+
- Quality Score: {quality_score} (Grade: {grade})
|
|
61
|
+
- Latest Update: {latest_update}
|
|
62
|
+
- Notes: {summary_notes}
|
|
63
|
+
- Risks: {summary_risks}
|
|
64
|
+
|
|
65
|
+
## Trend Tracking
|
|
66
|
+
|
|
67
|
+
| Metric | This Release | Last Release | Delta |
|
|
68
|
+
| --- | --- | --- | --- |
|
|
69
|
+
| Overall Coverage | {this_coverage}% | {last_coverage}% | {delta}% |
|
|
70
|
+
| P0 Pass Rate | {this_p0}% | {last_p0}% | {delta}% |
|
|
71
|
+
| P1 Pass Rate | {this_p1}% | {last_p1}% | {delta}% |
|
|
72
|
+
| Quality Score | {this_quality} | {last_quality} | {delta} |
|
|
73
|
+
| FAIL Count | {this_fail} | {last_fail} | {delta} |
|
|
74
|
+
| PAINFUL Count | {this_painful} | {last_painful} | {delta} |
|
|
75
|
+
|
|
76
|
+
## Waiver Log
|
|
77
|
+
|
|
78
|
+
| Waiver ID | Item | Reason | Owner | Approved By | Expiry | Remediation Plan |
|
|
79
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
80
|
+
| W-001 | | | | | | |
|
|
81
|
+
| W-002 | | | | | | |
|
|
82
|
+
| W-003 | | | | | | |
|
|
83
|
+
|
|
84
|
+
## FAIL Items
|
|
85
|
+
|
|
86
|
+
| TC ID | Priority | Dimension | Description | Assigned To |
|
|
87
|
+
| --- | --- | --- | --- | --- |
|
|
88
|
+
| {fail_tc_id_1} | {fail_priority_1} | {fail_dimension_1} | {fail_description_1} | {fail_assigned_to_1} |
|
|
89
|
+
| {fail_tc_id_2} | {fail_priority_2} | {fail_dimension_2} | {fail_description_2} | {fail_assigned_to_2} |
|
|
90
|
+
| {fail_tc_id_3} | {fail_priority_3} | {fail_dimension_3} | {fail_description_3} | {fail_assigned_to_3} |
|
|
91
|
+
| {fail_tc_id_4} | {fail_priority_4} | {fail_dimension_4} | {fail_description_4} | {fail_assigned_to_4} |
|
|
92
|
+
| {fail_tc_id_5} | {fail_priority_5} | {fail_dimension_5} | {fail_description_5} | {fail_assigned_to_5} |
|
|
93
|
+
|
|
94
|
+
## PAINFUL Items
|
|
95
|
+
|
|
96
|
+
| TC ID | Priority | Dimension | Description | UX Impact |
|
|
97
|
+
| --- | --- | --- | --- | --- |
|
|
98
|
+
| {painful_tc_id_1} | {painful_priority_1} | {painful_dimension_1} | {painful_description_1} | {painful_ux_impact_1} |
|
|
99
|
+
| {painful_tc_id_2} | {painful_priority_2} | {painful_dimension_2} | {painful_description_2} | {painful_ux_impact_2} |
|
|
100
|
+
| {painful_tc_id_3} | {painful_priority_3} | {painful_dimension_3} | {painful_description_3} | {painful_ux_impact_3} |
|
|
101
|
+
| {painful_tc_id_4} | {painful_priority_4} | {painful_dimension_4} | {painful_description_4} | {painful_ux_impact_4} |
|
|
102
|
+
| {painful_tc_id_5} | {painful_priority_5} | {painful_dimension_5} | {painful_description_5} | {painful_ux_impact_5} |
|
|
103
|
+
|
|
104
|
+
## MISSING Items
|
|
105
|
+
|
|
106
|
+
| TC ID | Priority | Dimension | Description | User Need |
|
|
107
|
+
| --- | --- | --- | --- | --- |
|
|
108
|
+
| {missing_tc_id_1} | {missing_priority_1} | {missing_dimension_1} | {missing_description_1} | {missing_user_need_1} |
|
|
109
|
+
| {missing_tc_id_2} | {missing_priority_2} | {missing_dimension_2} | {missing_description_2} | {missing_user_need_2} |
|
|
110
|
+
| {missing_tc_id_3} | {missing_priority_3} | {missing_dimension_3} | {missing_description_3} | {missing_user_need_3} |
|
|
111
|
+
| {missing_tc_id_4} | {missing_priority_4} | {missing_dimension_4} | {missing_description_4} | {missing_user_need_4} |
|
|
112
|
+
| {missing_tc_id_5} | {missing_priority_5} | {missing_dimension_5} | {missing_description_5} | {missing_user_need_5} |
|
|
113
|
+
|
|
114
|
+
## Regression Test List
|
|
115
|
+
|
|
116
|
+
| Test ID | Title | Dimension | Priority | Status |
|
|
117
|
+
| --- | --- | --- | --- | --- |
|
|
118
|
+
| {regression_id_1} | {regression_title_1} | {regression_dimension_1} | {regression_priority_1} | {regression_status_1} |
|
|
119
|
+
| {regression_id_2} | {regression_title_2} | {regression_dimension_2} | {regression_priority_2} | {regression_status_2} |
|
|
120
|
+
| {regression_id_3} | {regression_title_3} | {regression_dimension_3} | {regression_priority_3} | {regression_status_3} |
|
|
121
|
+
| {regression_id_4} | {regression_title_4} | {regression_dimension_4} | {regression_priority_4} | {regression_status_4} |
|
|
122
|
+
| {regression_id_5} | {regression_title_5} | {regression_dimension_5} | {regression_priority_5} | {regression_status_5} |
|
|
123
|
+
|
|
124
|
+
## Sign-off
|
|
125
|
+
|
|
126
|
+
| Role | Name | Decision | Notes |
|
|
127
|
+
| --- | --- | --- | --- |
|
|
128
|
+
| QA Lead | {qa_lead_name} | APPROVE / REJECT / WAIVE | {qa_lead_notes} |
|
|
129
|
+
| Dev Lead | {dev_lead_name} | APPROVE / REJECT / WAIVE | {dev_lead_notes} |
|
|
130
|
+
| Product | {product_name} | APPROVE / REJECT / WAIVE | {product_notes} |
|
|
131
|
+
|
|
132
|
+
## Final Gate Decision
|
|
133
|
+
|
|
134
|
+
**Decision:** PASS / CONCERNS / FAIL / WAIVED
|
|
135
|
+
|
|
136
|
+
**Rationale:** {rationale}
|
|
137
|
+
|
|
138
|
+
**Next Steps:** {next_steps}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
# RRI-T Memory Protocol
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
This protocol defines how RRI-T testing sessions persist state to nano-brain for cross-session continuity. Every phase saves its outputs, enabling resume from any point and cross-feature learning.
|
|
6
|
+
|
|
7
|
+
## Save Format
|
|
8
|
+
|
|
9
|
+
### Tag Convention
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
rri-t/{feature-slug}/{phase}
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Examples:
|
|
16
|
+
- `rri-t/checkout-flow/assess`
|
|
17
|
+
- `rri-t/user-registration/discover`
|
|
18
|
+
- `rri-t/inventory-sync/execute`
|
|
19
|
+
|
|
20
|
+
### Content Structure
|
|
21
|
+
|
|
22
|
+
```markdown
|
|
23
|
+
## RRI-T {Phase} Complete: {Feature}
|
|
24
|
+
|
|
25
|
+
- **Phase:** {0-5}
|
|
26
|
+
- **Date:** {ISO-8601}
|
|
27
|
+
- **Status:** COMPLETE / PARTIAL / BLOCKED
|
|
28
|
+
- **Tier:** Full / Standard / Minimal
|
|
29
|
+
- **Risk Score:** {1-9}
|
|
30
|
+
|
|
31
|
+
### Key Outputs
|
|
32
|
+
{phase-specific data}
|
|
33
|
+
|
|
34
|
+
### Decisions Made
|
|
35
|
+
{rationale for key decisions}
|
|
36
|
+
|
|
37
|
+
### Next Phase
|
|
38
|
+
{what the next phase needs from this phase}
|
|
39
|
+
|
|
40
|
+
### Risks Identified
|
|
41
|
+
{new or updated risks}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Phase-Specific Outputs
|
|
47
|
+
|
|
48
|
+
### Phase 0: ASSESS
|
|
49
|
+
|
|
50
|
+
Save after completing testability gate and risk assessment.
|
|
51
|
+
|
|
52
|
+
```markdown
|
|
53
|
+
### Key Outputs
|
|
54
|
+
- Testability: {count}/5 prerequisites, {count}/5 testability criteria
|
|
55
|
+
- Risk Score: {P} x {I} = {score} ({level})
|
|
56
|
+
- Category: {CODE}
|
|
57
|
+
- Tier: {Full/Standard/Minimal}
|
|
58
|
+
- Decision: {PROCEED/CONCERNS/BLOCK}
|
|
59
|
+
|
|
60
|
+
### Decisions Made
|
|
61
|
+
- Selected {tier} tier because {rationale}
|
|
62
|
+
- Primary risk category is {CODE} because {rationale}
|
|
63
|
+
|
|
64
|
+
### Next Phase
|
|
65
|
+
- Personas to assign: {count}
|
|
66
|
+
- Dimensions to cover: {count}
|
|
67
|
+
- Blockers to address: {list or "none"}
|
|
68
|
+
|
|
69
|
+
### Risks Identified
|
|
70
|
+
- R-001: {description} (Score: {score})
|
|
71
|
+
- R-002: {description} (Score: {score})
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Phase 1: PREPARE
|
|
75
|
+
|
|
76
|
+
Save after defining scope and assignments.
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
### Key Outputs
|
|
80
|
+
- Personas: {list of assigned personas}
|
|
81
|
+
- Dimensions: {list of selected dimensions}
|
|
82
|
+
- Coverage targets: P0={pct}%, P1={pct}%, Overall={pct}%
|
|
83
|
+
|
|
84
|
+
### Decisions Made
|
|
85
|
+
- Excluded {persona/dimension} because {rationale}
|
|
86
|
+
- Prioritized {dimension} because {rationale}
|
|
87
|
+
|
|
88
|
+
### Next Phase
|
|
89
|
+
- Interview {count} personas
|
|
90
|
+
- Focus on {key areas}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Phase 2: DISCOVER
|
|
94
|
+
|
|
95
|
+
Save after completing persona interviews.
|
|
96
|
+
|
|
97
|
+
```markdown
|
|
98
|
+
### Key Outputs
|
|
99
|
+
- Questions generated: {count}
|
|
100
|
+
- Test ideas: {count}
|
|
101
|
+
- Key concerns: {list}
|
|
102
|
+
|
|
103
|
+
### Decisions Made
|
|
104
|
+
- Prioritized {concern} because {rationale}
|
|
105
|
+
- Deprioritized {area} because {rationale}
|
|
106
|
+
|
|
107
|
+
### Next Phase
|
|
108
|
+
- Create {count} test cases
|
|
109
|
+
- Focus stress axes: {list}
|
|
110
|
+
|
|
111
|
+
### Risks Identified
|
|
112
|
+
- R-003: {new risk from interviews}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Phase 3: STRUCTURE
|
|
116
|
+
|
|
117
|
+
Save after creating test cases and traceability.
|
|
118
|
+
|
|
119
|
+
```markdown
|
|
120
|
+
### Key Outputs
|
|
121
|
+
- Test cases: {count} (P0: {n}, P1: {n}, P2: {n}, P3: {n})
|
|
122
|
+
- Traceability: {count} requirements mapped
|
|
123
|
+
- Coverage gaps: {count}
|
|
124
|
+
- Stress axes selected: {list}
|
|
125
|
+
|
|
126
|
+
### Decisions Made
|
|
127
|
+
- Prioritized {test case} because {rationale}
|
|
128
|
+
- Deferred {test case} because {rationale}
|
|
129
|
+
|
|
130
|
+
### Next Phase
|
|
131
|
+
- Execute {count} test cases
|
|
132
|
+
- Focus on {priority areas}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Phase 4: EXECUTE
|
|
136
|
+
|
|
137
|
+
Save after executing tests and calculating quality score.
|
|
138
|
+
|
|
139
|
+
```markdown
|
|
140
|
+
### Key Outputs
|
|
141
|
+
- Results: PASS={n}, FAIL={n}, PAINFUL={n}, MISSING={n}
|
|
142
|
+
- Quality Score: {score} (Grade: {grade})
|
|
143
|
+
- Bugs found: {count}
|
|
144
|
+
- Evidence captured: {count} screenshots, {count} logs
|
|
145
|
+
|
|
146
|
+
### Decisions Made
|
|
147
|
+
- Marked {test} as PAINFUL because {rationale}
|
|
148
|
+
- Skipped {test} because {rationale}
|
|
149
|
+
|
|
150
|
+
### Next Phase
|
|
151
|
+
- Analyze {count} results
|
|
152
|
+
- Address {count} failures
|
|
153
|
+
- Fill coverage dashboard
|
|
154
|
+
|
|
155
|
+
### Risks Identified
|
|
156
|
+
- R-004: {new risk from execution}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Phase 5: ANALYZE
|
|
160
|
+
|
|
161
|
+
Save after completing analysis and gate decision.
|
|
162
|
+
|
|
163
|
+
```markdown
|
|
164
|
+
### Key Outputs
|
|
165
|
+
- Gate Decision: {PASS/CONCERNS/FAIL/WAIVED}
|
|
166
|
+
- Coverage: P0={pct}%, P1={pct}%, Overall={pct}%
|
|
167
|
+
- Dimensions passing: {count}/7
|
|
168
|
+
- Waivers: {count}
|
|
169
|
+
|
|
170
|
+
### Decisions Made
|
|
171
|
+
- Gate decision is {decision} because {rationale}
|
|
172
|
+
- Waived {item} because {rationale}
|
|
173
|
+
|
|
174
|
+
### Lessons Learned
|
|
175
|
+
- {lesson 1}
|
|
176
|
+
- {lesson 2}
|
|
177
|
+
|
|
178
|
+
### Reusable Patterns
|
|
179
|
+
- {pattern for future features}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Resume Protocol
|
|
185
|
+
|
|
186
|
+
When resuming an interrupted session:
|
|
187
|
+
|
|
188
|
+
1. **Query memory:**
|
|
189
|
+
```
|
|
190
|
+
memory_query("rri-t {feature-name}")
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
2. **Find latest completed phase:**
|
|
194
|
+
Look for most recent phase with Status: COMPLETE
|
|
195
|
+
|
|
196
|
+
3. **Load outputs as context:**
|
|
197
|
+
Read Key Outputs and Next Phase sections
|
|
198
|
+
|
|
199
|
+
4. **Continue from next phase:**
|
|
200
|
+
Start the phase indicated in Next Phase
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Cross-Feature Learning
|
|
205
|
+
|
|
206
|
+
Save reusable patterns for future features:
|
|
207
|
+
|
|
208
|
+
### Tag Convention
|
|
209
|
+
|
|
210
|
+
```
|
|
211
|
+
rri-t/patterns/{category}
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Examples:
|
|
215
|
+
- `rri-t/patterns/auth-testing`
|
|
216
|
+
- `rri-t/patterns/offline-sync`
|
|
217
|
+
- `rri-t/patterns/vietnamese-locale`
|
|
218
|
+
|
|
219
|
+
### Content Structure
|
|
220
|
+
|
|
221
|
+
```markdown
|
|
222
|
+
## RRI-T Pattern: {Pattern Name}
|
|
223
|
+
|
|
224
|
+
- **Category:** {category}
|
|
225
|
+
- **Discovered:** {date}
|
|
226
|
+
- **Source Feature:** {feature-name}
|
|
227
|
+
|
|
228
|
+
### Pattern
|
|
229
|
+
{description of reusable approach}
|
|
230
|
+
|
|
231
|
+
### When to Apply
|
|
232
|
+
{conditions when this pattern is useful}
|
|
233
|
+
|
|
234
|
+
### Example
|
|
235
|
+
{concrete example from source feature}
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Example: Phase 0 ASSESS Memory Save
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
memory_write("## RRI-T ASSESS Complete: checkout-flow
|
|
244
|
+
|
|
245
|
+
- **Phase:** 0
|
|
246
|
+
- **Date:** 2025-03-08T10:30:00Z
|
|
247
|
+
- **Status:** COMPLETE
|
|
248
|
+
- **Tier:** Full
|
|
249
|
+
- **Risk Score:** 6
|
|
250
|
+
|
|
251
|
+
### Key Outputs
|
|
252
|
+
- Testability: 5/5 prerequisites, 4/5 testability criteria
|
|
253
|
+
- Risk Score: 2 x 3 = 6 (HIGH)
|
|
254
|
+
- Category: DATA
|
|
255
|
+
- Tier: Full
|
|
256
|
+
- Decision: PROCEED
|
|
257
|
+
|
|
258
|
+
### Decisions Made
|
|
259
|
+
- Selected Full tier because risk score 6 requires comprehensive coverage
|
|
260
|
+
- Primary risk category is DATA because checkout involves payment transactions
|
|
261
|
+
|
|
262
|
+
### Next Phase
|
|
263
|
+
- Personas to assign: 5 (all)
|
|
264
|
+
- Dimensions to cover: 7 (all)
|
|
265
|
+
- Blockers to address: none
|
|
266
|
+
|
|
267
|
+
### Risks Identified
|
|
268
|
+
- R-001: Payment state inconsistent on network failure (Score: 6)
|
|
269
|
+
- R-002: Cart not cleared after successful checkout (Score: 4)
|
|
270
|
+
")
|
|
271
|
+
```
|