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
ci: scope CI to the test suites (pytest + frontend); lint gate is a follow-up
Per owner direction (#452): ship the test gate now, fix the linters next.
The backend job runs `poetry run pytest` rather than `scripts/lint.sh`.
Reason: the local lint gate isn't satisfiable on a clean tree — it runs
two formatters (`ruff format` + `black`) whose output mutually conflicts,
plus a little flake8/pylint debt. The #401/#451 incident that motivated
#452 was a *test* regression, and the test suites pass green, so CI
enforces those today; wiring the (de-conflicted) Python lint gate into CI
is a tracked follow-up.
Drops the pre-commit install (only the lint gate needed it). Reconciles
SECURITY.md §8, the codeql/lint.sh/pre-commit/workflows-README comments,
and the decision logs (PM/security/architect, ACCEPTANCE Q-4) to "tests
in CI; lint gate local + CI follow-up".
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: ACCEPTANCE.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -436,7 +436,7 @@ Merger runs the pipeline locally before squash-merge.
436
436
| Q-1 |`./scripts/lint.sh` is the merge gate. A merge that bypassed it is a policy violation and a revert candidate. | Forum status / PR body. |
437
437
| Q-2 |`./scripts/build.sh` is the release gate. Both the SPA build and `poetry build` must succeed. | Run output before tagging. |
438
438
| Q-3 | A PR that touches `pyproject.toml` runtime deps, frontend root `package.json` deps, or `LICENSE` includes a locally-recorded `pip-audit` (Python) and `pnpm audit` (npm) clean run in the PR body. | PR-body inspection. |
439
-
| Q-4 | The "no CI" decision was revisited and reversed before leaving pre-alpha: the lint + test gate now runs in CI (`.github/workflows/ci.yml`), recorded in [`docs/agents/decisions.md`](docs/agents/decisions.md). Marking the checks required in branch protection is the remaining owner action (#452). | Decision-log entry + `ci.yml`. |
439
+
| Q-4 | The "no CI" decision was revisited and reversed before leaving pre-alpha: the test suites now run in CI (`.github/workflows/ci.yml` — backend `pytest` + frontend gate), recorded in [`docs/agents/decisions.md`](docs/agents/decisions.md). Wiring the Python lint gate into CI and marking checks required in branch protection are the remaining follow-ups (#452). | Decision-log entry + `ci.yml`. |
0 commit comments