Story: Absorb PR checks locally: targeted checks, local review, CDash submissions

Table of Contents

This page documents a story in Sprint 25. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

Goal

We spend a lot of time waiting for GitHub PR checks. The site checks and drift checks add little signal at PR time, yet they gate every merge. Absorb their cost locally instead:

  • Submit-PR skills classify the change and run only the checks it needs. A doc-only change runs the site build. A C++ change runs the full build and tests.
  • Code review runs locally as a skill. Findings are registered against the task and addressed before the PR goes up.
  • ctest runs locally. Builds submit to CDash as experimental for visibility.
  • GitHub CI keeps the continuous builds and nightlies.

The objective is higher velocity without losing quality. More analysis is needed on every CI workflow and on how it maps to a local equivalent.

Status

Field Value
State STARTED
Parent sprint Sprint 25
Now Analysis task DONE; implementation tasks follow.
Waiting on Nothing.
Next Add the implementation tasks from the analysis.
Last touched 2026-08-11

Acceptance

  • Site checks and drift checks are removed from the PR gate.
  • Submit-PR skills classify the change type and run the matching local checks.
  • A doc-only change does not trigger a full build.
  • A C++ change runs the full build and ctest locally.
  • Code review runs locally as a skill and registers findings against the task.
  • Local builds submit to CDash as experimental builds.
  • GitHub CI keeps the continuous builds and nightlies.

Tasks

Task State Start End Description
Analyse all CI workflows and map each check to its local equivalent DONE 2026-08-11 2026-08-11 Inventory every GitHub Actions workflow and check that gates PRs today (site checks, drift checks, build, ctest, code review, pr-gate, …). For each, decide its fate: run locally before submit, stay on GitHub, or retire. Produce the change-classification rules the submit-PR skills will use.
Scaffold story: Absorb PR checks locally DONE   2026-08-11 Story scaffolding rides this task: documents, sprint wiring, and the scaffold PR. Close it before merging that PR.
Classify changes and run targeted local checks in the submit-PR skills DONE 2026-08-11 2026-08-11 Replace the unconditional build and ctest in pr-raise with change classification: read the changed files, bucket them per the rule table in the CI workflows and local checks knowledge doc (docs / code / ci / python tooling), and run only the matching checks. Record the class and the verification in the PR description. pr-address-review reuses the classification for its per-round verification.
Delete the PR gate: no GitHub CI on pull requests DONE 2026-08-11 2026-08-11 The pr.yml workflow gated every pull request with site, roundtrip, drift, and classifier jobs that now run locally via the submit-PR skills — a vestigial ~7s shell gating on nothing real. Delete the workflow entirely (classify, pr-gate, and the retired functional jobs together) and remove the branch-protection required check. The review is the quality backstop on GitHub; the submit-PR skills are the gate.

Decisions

  • The analysis and the change-classification rule table live in the CI workflows and local checks knowledge doc; the implementation tasks follow it.
  • The PR gate is deleted entirely: pr.yml (classify, pr-gate, and the retired functional jobs together) and the branch-protection required check are gone. The review is the quality backstop on GitHub; the submit-PR skills are the gate.
  • GitHub CI keeps the continuous builds, nightlies, site deploy, and coverage jobs.
  • The classification rule table lives in the pr-raise skill — one place both submit-PR skills read; pr-address-review links to it.
  • ctest runs via compass test run (host-wide build lock); local CDash submissions use --cdash Experimental.
  • The PR gate (pr.yml) is untouched by the classification task; its reduction is a follow-up task.
  • Deleting whole workflows is sequenced with the local-review task: claude-code-review.yml (auto review on PR events) and misspell.yml retire when the local code-review skill lands, since they are the review coverage that skill replaces; the on-demand claude.yml trigger stays. The gate-reduction task deletes pr.yml entirely.

Out of scope

  • Changing what GitHub CI runs: the continuous builds and nightlies stay in place.
  • Retiring CDash: it stays, with local builds submitting as experimental.
  • Tooling beyond the submit-PR and review skills, and beyond the check mappings the analysis task produces.

Emacs 29.3 (Org mode 9.6.15)