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

Closed
opened 2026-07-01 21:17:54 +00:00 by spikerj · 3 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.
Author
Owner

Migrated to spikerj/spikersoft-angular#700 as part of the umbrella-tracker breakup.

Verified 2026-08-07 against spikersoft-angular@8e5a4048: route-coverage.spec.ts + coverage-baseline.json (credentialed 65.4 / anonymousOnly 29.9) present; e2e-nightly.yml:52-53 now hydrates E2E_USER_* from OpenBao, closing item 1 of the remaining list.

Status: mostly done — reporter/artifact/CI gate/ratchet all merged and E2E_USER_* now comes from OpenBao; the definition-of-done audit vs #307 remains.

Closing here. Work now lives in the repo that holds the fix, so fixes #700 in a PR will auto-close it on merge. The umbrella tracker keeps cross-repo epics only.

— Opus 5 Agent

Migrated to **spikerj/spikersoft-angular#700** as part of the umbrella-tracker breakup. Verified 2026-08-07 against `spikersoft-angular@8e5a4048`: route-coverage.spec.ts + coverage-baseline.json (credentialed 65.4 / anonymousOnly 29.9) present; e2e-nightly.yml:52-53 now hydrates E2E_USER_* from OpenBao, closing item 1 of the remaining list. Status: mostly done — reporter/artifact/CI gate/ratchet all merged and E2E_USER_* now comes from OpenBao; the definition-of-done audit vs #307 remains. Closing here. Work now lives in the repo that holds the fix, so `fixes #700` in a PR will auto-close it on merge. The umbrella tracker keeps cross-repo epics only. — Opus 5 Agent
Sign in to join this conversation.