ci(pr): drop redundant ruff/format/mypy from the heavy backend job#478
Conversation
The heavy `backend` job re-ran `ruff check`, `ruff format --check`, and `mypy backend/` before its pytest matrix — all three already covered by the always-run `static-checks-backend` job (no service containers, sub-minute feedback). Removing the duplication trims ~30-40s off the critical path; lint/type failures still go red via static-checks-backend. Also removes the now-unused `Restore mypy + ruff caches` step (it only served the removed ruff/mypy steps) and renames the job display name `backend (lint + typecheck + tests + coverage)` -> `backend (tests + coverage)` for accuracy. Doc updates: - docs/06_vendor_docs/github-branch-protection.md: add the `static-checks-*` jobs to the required-checks set (lint/type now lives there, not in the heavy backend job) and update the renamed check name. - Reframe chore_pr_yml_parallelize_backend_job/idea.md to the shipped lint-dedup; defer the lane-split + coverage-combine + split-by-service to the new infra_pr_yml_split_backend_test_lanes idea (the integration layer can't parallelize, so the residual win is only ~1-1.5min). https://claude.ai/code/session_016aMKimAFu2wouGCtWNdCLz Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Code Review
This pull request updates the documentation to reflect the descoping of the backend CI parallelization chore. It modifies the existing chore idea to focus solely on removing redundant linting and typechecking steps, introduces a new idea document for the deferred parallel test lanes, and updates the GitHub branch protection guidelines to include the separate static check jobs. The review feedback correctly identifies broken relative links in the updated idea document that need to be adjusted to the correct directory depth.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
The PREFLIGHT REFRESH block linked to .github/workflows/pr.yml and pyproject.toml with four `..` segments, but the idea.md sits five levels deep, so the links resolved into docs/ instead of the repo root. Add the missing segment. https://claude.ai/code/session_016aMKimAFu2wouGCtWNdCLz Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
Gemini review adjudication
One finding, accepted and fixed. No other findings. Generated by Claude Code |
…479) Move the shipped chore to implemented_features, refresh state.md + state_history.md, regenerate dashboards + public roadmap, and fix the cross-folder idea links the move created (incl. dropping a dashboard-transplant-broken Status link). The deferred lane-split lives in infra_pr_yml_split_backend_test_lanes. https://claude.ai/code/session_016aMKimAFu2wouGCtWNdCLz
What
Removes the redundant
ruff check/ruff format --check/mypy backend/steps from the heavybackendjob in.github/workflows/pr.yml. All three are already covered by the always-runstatic-checks-backendjob (no service containers, sub-minute feedback), so re-running them in the heavy lane only burned ~30-40s of critical path.Also:
Restore mypy + ruff cachesstep (it only served the removed ruff/mypy steps).backend (lint + typecheck + tests + coverage)→backend (tests + coverage)for accuracy.Why
The heavy backend job is the per-PR critical-path bottleneck (~9 min). This is the reliable, zero-risk slice of
chore_pr_yml_parallelize_backend_job: a lint failure still goes red viastatic-checks-backend; this lane just no longer self-aborts early on a lint failure (acceptable — GHA doesn't auto-cancel, and the PR is already red).Scope decision
This is the lint-dedup only. The lane-split (parallel unit+contract + serial integration +
coverage combine) and split-integration-by-service-container were deferred to a new idea:docs/00_overview/planned_features/02_mvp2/infra_pr_yml_split_backend_test_lanes/idea.md. Rationale: the integration layer is the binding constraint and can't run under-n auto(FK-teardown collision, reverted on PR #291), so the lane-split's residual win is only ~1-1.5 min and needs a blind-CI-validated coverage-combine path — not worth bundling here.Docs
docs/06_vendor_docs/github-branch-protection.md: adds thestatic-checks-*jobs to the required-checks set (lint/type now lives there, not in the heavy backend job) and updates the renamed check name. Keeps the canonical branch-protection setup guide accurate for when protection is configured (not active today).chore_pr_yml_parallelize_backend_job/idea.mdto the shipped lint-dedup; obsolete full-pipelinefeature_spec.md+pipeline_status.md(from the abandoned spec→plan path) removed.Risk
No Python/frontend source touched — workflow YAML + Markdown only. YAML validated (
yaml.safe_load). No test parses the job display name or validates these doc links.https://claude.ai/code/session_016aMKimAFu2wouGCtWNdCLz
Generated by Claude Code