Git Hooks
Prorise-cool/Claude-Code-Multi-Agent
Central authority on git hook implementations, modern best practices, and tooling for .NET/C, JavaScript/TypeScript, Python, and polyglot repositories.
A skill your agent uses when configuring Git hooks in .NET projects before team commits occur, to enforce commit message standards and code formatting automatically
$ npx skills add SebastienDegodez/copilot-instructions --skill setup-husky-dotnet -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install SebastienDegodez/copilot-instructions setup-husky-dotnet --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/SebastienDegodez/copilot-instructions.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/setup-husky-dotnet .claude/skills/setup-husky-dotnet && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "setup-husky-dotnet" agent skill from https://github.com/SebastienDegodez/copilot-instructions/tree/main/skills/setup-husky-dotnet into .claude/skills/setup-husky-dotnet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup-husky-dotnet", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/SebastienDegodez/copilot-instructions/tree/main/skills/setup-husky-dotnetType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add SebastienDegodez/copilot-instructions --skill setup-husky-dotnet -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install SebastienDegodez/copilot-instructions setup-husky-dotnet --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SebastienDegodez/copilot-instructions.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/setup-husky-dotnet .agents/skills/setup-husky-dotnet && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "setup-husky-dotnet" agent skill from https://github.com/SebastienDegodez/copilot-instructions/tree/main/skills/setup-husky-dotnet into .agents/skills/setup-husky-dotnet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup-husky-dotnet", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add SebastienDegodez/copilot-instructions --skill setup-husky-dotnet -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install SebastienDegodez/copilot-instructions setup-husky-dotnet --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SebastienDegodez/copilot-instructions.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/setup-husky-dotnet .cursor/skills/setup-husky-dotnet && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "setup-husky-dotnet" agent skill from https://github.com/SebastienDegodez/copilot-instructions/tree/main/skills/setup-husky-dotnet into .cursor/skills/setup-husky-dotnet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup-husky-dotnet", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/SebastienDegodez/copilot-instructions.git --path skills/setup-husky-dotnet--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add SebastienDegodez/copilot-instructions --skill setup-husky-dotnet -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install SebastienDegodez/copilot-instructions setup-husky-dotnet --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SebastienDegodez/copilot-instructions.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/setup-husky-dotnet .gemini/skills/setup-husky-dotnet && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "setup-husky-dotnet" agent skill from https://github.com/SebastienDegodez/copilot-instructions/tree/main/skills/setup-husky-dotnet into .gemini/skills/setup-husky-dotnet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup-husky-dotnet", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install SebastienDegodez/copilot-instructions setup-husky-dotnetInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add SebastienDegodez/copilot-instructions --skill setup-husky-dotnet -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/SebastienDegodez/copilot-instructions.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/setup-husky-dotnet .github/skills/setup-husky-dotnet && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "setup-husky-dotnet" agent skill from https://github.com/SebastienDegodez/copilot-instructions/tree/main/skills/setup-husky-dotnet into .github/skills/setup-husky-dotnet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup-husky-dotnet", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add SebastienDegodez/copilot-instructions --skill setup-husky-dotnet -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install SebastienDegodez/copilot-instructions setup-husky-dotnet --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SebastienDegodez/copilot-instructions.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/setup-husky-dotnet .opencode/skills/setup-husky-dotnet && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "setup-husky-dotnet" agent skill from https://github.com/SebastienDegodez/copilot-instructions/tree/main/skills/setup-husky-dotnet into .opencode/skills/setup-husky-dotnet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup-husky-dotnet", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
setup-husky-dotnetA skill your agent uses when configuring Git hooks in .NET projects before team commits occur, to enforce commit message standards and code formatting automatically
Setup Husky Dotnet is an agent skill from SebastienDegodez/copilot-instructions. Use when configuring Git hooks in .NET projects before team commits occur, to enforce commit message standards and code formatting automatically
Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts and assets (for example `troubleshooting.md`).
It sits in Development, covering Commit messages and Linting and formatting. It works with .NET and Git. The repository describes itself as: A comprehensive codebase of best practices, coding rules, and workflow automation for AI-assisted development with GitHub Copilot. Includes DDD, Clean Architecture, testing… The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 0f0dccf. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/, which the agent can run.
Shell commands in SKILL.md call:
dotnetgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Setup Husky Dotnet loads about 1.3k tokens when it runs. Until then it costs about 41 tokens; SKILL.md has 449 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from SebastienDegodez/copilot-instructions at commit 0f0dccf, republished under its Apache-2.0 licence (© SebastienDegodez). 449 words, ~1,348 tokens.
.claude/skills/setup-husky-dotnet/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Install and configure Husky Git hooks for .NET projects using dotnet tool (not npm). Enforces conventional commit messages and code formatting via git hooks.
When NOT to use: If .NET SDK unavailable, manually configure git hooks instead.
Husky (dotnet tool) is pure .NET. Your environment needs:
.NET SDK 10.0+dotnet CLI available in PATHgit initializedNo Node.js, npm, or JavaScript tools required.
1. Create tool-manifest.json + install Husky dotnet tool
2. Enable git hook infrastructure with dotnet husky install
3. Create commit-msg hook that validates message format
4. Create pre-commit hook that runs dotnet-format
5. MANDATORY: Test hooks with both valid + invalid commits
6. Commit .husky/ and task-runner.json to git| Step | Command | Creates | Purpose |
|---|---|---|---|
| Setup | dotnet new tool-manifest | .config/dotnet-tools.json | Tool tracking |
| Install | dotnet tool install husky | Adds Husky to tooling | Makes Husky available |
| Enable | dotnet husky install | .husky/ directory | Prepares git hook system |
| Msg Hook | dotnet husky add commit-msg | Hook file | Validates commit format |
| Pre-Commit | dotnet husky add pre-commit | Hook file | Runs formatting before commit |
CRITICAL - Run these commands NOW:
dotnet --version # Must return 6.0+
git --version # Must work
dotnet-format --version # Must be installedIf ANY fails, STOP — install missing tools before proceeding.
Required software:
git init if needed)dotnet tool install -g dotnet.formatStep 1: Create tool manifest + Install Husky (in project root)
cd your-dotnet-project
# Create reproducible tool manifest
dotnet new tool-manifest
# Install Husky as .NET tool
dotnet tool install husky
# Initialize git hook system
dotnet husky installVerify: ls -la .husky/ shows directory with subdirectories.
Step 2: Setup hooks and config
Copy the C# validator to your project:
mkdir -p .husky/csx
cp ./commit-lint.csx .husky/csx/commit-lint.csxCopy task-runner.json from skill assets/ to project root:
cp ./task-runner.json.example ./task-runner.jsonNote: task-runner.json.example contains BOTH commit-msg and pre-commit tasks. Use as-is.
Create both hooks:
dotnet husky add commit-msg -c "dotnet husky run --name commit-message-linter"
dotnet husky add pre-commit -c "dotnet husky run --name dotnet-format"Done! Both hooks are now configured.
Step 3: MANDATORY - Test hooks
⚠️ DON'T SKIP TESTING
# Create safe test branch (NEVER test on main)
git checkout -b test-hooks-validation
# Test 1: Invalid message MUST be rejected
echo "dummy" > test.cs
git add test.cs
git commit -m "bad message" # Should FAIL
echo $? # Must be 1 (failure)
# Test 2: Valid message MUST be accepted
git commit --amend -m "feat(test): verify hooks working" # Should SUCCEED
echo $? # Must be 0 (success)
# Cleanup
git checkout main
git branch -D test-hooks-validationBoth tests must pass before proceeding.
scripts/ — Reusable code:
commit-lint.csx — C# validator for conventional commits (copy to .husky/csx/)assets/ — Configuration examples:
task-runner.json.example — Hook task configuration (copy to project root)| Mistake | Prevention |
|---|---|
dotnet --version fails | Install .NET 6.0+, verify PATH before setup |
.husky/ not created | Run dotnet husky install in project root |
| Hooks don't execute | Check: ls -la .husky/commit-msg exists |
| Tests show git succeeds with invalid message | Hooks never ran. Check task-runner.json syntax. |
dotnet-format not found during pre-commit | Install: dotnet tool install -g dotnet.format |
MUST commit:
.husky/ directory (all files)task-runner.json (hook configuration).config/dotnet-tools.json (tool version lock)DO NOT commit:
Result: Team clones repo → dotnet tool restore → hooks active immediately.
Husky runs on developer machines only, NOT in CI/CD (by design).
CI must validate separately:
dotnet-format --verify-no-changesSee troubleshooting.md in this skill for:
© SebastienDegodez, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (scripts, assets) in skills/setup-husky-dotnet of SebastienDegodez/copilot-instructions.
Open the folder on GitHubat commit 0f0dccf
Setup Husky Dotnet next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Setup Husky Dotnet this skillSebastienDegodez/copilot-instructions | 198 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Git HooksProrise-cool/Claude-Code-Multi-Agent | 305 | — | ~3.6k | Automated safety check: Notes | None | |
| Saleor Commit Workflowsaleor/saleor | 23k | — | ~575 | Automated safety check: Pass | BSD-3-Clause | |
| Lint Commit PRTresjs/tres | 3.8k | — | ~1.1k | Automated safety check: Pass | MIT | |
| PR Pushicebear0828/codex-proxy | 1.8k | — | ~2.2k | Automated safety check: Notes | Custom licence | |
| PR Pushicebear0828/codex-proxy | 1.8k | — | ~2.3k | Automated safety check: Notes | Custom licence |
Prorise-cool/Claude-Code-Multi-Agent
Central authority on git hook implementations, modern best practices, and tooling for .NET/C, JavaScript/TypeScript, Python, and polyglot repositories.
saleor/saleor
Commits changes in the Saleor codebase and works through pre-commit hook failures from ruff, mypy, the GraphQL schema check and the migrations check.
Tresjs/tres
Lint local changes, auto-fix, conventional commit, and optionally create PR
icebear0828/codex-proxy
Package the current working changes into a standards-compliant codex-proxy pull request: branch hygiene, commit message linting, CHANGELOG prompt, conventional commit, push, and gh pr create against…
icebear0828/codex-proxy
Package the current working changes into a standards-compliant codex-proxy pull request: branch hygiene, commit message linting, CHANGELOG prompt, conventional commit, push, and gh pr create against…
antiwork/gumroad
Stage and commit changes with a clear, concise commit message.
SebastienDegodez/copilot-instructions
A skill your agent uses when domain logic leaks into API/Infrastructure, project references violate layer boundaries, or you need to decide between CQS (always), CQRS bus (complex domains), and DDD…
SebastienDegodez/copilot-instructions
A skill your agent uses when writing tests from the outside-in, defining behavior before code, or any feature where tests should start from observable business behavior and let internal design emerge
SebastienDegodez/copilot-instructions
A skill your agent uses when building Model Context Protocol (MCP) servers in .NET, configuring tools, transports (SSE/stdio), JSON serialization for AOT, or testing MCP endpoints
SebastienDegodez/copilot-instructions
A skill your agent uses when creating OpenAPI mock examples for Microcks, setting up request/response routing with dispatchers, or mapping request fields to mock responses
SebastienDegodez/copilot-instructions
A skill your agent uses when understanding project composition by language, measuring code change impact, or generating code statistics for CI/CD metrics
SebastienDegodez/copilot-instructions
A skill your agent uses when listing all methods, functions, or classes in a file, exploring unfamiliar code, getting API overviews, or deciding what to read selectively without loading entire files
Categories
A skill your agent uses when configuring Git hooks in .NET projects before team commits occur, to enforce commit message standards and code formatting automatically. Setup Husky Dotnet is an agent skill from SebastienDegodez/copilot-instructions.
Setup Husky Dotnet fits situations like: configuring Git hooks in .NET projects before team commits occur; enforce commit message standards and code formatting automatically.
Run `npx skills add SebastienDegodez/copilot-instructions --skill setup-husky-dotnet -a claude-code`. Or copy the skill folder (skills/setup-husky-dotnet in SebastienDegodez/copilot-instructions) into .claude/skills/setup-husky-dotnet in your project. Claude Code loads it when a task matches its description.
Run `npx skills add SebastienDegodez/copilot-instructions --skill setup-husky-dotnet -a codex`. Or copy the skill folder (skills/setup-husky-dotnet in SebastienDegodez/copilot-instructions) into .agents/skills/setup-husky-dotnet in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add SebastienDegodez/copilot-instructions --skill setup-husky-dotnet -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/setup-husky-dotnet, .gemini/skills/setup-husky-dotnet, .github/skills/setup-husky-dotnet and .opencode/skills/setup-husky-dotnet in your project.
Going by SKILL.md and its folder, Setup Husky Dotnet needs the command-line tools its instructions call (dotnet and git). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Setup Husky Dotnet is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.3k tokens (SKILL.md is roughly 5.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Setup Husky Dotnet: Git Hooks (Prorise-cool/Claude-Code-Multi-Agent, 305 stars), Saleor Commit Workflow (saleor/saleor, 23k stars), Lint Commit PR (Tresjs/tres, 3.8k stars) and PR Push (icebear0828/codex-proxy, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
SebastienDegodez (a GitHub user) maintains it in SebastienDegodez/copilot-instructions, which has 198 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 6, 2026.
Source: SebastienDegodez/copilot-instructions on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.