Github hooks
A collection of Claude Code skills for iOS, MERN, NEAN, and shared development workflows
npx -y skills add edfenton/claude-skills --skill github-hooksAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Set up local Git hooks for pre-commit validation (lint, format, tests, secrets). Integrates with mern-scaffold, nean-scaffold, and iOS projects.
SKILL.md
4.0 KB, as published. Nobody here has run it
Purpose
Install local Git hooks to catch issues before commits reach the remote. Complements github-secure by shifting checks left.
Designed to work with: /mern-scaffold, /mern-kit, /nean-scaffold, /nean-kit, and iOS projects.
Arguments
--platform <p>— Target platform:mern,nean, orios(auto-detected if not specified)--no-secrets— Skip secret scanning hook--no-tests— Skip pre-push test hook
Platform detection
If --platform not specified:
- Detect
nx.json→ NEAN - Detect
pnpm-workspace.yamlorturbo.json→ MERN - Detect
project.yml(XcodeGen) orPackage.swiftor*.xcodeproj→ iOS
What gets created
MERN (using Husky + lint-staged + pnpm)
.husky/
├── pre-commit # Lint + format staged files
├── commit-msg # Validate commit message format
└── pre-push # Run tests before push
.lintstagedrc.json # Lint-staged configuration
.commitlintrc.json # Commit message rules
.gitleaks.toml # Secret scanning config
package.json # Updated with husky + lint-staged + commitlint
NEAN (using Husky + lint-staged + npm/Nx)
.husky/
├── pre-commit # Lint + format staged files (via Nx)
├── commit-msg # Validate commit message format
└── pre-push # Run affected tests before push
.lintstagedrc.json # Lint-staged configuration (Nx-aware)
.commitlintrc.json # Commit message rules
.gitleaks.toml # Secret scanning config
package.json # Updated with husky + lint-staged + commitlint
iOS (using git hooks directly)
.githooks/
├── pre-commit # SwiftLint + SwiftFormat on staged files
├── commit-msg # Validate commit message format
└── pre-push # Run tests before push
scripts/
└── install-hooks.sh # Hook installation script
Hooks installed
pre-commit
- Lint staged files (ESLint/SwiftLint)
- Format staged files (Prettier/SwiftFormat)
- Check for secrets (gitleaks)
- Block commits with errors
commit-msg
- Enforce conventional commits format
- Validate message length
- Check for required prefixes
pre-push
- Run test suite (NEAN: affected tests only for speed)
- Block push if tests fail
- Optional: run full build
Workflow
- Detect or specify platform
- Install hook dependencies
- Create hook scripts
- Configure hook behavior
- Verify hooks work with test commit
Secret scanning
Uses gitleaks to detect:
- API keys
- Passwords
- Tokens
- Private keys
- Connection strings
MERN integration notes
When used after /mern-scaffold:
- Detects existing pnpm workspace and turbo config
- Adds dependencies to root package.json
- Hooks run the same quality gates as CI (lint, format, test)
- Complements the existing ci.yml workflow
NEAN integration notes
When used after /nean-scaffold:
- Detects existing Nx workspace (
nx.json) - Adds dependencies to root package.json (npm)
- Pre-commit runs
npx nx affected --target=linton staged files - Pre-push runs
npx nx affected --target=test - Uses Nx's intelligent caching for faster hook execution
- Complements the existing ci.yml workflow
iOS integration notes
When used after /ios-scaffold:
- Detects project.yml (XcodeGen), Package.swift, or *.xcodeproj
- Creates
.githooks/directory with shell scripts - Pre-commit runs SwiftLint + SwiftFormat on staged .swift files
- Pre-push runs xcodebuild test
- Includes
scripts/install-hooks.shfor team onboarding - Complements the existing ci.yml workflow
Output
- Hooks installed
- Dependencies added
- Test commit instructions
- Remind to run
/github-securefor repository-level security
Reference
For hook configurations and customization, see reference/github-hooks-reference.md