Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add tmj-90/gaffer --skill create-branchgit clone --depth 1 https://github.com/tmj-90/gafferWrote 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/skills/tmj-90/gaffer/create-branch)<a href="https://agentmods.dev/skills/tmj-90/gaffer/create-branch"><img src="https://agentmods.dev/badge/skills/tmj-90/gaffer/create-branch/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/skills/tmj-90/gaffer/create-branch"><img src="https://agentmods.dev/badge/skills/tmj-90/gaffer/create-branch.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.00050 | $0.01061 |
| Opus 5.5 | $0.00020 | $0.00424 |
| Sonnet 5.5 | $0.00010 | $0.00212 |
| Haiku 4.5 | $0.00005 | $0.00106 |
Grade A, and why
create-branch 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 20d 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 — 74 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Get onto the working branch
All work happens on a gaffer/ feature branch, never on a protected branch
(main, master, release/*). In the factory the runner has already created that
branch in a throwaway git worktree and put you in it, so this skill is a short
verification, not a branching step. Only outside the factory do you create the
branch yourself.
Factory path — verify, do not create
- Read the expected branch and path from the REPO ACCESS BOUNDARY block of your prompt ("WRITABLE repos … on branch 'gaffer/ticket--…'").
- Check where you are:
git rev-parse --abbrev-ref HEADmust print exactly that branch name.HEAD(detached), a protected name, or a differentgaffer/branch means the environment is not what the factory guarantees:mark_ticket_blocked("on , expected ") and stop (on a resume, where that call is refused,request_decisionwith theticket_idand severityhuman_requiredinstead). Do not "fix" it withgit switch -corgit checkout -b— a new branch diverges from the one the runner will push and review. - Check the tree against the kind of run you are in:
- Fresh delivery —
git status --porcelainshould be empty. Runner files (.claude/,CLAUDE.factory.md,.mcp.json, thenode_modulessymlink) are git-excluded and will not show. If other uncommitted or untracked files are present, you did not create them:mark_ticket_blocked("worktree dirty on arrival: ") rather than building on unknown state. - Rework (your prompt shows why a previous attempt was rejected) — the branch
carries the previous attempt's commits. That is expected:
git log --oneline <default>..HEADshows them. Build on them and address every rejection reason. - Resume (your prompt says you are RESUMING) — prior work may be committed AND
uncommitted. A dirty tree is expected: read
git statusandgit diff, then continue. Never discard it.
- Fresh delivery —
- Proceed. Implement on this branch and commit to it
(
git add -A && git commit -m "deliver #<n>: <summary>"). Never push or open a PR: after its gates the runner does that itself when the operator has enabled it.
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.
- 20d ago Changed · -27 lines 5397a6351945
- 1mo ago First seen · 101 lines · 50 tokens per session scan A 22b65a840b7b
create-branch is a skill published in the GitHub repository tmj-90/gaffer (2 stars, last pushed 20d ago), licensed Apache-2.0. It adds 50 tokens to every session and 1,061 once invoked, about $0.0002 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-31.
Other skills, from other repositories
code-review-loop
Iterative review+fix loop for BASESHA..HEAD: generate findings, apply accepted fixes, run checks, commit, and re-review up to 3 iterations or until clean.
dedup
Dedupe-only pass for BASESHA..HEAD: remove duplicate code introduced by the diff or reuse existing shared utils; applies changes + commits.
plan-critique-loop
Critique and revise an existing plan doc up to 3 iterations, using accept/reject triage and stopping early when no important feedback remains. Use when refining a plan/.md before implementation.
besimple-tiny-broccoli
Small-change wrapper: implement → run repo checks → atomic commit → run dedup (BASESHA..HEAD).
claude-simplify-wrapper
Run Claude's built-in /simplify skill on BASESHA..HEAD, validate checks, and commit.
working-in-worktrees
Decides when agent work needs an isolated git worktree and how to create, enter, and clean one up safely. Use when starting code changes in a checkout that may be shared with another agent, dispatching a Linear task, executing a spec, or running any parallel work that mutates tracked files.