Skip to content

docs(qa): QA-006 — the nine PRs nobody has looked at - #610

Merged
mrviduus merged 1 commit into
mainfrom
docs/qa-006-scenario
Sep 12, 2026
Merged

docs(qa): QA-006 — the nine PRs nobody has looked at#610
mrviduus merged 1 commit into
mainfrom
docs/qa-006-scenario

Conversation

@mrviduus

Copy link
Copy Markdown
Owner

Nine PRs (#601#609) shipped to production on 2026-09-11/12. Every one is covered by unit or integration tests, and not one of the screens they changed has been opened by a person.

That gap is structural, not an oversight, and the scenario says so up front:

  • apps/mobile/vitest.config.ts is narrowed to src/lib/**/*.test.ts — no component or screen test runs at all, so everything asserted about a mobile screen is an assertion about a projection function.
  • A Tutor session needs an account with vocabulary and a live LLM call; the local .env key is stale, so it can only be exercised against production.
  • The guest-merge warning needs a state that cannot be constructed by clicking.

What it covers

§ why it is here
1 Genre screen threw on every genre with books for a year; the one section where "renders nothing" was the bug
2 Insight date + delete including the offline case, where a row that vanishes on a failed delete is a lie
3 Tutor exercise shapes a table of badge → expected card; a recall card with four options is the defect this shipped to fix
4 Mark as finished the book used to reopen at the top of its last chapter
5 Progress written elsewhere the loop the whole month was for, including "record an invented chapter" → must refuse, not claim success
6 Connect key ends at the real proof: paste the config into Claude Desktop and ask what you are reading
7 Sentry silent in dev a laptop's stale key filed 141 production-looking events this way
8 Guest merge warning two paths in, and the reachable one (expired token) is named first

It also states which JS you are actually testing: a dev build serves from Metro and does not receive the OTA, so testing "what a tester has" means installing build 26/27 and letting the production channel update land — and §7 then behaves differently, because Sentry is enabled in a release build.

And a short section on what is deliberately not covered, with the reasoning, so a product decision does not get filed as a bug: PDF-original progress, LocatorKind on the catalog path, insight categories.

🤖 Generated with Claude Code

https://claude.ai/code/session_011rgEMvYYi4Egj99dVtvm6E

Nine PRs shipped to production on 2026-09-11/12 and not one of the screens they
changed has been opened by a person. The gap is structural, not an oversight:
apps/mobile runs no component tests at all, a Tutor session needs an account with
vocabulary plus a live LLM call, and the guest-merge warning needs a state that
cannot be reached by clicking.

Eight sections, each naming what the defect WAS so a tester knows what a pass
looks like. Includes the two paths into the guest-merge warning (the reachable
one is the expired token), and a section on what is deliberately out of scope
with the reasoning, so nobody files a product decision as a bug.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011rgEMvYYi4Egj99dVtvm6E
@mrviduus
mrviduus merged commit 199f5c6 into main Sep 12, 2026
10 checks passed
@mrviduus
mrviduus deleted the docs/qa-006-scenario branch September 12, 2026 22:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant