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.
Runs the local equivalent of the CI merge gate before you push.
$ npx skills add strands-agents/harness-sdk --skill pre-push -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install strands-agents/harness-sdk pre-push --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/strands-agents/harness-sdk.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/pre-push .claude/skills/pre-push && 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 "pre-push" agent skill from https://github.com/strands-agents/harness-sdk/tree/main/.agents/skills/pre-push into .claude/skills/pre-push/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pre-push", 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/strands-agents/harness-sdk/tree/main/.agents/skills/pre-pushType 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 strands-agents/harness-sdk --skill pre-push -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install strands-agents/harness-sdk pre-push --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/strands-agents/harness-sdk.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/pre-push .agents/skills/pre-push && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pre-push" agent skill from https://github.com/strands-agents/harness-sdk/tree/main/.agents/skills/pre-push into .agents/skills/pre-push/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pre-push", 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 strands-agents/harness-sdk --skill pre-push -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install strands-agents/harness-sdk pre-push --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/strands-agents/harness-sdk.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/pre-push .cursor/skills/pre-push && 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 "pre-push" agent skill from https://github.com/strands-agents/harness-sdk/tree/main/.agents/skills/pre-push into .cursor/skills/pre-push/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pre-push", 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/strands-agents/harness-sdk.git --path .agents/skills/pre-push--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 strands-agents/harness-sdk --skill pre-push -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install strands-agents/harness-sdk pre-push --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/strands-agents/harness-sdk.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/pre-push .gemini/skills/pre-push && 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 "pre-push" agent skill from https://github.com/strands-agents/harness-sdk/tree/main/.agents/skills/pre-push into .gemini/skills/pre-push/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pre-push", 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 strands-agents/harness-sdk pre-pushInstalls 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 strands-agents/harness-sdk --skill pre-push -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/strands-agents/harness-sdk.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/pre-push .github/skills/pre-push && 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 "pre-push" agent skill from https://github.com/strands-agents/harness-sdk/tree/main/.agents/skills/pre-push into .github/skills/pre-push/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pre-push", 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 strands-agents/harness-sdk --skill pre-push -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install strands-agents/harness-sdk pre-push --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/strands-agents/harness-sdk.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/pre-push .opencode/skills/pre-push && 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 "pre-push" agent skill from https://github.com/strands-agents/harness-sdk/tree/main/.agents/skills/pre-push into .opencode/skills/pre-push/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pre-push", 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.
pre-pushRuns the local equivalent of the CI merge gate before you push.
Pre Push is an agent skill from strands-agents/harness-sdk. Runs the local equivalent of the CI merge gate before you push. Detects which areas (Python, TypeScript, docs) your changes touch, auto-fixes what it can, then runs only those checks. Use when the user asks to run pre-push checks, get push-ready, verify changes before pushing or opening a PR, "make sure CI will pass", or check lint/tests/types locally.
Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `run-checks.sh`).
It sits in Development, covering Linting and formatting. It works with Python and TypeScript. The repository describes itself as: Build an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python & TypeScript - any model, any cloud. The licence is Apache-2.0.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e519d67. 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 script files (Shell), which the agent can run.
Shell commands in SKILL.md call:
gitbashnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and npm, 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.
Pre Push loads about 1.4k tokens when it runs. Until then it costs about 91 tokens; SKILL.md has 796 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); files beside SKILL.md are not scanned.
The full file from strands-agents/harness-sdk at commit e519d67, republished under its Apache-2.0 licence (© strands-agents). 796 words, ~1,425 tokens.
.claude/skills/pre-push/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Get your branch push-ready: detect which areas your changes touch, auto-fix what's mechanically fixable, then run the same checks CI's merge gate runs for those areas — and triage whatever's left with the user.
This is a manually-invoked check, not a git hook — it runs only when you ask for it, so it never gets in the way of committing incrementally. Reach for it when you're about to push or open a PR. (When opening a PR, run this first, then use the pr-create / pr-writer skills to draft and open it.)
The repo's CI (.github/workflows/ci.yml) detects which of three areas changed and runs only those: python (strands-py/), typescript (strands-ts/), and docs (site/). This skill mirrors that routing locally.
bash .agents/skills/pre-push/run-checks.sh 2>&1Non-zero exit means something failed. On failure, the script prints a summary at the end with every failed step and the last 20 lines of its error output — everything you need to start fixing is in the tail of the output. Ignore noise earlier in the output.
The script runs from anywhere in the repo (it locates the root via git rev-parse --show-toplevel). From a subdirectory:
bash "$(git rev-parse --show-toplevel)/.agents/skills/pre-push/run-checks.sh"It detects the changed areas — comparing against the closest main/master base it can find (local or any remote, so upstream/main on a fork works too — fork-aware), plus staged, unstaged, and untracked changes — using the same path filters CI uses, then for each detected area runs two phases:
--fix, and lockfile sync. These are scoped to the files your change touches (so they never reformat unrelated files into your commit), write to working-tree files, and never fail the run.The script exits non-zero if any check fails after fixing.
Useful flags:
--list — show the detected areas and triggering files without running anything. Use first to confirm scope.--all — run every area regardless of what changed.--base <ref> — compare against <ref> instead of the auto-detected base.--heavy — also run the slow CI-parity steps skipped by default (browser tests, test:package, full Python version matrix). Slower, may need extra system deps; reach for it only when the change is risky in those dimensions.python / typescript / docs — run specific areas explicitly, overriding detection.If the script exits 0, you're done — report it and stop. If it exits non-zero, work the FAILED: items before calling the branch push-ready, splitting by whether the fix requires judgment:
How that split applies to the specific things phase 2 reports:
npm audit — a high-severity advisory may be a pre-existing transitive dependency issue outside this change. Surface it; don't block the user's work on it. Note it and move on.hatch/npm not found) — the script says how to install. Report it; don't silently work around it.After fixing anything, re-run the script to confirm green.
> label FAILED: label (printed inline as each check fails)============, each failed step is listed as --- FAILED: label --- followed by the last 20 lines of its output. This summary has everything needed to diagnose and fix.git diff before committing..agents/), say so — there's nothing the merge gate runs for it, and that's fine.© strands-agents, 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 1 other file in .agents/skills/pre-push of strands-agents/harness-sdk.
Open the folder on GitHubat commit e519d67
Pre Push 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 |
|---|---|---|---|---|---|---|
| Pre Push this skillstrands-agents/harness-sdk | 8.7k | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Git HooksProrise-cool/Claude-Code-Multi-Agent | 305 | — | ~3.6k | Automated safety check: Notes | None | |
| Plankton Code Qualityaffaan-m/ECC | 275k | 2 repos | ~1.3k | Automated safety check: Pass | MIT | |
| Code Qualitywaybarrios/opencode-power-pack | 533 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Zizkadb TestZIZKA-AI-SL/ZizkaDB | 123 | — | ~358 | Automated safety check: Pass | Custom licence | |
| Maintainopenwpm/OpenWPM | 1.4k | — | ~1.5k | Automated safety check: Pass | 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.
affaan-m/ECC
使用Plankton进行编写时代码质量强制执行——通过钩子在每次文件编辑时自动格式化、代码检查和Claude驱动的修复。
waybarrios/opencode-power-pack
Agents should invoke this skill for code reviews, linting/formatting setup, maintainability checks, complexity concerns, warning cleanup, coding standards, or quality gates in Rust, TypeScript…
ZIZKA-AI-SL/ZizkaDB
Run the full ZizkaDB test suite across all layers — lint, Python unit tests, SDK tests, MCP tests, TypeScript tests, and dashboard build verification.
openwpm/OpenWPM
A skill your agent uses to run a periodic codebase-health pass — dependency audit, lint, test suite, dead code / TODO scan, doc freshness, crosslink issue hygiene, and build artifacts.
athola/claude-night-market
Configures GitHub Actions CI/CD workflows for testing, linting, and deployment.
strands-agents/harness-sdk
Assess a published or in-progress documentation page for quality, accuracy, and voice compliance.
strands-agents/harness-sdk
Identify documentation gaps and prioritize the docs backlog.
strands-agents/harness-sdk
Review documentation drafts for voice consistency, structure, and terminology before PR submission.
strands-agents/harness-sdk
Draft or rewrite Strands Agents documentation pages. An agent skill from strands-agents/harness-sdk.
strands-agents/harness-sdk
Creates a GitHub pull request using the gh CLI. An agent skill from strands-agents/harness-sdk.
strands-agents/harness-sdk
Fetches PR review feedback and inline comments, categorizes them, and presents options to the user.
Works with
Categories
Runs the local equivalent of the CI merge gate before you push. Pre Push is an agent skill from strands-agents/harness-sdk. Runs the local equivalent of the CI merge gate before you push.
Pre Push fits situations like: the user asks to run pre-push checks; verify changes before pushing; make sure CI will pass; check lint/tests/types locally.
Run `npx skills add strands-agents/harness-sdk --skill pre-push -a claude-code`. Or copy the skill folder (.agents/skills/pre-push in strands-agents/harness-sdk) into .claude/skills/pre-push in your project. Claude Code loads it when a task matches its description.
Run `npx skills add strands-agents/harness-sdk --skill pre-push -a codex`. Or copy the skill folder (.agents/skills/pre-push in strands-agents/harness-sdk) into .agents/skills/pre-push 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 strands-agents/harness-sdk --skill pre-push -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pre-push, .gemini/skills/pre-push, .github/skills/pre-push and .opencode/skills/pre-push in your project.
Going by SKILL.md and its folder, Pre Push needs a shell for the scripts in its folder and the command-line tools its instructions call (git, bash and npm). Our summary lists: Python 3; A Bash shell.
SKILL.md contains no URLs. Its commands use git and npm, 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. Review the folder before installing.
Pre Push 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.4k tokens (SKILL.md is roughly 5.7k 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 Pre Push: Git Hooks (Prorise-cool/Claude-Code-Multi-Agent, 305 stars), Plankton Code Quality (affaan-m/ECC, 275k stars), Code Quality (waybarrios/opencode-power-pack, 533 stars) and Zizkadb Test (ZIZKA-AI-SL/ZizkaDB, 123 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
strands-agents (a GitHub organization) maintains it in strands-agents/harness-sdk, which has 8,731 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 7, 2026.
Source: strands-agents/harness-sdk on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.