[E2E P8] Coverage gate — route-manifest report in CI, ratchet to 100% #321

Open
opened 2026-07-01 21:17:54 +00:00 by spikerj · 2 comments
Owner

Phase P8 of epic #307.

  • Coverage reporter: diff e2e/support/route-manifest.ts against the live route table (fail on unlisted routes so new routes must be classified)
  • Per-run coverage report artifact (routes visited / actions exercised vs manifest)
  • CI gate: anonymous suite blocking on PRs; authenticated suites nightly
  • Ratchet: coverage % may not decrease
  • Definition-of-done check against epic #307 (every route + primary actions, signup automated, telemetry fixture on every spec)
Phase P8 of epic #307. - [ ] Coverage reporter: diff `e2e/support/route-manifest.ts` against the live route table (fail on unlisted routes so new routes must be classified) - [ ] Per-run coverage report artifact (routes visited / actions exercised vs manifest) - [ ] CI gate: anonymous suite blocking on PRs; authenticated suites nightly - [ ] Ratchet: coverage % may not decrease - [ ] Definition-of-done check against epic #307 (every route + primary actions, signup automated, telemetry fixture on every spec)
spikerj added the enhancement label 2026-07-01 21:17:54 +00:00
Author
Owner

P8 status after a full audit — most of the checklist already existed and is verified working:

  • Drift reporter (AST-based, both directions + access-mismatch + tools + wildcard) — route-coverage.spec.ts, fails the anonymous suite on any unclassified route
  • Per-run report artifact (route-coverage.json attached to every run)
  • CI gate: anonymous suite blocks PRs (main.yml); nightly anonymous+authenticated schedule exists (e2e-nightly.yml, 08:00 UTC, Discord on failure)
  • Ratchet — the one missing piece, now up in angular PR #175: coverage % may not decrease vs a checked-in baseline (seeded at today's real 66.7% of 102 declared routes)

Remaining to close this ticket:

  1. Repo secrets E2E_USER_USERNAME / E2E_USER_PASSWORD (the seeded realm user from .env.e2e) — until they exist, the nightly's authenticated half self-skips by design.
  2. The definition-of-done audit against epic #307 (every route + primary actions, signup automated, telemetry fixture on every spec) — a review pass, will do as the closing act once the secrets are in and a nightly has run green.
P8 status after a full audit — most of the checklist **already existed** and is verified working: - ✅ Drift reporter (AST-based, both directions + access-mismatch + tools + wildcard) — `route-coverage.spec.ts`, fails the anonymous suite on any unclassified route - ✅ Per-run report artifact (`route-coverage.json` attached to every run) - ✅ CI gate: anonymous suite blocks PRs (`main.yml`); nightly anonymous+authenticated schedule exists (`e2e-nightly.yml`, 08:00 UTC, Discord on failure) - ✅ **Ratchet — the one missing piece, now up in angular PR #175**: coverage % may not decrease vs a checked-in baseline (seeded at today's real 66.7% of 102 declared routes) Remaining to close this ticket: 1. **Repo secrets** `E2E_USER_USERNAME` / `E2E_USER_PASSWORD` (the seeded realm user from `.env.e2e`) — until they exist, the nightly's authenticated half self-skips by design. 2. The definition-of-done audit against epic #307 (every route + primary actions, signup automated, telemetry fixture on every spec) — a review pass, will do as the closing act once the secrets are in and a nightly has run green.
Author
Owner

Board-sweep status (2026-07-22): ratchet merged (angular PR #175); drift reporter/artifact/CI gate confirmed pre-existing. REMAINING: E2E_USER_* repo secrets + the definition-of-done audit vs #307.

Board-sweep status (2026-07-22): ratchet merged (angular PR #175); drift reporter/artifact/CI gate confirmed pre-existing. REMAINING: E2E_USER_* repo secrets + the definition-of-done audit vs #307.
Sign in to join this conversation.