of this project.
past breakage weights future scores. dismissals are remembered. keyed to the repo.
a typed scenario graph, scored by P × C × R, weighted by what's already broken here.
how likely it occurs in production.
does it touch money, auth, or data.
how hard to recover from when it lands.
describe('password reset', () => { it('blocks token reuse after password is set', async ({ page }) => { // precondition: a valid reset token exists. // expected: 401 on the second use. }); it('rejects expired tokens with a clear error', async ({ page }) => { // expected: human-readable error, prompt to request a new link. }); });
{
"name": "token reuse after password reset",
"request": {
"method": "POST",
"url": "/auth/reset-password",
"body": { "token": "{{used_token}}" }
},
"tests": "pm.expect(pm.response.code).to.equal(401);",
"priority": { "P": 3, "C": 3, "R": 2, "score": 18 }
}
## password reset ### CRITICAL - [ ] token reused after password is set P:3 C:3 R:2 = 18 - [ ] token expired before use P:3 C:3 R:3 = 27 ### IMPORTANT - [ ] concurrent reset requests P:1 C:3 R:3 = 9 - [ ] new password matches a previous one P:2 C:3 R:2 = 12 ### LOW - [ ] user not found for the email P:2 C:2 R:1 = 4
<!-- qaless export --format html --output report.html --> <script> const graph = { nodes: [ { id: "n1", type: "happy_path", score: 9 }, { id: "n2", type: "edge_case", score: 27 }, { id: "n3", type: "concurrency", score: 18 } ], edges: [{ from: "n1", to: "n2", label: "token expires" }] }; </script>
past breakage weights future scores. dismissals are remembered. keyed to the repo.
runs scenarios against staging. failures land back in the graph as confirmed.
ci/cd action fires on each pr and deploy. dashboard fires on incident.
git history, sentry errors, last ten deploys. linked to similar shapes that haven't broken yet.
what fired, what was dismissed, by whom. auditable across releases.
json-schema ScenarioGraph, byo key, ~/.qaless/history.db never leaves.
shared memory across the team — one incident log, one project context, every analysis pooled.
get team ↗