Project Standards
This skill provides comprehensive guidance on project-wide coding standards, conventions, and best practices that apply across the entire codebase regardless of language or framework.
When to Use This Skill
Use this skill when:
-
Writing code - Ensuring consistency with project standards
-
Making architectural decisions - Following established patterns
-
Onboarding - Understanding project conventions
-
Code review - Checking adherence to standards
-
Refactoring - Maintaining consistency during changes
-
Setting up new features - Following project conventions
Core Standards Areas
- Coding Style
When to apply:
-
Naming variables, functions, classes, modules, or files
-
Structuring code for readability and maintainability
-
Deciding on function size and single responsibility
-
Removing unused code, commented-out blocks, or dead imports
-
Extracting reusable logic to avoid duplication
-
Applying consistent formatting and indentation
-
Refactoring code for clarity and simplicity
Principles:
-
Clear, descriptive names that reveal intent
-
DRY (Don't Repeat Yourself) principle
-
Single Responsibility Principle
-
Self-documenting code through structure
-
Consistent formatting across the codebase
Applies to: All code files (.py,.js, .ts,.jsx, .tsx,.vue, .rb,.go, .java,.rs, .cpp,.c, .swift,.kt)
- Commenting Standards
When to apply:
-
Deciding whether code needs a comment
-
Documenting complex algorithms or non-obvious business logic
-
Writing docstrings or function documentation
-
Reviewing existing comments for relevance
-
Removing outdated or misleading comments
-
Explaining non-obvious code decisions or workarounds
Principles:
-
Minimal, helpful comments
-
Explain why, not what
-
Keep code self-documenting through clear naming
-
Comments should explain complex logic or business rules
-
Avoid comments that restate what code does
-
Keep comments evergreen and relevant
Applies to: All code files across the entire codebase
- Error Handling
When to apply:
-
Wrapping code in try-catch or try-except blocks
-
Creating custom exception or error classes
-
Implementing error boundaries (React, etc.)
-
Handling HTTP errors from API calls
-
Displaying user-friendly error messages
-
Implementing retry logic with exponential backoff
-
Cleaning up resources in finally blocks
-
Deciding where to catch versus propagate errors
-
Logging errors with appropriate severity levels
-
Implementing circuit breakers for external services
-
Handling validation errors with structured responses
Principles:
-
User-friendly error messages
-
Proper exception types and hierarchies
-
Graceful degradation
-
Comprehensive logging with context
-
Resource cleanup in finally blocks
-
Appropriate error propagation
-
Retry logic for transient failures
Applies to: All code that may throw errors (API handlers, service functions, data processing, file operations, external integrations, network requests, database operations)
- Input Validation
When to apply:
-
Validating form inputs on the frontend
-
Validating API request bodies, query parameters, and headers
-
Implementing server-side validation logic
-
Creating validation schemas (Zod, Yup, Pydantic, Joi)
-
Sanitizing user input to prevent XSS, SQL injection
-
Validating data types, formats, ranges, and required fields
-
Implementing business rule validation
-
Displaying validation error messages
-
Writing custom validators for domain-specific rules
-
Handling file upload validation
Principles:
-
Validate on both client and server sides
-
Use validation libraries for consistency
-
Sanitize input to prevent security vulnerabilities
-
Provide clear, actionable error messages
-
Validate at system boundaries
-
Use allowlists over blocklists
Applies to: Form components, API handlers, request validators, input sanitizers, schema definitions, validation middleware, file uploads, webhooks, external API integrations
- Tech Stack Consistency
When to apply:
-
Choosing libraries or packages for new functionality
-
Implementing features using framework-specific patterns
-
Setting up new services, integrations, or third-party APIs
-
Configuring database connections, ORM settings, or query builders
-
Adding authentication, authorization, or security features
-
Setting up testing frameworks, tools, or test utilities
-
Configuring deployment, CI/CD pipelines, or infrastructure
-
Evaluating whether to add a new dependency
-
Implementing caching, monitoring, logging, or observability
-
Choosing between alternative approaches
Principles:
-
Consistency with existing technology choices
-
Follow framework-specific patterns and idioms
-
Prefer existing tools over adding new dependencies
-
Document technology decisions
-
Maintain architectural consistency
Applies to: Frontend, backend, database, infrastructure, testing, deployment, third-party integrations
- Project Conventions
When to apply:
-
Organizing files and directory structure
-
Writing git commit messages or PR descriptions
-
Managing environment variables, configuration, and secrets
-
Adding or updating project dependencies
-
Setting up or modifying CI/CD workflows
-
Implementing feature flags
-
Updating README files or project documentation
-
Establishing code review processes
-
Maintaining changelogs or release notes
-
Configuring linters, formatters, or pre-commit hooks
-
Setting up development environments
-
Managing monorepo or multi-package structures
Principles:
-
Consistent file and directory organization
-
Conventional commit messages
-
Clear documentation
-
Proper dependency management
-
Automated quality checks
-
Clear development workflows
Applies to: Configuration files (.env, package.json, requirements.txt, pyproject.toml, Dockerfile, docker-compose.yml, Makefile), directories (.github/, .gitlab-ci/, scripts/, docs/), documentation files (README.md, CHANGELOG.md, CONTRIBUTING.md)
Reference Files
For detailed standards documentation, load reference files as needed:
-
references/coding-style.md
-
Detailed coding style guidelines, naming conventions, formatting standards
-
references/commenting.md
-
Commenting best practices, docstring standards, when to comment
-
references/error-handling.md
-
Error handling patterns, exception hierarchies, logging strategies
-
references/validation.md
-
Validation patterns, schema definitions, security considerations
-
references/tech-stack.md
-
Technology stack reference, framework patterns, dependency guidelines
-
references/conventions.md
-
Project conventions, file structure, git workflows, CI/CD standards
When working on specific areas, load the appropriate reference file for detailed guidance.
Best Practices
Consistency First
-
Follow existing patterns in the codebase
-
When in doubt, match the style of surrounding code
-
Maintain consistency across all files
Progressive Enhancement
-
Start with simple, clear code
-
Add complexity only when necessary
-
Refactor for clarity and maintainability
Documentation
-
Keep documentation up to date
-
Document decisions and trade-offs
-
Include examples in documentation
Quality Gates
-
Use linters and formatters
-
Run tests before committing
-
Review code for standards adherence
Integration with Other Skills
-
code-review: Use when reviewing code for standards adherence
-
dead-code-removal: Follow coding style when cleaning up code
-
debugging: Apply error handling standards when analyzing errors
-
dependency-management: Follow tech stack standards when managing dependencies