# Git Hooks Configuration This directory contains git hooks that protect the project's critical configuration and enforce code quality standards. ## Setup To enable these hooks in your local git configuration, run: ```bash git config core.hooksPath .githooks ``` Or set it globally: ```bash git config --global core.hooksPath .githooks ``` ## Protected Files The `pre-commit` hook enforces immutability on these critical files: - `.knowledge/dss-principles.json` - Core DSS principles - `.knowledge/dss-architecture.json` - Architecture documentation - `.clauderc` - Claude Code configuration - `PROJECT_CONFIG.md` - Production deployment configuration ### Modifying Protected Files If you need to modify a protected file, you must explicitly allow the change: ```bash ALLOW_CORE_CHANGES=true git commit -m "your message" ``` ## Quality Checks The pre-commit hook also runs DSS code quality verification via `scripts/verify-quality.sh`, checking for: - Inline event handlers (must use event delegation) - Excessive inline styles (extract to Shadow DOM) - Accessibility compliance - Console statement limits - Potential hardcoded secrets - File size limits To bypass quality checks (not recommended): ```bash git commit --no-verify ``` ## Hook Details ### pre-commit - **Purpose:** Guard immutable files and enforce code quality - **Trigger:** Before every commit - **Exit Code:** 1 if checks fail (blocks commit), 0 if pass - **Output:** Detailed report of any violations --- **Last Updated:** 2025-12-08