N/A
.githooks/ — commit-msg enforces Conventional Commits prefixes (feat:, fix:, chore:, refactor:, docs:, i18n:), pre-push enforces matching branch name prefixes.npm install via the prepare script (git config core.hooksPath .githooks) — no husky needed.commitlint.config.js, two devDependencies, and 66 transitive packages.test label from commit/branch conventions and the PR template, since this project intentionally has no test suite.CLAUDE.md.npm install (activates the hooks), then check git config core.hooksPath prints .githooks.git commit --allow-empty -m "bad message" → rejected with a prefix error.git commit --allow-empty -m "chore: valid message" → succeeds (then reset).pre-push.npm run format:check passesnpm run lint passesnpm run typecheck passesnpm run build passesfeat:, fix:, chore:, refactor:, docs:, i18n:)