.claude/skills/code-quality/SKILL.md
Multi-language code quality standards and review for TypeScript, Python, Go, and Rust. Enforces type safety, security, performance, and maintainability. Use when writing, reviewing, or refactoring code. Includes review process, checklist, and Python PEP 8 deep-dive.
npx skillsauth add georgekhananaev/claude-skills-vault code-qualityInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Production-grade code standards and review for TypeScript, Python, Go, and Rust.
| Intent | Sections to Use |
|--------|----------------|
| Write code | Core Rules + Language Standards + AI-Friendly Patterns |
| Review PR | Review Process + references/checklist.md + Severity Levels |
| Setup CI | Config Files + Scripts + Enforcement Strategy |
| Python style | references/python.md (full PEP 8 deep-dive) |
Context loading: For deep reviews, read the relevant references/ file for the language under review.
| Language | Type Safety | Linter | Complexity |
|----------|-------------|--------|------------|
| TypeScript | strict, no any | ESLint + typescript-eslint | max 10 |
| Python | mypy strict, PEP 484 | Ruff + mypy | max 10 |
| Go | staticcheck | golangci-lint | max 10 |
| Rust | clippy pedantic | clippy + cargo-audit | - |
| Level | Description | Action |
|-------|-------------|--------|
| Critical | Security vulnerabilities, data loss | Block merge |
| Error | Bugs, type violations, any | Block merge |
| Warning | Code smells, complexity | Must address |
| Style | Formatting, naming | Auto-fix |
_ for err)See: references/typescript.md
// CRITICAL: Never use any
const bad: any = data; // Error
const good: unknown = data; // OK
// ERROR: No type assertions
const bad = data as User; // Error
const good = isUser(data) ? data : null; // OK
// ERROR: Non-null assertions
const bad = user!.name; // Error
const good = user?.name ?? ''; // OK
See: references/python.md
# CRITICAL: All functions must be typed
def bad(data): # Error
return data
def good(data: dict[str, Any]) -> list[str]: # OK
return list(data.keys())
# Use modern syntax
value: str | None = None # OK (not Optional)
items: list[str] = [] # OK (not List)
See: references/go.md
// CRITICAL: Never ignore errors
result, _ := doSomething() // Error
result, err := doSomething() // OK
if err != nil {
return fmt.Errorf("doing something: %w", err)
}
See: references/rust.md
// CRITICAL: No unwrap in production
let value = data.unwrap(); // Error
let value = data?; // OK
let value = data.unwrap_or_default(); // OK
See: references/logging.md
logger.info({ userId, action: 'login' }, 'User logged in'); // TS (pino)
logger.info("user_login", user_id=user_id) # Python (structlog)
log.Info().Str("user_id", userID).Msg("user logged in") // Go (zerolog)
See: references/testing.md
| Metric | Threshold | |--------|-----------| | Line coverage | 80% min | | Branch coverage | 70% min | | New code | 90% min |
See: references/security.md
See: references/api-design.md
/users/{id}/ordersSee: references/database.md
See: references/async-concurrency.md
Use the checklist at references/checklist.md for thorough reviews covering:
**[SEVERITY] Issue Title**
- File: `path/to/file.ts:line`
- Problem: Clear description
- Impact: What could go wrong
- Fix: Specific code suggestion
# Review staged changes
git --no-pager diff --cached
# Review specific commit
git --no-pager show <commit>
# Review PR diff
gh pr diff <number>
Use severity levels from the table above (Critical / Error / Warning / Style).
# Code Review Summary
## Overview
- Files reviewed: X
- Issues found: Y (X Critical, Y Error, Z Warning)
- Recommendation: [Approve / Request Changes / Needs Discussion]
## Critical Issues
[Security vulnerabilities, data loss - must fix]
## Error Issues
[Bugs, type violations - must fix]
## Warnings
[Code smells, complexity - should address]
## Style
[Formatting, naming - auto-fixable]
## Positive Observations
[Good practices found]
| Element | TypeScript | Python | Go | Rust | |---------|------------|--------|-----|------| | Variables | camelCase | snake_case | camelCase | snake_case | | Functions | camelCase | snake_case | camelCase | snake_case | | Constants | SCREAMING_SNAKE | SCREAMING_SNAKE | MixedCaps | SCREAMING_SNAKE | | Types | PascalCase | PascalCase | PascalCase | PascalCase | | Files | kebab-case | snake_case | lowercase | snake_case |
Phase 1: Errors block, Warnings tracked
Phase 2: Strict on NEW files only
Phase 3: Strict on TOUCHED files
Phase 4: Full enforcement
| Mode | Trigger | Behavior | |------|---------|----------| | WIP | Local commit | Warnings only | | Push | git push | Errors block | | PR | PR to main | Full strict |
Available in configs/:
typescript/ - ESLint, tsconfig, Prettierpython/ - pyproject.toml, pre-commitgo/ - golangci.yamlrust/ - clippy.toml.pre-commit-config.yaml.gitleaks.tomlAvailable in scripts/:
check_changed.sh - Monorepo-aware incremental lintingcheck_all.sh - Full repository checkcheck_style.py - Python full check (ruff + pycodestyle + mypy)check_pep8.sh - Quick PEP 8 onlycheck_types.sh - Python type hints onlyfix_style.sh - Python auto-fix issuesdocumentation
Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks
tools
Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.
development
Write clean, error-free markdown that IDEs and linters can parse without warnings. Use when writing documentation, README files, or skill files with code examples.
development
Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks