---
name: aiskillstore-quality
description: "Code quality validation, formatting, linting, and pre-commit checks."
metadata:
  decimalai-skill-id: "ac80cf18-b816-4c1c-bb41-bfb4a0d27710"
  decimalai-version-id: "65c5871d-5963-4d40-8b0f-8300279fd9f9"
  decimalai-version: "1"
  decimalai-body-sha256: "338059e85d3678a020ec2606a3840fcf640f536d79e24aa6b37c4937a7210113"
  decimalai-name: "aiskillstore/quality"
  decimalai-format: "1"
  decimalai-invocation: "model"
  decimalai-category: "code-review"
  decimalai-source: "https://app.decimal.ai/s/aiskillstore-quality@1/SKILL.md"
---
# Code Quality Skill

Code quality validation, formatting, linting, and pre-commit checks.

## Activation

Auto-activates on keywords: quality, lint, format, precommit, naming, black, ruff, mypy, basedpyright, validation

## Workflows

### Formatting
- **format.md**: Code formatting with Black and Ruff

### Linting
- **lint.md**: Linting checks with Ruff
- **naming.md**: Naming convention validation

### Pre-commit
- **precommit.md**: Pre-commit hook validation

## Commands

```bash
# Format code
uv run black .
uv run ruff format .

# Lint code
uv run ruff check .
uv run ruff check --fix .

# Type checking
uv run basedpyright src/

# Run all pre-commit hooks
uv run pre-commit run --all-files
```

## Quality Standards

### Python Standards
- **Line Length**: 88 characters (Black default)
- **Type Checking**: BasedPyright strict mode
- **Linting**: Ruff with PyStrict-aligned rules

### Rule Categories
- **BLE**: Blind except detection
- **EM**: Error message best practices
- **SLF**: Private member access violations
- **INP**: Require `__init__.py` in packages
- **T10**: No debugger statements
- **G**: Logging format strings

### Per-File Ignores
Tests and scripts have relaxed rules for pragmatic development.
