ci: run verification stages as parallel jobs to shorten PR feedback - #11
Merged
Merged
Conversation
Split the single serial `verify` job into independent per-stage jobs (fast-checks, policy, tool-tests, typecheck, tests, distributions, docs) so stages run concurrently and fail fast, and point SonarCloud at the `tests` job alone instead of the whole graph. The `PR Gate` aggregator still requires every verification job plus Sonar, so protected-branch coverage is unchanged; check_project_services pins the new gate contract. Enable uv caching to offset per-job setup. Document the fast lane, full gate, single-shard rationale, change-lane evaluation, local reproduction, and before/after timings in docs/maintainers/ci.md.
Brad-Edwards
force-pushed
the
7-ci-parallel-feedback
branch
from
July 29, 2026 00:18
6a8a7c3 to
810de60
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Shorten time-to-first-actionable PR feedback without weakening protected-branch verification. The single serial
verifyjob that ran the whole graph in-process is split into independent, concurrent jobs (fast-checks, policy, tool-tests, typecheck, tests, distributions, docs); each fails fast on its own and a small change gets hygiene/lint feedback in seconds. SonarCloud now depends ontestsalone (source + coverage) instead of the full graph. ThePR Gateaggregator still requires every verification job plus Sonar, so coverage before a protected-branch merge is unchanged, andcheck_project_servicespins the new, more granular gate contract. uv caching is enabled to offset per-job setup. The test suite stays a single shard (the suite is too small to justify deterministic sharding) and a change-based early-feedback lane was evaluated and not adopted; both decisions are documented.Requirement UIDs
Related Issues
Closes #7
ADR Impact
Changes
verifyjob in .github/workflows/ci.yml into per-stage parallel jobs; each runs exactly one nox session and is reproduced locally with that commandTest Plan
Ran
make verify(full graph) andmake precommitlocally — all green: hygiene, policy, lint, tool-tests, typecheck, tests (8 tests, 100% coverage, coverage combined across base + cyborg), distributions (build + clean-install + identity proof), strict docs build. Validated the new PR Gate jq assertion against all-pass, verification-failure, same-repo-with-sonar-skipped (must fail), and fork-skip cases. tools/tests/test_project_services.py re-validates the updated gate contract against the real workflow file.Ground Control Checks
gc_evaluate_quality_gatespasses or is unchanged by this repo-only changegc_run_sweepreviewed; findings fixed or recorded with rationaleTraceability
Checklist
docs/CODING_STANDARDS.md)@Auditedon new entities if applicableDocumentation
Updated: see diff.