Structure
common/ contains universal principles — no language-specific code examples.Language directories extend the common rules with framework-specific patterns, tools, and code examples.
Installation
Option 1: Install Script (Recommended)
Option 2: Manual Installation
Rules vs Skills
Rules
Define standards, conventions, and checklists that apply broadly (e.g., “80% test coverage”, “no hardcoded secrets”)
Skills
Provide deep, actionable reference material for specific tasks (e.g.,
python-patterns, golang-testing)Rule Priority
When language-specific rules and common rules conflict, language-specific rules take precedence (specific overrides general).Example
common/coding-style.md recommends immutability as a default principle. A language-specific golang/coding-style.md can override this:
Idiomatic Go uses pointer receivers for struct mutation — see common/coding-style.md for the general principle, but Go-idiomatic mutation is preferred here.
Override Markers
Rules inrules/common/ that may be overridden by language-specific files are marked with:
Language note: This rule may be overridden by language-specific rules for languages where this pattern is not idiomatic.
Adding a New Language
To add support for a new language (e.g.,rust/):
Add rule files
Add files that extend the common rules:
coding-style.md— formatting tools, idioms, error handling patternstesting.md— test framework, coverage tools, test organizationpatterns.md— language-specific design patternshooks.md— PostToolUse hooks for formatters, linters, type checkerssecurity.md— secret management, security scanning tools
Common Rules Categories
Coding Style
Immutability, file organization, error handling
Testing
TDD workflow, 80% coverage requirement
Security
Secret management, security checklist
Patterns
Repository pattern, API response format
Git Workflow
Commit format, PR workflow
Hooks
Hook types, TodoWrite best practices
Language-Specific Rules
TypeScript
Zod validation, Prettier, console.log warnings
Python
PEP 8, black/ruff, pytest patterns
Go
gofmt, error wrapping, table-driven tests