# P9-00 — Entry baseline and coverage inventory Development baseline and direct remote: `1c24e406f194f0f42277d837b3008a7a28dca26a` on `feature/phase8-dashboard-customisation`, clean before work. New branch is `feature/phase9-full-qa`. Main remains the older release branch and is not the redesign base. Feature pushes are authorised; `.gitea/workflows/ci-deploy.yml` restricts deployment to a main push. The reproducible [source inventory](INVENTORY.md) and [full JSON](inventory.json) enumerate **33 concrete routes**, **57 preservation groups**, actual page/shared component owners, **43 API controller/partial owners**, migration/data owners, the Admin/Premium entitlement roles and existing test files: backend 117, frontend 104, ordinary browser 58, sidecar 2. These are file counts and associations, not exhaustive behavioral coverage. Public/anonymous, roleless authenticated and administrator actors remain distinct; arbitrary stored roles are not inferred to confer grants. The exact group-level entry disposition is **56 PARTIAL / PRES-C11 DEFERRED**. Original contract/test/gap columns are retained in JSON and link back to the authoritative matrix. The current Documents route and context-preserving correspondence alias supersede older route descriptions; historic records are not edited. ## Fresh entry observations | Lane | Actual entry evidence | Qualification | |---|---|---| | Backend | 1,084 passed; 0 failed/skipped, Release, pinned SDK 9.0.317 | `.artifacts/phase9/backend/phase9.trx`; SQLite/test-host evidence, not MariaDB runtime. | | Frontend assertions | Report records 917 passed /104 suites, 0 failed/pending | Original wrapper was interrupted; its report is retained as `frontend-entry-reported.json`. A clean completed successor process is required for final acceptance. | | Types / lint / build | PASS; static frontend export uses `http://localhost:5302/api` | Rebuilt again after the bounded locale repair; no deployment. | | Sidecar | Initial 55 pass /1 fail; full corrected fixture successor 56/56 | Entry failure and red/green proof retained; see P9-T01. No model loading/inference acceptance. | | Ordinary browser | Interrupted after 36 completed cases | Not a complete accepted run. Complete successor evidence required; final protocol uses four native serial shards with exact full-discovery membership, zero skips/retries and four successful exits. | | Provider availability | Docker Linux engine pipe missing; no `mariadbd`/`mysqld` runtime found | MariaDB runtime NOT TESTED. Do not substitute generated SQL or SQLite results. | Commands are the existing pinned `.dotnet/dotnet.exe test ... --configuration Release --no-restore`, Jest `--runInBand --json`, `npm run typecheck`, `npm run lint`, `npm run build`, offline pytest with `SKIP_MODEL_LOAD=1`, and native Playwright with static/prebuilt export, isolated synthetic data root, `--retries=0`. Raw logs and result files remain under `.artifacts/phase9/`. The final portable [validation record](../validation.json) supersedes provisional run counts without erasing failed attempts. Inventory assertions require exact 33/57 membership and one deferred group. Product verification and final acceptance are separate checkpoints; P9-00 does not clear inherited manual/provider/output/release gates.