vibey-quality-gateslisted
Install: claude install-skill adammatthewsteinberger/vibey
# vibey quality gates
CI runs a 7-gate sweep. **All seven must pass** before a PR can merge. Run
locally with `pre-commit run --all-files` or individually:
## Gate 1: ruff check
Linter. Catches unused imports, undefined names, syntax errors, and common
anti-patterns.
```bash
uv run ruff check .
```
## Gate 2: ruff format --check
Formatter. Ensures consistent code style across the repo. Fails if any file
would be reformatted.
```bash
uv run ruff format --check .
```
To fix: `uv run ruff format .`
## Gate 3: mypy --strict
Type checker. Enforces `--strict` mode across `src/vibey/`. Catches type
errors, missing type annotations, and `Any` usage.
```bash
uv run mypy --strict src/vibey
```
## Gate 4: pytest per-layer coverage (100%)
Four separate gates, one per layer. Each must hit **100% branch coverage** or
the build fails.
```bash
uv run pytest -q -p no:cacheprovider --cov=vibey.domain --cov-branch --cov-report=term-missing --cov-fail-under=100
uv run pytest -q -p no:cacheprovider --cov=vibey.application --cov-branch --cov-report=term-missing --cov-fail-under=100
uv run pytest -q -p no:cacheprovider --cov=vibey.infrastructure --cov-branch --cov-report=term-missing --cov-fail-under=100
uv run pytest -q -p no:cacheprovider --cov=vibey.cli --cov-branch --cov-report=term-missing --cov-fail-under=100
```
**Why per-layer, not aggregate?** Because `domain/` is the safety-critical
layer and must never drop below 100%. An aggregate gate would allow a 95%
domain to hide beh