[EPAC-2296]: Record project-level bill diff surface verification#830
Merged
riddim-developer-bot[bot] merged 1 commit intoJun 15, 2026
Conversation
Project surface/design verification gate for the bill diff backend completion. Records the surface inventory, per-surface scores, and live staging evidence for the API, CLI/smoke, indexer-log, iOS diff viewer, and Linear artifact surfaces. Verdict: PASS with one iOS remediation (EPAC-2309). No backend, app, or contract code changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Project-level surface/design verification gate for the bill diff backend
completion work (EPAC-2296,
parent Project Bills, Votes & Committees — depth across the legislative cycle).
This is a read-only verification gate, not an implementation change: it
records the merged surface state in
docs/backend/epac-2296-surface-verification.mdand files concrete remediationfor surface-quality gaps. No backend, app, or contract code is changed.
It follows the same in-repo convention as the sibling gates
(
epac-2289-staging-bill-diff-coverage.md,epac-2291/epac-2292-backend-route-verification.md), and is the surface-qualitycounterpart to the backend-route gate EPAC-2292.
Verdict: PASS with remediation
All implementation siblings (EPAC-2286/2287/2288/2289/2292/2302/2307) are
Done/merged, so the gate ran. Every changed observed surface was inventoriedand scored:
GET /api/v1/bills/{id}/diffsuccess / 204 / 400 / 404 JSONscripts/ci/backend_staging_smoke.pydiff checks--quietgaps, no issuebackend/bills-indexerrun logslinear-standards.mdmetRemediation filed
(iOS, High, est. 4): the diff viewer defaults to first→last, which returns
204 for the marquee bill C-11 even though first→middle returns 200 with
a populated diff — so it opens on the "unavailable" state. The backend 204 is
correct by design (can't diff a version lacking source text without violating
the no-rewrite civic-content rule), so the fix is iOS-side: default to a
servable pair.
Verification evidence
Observed states confirmed firsthand, not from tests alone. Live staging probes
(
https://staging-api.epac.riddimsoftware.com, 2026-06-15):…/13608745/diff?from=…first-reading&to=…as-passed-by-the-house-of-commons→ 204 (iOS default pair)…/13608745/diff?from=…first-reading&to=…as-amended-by-committee→ 200, populatedclauses…/13608745/diff(no params) → 400{"error":"missing required query parameters: from, to"}…/13608745→ 200 (3 versions);…/C-11→ 404{"error":"bill not found"}(confirms EPAC-2307 numeric-id boundary)…/ZZ-9999/diff?from=v1&to=v2→ 404{"error":"bill not found"}Merged state read from this worktree (top commit
04e05105, EPAC-2307), not thestale root checkout.
lookupBillIDresolves both numeric id and display number,so the diff route serves the id the iOS app now sends and the id the smoke checks
use.
Checks skipped, with reasons
verification record and changes no app code. The iOS surface was verified from
merged source, snapshot-test coverage, the EPAC-2307 simulator evidence, and
live API probes. The remediation EPAC-2309 carries the Simulator-screenshot AC.
Release notes
Docs-only (verification record); no user-facing change, so no
Release-Note:.Closes EPAC-2296.