Loading...
Loading...
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 skill4agent add georgekhananaev/claude-skills-vault code-quality| Intent | Sections to Use |
|---|---|
| Write code | Core Rules + Language Standards + AI-Friendly Patterns |
| Review PR | Review Process + |
| Setup CI | Config Files + Scripts + Enforcement Strategy |
| Python style | |
references/| Language | Type Safety | Linter | Complexity |
|---|---|---|---|
| TypeScript | | ESLint + typescript-eslint | max 10 |
| Python | mypy | 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, | Block merge |
| Warning | Code smells, complexity | Must address |
| Style | Formatting, naming | Auto-fix |
_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 ?? ''; // OKreferences/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)references/go.md// CRITICAL: Never ignore errors
result, _ := doSomething() // Error
result, err := doSomething() // OK
if err != nil {
return fmt.Errorf("doing something: %w", err)
}references/rust.md// CRITICAL: No unwrap in production
let value = data.unwrap(); // Error
let value = data?; // OK
let value = data.unwrap_or_default(); // OKreferences/logging.mdlogger.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)references/testing.md| Metric | Threshold |
|---|---|
| Line coverage | 80% min |
| Branch coverage | 70% min |
| New code | 90% min |
references/security.mdreferences/api-design.md/users/{id}/ordersreferences/database.mdreferences/async-concurrency.mdreferences/checklist.md**[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># 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 |
configs/typescript/python/go/rust/.pre-commit-config.yaml.gitleaks.tomlscripts/check_changed.shcheck_all.shcheck_style.pycheck_pep8.shcheck_types.shfix_style.sh