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
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)
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)
pull_request_targetwith read-only permissions and never check out or execute head code; head code runs only onpull_requestjobs. A PR may request more verification, never less than the base policy ceilingSmart 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 migrationhostedby default until CI-04 proves the isolated runners;hybridafter; no claimed transparent fallback — an explicitci:hostedlabel /CI_EXECUTION_MODEvariable forces hostedmainre-qualification replaced by a landed verifier bound to the PR's qualified tree SHA (CI-03); direct/bypass pushes escalate to full hosted qualificationIssue map
Smart CI / Required Gate, branch-current contract, landed verifiersha_pinning_requiredsetting)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
Done when
docs/ci/CI_BASELINE.mdand its successor ledger.