Enforces quality gates: 80% test coverage, passing tests, successful builds, semantic versioning. Runs before PR creation. Use when: Running tests, checking coverage, validating quality, versioning Triggers: run tests, check coverage, quality gates, version bump
Scanned 9/8/2026
Install to Claude Code
npx -y skills add mattnigh/skills_collection --skill collection --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Collection?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mattnigh-collection-103d885d)More formats (shields.io, HTML) on the badges page.
---
name: quality-enforcer
version: 5.0.0
description: |
Enforces quality gates: 80% test coverage, passing tests, successful builds,
semantic versioning. Runs before PR creation.
Use when: Running tests, checking coverage, validating quality, versioning
Triggers: run tests, check coverage, quality gates, version bump
---
# Quality Enforcer
## Purpose
Ensures code quality standards are met before integration. Enforces:
- Test coverage ≥ 80%
- All tests passing
- Successful builds
- Linting clean (ruff)
- Type checking clean (mypy)
- Container health (if applicable)
## Scripts
### check_coverage.py
Runs pytest with coverage and verifies 80% threshold.
```bash
python .claude/skills/quality-enforcer/scripts/check_coverage.py [threshold]
```
**Arguments:**
- `threshold` (optional): Coverage percentage required (default: 80)
**Exit codes:**
- 0: Coverage meets threshold
- 1: Coverage below threshold or error
### run_quality_gates.py
Runs all quality gates and reports comprehensive results.
```bash
python .claude/skills/quality-enforcer/scripts/run_quality_gates.py
```
**Checks:**
1. Test coverage (≥80%)
2. All tests passing
3. Build successful
4. Linting clean
5. Type checking clean
**Exit codes:**
- 0: All gates passed
- 1: One or more gates failed
## Quality Gates
### Gate 1: Test Coverage
Minimum 80% code coverage required.
```bash
uv run pytest --cov=src --cov-report=term --cov-fail-under=80
```
### Gate 2: All Tests Passing
All unit and integration tests must pass.
```bash
uv run pytest -v
```
### Gate 3: Successful Build
Package must build without errors.
```bash
uv build
```
### Gate 4: Linting
Code must pass ruff linting.
```bash
uv run ruff check src/ tests/
```
### Gate 5: Type Checking
Code must pass mypy type checking.
```bash
uv run mypy src/
```
## Integration with Workflow
The workflow-orchestrator calls this skill before PR creation:
```python
# In workflow orchestrator
if current_phase == 3: # Quality Assurance
load_skill('quality-enforcer')
result = subprocess.run([
'python',
'.claude/skills/quality-enforcer/scripts/run_quality_gates.py'
])
if result.returncode != 0:
print("⚠️ Quality gates failed - fix issues before creating PR")
return False
print("✓ All quality gates passed")
```
## Semantic Versioning
Uses git-workflow-manager's semantic_version.py to calculate version bumps.
```python
# Calculate new version
result = subprocess.run([
'python',
'.claude/skills/git-workflow-manager/scripts/semantic_version.py',
'develop', # base branch
'v1.0.0' # current version
], capture_output=True, text=True)
new_version = result.stdout.strip()
```
## Updating TODO with Version
```python
# Update TODO file with new semantic version
import yaml
from pathlib import Path
def update_version_in_todo(todo_file, new_version):
"""Update semantic_version in TODO file YAML frontmatter."""
content = Path(todo_file).read_text()
parts = content.split('---', 2)
frontmatter = yaml.safe_load(parts[1])
body = parts[2]
frontmatter['quality_gates']['semantic_version'] = new_version
new_content = f"---\n{yaml.dump(frontmatter)}---{body}"
Path(todo_file).write_text(new_content)
```
## Best Practices
- Run quality gates frequently during development
- Fix issues immediately - don't accumulate technical debt
- Aim for >80% coverage, not just exactly 80%
- Write tests alongside implementation
- Use type hints consistently
- Keep linting rules reasonable but enforce them
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!