Repository navigation
CI diet: aprender itself burns 99 intel runner-hours/day — coverage on tag/nightly only, path-filter book jobs, perf/model suites nightly, mutants only on .rs diffs #3676
Description
What (measured, not estimated)
Operator, 2026-09-21, verbatim: "ensure aprender releases are as fast as possible by: A. batching aprender PR B. keeping intel idle by telling out projects to batch PR or improve their CI/CD process (for example only code coverage on tagged release), etc. C. being relentless at linear and non-linear optimization…"
aprender itself is the largest intel consumer. Completed jobs on intel-* runners over the 24 h before 2026-09-21 08:26Z add up to 5,965 runner-minutes (99 h). By event: pull_request 3,812, merge_group 1,571, push 358, schedule 122.
| job | intel min / 24 h | lever |
|---|---|---|
| workspace-test-shard 1/3 + 2/3 + 3/3 | 2,262 | #3658 (in batch #3669): queue runs stop paying full; docs-only changes get none |
| guard-cargo | 859 | #3668: docs-only skip; move the release-class steps (below) off the PR path |
| guard-tree | 570 | #3668: path-scoped guards; the perf gate case table (~5.4 min per run) goes nightly |
| Book Contract Enforcement (Chapter Examples Compile + Run) | 387 | path-filter to book/** and the crates the chapters import; nightly otherwise |
| ci / lint + ci / test | 575 | quick-tier scope, already partly done (#3084) |
| ci / coverage | 176 | coverage on tag and nightly only, per the operator's example; the PR path keeps tests, not the llvm-cov instrumented rebuild |
| mutants | 121 | PR-diff-scoped already; run only when the diff touches .rs |
| mdBook build | 93 | path-filter to book/** |
| determinism X64 / vendored-schemas | 328 | measure the per-run cost; nightly if it never catches a PR-level defect |
Proposal
- Coverage (
ci / coverage) on the release tag and the nightly only, never on pull_request or merge_group. COV_FLOOR enforcement moves to the tag gate (T-2) and the nightly, where a regression still blocks the release. This is the operator's example, applied. - Book Chapter Examples and mdBook: path-filtered. They run when
book/**or the crates a chapter imports change, and nightly always. - The perf gate case table and the model-tests falsification suites move to nightly. The PR path keeps a smoke row.
- mutants runs only when the diff has
.rs. - Every moved job still runs on the tag.
check_workflow_path_filters.shand thegateaggregator are updated so a skipped job is a pass only when the skip reason is the documented filter.
done_when
- intel runner-minutes per 24 h for aprender, measured the same way (sample the jobs API; a full sweep burns the shared API budget), drop by ≥ 40% at equal PR throughput
- the tag gate still runs coverage with COV_FLOOR, and a planted coverage drop fails the tag (control)
- a book-only PR runs the book jobs; a crate-only PR not imported by a chapter does not (both rows)
-
gateacceptsskippedonly for jobs whose filter says skip; any other skipped state fails (mutation)
Workflow edits: authorized by the operator's instruction above. P0 for release speed. Depends on #3658 (in #3669) and pairs with #3668.
Folded sub-tickets (TRIAGE-100, 2026-10-14)
These open sub-tickets were folded here as checklist rows and closed as not planned so the open count stays at or under 100. Reopen one when its work resumes; an open PR for it reopens it.
- Docs-only PRs still spend ~45 min in guard-cargo (25) and guard-tree (15): gate them on a single docs_only decision so a roadmap PR's CI is < 10 min #3668 — Docs-only PRs still spend ~45 min in guard-cargo (25) and guard-tree (15): gate them on a single docs_only decision so a roadmap PR's CI is < 10 min (branch:
ci/3668-unfold-neutral,PMAT-3668-docs-only-ci) - Lever 2: one local entry point that runs the SAME guard scripts CI runs (no second copy, F1 #2640) — catch guard reds before push #4416 — Lever 2: one local entry point that runs the SAME guard scripts CI runs (no second copy, F1 ONE dogfood: two dogfood.sh runners share 61/61 gates and have drifted 86 lines — unify to a single runner with discovered repo gates #2640) — catch guard reds before push (branch:
fb/4416-lever2,PMAT-4416-guards-local-wip) - CI has no smart segmentation for docs-only PRs — full fat job + mandatory pr-review quorum run regardless of change type #4472 — CI has no smart segmentation for docs-only PRs — full fat job + mandatory pr-review quorum run regardless of change type
- check_hardcoded_paths.sh hp_row: printf | grep -q under pipefail flakes the R5 row (SIGPIPE) #4525 — check_hardcoded_paths.sh hp_row: printf / grep -q under pipefail flakes the R5 row (SIGPIPE)
- flow: signer-bot pushes leave CI action_required — approve held runs in-job #4579 — flow: signer-bot pushes leave CI action_required — approve held runs in-job
- check_crux_serve_code.sh: stubborn() TERM-ignoring helper leaks past the job (orphans in runner cgroups) #4637 — check_crux_serve_code.sh: stubborn() TERM-ignoring helper leaks past the job (orphans in runner cgroups)
- MUT-SCOPE: diff-scoped per-PR mutants + nightly full (sha-cached) + one full run per rc (post-0.70) #4642 — MUT-SCOPE: diff-scoped per-PR mutants + nightly full (sha-cached) + one full run per rc (post-0.70)
- C148: cancel-superseded.sh — cancel only runs whose head_sha differs from the PR head (DEVIATION-004) #4645 — C148: cancel-superseded.sh — cancel only runs whose head_sha differs from the PR head (DEVIATION-004)
- CI: fail-fast GPU lane on the Jetson Orin runner; a GPU test must not pass without a GPU #4879 — CI: fail-fast GPU lane on the Jetson Orin runner; a GPU test must not pass without a GPU
- Floor-priority lane lock for shared-host session builds (FIFO, no starvation) #4995 — Floor-priority lane lock for shared-host session builds (FIFO, no starvation)
- workspace-test nightly: widen the tests lane from aprender-core to the workspace after one measured run #5027 — workspace-test nightly: widen the tests lane from aprender-core to the workspace after one measured run
- nextest list-wrapper self-test: run nightly (cannot block merge or release) #5298 — nextest list-wrapper self-test: run nightly (cannot block merge or release)
Activity
noahgift commentedon Sep 21, 2026
Operator decision, verbatim, 2026-09-21 08:38Z, to the aprender cop: "you will tell them, YES, coverage on tags release only." Code coverage runs on tagged releases only, fleet-wide: aprender, rmedia, apex, forjar, infra, ruchy and paiml-implement. The COV_FLOOR / 95% gates move to the tag (a drop still fails the release). pull_request and merge_group no longer run coverage. This comment is the rule's traceable home.
sovereign-ci: coverage_on input — coverage on tagged releases only (o…
ledger: book v1.32.0 — the row from the tag, the cookbook commit that…
sovereign-ci: roadmap-fragment-parity arms only once the aggregate is…
fix(ci): coverage on tags only, done so sovereign-ci's gate reads it …
noahgift commentedon Sep 24, 2026
Milestone 0.70.0 → 0.70.1 (gate triage). 0.70.0 now holds only the operator's release gate: "FULL ontology spec and all aprender binary working" + "0.70 to crates.io" (ONT-001, every [[bin]] build+smoke, the publish cascade), plus P0s and operator-ruled rows. This issue isn't needed for any of those. Evidence: evidence/m070-gate-triage-1835.md. If that's wrong, move it back to 0.70.0 and say which gate it serves.
release(0.70): batch-1 — 9 receipted rows, one CI run, one queue slot (…
release(0.69.1): batch 1 — 20 receipted rows + 3 combination fixes, o…
35 remaining items