Skip to content

CI-00 [TRACKER][decision]: Smart CI Fabric and private-repository readiness (ADR-0066) — go private for v0.3.0 on a personal GitHub Pro account #2324

Description

@Chris0Jeky

Wave tracker for the Smart CI Fabric programme — the CI redesign that lets Taskdeck go private for the v0.3.0 release on a personal GitHub Pro account (no Team/Enterprise dependency) without weakening verification or burning hosted minutes. Decision record: docs/decisions/ADR-0066-smart-ci-fabric-and-private-repository-runner-trust.md. Evidence base and pack-versus-repository reconciliation: docs/analysis/2026-08-30-smart-ci/RECONCILIATION.md (the maintainer's 2026-08-30 Smart CI pack is archived beside it, as received).

Authority for this wave (recorded verbatim, 2026-08-30)

Do inspect it properly, understand it, and then act on it, starting from unbundling everything to set things up, update docs, seed issues, etc and then start scaffolding and structuring everything to make this happen. The repo will need to go private for v0.3.0 main release, and initially it should work with only my github pro account, without having to rely on teams/enterprise

Under that direction the agent pass ruled on the pack's open decisions (below) instead of parking them in a deck. Every ruling is the agent's, made under explicit delegation, and is revisable by the maintainer at any time — reply on this issue to overturn one. The four actions only the maintainer can perform (visibility change, spend ceiling, branch-protection/ruleset edits, runner registration) are not delegated; they sit in OUTSTANDING_TASKS.md §J and on CI-13.

Delegated rulings (ADR-0066 §Acceptance conditions)

# Condition Ruling Why
1 Ownership model Personal GitHub Pro account first. The organization runner-group / ruleset-required-workflow boundary is deferred to CI-14 as a later decision, not a prerequisite Maintainer directive; a personal private repo has no external contributors, so the weaker check-name boundary is acceptable while the review pipeline reviews every workflow change
2 Control-plane placement in personal mode Base-ref control plane. The planner and gate run from the PR's base commit on pull_request_target with read-only permissions and never check out or execute head code; head code runs only on pull_request jobs. A PR may request more verification, never less than the base policy ceiling The closest personal-account equivalent of "the PR cannot edit its own gate"; the residual (same-repo check-name spoofing) is recorded, not hidden
3 Required gate One stable context Smart CI / Required Gate, registered in branch protection only after shadow evidence (CI-03); strict (branch current) on at the same time; the three security contexts stay required through the migration ADR-0035 already wanted an aggregate gate; strict mode replaces merge queue (unavailable on personal private repos)
4 Execution mode hosted by default until CI-04 proves the isolated runners; hybrid after; no claimed transparent fallback — an explicit ci:hosted label / CI_EXECUTION_MODE variable forces hosted GitHub queues offline self-hosted jobs; pretending otherwise creates false greens
5 Platform strategy Linux is the semantic baseline; Windows becomes a bounded compatibility contract on ordinary PRs (CI-07); the full Windows suite stays weekly + release until parity evidence exists Windows minutes count double on Pro; the API suite is 2.6x slower there and the delta is process-harness overhead, not semantics
6 Main-push behaviour Full main re-qualification replaced by a landed verifier bound to the PR's qualified tree SHA (CI-03); direct/bypass pushes escalate to full hosted qualification Merge commits get new SHAs; the tree is what was tested when the branch was current
7 Selection Deterministic, fail-closed planner in shadow mode first (CI-02); selection enabled one lane family at a time only after a recall report over >=20 PRs (CI-05) Never replace a known-expensive gate with an uncalibrated cheap one
8 Nightly / mutation Change-driven nightly with a weekly full sweep (CI-10); mutation stays manual per ADR-0052 No new evidence = honest green receipt, not a rerun
9 Order of savings Storage first (CI-09: 31,942 artifacts, cache at the 10 GB cap — Pro private storage allowance is 1 GB), then duplicate-event removal (CI-03), then platform right-sizing (CI-07/08), then self-hosted (CI-04) Storage is billed daily the moment the repo is private; the rest is minutes

Issue map

ID Issue Milestone Depends on Owner
CI-01 #2325 Baseline ledger (measure cost, critical path, duplication, storage) v0.3 agent
CI-02 #2326 Deterministic planner + policy in shadow mode v0.3 CI-01 agent
CI-03 #2327 Smart CI / Required Gate, branch-current contract, landed verifier v0.3 CI-02 agent + maintainer setting
CI-04 #2328 Isolated on-demand self-hosted runners (personal mode) v0.3 (registration after cutover) CI-02 agent prep + maintainer registration
CI-05 #2329 Test ownership / impact graph v0.3 CI-02 agent
CI-06 #2330 API shards + Windows MCP/process harness repair v0.4 CI-01, CI-05 agent
CI-07 #2331 Windows compatibility contract v0.3 CI-05 agent
CI-08 #2332 One frontend lane, journey-aware E2E, risk-gated containers v0.3 CI-05 agent
CI-09 #2333 Cache, artifact and storage budget v0.3 CI-01 agent
CI-10 #2334 Change-driven nightly + clean release qualification v0.4 CI-01, CI-03, CI-05 agent
CI-11 #2335 Full-SHA action pinning + hosted-only CI-control qualification v0.3 CI-02 agent (+ sha_pinning_required setting)
CI-12 #2336 CI receipts, weekly report, budget regression v0.4 CI-01, CI-02 agent
CI-13 #2337 [HUMAN GATE] private-repository cutover v0.3 CI-02, CI-03, CI-09, CI-11 maintainer
CI-14 #2338 Organization control plane (deferred decision) CI-13 maintainer decision
CI-15 #2339 Flake quarantine and retry governance v0.4 CI-12 agent

Existing issues folded in or related (comments posted on each): #1872 (E2E apt hot path -> CI-08), #2157/#2159/#2161 (Windows dev-up flakes -> CI-07/CI-15), #1210 (ci-extended startup_failure -> CI-10), #1819 (CodeQL -> CI-11), #2149 (protected signing boundary -> CI-04/CI-10 release context), #2312 (Docker profile regressions in hosted CI -> CI-08), #1639 (evidence-collector lane -> CI-05).

Execution order

CI-01 baseline --> CI-02 shadow planner --> CI-05 ownership map --> enable selection per lane
      |                    |                       |
      +--> CI-09 storage   +--> CI-03 gate + topology (-> maintainer registers the gate, strict on)
      |                    +--> CI-11 pinning (-> maintainer flips sha_pinning_required)
      +--> CI-07 Windows contract / CI-08 frontend+E2E+containers
                                     |
                       CI-13 cutover rehearsal --> maintainer flips visibility --> CI-04 runners registered
                                     |
                       CI-06 / CI-10 / CI-12 / CI-15 (v0.4 depth)         CI-14 (later decision)

Done when

  • ADR-0066 merged with the rulings above; ADR-0013/0035/0052 relationships recorded (retained / amended / superseded portions named).
  • Every child has an owner-verifiable acceptance list and a milestone.
  • Shadow planner + observation-mode gate run on every PR without changing existing job selection (CI-02 scaffold).
  • The maintainer has performed the CI-13 cutover and recorded post-cutover evidence; the repository is private for the v0.3.0 release.
  • Measured before/after: hosted minutes, critical path, storage — recorded in docs/ci/CI_BASELINE.md and its successor ledger.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Priority IRelease-blocking or trust-breaking now; release scope still requires milestone membership.ciCI/CD pipeline, workflow, and build infrastructure changes.decisionBlocked on an explicit maintainer/legal/product ruling; not implementable until decided.hardeningReliability, safety, operability, and production-readiness improvements.strategyStrategic planning and direction

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions