Skip to content

Ci: Add informational lint + type-check job 0.0.47#85

Merged
kickthemoon0817 merged 2 commits into
mainfrom
feat/ci-informational-lint
May 5, 2026
Merged

Ci: Add informational lint + type-check job 0.0.47#85
kickthemoon0817 merged 2 commits into
mainfrom
feat/ci-informational-lint

Conversation

@kickthemoon0817
Copy link
Copy Markdown
Owner

Summary

Adds a third CI job lint-and-typecheck that runs black, isort,
flake8, and mypy on every push/PR. Each tool's output appears in
CI logs but does NOT block PRs because the repo carries a
documented backlog (~941 mypy errors per iter22 review, isort drift
in 5 files, flake8 line-length tension between black's 88 and
CLAUDE.md's 119-char convention).

Changes

  • .github/workflows/ci.yml: append the
    lint-and-typecheck job. Each step + the job itself uses
    continue-on-error: true so the workflow's overall green
    status remains tied to functional gates (unit-tests +
    packaging-gate).
  • 4-file lockstep bumped to 0.0.47.

Why informational, not blocking

Strict gating today would block every PR on a 941-error
pre-existing backlog with no path to landing changes. Informational
mode trades the backlog for visibility: each PR's CI run lists
exactly what black/isort/flake8/mypy say, so contributors can see
deltas and incrementally clean up. Once each tool is clean, drop
its continue-on-error to convert it into a hard gate without
re-touching the workflow shape.

How to Test

CI workflow run on this branch is the live verification. The
unit-tests + packaging-gate jobs should still pass (no source
changes). The new lint-and-typecheck job will report its findings
and be marked green-with-warnings.

Checklist

Testing

  • Local YAML validation passes (3 jobs detected).
  • No source-code changes, no test changes.
  • CI workflow run is the live verification.

Compatibility

  • No source impact. The new job is informational and does
    not block PRs.

Documentation

  • Inline workflow comments document the design choice +
    the tightening path.

Surfaces lint/type-check output in CI without blocking PRs on the
documented backlog (~941 mypy errors as of iter22, isort drift in
5 files, flake8 line-length tension). Each tool runs with
'continue-on-error: true' so the diff-friendly checklist appears
in CI logs for incremental cleanup but does not gate merges.

The job itself is also marked 'continue-on-error', keeping the
workflow's overall green status tied to functional gates only
(unit-tests + packaging-gate). Future iters can:

- Tighten flake8 by adding [flake8] max-line-length = 119 to match
  CLAUDE.md, or migrate to ruff for a single-tool replacement.
- Reduce the mypy backlog file-by-file; CI will track delta.
- Auto-format isort drift via 'uv run isort src/ tests/' once.

Once each tool is clean, drop its 'continue-on-error' to make it
a hard gate without re-touching the workflow shape.
@kickthemoon0817 kickthemoon0817 merged commit 6f2e8cf into main May 5, 2026
10 checks passed
@kickthemoon0817 kickthemoon0817 deleted the feat/ci-informational-lint branch May 5, 2026 11:27
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.

1 participant