You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
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
Operator, 2026-09-21: "NO roadmap shouldn't even have 10 minutes testing."#3664 (#3658) removes the workspace-test hour: docs-only changes get tier=none, and merge groups stop paying full. The rest of a roadmap-only PR's CI is still well over 10 minutes. Measured on #3637's PR run 35558860433 (files: 2 roadmap fragments, roadmap.yaml, one docs/audits receipt):
4 of its 46 named scripts mention those paths: check_complexity_ratchet, check_explicit_test_commands, check_readme_claims, tests/ratchet_semantics_test
guard-tree
15
11 of 53 --no-cargo guards (the 5 roadmap guards, append_only_ledgers, assertions_exclude, complexity_ratchet, dogfood_coverage, kind_labels_derived, no_cluster_id_keys)
vendored-schemas, mutants, ci / lint
4 each
—
the rest
≤ 2 each
—
gate requires success (not skipped) from ci, workspace-test, guard-tree, guard-cargo and determinism-compare, so a job-level skip reds the gate. The skip has to be decided once and read by gate.
Proposal
One cheap changes job runs ci_test_tier.sh (a docs-only decision now needs no registry derivation) and outputs docs_only=true|false.
guard-cargo, mutants, determinism and the heavy parts of ci get needs: changes and if: needs.changes.outputs.docs_only != 'true'.
gate accepts skipped for those jobs iffneeds.changes.outputs.docs_only == 'true', and logs the reason. Anything else skipped stays a failure.
guard-tree on a docs-only change runs only the guards whose inputs include docs/roadmaps/ or docs/audits/, derived by a guard_tree.sh --paths FILE mode from the guards' own declared inputs, not a hand list.
Target: a roadmap-only PR's CI under 10 minutes wall, measured on a real PR.
done_when
a roadmap-only PR's CI completes in < 10 min wall, with gate green, on a real PR (run id in the body)
a PR that touches one .rs file plus a roadmap entry runs everything, as today (control)
mutation: gate accepting skipped without docs_only == 'true' fails a case row; a changes job that errors resolves to docs_only=false (fail closed)
the guard-tree path mode runs the roadmap guards on a roadmap-only diff (they must still gate it) and names each guard it skipped, with its reason
§4.1 freeze (06x-release-schedule.md §1: "scope that is not on the platform rides the next train"). Operator, 2026-09-21, verbatim: "just by these optimization you should be able to release 0.69 today, ensure this happens". The 0.69 platform is #3669 plus the bump.
Why this row rides 0.70: CI-cost row (docs-only guard jobs), not release content. It's in the CI diet with #3676.
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.
P0 to P1 (2026-10-14 P0 triage): P0 now means it blocks the next release or carries the operator's own words on it; this issue does neither, so it stays on the 0.71.0 milestone at P1. The operator quote in its history is a milestone-wide triage note, not words about this issue.
Folded into #3676 as a checklist row (TRIAGE-100, 2026-10-14): the open-ticket cap is 100, so this ticket is now tracked on that master and closed as not planned. Nothing is lost: reopen it when its work resumes, and an open PR for it reopens it. Pushed branch: ci/3668-unfold-neutral, PMAT-3668-docs-only-ci.
Activity
noahgift commentedon Sep 21, 2026
slipped_from: 0.69.0
§4.1 freeze (06x-release-schedule.md §1: "scope that is not on the platform rides the next train"). Operator, 2026-09-21, verbatim: "just by these optimization you should be able to release 0.69 today, ensure this happens". The 0.69 platform is #3669 plus the bump.
Why this row rides 0.70: CI-cost row (docs-only guard jobs), not release content. It's in the CI diet with #3676.
— aprender-04 (cop)
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.
fold PMAT-3668-docs-only-ci into batch/0.70.0 (cop ruling: approved, …
roadmap: PMAT-3668 as a fragment (batch/0.70.0 requires entries/<ID>.…
merge origin/main a016cee into the 0.70.0 car — ci.yml takes main's 5…
merge origin/main (57d7f8e) into car/0.70.0: #4471 workspace-test sha…
release(0.70): batch-1 — 9 receipted rows, one CI run, one queue slot (…
10 remaining items
ci(guards): the sections-claimed step runs its guard under setsid --wait
noahgift commentedon Oct 14, 2026
P0 to P1 (2026-10-14 P0 triage): P0 now means it blocks the next release or carries the operator's own words on it; this issue does neither, so it stays on the 0.71.0 milestone at P1. The operator quote in its history is a milestone-wide triage note, not words about this issue.
noahgift commentedon Oct 14, 2026
Folded into #3676 as a checklist row (TRIAGE-100, 2026-10-14): the open-ticket cap is 100, so this ticket is now tracked on that master and closed as not planned. Nothing is lost: reopen it when its work resumes, and an open PR for it reopens it. Pushed branch:
ci/3668-unfold-neutral,PMAT-3668-docs-only-ci.Agent: aprender-clerk