Stats
Actions
Tags
From frontend-skills
Runs quality, linting, typecheck, and PR feedback hooks across multiple lifecycle events. Enforces code standards via Biome, checks type correctness, audits CI warnings, and blocks tool calls on violations.
13 events · 98 hooks
Safety signals detected in this hook configuration
Where this hook configuration is defined
Defined in hooks/hooks.json
Event handlers and matchers — expand Raw Configuration for the full JSON
f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/architecture-review-stop.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/biome-autofix.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/typecheck-stop.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/react-doctor-stop.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/registry-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/orchestration-stop.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/test-perf-stop.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/quality-gate-stop.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/lifecycle-stop.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/pr-feedback-completeness-stop.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/ci-warning-audit.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/perf-regression-stop.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/violation-summary-stop.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/cache-telemetry-stop.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/pre-compact.sh"; [ -x "$f" ] && exec "$f"; exit 0Edit|Write|Bashf="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/violation-nudge.sh"; [ -x "$f" ] && exec "$f"; exit 0Bashf="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/enforce-toolchain.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/llm-test-flags.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/conventional-commits-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/branch-safety-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/snyk-project-create-guard.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/bash-verbose-guard.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/rtk-rewrite.sh"; [ -x "$f" ] && exec "$f"; exit 0mcp__.*f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/mcp-ban.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/session-end.sh"; [ -x "$f" ] && exec "$f"; exit 0*.proto|*.graphql|*.graphqlsf="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/file-changed-schema.sh"; [ -x "$f" ] && exec "$f"; exit 0biome.jsonc|biome.json|tsconfig.json|tsconfig.*.json|vitest.config.*f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/file-changed-config.sh"; [ -x "$f" ] && exec "$f"; exit 0src/env.tsf="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/file-changed-env.sh"; [ -x "$f" ] && exec "$f"; exit 0skill-manifest.jsonf="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/file-changed-manifest.sh"; [ -x "$f" ] && exec "$f"; exit 0package.json|bun.lock|bun.lockb|yarn.lock|package-lock.json|go.mod|go.sumf="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/file-changed-deps.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/post-compact-context.sh"; [ -x "$f" ] && exec "$f"; exit 0Edit|Writef="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/vendor-file-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/ui-registry-warn.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/split-file-convention-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/react-rules-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/tailwind-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/accessibility-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/zustand-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/tanstack-router-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/tanstack-router-gen.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/connect-query-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/aip-proto-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/react-compiler-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/env-validation-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/bundle-guard.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/test-perf-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/ux-copy-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/orchestration-guidance.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/form-mode-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/file-size-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/hook-location-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/mutation-side-effect-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/connect-error-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/connect-error-format-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/unhappy-path-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/resilience-review-nudge.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/tdd-prompt-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/error-boundary-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/field-mask-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/route-sibling-test-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/route-visual-test-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/structural-test-nudge-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/legacy-linter-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/biome-ignore-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/legacy-import-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/test-convention-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/form-watch-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/as-cast-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/ts-no-escape-hatches-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/tsconfig-strict-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/llm-failure-mode-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/security-audit-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/mutation-naming-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/magic-number-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/disabled-button-tooltip-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/query-pattern-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/copyright-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/zustand-subscription-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/url-state-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/duplicate-function-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/mutation-onerror-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/edit-loop-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/lockfile-sync-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/connect-error-fieldmap-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/proto-form-parallel-state-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/form-setvalue-options-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/form-error-summary-check.sh"; [ -x "$f" ] && exec "$f"; exit 0Bashf="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/llm-truncate.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/consecutive-failure-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/test-warning-check.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/session-env.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/llm-env.sh"; [ -x "$f" ] && exec "$f"; exit 0self-reviewer|code-reviewer|adversarial-reviewerf="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/subagent-stop.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/subagent-start.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/worktree-create.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/user-prompt-context.sh"; [ -x "$f" ] && exec "$f"; exit 0f="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/intent-detect.sh"; [ -x "$f" ] && exec "$f"; exit 0Bashf="${CLAUDE_PLUGIN_ROOT}/.claude/hooks/post-tool-failure.sh"; [ -x "$f" ] && exec "$f"; exit 0npx claudepluginhub malinskibeniamin/skills --plugin frontend-skills