git-machete is a command-line tool that organizes Git branches and helps automate rebase, merge, push, and pull workflows. It is for developers managing repositories with multiple branches, including topic branches and branches checked out for review. The catalogue instruction and skill support using its repository-organization workflow.
Borrowing it
Nothing to install: this file belongs to VirtusLab/git-machete. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/VirtusLab/git-machete/develop/AGENTS.mdgit clone --depth 1 https://github.com/VirtusLab/git-macheteWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/virtuslab/git-machete/agents-md)<a href="https://agentmods.dev/instructions/virtuslab/git-machete/agents-md"><img src="https://agentmods.dev/badge/instructions/virtuslab/git-machete/agents-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/virtuslab/git-machete/agents-md"><img src="https://agentmods.dev/badge/instructions/virtuslab/git-machete/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.01620 | $0.01620 |
| Opus 5.5 | $0.00648 | $0.00648 |
| Sonnet 5.5 | $0.00324 | $0.00324 |
| Haiku 4.5 | $0.00162 | $0.00162 |
Grade A, and why
git-machete AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Conventions for AI coding agents
Tooling
- Run autoformatters and linters via
tox. Never invokeflake8,isort,mypy,vulture,pylint(etc.) directly - go through their respectivetox -e <env>invocation so dependency versions stay pinned. - Exception: do NOT run
tox -e flake8ortox -e vulture(or those binaries directly). They hang indefinitely inside Cursor's terminal for an unidentified reason - rely on CI to catch any violations. - Run tests with
tox -e py [-- <pytest flags like -k>...]. Do NOT runpytest,python -m pytest, or any tox-built venv's pytest binary directly. Tox'spassenvshielding is what keeps test runs deterministic- bypassing it lets dev-shell env vars (e.g.
GIT_MACHETE_DIFF_OPTS) leak into the test process and produce failures that don't reproduce in CI.
- bypassing it lets dev-shell env vars (e.g.
- Use
tox -e py(the full suite, several minutes) sparingly - by default scope it to the most likely affected tests via-k,-m, or explicit file/class/method selectors, e.g.tox -e py -- tests/test_cli.py tests/test_anno.py -k mutex. Only fall back to the full suite when the change is wide in scope (parser refactors, shared fixtures, base classes, ...) or when a scoped run already passes and you want a final pre-push sanity check. - On macOS, skip the zsh subset of completion E2E tests (flaky on Mac):
tox -e test-completions -- -k "not zsh". CI runs the full set on Linux.
Git
- Don't
git commitorgit pushunless explicitly asked.
Tests
- Skip tests that require a minimum Git version with
@pytest.mark.skipif(get_git_version() < (X, Y), reason="..."), not with anif get_git_version() < (X, Y): returnearly-return at the top of the test body. The decorator surfaces the skip in pytest's report (and in the JUnit XML CI uploads); the early-return silently masquerades as a pass. - Prefer
assert_success(cmd_and_args, expected_output)over a barelaunch_command(cmd_and_args)whenever a command is run for its effect. A barelaunch_commandthrows the command's entire output on the floor, so any regression in what it prints (a reworded message, a wrong/missing branch name, a stray extra line, a wrong singular/plural) goes completely unnoticed - the call still "passes".assert_successpins the whole output down, so it doubles as the regression test for that output. Reserve a barelaunch_commandfor the cases where asserting the full output is genuinely troublesome (non-deterministic output such as commit hashes or--verbose/git-subprocess noise leaking into the captured text), and even then prefer asserting whatever deterministic prefix/suffix you can. - Assert on the full command output rather than substring presence.
Use
assert_success(cmd_and_args, expected_output)(or, for ANSI/colored runs where--color=alwaysproduces escape codes,raw_output = launch_command(...); assert raw_output == expected_ansi) so the whole rendering is pinned down at once. Avoidassert "<phrase>" in output/assert "<phrase>" not in outputfor command-output checks - a substring match silently tolerates stray extra lines, misordered sections, the same phrase landing on the wrong row, or new (unintended) labels appearing elsewhere, all of which a full-output equality assertion would catch on the first run. Exception: substring checks are legitimate when the asserted invariant is genuinely scoped to one fragment of the output (e.g. "this warning text appears somewhere") and the rest of the output is either non-deterministic or already covered by another test.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago First seen · 92 lines · 1,620 tokens per session scan A eb02b26f34a8
git-machete AGENTS.md is an instructions file published in the GitHub repository VirtusLab/git-machete (1,149 stars, last pushed 3d ago), licensed MIT. It adds 1,620 tokens to every session, about $0.0065 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
git-machete AGENTS.md compared with instructions from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| git-machete AGENTS.mdVirtusLab/git-machete | Instructions file | 1.1k | 3d ago | MIT | A | 1,620 | Codex, OpenCode |
| vscode buildNext.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 9,719 | GitHub Copilot |
| next.js AGENTS.mdvercel/next.js | Instructions file | 143k | today | MIT | A | 7,461 | Codex, OpenCode |
| langchain AGENTS.mdlangchain-ai/langchain | Instructions file | 149k | yesterday | MIT | A | 4,680 | Codex, OpenCode |
| vscode oss-third-party-notices.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 5,516 | GitHub Copilot |
| vscode copilot-instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 3,093 | GitHub Copilot |
| deepseek-harness AGENTS.mddeepseek-ai/deepseek-harness | Instructions file | 274k | 2d ago | MIT | A | 4,313 | Codex, OpenCode |