Files
2025-11-29 18:50:24 +08:00

4.5 KiB

Quality Standards - Language Dispatch

This file provides an overview of quality standards and directs you to language-specific quality gates.

When to Load This File

  • User asks: "What are the quality standards?"
  • Need overview of validation approach
  • Choosing which language file to load

Quality Philosophy

All implementations must pass these gates:

  • Linting (0 errors, warnings with justification)
  • Formatting (consistent code style)
  • Tests (all passing, appropriate coverage)
  • Type checking (if language supports it)
  • Documentation (comprehensive and current)

Language-Specific Standards

Load the appropriate file based on detected project language:

Python Projects

When to load: pyproject.toml, requirements.txt, or *.py files detected

Load: @languages/PYTHON.md

Quick commands:

ruff check . && ruff format . && mypy . && pytest

Rust Projects

When to load: Cargo.toml or *.rs files detected

Load: @languages/RUST.md

Quick commands:

cargo clippy -- -D warnings && cargo fmt --check && cargo test

JavaScript/TypeScript Projects

When to load: package.json, tsconfig.json, or *.js/*.ts files detected

Load: @languages/JAVASCRIPT.md

Quick commands:

# TypeScript
npx eslint . && npx prettier --check . && npx tsc --noEmit && npm test

# JavaScript
npx eslint . && npx prettier --check . && npm test

Go Projects

When to load: go.mod or *.go files detected

Load: @languages/GO.md

Quick commands:

gofmt -w . && golangci-lint run && go test ./...

Other Languages

When to load: No specific language detected, or unsupported language (PHP, Ruby, C++, C#, Java, etc.)

Load: @languages/GENERIC.md

Provides: General quality principles applicable across languages


Progressive Loading Pattern

Don't load all language files! Only load the relevant one:

  1. Detect project language (from file extensions, config files)
  2. Load specific standards for that language only
  3. Apply language-specific validation commands
  4. Fallback to generic if language not covered

Continuous Validation

Every 3 Edits:

Checkpoint:
  1. Run relevant tests
  2. Check linting
  3. Verify type checking (if applicable)
  4. If any fail:
     - Fix immediately
     - Re-validate
  5. Continue implementation

Pre-Completion Validation

Before marking work complete:

Full Quality Suite:
  1. Run full test suite
  2. Run full linter
  3. Run type checker
  4. Check documentation
  5. Review specification compliance
  6. Verify all acceptance criteria met

  If ANY fail:
    - Fix issues
    - Re-run full suite
    - Only complete when all pass

Quality Enforcement Strategy

Detect Language:
  - Check for language-specific files (pyproject.toml, Cargo.toml, etc.)
  - Identify from file extensions
  - User can override if auto-detection fails

Load Standards:
  - Load @languages/PYTHON.md for Python
  - Load @languages/RUST.md for Rust
  - Load @languages/JAVASCRIPT.md for JS/TS
  - Load @languages/GO.md for Go
  - Load @languages/GENERIC.md for others

Apply Validation:
  - Run language-specific commands
  - Check against language-specific standards
  - Enforce coverage requirements
  - Validate documentation completeness

Report Results:
  - Clear pass/fail for each gate
  - Specific error messages
  - Actionable fix suggestions

When Standards Apply

During Implementation:

  • After every 3 edits (checkpoint validation)
  • Before declaring task complete (full validation)
  • When explicitly requested by user

Quality Gates Must Pass:

  • To move from implementation → review phase
  • To mark specification acceptance criteria complete
  • Before creating pull request

Cross-Language Principles

These apply regardless of language:

SOLID Principles:
  - Single Responsibility
  - Open/Closed
  - Liskov Substitution
  - Interface Segregation
  - Dependency Inversion

Code Quality:
  - No duplication
  - Clear naming
  - Reasonable function size (<= 50 lines guideline)
  - Low nesting depth (<= 3 levels)
  - Proper error handling

Testing:
  - Unit tests for business logic
  - Integration tests for workflows
  - Edge case coverage
  - Error path coverage
  - Reasonable coverage targets

Documentation:
  - README for setup
  - API documentation
  - Complex logic explained
  - Usage examples

Load language-specific files for detailed standards - avoid loading all language contexts unnecessarily