ADR-0101: The Executable Validation Journey (PQ Evidence That Cannot Drift)¶
- Status: accepted
- Date: 2026-07-29
- Deciders: Nicolas Burri (his idea — "a full walk through starting with setting up a new project and then actually simulate different actions on the qms in the form of an automated e2e test that we can use for the CSV"; shape confirmed with a nod).
- Relates to: the fullstack smoke (the real-stack infrastructure and its "validation-grade,
CSV evidence" posture this generalizes), the tutorial (the journey's script), ADR-0099 (the
aligned-story principle), ADR-0097/0096/0095/0098 (the acts the journey exercises),
docs/validation/(the report that will cite the bundle), supplier-vs-manufacturer lanes (tool-level evidence; customers' intended-use validation stays theirs).
Context¶
The evidence pyramid verifies features in isolation (module tests, mocked e2e, six smoke tests); CSV wants proof that the INTENDED USE AS A WORKFLOW works on the real stack — GAMP's PQ shape. Hand-written test protocols drift from the software like every hand-maintained artifact; the week's derived-evidence principle applies to validation itself.
Decision¶
- One canonical journey, automated against the real stack (real Chromium + Keycloak + Postgres, the e2eFullStack infrastructure): project birth through the wizard (explicit mandator, staffing bridge) → policies/key rules → author → review (four-eyes) → release → acknowledgement → recurring obligation → authority snapshot → audit pack. The tutorial's arc is the script; scope discipline: ONE journey (lane variants are future additions, not scope creep into OQ).
- The run EMITS a versioned evidence bundle — per step: the action, the expected result stated in advance (the test's own prose), the observed result, a screenshot; plus the produced records themselves (released PDF, audit-pack zip, authority snapshot) and an environment/version stamp. A green run proves it to us; the bundle proves it to an auditor who was not there.
- Cadence: on-demand + pre-release, never per-push (slow, and a validation artifact that flakes is poison — strictest flake discipline applies). The bundle for a release rides the validation report.
- Boundary: tool-level evidence. It does not replace a customer's validation of their instance and intended use.
Consequences¶
- New long-running test class + Gradle task beside
e2eFullStack; CI job on workflow_dispatch + release; zero product-code change. - The validation report gains a PQ section citing the bundle per release (first: v0.9.0).
- Tutorial/journey alignment is a maintenance rule (drift between them is a finding).