- Home
- Skills
- Kaakati
- Rails Enterprise Dev
- Code Quality Gates
code-quality-gates_skill
- Shell
6
GitHub Stars
1
Bundled Files
3 weeks ago
Catalog Refreshed
2 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstart where the catalogue uses aiagentskills.
npx veilstart add skill kaakati/rails-enterprise-dev --skill code-quality-gates- SKILL.md10.7 KB
Overview
This skill provides expert quality gate decisions for iOS/tvOS projects: which gates to enable, how to calibrate thresholds to catch bugs without blocking velocity, and practical SwiftLint/SwiftFormat and CI patterns. It helps teams choose gates by project stage and size, adopt gates incrementally on legacy code, and set realistic coverage and warning budgets.
How this skill works
It inspects project context (greenfield vs brownfield vs partially-gated) and recommends an action plan: which lint/format rules to enable, how to create and chip away at a SwiftLint baseline, and how to stage CI jobs for fast feedback. It offers concrete thresholds per code area (domain, data, presentation, views), pre-commit checks, and sample GitHub Actions/Xcode build snippets to enforce gates.
When to use it
- Setting up linting and formatting for a new iOS/tvOS project
- Onboarding quality gates into a legacy app without blocking development
- Configuring CI pipelines to provide fast fail-fast feedback
- Calibrating coverage and warning thresholds to balance quality and velocity
- Deciding which SwiftLint opt-in or disabled rules make sense for your team
Best practices
- Start strict on greenfield projects; enable opt-in SwiftLint rules aggressively
- For legacy code use SwiftLint baseline to ignore existing violations and fail on new ones
- Fail fast in CI: run lint/format first, then build, then tests to save developer time
- Set coverage slightly below current measurement and increase gradually (e.g., +5% every sprint)
- Use warning budgets: reduce MAX_WARNINGS over weeks until reaching zero
- Document any disabled rules and inline disables with a clear reason
Example use cases
- Greenfield app: enable SwiftLint strict, SwiftFormat, treat warnings as errors, set coverage >80%
- Brownfield migration: add swiftlint --baseline, format only new files, ramp thresholds over 2 months
- Medium team pipeline: GitHub Actions with lint → build → test jobs and a line-coverage check
- Pre-commit hooks: fast local swiftlint and swiftformat checks to prevent noisy CI failures
- Coverage strategy: measure current coverage, set threshold slightly below, ratchet up weekly
FAQ
Measure current coverage, set the threshold slightly below it to prevent regressions, then raise it in steps until you reach a practical goal (typically 80–85%).
How do I adopt SwiftLint on an old codebase?
Generate a baseline (swiftlint lint --reporter json > baseline.json), configure baseline_path, fail only on new violations, and fix the baseline progressively.