Skip to content

ci(pr): drop redundant ruff/format/mypy from the heavy backend job#478

Merged
SoundMindsAI merged 2 commits into
mainfrom
chore/pr-yml-heavy-job-lint-dedup
Jun 5, 2026
Merged

ci(pr): drop redundant ruff/format/mypy from the heavy backend job#478
SoundMindsAI merged 2 commits into
mainfrom
chore/pr-yml-heavy-job-lint-dedup

Conversation

@SoundMindsAI

Copy link
Copy Markdown
Owner

What

Removes the redundant ruff check / ruff format --check / mypy backend/ steps from the heavy backend job in .github/workflows/pr.yml. All three are already covered by the always-run static-checks-backend job (no service containers, sub-minute feedback), so re-running them in the heavy lane only burned ~30-40s of critical path.

Also:

  • Removes the now-unused Restore mypy + ruff caches step (it only served the removed ruff/mypy steps).
  • Renames the job display name 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 via static-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 the static-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).
  • Reframes chore_pr_yml_parallelize_backend_job/idea.md to the shipped lint-dedup; obsolete full-pipeline feature_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

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>

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>

Copy link
Copy Markdown
Owner Author

Gemini review adjudication

# Severity Finding Verdict
1 Medium Repo-root relative links in the idea's PREFLIGHT REFRESH block were one ../ short (file is 5 levels deep, links used 4) Accept — fixed in ec013dc (verified both targets now resolve to real files via os.path.normpath)

One finding, accepted and fixed. No other findings.


Generated by Claude Code

@SoundMindsAI SoundMindsAI merged commit ba11653 into main Jun 5, 2026
19 checks passed
@SoundMindsAI SoundMindsAI deleted the chore/pr-yml-heavy-job-lint-dedup branch June 5, 2026 19:30
SoundMindsAI added a commit that referenced this pull request Jun 5, 2026
…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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants