ワンクリックで
git-hooks-integration
// The agent implements Git hooks that integrate with the workflow config system, automating pre-commit checks, commit message validation, pre-push tests, and post-merge actions.
// The agent implements Git hooks that integrate with the workflow config system, automating pre-commit checks, commit message validation, pre-push tests, and post-merge actions.
Automatic design system context injection for UI consistency
AI agent practices test-first development with the Red-Green-Refactor cycle for confident, well-designed code. Use when implementing features, fixing bugs, or establishing testing practices.
The agent enforces mandatory test completion before any task or feature can be marked as done, ensuring code quality through strict validation gates and evidence-based completion criteria.
The agent automatically generates comprehensive test tasks from feature requirements, ensuring every implementation task has corresponding test coverage with proper acceptance criteria.
The agent implements a centralized workflow configuration system for Git workflows, enabling set-once-use-everywhere automation for trunk-based development, gitflow, and github-flow patterns with integrated testing automation.
The agent implements DORA metrics tracking for measuring and improving software delivery performance. Use when establishing engineering metrics, benchmarking teams, or driving DevOps transformation.
| name | Git Hooks Integration |
| description | The agent implements Git hooks that integrate with the workflow config system, automating pre-commit checks, commit message validation, pre-push tests, and post-merge actions. |
| category | devops |
| related_skills | ["devops/workflow-config","devops/github-actions","testing/comprehensive-testing","methodology/test-driven-development"] |
| related_commands | ["/hooks:setup","/hooks:run","/workflow:init","/dev:test"] |
Git Hooks Integration provides automated enforcement of workflow rules through Git hooks. Hooks are configured in .omgkit/workflow.yaml and automatically installed to .git/hooks/. This ensures consistent code quality, commit conventions, and testing before code reaches the remote repository.
| Hook | Trigger | Purpose |
|---|---|---|
pre-commit | Before commit | Lint, format, type-check |
commit-msg | After commit message | Validate conventional commits |
pre-push | Before push | Run tests, security scan |
post-merge | After merge/pull | Install deps, run migrations |
post-checkout | After checkout | Environment setup |
# .omgkit/workflow.yaml
hooks:
pre_commit:
enabled: true
actions:
- lint
- format
commit_msg:
enabled: true
validate_conventional: true
pre_push:
enabled: true
actions:
- test
hooks:
# Pre-commit: runs before each commit
pre_commit:
enabled: true
actions:
- lint # Run ESLint/Pylint/etc
- type-check # TypeScript/mypy/Flow
- format # Prettier/Black/gofmt
- secrets-check # Detect leaked secrets
fail_fast: true # Stop on first failure
staged_only: true # Only check staged files
bypass_key: "SKIP_HOOKS" # Env var to bypass
# Commit message validation
commit_msg:
enabled: true
validate_conventional: true
allowed_types:
- feat
- fix
- docs
- style
- refactor
- perf
- test
- chore
- ci
- build
require_scope: false
max_subject_length: 72
require_body: false
require_issue: false
issue_pattern: "#[0-9]+"
# Pre-push: runs before pushing
pre_push:
enabled: true
actions:
- test # Run test suite
- security-scan # npm audit / safety check
- build # Verify build works
skip_on_ci: true # Skip in CI environment
protected_branches:
- main
- develop
require_review_for:
- main
# Post-merge: runs after git pull/merge
post_merge:
enabled: false
actions:
- install # npm install / pip install
- migrate # Database migrations
- generate # Code generation
notify: false
# Post-checkout: runs after git checkout
post_checkout:
enabled: false
actions:
- install # Install dependencies
- env-check # Verify environment
| Action | Description | Command |
|---|---|---|
lint | Run linter | Auto-detected |
format | Format code | Auto-detected |
type-check | Type checking | Auto-detected |
secrets-check | Detect secrets | git-secrets |
test-staged | Test staged files | vitest related |
Auto-detection Logic:
# JavaScript/TypeScript
lint: npx eslint --fix
format: npx prettier --write
type-check: npx tsc --noEmit
# Python
lint: ruff check --fix
format: black
type-check: mypy
# Go
lint: golangci-lint run
format: gofmt -w
type-check: go vet
# Rust
lint: cargo clippy
format: cargo fmt
type-check: cargo check
| Action | Description | Command |
|---|---|---|
test | Run tests | Auto-detected |
test-coverage | With coverage | Auto-detected |
security-scan | Security audit | Auto-detected |
build | Verify build | Auto-detected |
review | Claude review | /dev:review |
Auto-detection Logic:
# JavaScript/TypeScript
test: npm test
security-scan: npm audit
build: npm run build
# Python
test: pytest
security-scan: safety check
build: python -m build
# Go
test: go test ./...
security-scan: gosec ./...
build: go build
# Setup hooks from workflow.yaml
/hooks:setup
# Output:
# Installing Git Hooks
# --------------------
# Reading config from .omgkit/workflow.yaml
# Creating pre-commit hook...
# Creating commit-msg hook...
# Creating pre-push hook...
# Done! 3 hooks installed.
Run /hooks:setup which creates executable scripts in .git/hooks/:
.git/hooks/
├── pre-commit # Lint, format, type-check
├── commit-msg # Validate commit message
├── pre-push # Test, security scan
└── post-merge # Install, migrate
#!/bin/bash
# Generated by OMGKIT - Do not edit manually
# Regenerate with: /hooks:setup
set -e
# Check for bypass
if [ -n "$SKIP_HOOKS" ]; then
echo "Skipping pre-commit hooks (SKIP_HOOKS is set)"
exit 0
fi
echo "Running pre-commit checks..."
# Get staged files
STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM)
if [ -z "$STAGED_FILES" ]; then
echo "No staged files to check"
exit 0
fi
# Action: lint
echo " Running lint..."
if command -v npx &> /dev/null && [ -f "package.json" ]; then
npx eslint --fix $STAGED_FILES
elif command -v ruff &> /dev/null; then
ruff check --fix $STAGED_FILES
fi
# Action: format
echo " Running format..."
if command -v npx &> /dev/null && [ -f "package.json" ]; then
npx prettier --write $STAGED_FILES
git add $STAGED_FILES
fi
# Action: type-check
echo " Running type-check..."
if [ -f "tsconfig.json" ]; then
npx tsc --noEmit
fi
echo "Pre-commit checks passed!"
#!/bin/bash
# Generated by OMGKIT - Do not edit manually
set -e
COMMIT_MSG_FILE=$1
COMMIT_MSG=$(cat "$COMMIT_MSG_FILE")
# Conventional commit pattern
PATTERN="^(feat|fix|docs|style|refactor|perf|test|chore|ci|build)(\(.+\))?: .{1,72}$"
# Check first line
FIRST_LINE=$(echo "$COMMIT_MSG" | head -n1)
if ! echo "$FIRST_LINE" | grep -qE "$PATTERN"; then
echo "ERROR: Invalid commit message format"
echo ""
echo "Expected format: type(scope): subject"
echo " type: feat|fix|docs|style|refactor|perf|test|chore|ci|build"
echo " scope: optional, in parentheses"
echo " subject: max 72 characters"
echo ""
echo "Examples:"
echo " feat: add user authentication"
echo " fix(api): resolve null pointer exception"
echo " docs(readme): update installation guide"
echo ""
echo "Your message: $FIRST_LINE"
exit 1
fi
# Check subject length
SUBJECT_LENGTH=${#FIRST_LINE}
MAX_LENGTH=72
if [ $SUBJECT_LENGTH -gt $MAX_LENGTH ]; then
echo "ERROR: Commit subject too long ($SUBJECT_LENGTH > $MAX_LENGTH)"
exit 1
fi
echo "Commit message validated!"
#!/bin/bash
# Generated by OMGKIT - Do not edit manually
set -e
# Skip in CI
if [ -n "$CI" ] || [ -n "$GITHUB_ACTIONS" ]; then
echo "Skipping pre-push hooks (CI environment)"
exit 0
fi
# Check for bypass
if [ -n "$SKIP_HOOKS" ]; then
echo "Skipping pre-push hooks (SKIP_HOOKS is set)"
exit 0
fi
echo "Running pre-push checks..."
# Action: test
echo " Running tests..."
if [ -f "package.json" ]; then
npm test
elif [ -f "pytest.ini" ] || [ -f "pyproject.toml" ]; then
pytest
elif [ -f "go.mod" ]; then
go test ./...
fi
# Action: security-scan
echo " Running security scan..."
if [ -f "package.json" ]; then
npm audit --audit-level=high || true
elif command -v safety &> /dev/null; then
safety check || true
fi
echo "Pre-push checks passed!"
Install or update Git hooks based on workflow config:
/hooks:setup
# Options:
/hooks:setup --force # Overwrite existing hooks
/hooks:setup --dry-run # Show what would be created
/hooks:setup --hook=pre-commit # Setup specific hook only
Manually run hook actions:
/hooks:run pre-commit # Run pre-commit actions
/hooks:run commit-msg # Validate last commit message
/hooks:run pre-push # Run pre-push actions
# Run specific action
/hooks:run pre-commit --action=lint
/hooks:run pre-commit --action=format
# Skip all hooks for one command
SKIP_HOOKS=1 git commit -m "wip: temp commit"
# Git native skip (not recommended)
git commit --no-verify -m "emergency fix"
hooks:
pre_commit:
exclude_paths:
- "vendor/**"
- "node_modules/**"
- "*.generated.*"
Check hook is executable:
ls -la .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit
Regenerate hooks:
/hooks:setup --force
Check config:
hooks:
pre_commit:
enabled: true # Must be true
Run manually to see errors:
/hooks:run pre-commit
Check staged files:
git diff --cached --name-only
Bypass temporarily:
SKIP_HOOKS=1 git commit -m "message"
Use staged-only checking:
hooks:
pre_commit:
staged_only: true
Skip slow checks locally:
hooks:
pre_push:
skip_on_ci: true # Run full checks in CI only
Hooks complement CI/CD but don't replace it:
| Check | Local Hook | CI/CD |
|---|---|---|
| Lint | pre-commit | Yes |
| Format | pre-commit | Yes |
| Type-check | pre-commit | Yes |
| Unit tests | pre-push | Yes |
| Integration tests | No | Yes |
| E2E tests | No | Yes |
| Security scan | pre-push | Yes |
| Build | pre-push | Yes |
| Deploy | No | Yes |
Keep pre-commit under 5 seconds:
hooks:
pre_commit:
actions:
- lint # Fast
- format # Fast
staged_only: true
# Move slow checks to pre-push
Run thorough checks before pushing:
hooks:
pre_push:
actions:
- test
- type-check
- security-scan
- build
Commit .omgkit/workflow.yaml to ensure all team members have same hooks:
git add .omgkit/workflow.yaml
git commit -m "chore: add workflow config"
devops/workflow-config - Central configuration systemdevops/github-actions - CI/CD workflowstesting/comprehensive-testing - Test strategiesmethodology/test-driven-development - TDD practices