docs: close out the ci-runner-alignment topic slice - #112
Merged
Conversation
The audit topic is complete: walkthrough dispositions and both errata are recorded, every approved fix is merged, and every deferred item is filed with triggers. Per the topic-docs lifecycle the branch-lived contract slice is pruned at close-out; the durable outcomes stay in docs/releases.md (D11 SLA reconciliation), docs/worker-image.md (D10 accepted residuals), the provisioning rolling-upgrade runbook (critical-CVE fast-path), and the github-iac governance-deploy verifier (D6 verify-don't-manage). The full report and plan remain reachable at 9f195b7 and in PRs #97 and #99; open follow-ups are ci-runner#100/#101, standards#197/#205, and github-iac#166/#167. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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
Closes out the ci-runner-alignment topic: the audit, one-by-one walkthrough, dispositions, both errata (D5, D6), and every approved fix/issue are complete, so the branch-lived contract slice under
docs/topics/ci-runner-alignment/is pruned per the topic-docs lifecycle. Nothing is lost — pointers below.Where everything lives now
docs/releases.mddocs/worker-image.mdrunbooks/ci-runner-rolling-upgrade.md(melodic-software/provisioning#173).github/governance-deploy/verify-governance-app.cjs(melodic-software/github-iac#173)ADR graduation check: no new ADRs — every durable decision is already recorded at its decision site (the docs and code locations above); none of the remainder passes the hard-to-reverse + surprising + real-trade-off admission test.
Related
No linked issue — close-out publication PR; the topic's follow-ups are tracked in ci-runner#100/#101, melodic-software/standards#197/#205, and melodic-software/github-iac#166/#167 (listed with pointers above), none of which this PR closes.
Approved PLAN.md (contract publication)
ci-runner-alignment
Brief
TLDR
Full-surface audit of the melodic-software self-hosted CI system (ci-runner controller, provisioning, ci-workflows selector, standards runner-policy, github-iac routing governance) against GitHub's official documentation — fresh-eyes: every divergence re-derived from first principles, recorded rationale treated as evidence, never authority. Output is a prioritized report; then a joint one-by-one divergence walkthrough, urgent/highest-impact fixes first, GitHub issues filed for the remainder.
Goal
Identify, with citations to official sources: (a) gaps where the build contradicts documented guidance, (b) divergences whose rationale does not survive first-principles re-derivation, (c) documented GitHub features/capabilities not utilized (each with an adopt/skip recommendation), and (d) alignment/integration improvements across the governing repos — so the fleet's design is either confirmed with live rationale or corrected.
Constraints
/discovery:explore(state inventory) then/discovery:research-deep, fanning out with opus agents.actions/runnerrepo + releases → (4)actions/scalesetclient + ARC reference → (5) REST API (runners, scale sets, JIT) → (6) GitHub App auth/permissions → (2) security hardening last.Acceptance criteria
docs/topics/ci-runner-alignment/.Captured assumptions
Out-of-scope
Deferred questions
Plan
Layout decision (Brief-deferred, arbiter /architect)
Single file:
docs/topics/ci-runner-alignment/REPORT.md. Rationale:.work/ci-runner-alignment/; per-tier report files would duplicate that layer with drift risk.runner-performancetopic offers no report-layout precedent — it holds only PLAN.md + design/ — so the fragmentation and duplication arguments above carry the decision.)Phase 1: Author REPORT.md [DONE]
Inputs:
.work/ci-runner-alignment/RESEARCH.md(authoritative verdict ledger — do not re-adjudicate settled verdicts), the 13 research artifacts (citation sources),EXPLORE.md(state baseline + errata). Report must be self-contained: every claim cites an official URL copied from the research artifacts, never a.work/path.Structure (heading contract: each divergence D2–D12 gets exactly one
### D<n>heading — no combined headings; withdrawn D1 appears only in methodology prose, never as a### D1heading):If the critical-security no-grace clause is quoted verbatim, re-fetch its source URL first (two sources paraphrase differently; substance already confirmed).
Sanity Check: (run from repo root;
R=docs/topics/ci-runner-alignment/REPORT.md)test -f $Rgrep -cE '^### D(2|3|4|5|6|7|8|9|10|11|12)\b' $Rreturns 11;grep -c '^### D1\b' $Rreturns 0awk '/^### D/{if(h&&(!v||!c))m++;h=$0;v=0;c=0} /Verdict/{v=1} /https:\/\//{c=1} END{if(h&&(!v||!c))m++;print m}' $Rreturns 0grep -cE '\.work/|EXPLORE|RESEARCH-|RESEARCH\.md' $Rreturns 0Phase 2: Acceptance-criteria verification + hygiene [DONE]
.work/ci-runner-alignment/artifacts (they are process facts, not report content); the remainder verify against REPORT.md itself, including citations in the aligned-findings and unused-features sections (manual scan — the awk check covers D-entries only).Sanity Check:
npx markdownlint-cli2 "docs/topics/ci-runner-alignment/**/*.md"exits 0 (run from repo root); all six acceptance-criteria rows recorded PASS with per-criterion basis.Phase 3: Commit + PR [DONE] — user-gated
Branch
docs/ci-runner-alignmentoff main; commit REPORT.md + PLAN.md + design-resolution.md (contract tier is branch —docs/topics/is tracked); PR per repo source-control conventions. Gate: confirm PR timing with the user — before or after the one-by-one walkthrough (walkthrough may amend the report with decisions).Sanity Check:
git branch --show-currentreturnsdocs/ci-runner-alignment;git status --porcelain docs/topics/ci-runner-alignment/clean after commit.Acceptance-criteria verification (Phase 2 record, 2026-07-18)
.work/ci-runner-alignment/stage-1 index + 7 sidecars: all five repos, sampled consumers, live desk state, API metadata both hosts.work/ci-runner-alignment/, each with its own outcome-gate PASS and same-day fetchesdocs/topics/ci-runner-alignment/REPORT.mdpresent; markdownlint-cli2 exit 0Blast radius
LOW — docs-only artifact in a new topic directory; no code, config, or consumer-parsed surface changes; verdicts already adjudicated upstream in the research stage.
Stress-test summary
Fresh-context plan-reviewer sub-agent ran (Step 3): 0 CRITICAL, 4 IMPORTANT, 6 SUGGESTION — all applied (sanity-check path/heading contract pinned, citation scope extended to non-D sections, acceptance-criteria verification scope reconciled with memory-tier artifacts, limitations appendix added, memory-tier ref guard broadened, ADOPT-lean reservation noted, layout precedent claim corrected). Formal /devils-advocate skipped: blast radius LOW, no triggers matched.
Execution shape
Fully sequential — Phase 1 gates Phase 2 gates Phase 3; all main-session. Per-divergence fan-out rejected: entries need one consistent voice and strict ledger fidelity; volume is modest.
Open questions
Handoff to implementation
User-approval gates
[FALLBACK — confirm or override].Execution shape ([EXEC-SHAPE] tagged)
Mechanical work
🤖 Generated with Claude Code