RC QA Knowledge¶
QA knowledge base for RepairCheck — requirements (SRS), acceptance criteria, and test cases, written as Obsidian markdown and generated from Jira with /gen-ac and /gen-tc.
Structural conventions — paths, slugs, feature metadata, linking, templates — live in 00_Project_Info/conventions. Read that file before writing any path, ID, or link. It is the single source of truth; this file deliberately does not repeat it.
This file is the business layer: what the product is, who uses it, what the words mean. Read it first. A correct-looking AC that misunderstands who the actor is, or what a voucher does, is worse than no AC at all.
What the product is¶
RepairCheck (RC), built by MotionsCloud (MCS): a multi-tenant SaaS for car accident and damage assistance, sold to insurance companies and aimed at the German market.
A driver has an accident. Through RepairCheck they report the damage with photos, then find the help they need nearby — a repair workshop, a vehicle-diagnosis expert, or a lawyer for the legal side. The insurance company that owns the tenant manages that master data and sees the accident reports.
Full architecture: 00_Project_Info/system-high-level-design.
Who uses it — and why the slug prefix matters¶
Three groups of people, three different applications. This is what wa_ and wp_ encode — the prefix tells you the actor, the app, and the permission model:
| Prefix | App | Actor | What they do |
|---|---|---|---|
wa_ |
Web App (+ Android) | End user / Driver | Report an accident, find a workshop / expert / lawyer, manage vehicles, save vouchers |
wp_ |
Web Portal (/admin) |
Client Admin — staff of one insurance company | Manage that company's users, accident reports, workshops, lawyers, ads, vouchers |
| — | SaaS Admin | MCS Admin — MotionsCloud staff | Onboard tenant companies, global master data, feature flags, roles |
So workshop/wa_workshop and workshop/wp_workshop are not two views of one feature — they are a driver searching for a garage versus a company admin editing the garage record. Different actor, different permissions, different failure modes. Never write one AC that covers both.
Multi-tenancy: MCS Admin creates Companies (tenants). Each Company gets its own Web Portal. Every end user belongs to a Company. All four apps talk to one shared REST API. Cross-tenant data leakage is therefore a standing risk on any feature that lists or filters records — worth a negative AC whenever a feature reads company-scoped data.
Domain vocabulary¶
The product is German-market, and tickets and the UI mix German terms in:
| German | English |
|---|---|
| Unfallhilfe | Accident assistance — the Report Accident flow |
| Werkstatt / Werkstatt Finden | Workshop (garage) / Find a Workshop |
| Experte / Experte für Fahrzeugdiagnose | Expert / vehicle-diagnosis expert |
| Unfall Rechtsberatung | Accident legal advice — the Lawyer page |
Core entities¶
Company (tenant) ──▶ User ──▶ Vehicle
└─▶ Accident / Damage (with photos + documents)
Master data, geo-located: Workshop · Expert · Lawyer
Attached: Voucher · Advertisement / Banner · Pricing
Each of these is a note in 00_Project_Info/entities/ (e_workshop, e_voucher, …). A feature hub links the entities it owns, so the entity note's backlinks are the impact list — that is how cross-feature impact is found. See 00_Project_Info/conventions §3–§4.
Notes that shape test design:
- Workshops, Experts and Lawyers are geo-located — the API geocodes them to lat/long, and users filter by distance and rating. Boundary tests on distance radius and rating filters are usually in scope.
- A Voucher is issued by a workshop and saved by a user. The driver saves it (
wa_saved_voucher); the company admin sees all users' saved vouchers (wp_user_voucher). Same object, two actors. - Accidents carry photos and documents in file storage, so upload limits, formats (incl. heic/heif) and deletion behaviour are real test surface.
What this vault covers today¶
16 feature folders under 01_Features/ — 11 Web App and 5 Web Portal — plus the UM code reserved for user_management, which has no folder yet. Open features.base for the live list. Android and SaaS Admin have no AC/TC yet. A ticket landing on one of those needs a new feature folder and hub — /gen-ac and /gen-tc create it, asking you to confirm the code and the entity.
Working in this vault¶
Rules for the agent specifically. Everything structural is in 00_Project_Info/conventions.
- Never fabricate. No UI element you have not seen in a screenshot. No business rule the ticket does not state. No
TC-/AC-/BR-ID you have not read in a file. Flag the assumption or say the coverage is unverified instead — a plausible invention is the most expensive thing you can add here, because it looks researched. - Report what you checked, not just what you found. "No regression impact, isolated change" is a valid finding; silence is not.
- Surface drift rather than patching around it. An empty
entity, a slug that does not match its folder, a link that does not resolve — name it in the report. These are cheap to fix when named and expensive when they accumulate. - Verify before asserting. Check a file exists before linking to it; read a code from the feature's hub before using it in an ID.
python3 scripts/check_links.pyandpython3 scripts/gen_feature_index.py --checkverify both mechanically. - Never modify
.obsidian/config as part of a content task.