# 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
