Shipped· Included in a published release
Prevent lint and SwiftFormat failures from reaching CI
- Type
- Feature
- Priority
- High
- Area
- 💻 Platform
- Votes
- 👍 0
What would you like?
Eliminate recurring CI failures caused by Swift linting or SwiftFormat drift. Establish one deterministic, repository-owned formatting and lint verification path used identically by developers, agents, push/release workflows, and CI; pin or otherwise control tool versions and configuration; automatically run the check before code is pushed; provide a safe auto-fix command where possible; and fail locally with actionable file-level diagnostics before any remote CI run is started. The design must cover staged and committed Swift changes, avoid silently rewriting unrelated user work, and keep local enforcement behavior in lockstep with CI so an agent cannot report a successful push while predictable formatting or lint violations remain.
Acceptance criteria
- [x] The repository exposes one documented command that runs every SwiftFormat and lint rule enforced by CI, and CI invokes that same repository-owned command rather than maintaining a separate rule path.
- [x] Formatter, linter, configuration, exclusions, and tool versions are deterministic and shared across local, agent, and CI environments so identical source produces identical results.
- [x] The normal agent/developer push workflow automatically runs the canonical check and refuses to push when a predictable formatting or lint violation exists.
- [x] A safe auto-fix workflow corrects supported formatting issues while limiting edits to intended files and preserving unrelated dirty work.
- [x] An automated regression fixture proves that a deliberately misformatted or lint-invalid Swift change fails locally before push, emits actionable file-level diagnostics, and passes after correction.
- [x] The current repository passes the canonical local check, and the CI workflow has no independent formatting or lint step that can disagree with the pre-push result.
Activity
- Imported from the previous tracker