CI Posture Across Repos — Slide Deck¶
A five-slide executive brief, CPSV-Editor & Linked Data Explorer — Software Delivery
Decision, in the version re-exported on 12 September 2026. It asks for one thing:
approval to start an initial clean on both applications and to stand up a standard
delivery pipeline behind them, while today's acc-and-main track stays in service for
rapid prototyping.
The deck is the executive-length version of what the control pages document mechanism by mechanism. Those pages say how each control works and where it does not yet hold. The deck says what the controls add up to, and what they still do not cover, which is a different question and the one a decision needs answered.
Download
CI Posture Across Repos — deck (PDF, 138 KB)
Slides are English. The deck states it was re-verified on 12 September 2026 with rulesets
read from the API, thresholds from the config that declares them and mirror state from
ls-remote against both remotes. This page re-checked those claims independently — see
Verified against the repositories.
The posture has moved since this export — read the slides as of 12 September 2026
A batch of supply-chain work landed on all three acc branches on 19 September
2026, and more since, after this deck was exported. The slides and their
descriptions below are left exactly as the PDF states them, because a transcription
that drifts from its source is worse than a dated one. Five of their claims are now
out of date:
- Required checks. The slides say
auditandscanare required onacc. All threeaccrulesets now also require the build and deploy checks, so a red test suite blocks the merge — see Branch Protection. - Scope. The deck covers two applications and notes the RONL Business API runs
the same five controls out of scope. Its
scanis now required onacctoo, so the three are aligned on that control rather than two of three. - What ships. Slide 4's clean-up argument predates the move to building on the runner; in both applications the tested build is now the shipped build.
- The status footnote. Its commits,
f5bae6a/be6bc54andf7fe80f/daa4816, are the 12 September heads. The currentaccheads area7fe76fand0143ea2, and eachmaincarries the same tree. - How production deploys. In the Linked Data Explorer a push to
mainnow starts one ordered Promote to Production workflow, which deploys the backend before the sites, rather than each deploy workflow firing on its own. See Development Workflow.
The decision the deck asks for is unaffected: the delivery pipeline below the prototyping track still does not exist.
This export counts five controls, where the last one counted four
A release-time mirror check joins the four CI controls. It is not a CI gate and
cannot be: the gitlab remote lives in .git/config and no tracked file names the
host, so a runner has no such remote and no route to it. It runs where the push happens,
at each release, and it never pushes — it prints the command and stops. The deck carries
the change as one of seven corrections on its closing slide rather than renumbering
silently.
Two tracks, one of which does not exist yet¶
The framing worth carrying away is that the prototyping track is not ungoverned. Four of the five controls run there on every pull request, and the fifth runs at every release. What is missing is not CI — it is a release path that stops moving while a release is being made.
What GitHub Actions already gates¶
Each control has a page here, and the page is where to go when the answer needs to be more precise than Yes:
| Deck control | The question it answers | Documented in |
|---|---|---|
| 01 — Build provenance | Which build is this environment serving? | Build Provenance |
| 02 — Action pin truth | Is the pinned digest the version its comment claims? | Supply-Chain Pinning — check-supply-chain |
| 03 — Code and dependency scan | Is a known-vulnerable package or pattern shipping? | Supply-Chain Pinning — the npm tree |
| 04 — Test-coverage floor | Is every file tested, not just the package average? | Coverage Floor |
| 05 — Mirror check | Does the second copy still match the one the gates run on? | Supply-Chain Pinning — the GitLab mirror |
The controls index carries the same five rows across all three applications.
The Yes/Yes table is scoped to two applications, and that scoping matters
The deck covers the CPSV Editor and the Linked Data Explorer, which is where the decision applies. Two qualifications belong with it:
- The RONL Business API now runs the same five controls, as of 12 September 2026,
and the deck says so on its closing slide while keeping it out of scope for the
decision. It differed in one respect when the deck was exported: its
scanran on every pull request but was deliberately not a required check while its first scan's 435 findings were triaged. Since 19 September it is required onacc, alongsideauditand the build and deploy checks; itsmainstill requiresauditalone. See the controls index. - The Norm Editor is shaped differently again — GitLab CI, its own hook directory, and none of these controls. See Code Standards.
Reading the table as "all applications, all green" is the one misreading this page exists to prevent.
Eight items, all closed¶
All eight are recorded here in their own right:
| Deck item | Where it is documented |
|---|---|
| Last coverage exemption cleared | Coverage Floor — why one repository needed a script first |
| Pin register kept in step with the bumps | Supply-Chain Pinning — the habit the register depends on |
| Zero margin on the coverage floor | Coverage Floor — raising coverage without writing hollow tests |
| Formatting checked on the shared branch | Code Standards |
| Production build ids confirmed once | Build Provenance |
| Code and dependency scanning made blocking | Supply-Chain Pinning — the npm tree |
| The dependency tree itself now refreshed | Supply-Chain Pinning — Renovate maintains dependencies, not the tree |
| The second copy is checked at each release | Supply-Chain Pinning — the GitLab mirror |
The last two are the ones that were not on the original review list: the dependency refresh and the mirror check both came out of the work the review triggered, which is the usual shape of an honest delivery report.
The ask¶
The trade the middle column names is the substance of the decision: prototype work would reach a deployment on a six-month merge rather than the day it is written. Speed on the prototyping track is preserved precisely by not letting that track be the thing that ships.
The middle row of What it buys reads more sharply next to slide 2's table: the five
controls becoming gates on a deployment is precisely what the CPSV Editor's main does
not have today, by decision — and the delivery pipeline is where that decision would be
revisited.
What changed between deck versions¶
Two rows are worth reading closely, because both are cases of a claim being revised downward in confidence rather than upward in scope.
Scan findings. The previous version reported the CPSV Editor's last seven findings as waiting on an upstream release. That was wrong, and the deck says so in those words: nothing had ever refreshed the transitive tree, because Renovate maintains declared dependencies and not what they resolve to. One refresh took the scan to zero. The earlier explanation was plausible, was believed, and would have justified doing nothing indefinitely.
The mirror. The previous version did not mention it. The narrower true statement is that the release check closes the observation half of the problem, not the drift: the mirror is still pushed by hand, it still falls behind on every merge, and what changed is that a release now notices.
Verified against the repositories¶
The deck's status claims were re-checked on 12 September 2026 rather than taken on
trust, and re-read against the current acc heads on 27 September 2026:
-
The rulesets were read from the API, per branch, with
gh api repos/<owner>/<repo>/rules/branches/<branch>, which reports the effective rules from every ruleset at once rather than one ruleset in isolation. As they stand today:accmainCPSV Editor pull request, audit,scan,Build and deploy ACCno ruleset rules — a pull request only, by decision (#131) Linked Data Explorer pull request, audit,scan,deploy,Build and Deploy Frontend,Build and Deploy ROPA Site, deletion, non-fast-forwardpull request, audit,scan, deletion, non-fast-forwardRONL Business API pull request, audit,scan,build,Build and Deploy ACC Frontend,Build and Deploy ACC PA Demo,Build and Deploy ACC Public Site, deletion, non-fast-forwardpull request, audit, deletion, non-fast-forwardOn 12 September, when the deck was exported, the
accrows readaudit+scanfor the first two andauditalone for the third, and eachmainmirrored itsacc. The build checks and the RONL Business API'sscanwere added on 19 September, toacconly. -
The pin counts were re-derived by counting
uses:references on eachacchead rather than read from a register: the CPSV Editor 17 of 17 across seven workflows, the Linked Data Explorer 31 of 31 across eleven, the RONL Business API 39 of 39 across thirteen. All are fully digest-pinned. The counts are action references: each promotion workflow also calls the production deploys as local reusable workflows, three in the Linked Data Explorer and four in the RONL Business API, which name a path in the same repository rather than a version and have nothing to pin. The CPSV Editor's references sat across four workflows when the deck was exported; v2026.09.6 moved its two preview-closing steps into a workflow of their own, and v2026.09.7 added the daily dependency audit and the release SBOM. accandmaincarry the same code in both applications the deck covers — as they did on 12 September, when the deck's footnote named the promotion commitsf5bae6aandbe6bc54. On 27 September they are7d154ba(the CPSV Editor) and4148c9a(the Linked Data Explorer), each the same tree as itsacchead.- Production has run in both: at the deck's export, the CPSV Editor's Deploy PROD at
f5bae6aas run 94 and the Linked Data Explorer's Deploy Frontend to Production atbe6bc54as run 44; on 27 September, Deploy PROD #102 at7d154ba, and the Linked Data Explorer's Promote to Production #2 at4148c9a— which since v2026.09.7 is the one workflow a push to itsmaindeploys through. The deck's "confirmed by eye — 9 Sep" refers to the first builds,#88and#39.
One claim on slide 2 is not verifiable from here and is reported as the deck states it: the scan-findings figures, 0 and 4, are the last run's results in the Semgrep dashboard, which this documentation cannot read.
Related pages¶
- Controls at a Glance — the five controls across all three applications
- Build Provenance — control 01, in full
- Supply-Chain Pinning — controls 02, 03 and 05, in full
- Coverage Floor — control 04, in full
- Code Standards — formatting, hooks, and where the Norm Editor differs
- Development Workflow — how a change reaches
acctoday