name: describe-laws-and-style description: Distinction between laws (invariants) and style (conventions). Load when determining if a constraint is a law or style. user-invocable: false
Laws vs Style
Laws (.ushabti/laws.md):
- Non-negotiable invariants that must hold across all Phases, implementations, and refactors
- Examples: architectural boundaries, security constraints, correctness guarantees
- Laws are absolute — any violation fails a Phase
- Only Lawgiver defines or modifies laws
Style (.ushabti/style.md):
- Conventions that govern how the system is built
- Examples: directory layout, naming conventions, testing strategy, error handling
- Style may evolve over time; laws should not
- Only Artisan defines or modifies style
- Style must never contradict laws