repos: # Commit message validation (Conventional Commits via commitlint) - repo: local hooks: - id: commitlint name: Validate commit message (Conventional Commits) entry: bash -c 'cd apps && pnpm exec commitlint --edit "$1"' -- language: system stages: [commit-msg] always_run: true # Backend (Go) hooks - repo: local hooks: - id: gofmt name: gofmt (backend) entry: bash -c 'gofmt -w "$@"' -- language: system files: ^apps/backend/.*\.go$ pass_filenames: true - id: go-tests name: Go tests (backend) entry: bash -c 'cd apps/backend && go test ./...' language: system files: \.go$ pass_filenames: false - id: go-lint name: Go Lint (backend) entry: bash -c 'cd apps/backend && golangci-lint run' language: system files: \.go$ pass_filenames: false # Web app (TypeScript/React) hooks - repo: local hooks: - id: prettier-format name: Prettier format (web/cli/packages) entry: bash -c 'cd apps && pnpm exec prettier --write --ignore-unknown "${@/#apps\//}"' -- language: system files: ^apps/(web|cli|packages)/.*\.(ts|tsx|js|jsx|mjs|cjs|json|md|mdx|yml|yaml|css|scss)$ pass_filenames: true - id: web-lint name: Web lint entry: bash -c 'cd apps && pnpm --filter @kandev/web lint' language: node files: ^apps/web/.*\.(ts|tsx|js|jsx)$ pass_filenames: true additional_dependencies: [] - id: web-tests name: Web tests entry: bash -c 'cd apps && pnpm --filter @kandev/web test' language: node files: ^apps/web/.*\.(ts|tsx|js|jsx)$ pass_filenames: false additional_dependencies: [] - id: web-typecheck name: Typecheck web app entry: bash -c 'cd apps && pnpm --filter @kandev/web exec tsc -p tsconfig.json --noEmit' language: node files: ^apps/web/.*\.(ts|tsx)$ pass_filenames: false additional_dependencies: [] # Landing page hooks - repo: local hooks: # - id: landing-lint # name: Landing lint # entry: bash -c 'cd apps && pnpm --filter @kandev/landing lint' # language: node # files: ^apps/landing/.*\.(ts|tsx|js|jsx)$ # pass_filenames: true # additional_dependencies: [] - id: landing-typecheck name: Typecheck landing page entry: bash -c 'cd apps && pnpm --filter @kandev/landing exec tsc -p tsconfig.json --noEmit' language: node files: ^apps/landing/.*\.(ts|tsx)$ pass_filenames: false additional_dependencies: []