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 pivoshenko/pivoshenko.ai --skill git-issue-startgit clone --depth 1 https://github.com/pivoshenko/pivoshenko.aiWrote 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/pivoshenko/pivoshenko.ai/git-issue-start)<a href="https://agentmods.dev/skills/pivoshenko/pivoshenko.ai/git-issue-start"><img src="https://agentmods.dev/badge/skills/pivoshenko/pivoshenko.ai/git-issue-start/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/pivoshenko/pivoshenko.ai/git-issue-start"><img src="https://agentmods.dev/badge/skills/pivoshenko/pivoshenko.ai/git-issue-start.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.00174 | $0.01578 |
| Opus 5.5 | $0.00070 | $0.00631 |
| Sonnet 5.5 | $0.00035 | $0.00316 |
| Haiku 4.5 | $0.00017 | $0.00158 |
Grade A, and why
git-issue-start 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 29d 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 — 84 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Git Issue Start
Issue -> assign -> branch -> checked out. No confirm.
Flow
-
Resolve the issue:
- Number given ->
gh issue view <n> --json number,title,labels,state,assignees,body - Title or topic given ("the oauth issue") ->
gh issue list --search "<terms>" --state open --json number,title --limit 10, then view the match. Exactly one hit -> take it. Several -> list them, ask which. None -> stop, say so. Why -> guessing an issue number assigns the wrong person to the wrong work and it is invisible until someone reads the tracker
- Number given ->
-
state == CLOSED-> stop. Surface number, title, and that it is closed. Never reopen here -
The issue has sub-issues (
gh issue view <n> --json subIssues -q '.subIssues.nodes | length'> 0) -> stop, list the open ones, and ask which to start. Then run this skill again on that number. Why -> a parent's work is its sub-issues, one branch each; a single branch and a single assignment for the whole tree is the wrong unit -
Assigned to someone else -> stop and ask before taking it. Own login from
gh api user -q .login; already yours -> proceed, assignment step is a no-op. Why -> an assignee is a claim by a person, and silently overwriting it is how two people ship the same fix -
Dirty tree -> stop. Tell the user to stash or commit first. Same reasoning as
git-branch-createstep 2:checkout -bcarries staged and unstaged changes into the new branch silently -
Derive the branch type from the issue's
type: *label:Issue label Branch type type: bugfixtype: enhancementfeattype: documentationdocstype: maintenancechoretype: securityfixtype: dependenciesbuildBare names count too (
bug,enhancement,documentation,maintenance,security,dependencies,deps) - same row.type: breakingcarries no branch type of its own; fall throughNo type label -> read the title's conventional prefix (
fix(api): ...->fix). No prefix either -> infer from title + body againstgit-commit's Type Pick table. Two type labels -> pick the dominant one, never compound the branch name -
Name and base follow
git-branch-createexactly - its Naming section and its base-detection incantation. Do not restate either. The desc is the issue title, kebab-cased, verb made imperative present, with the whole<type>/<desc>name 60 chars or fewer; over -> cut per that skill's desc rules, never truncate mid-word -
Name conflict check, before the tracker changes:
git show-ref --verify --quiet refs/heads/<name>succeeds -> the branch already exists; stop, surface the conflict, no overwrite. Why -> checking after assignment would halt the run with the issue assigned and labelled in progress but no branch created - the exact half-state the Rules forbid -
Assign to self:
gh issue edit <n> --add-assignee @me -
In-progress label, only if one already exists. Fetch the repo's labels once per run per canon label resolution:
gh label list --limit 200 --json name -q '.[].name'Chain, first existing name wins:
status: in progress->status: in-progress->in progress->in-progress->wip. Whole chain missing -> skip the step silently, no output, no error. Nevergh label create. Why -> this skill syncs globally and runs on repos with different label sets; the user's own taxonomy has no in-progress label at all, so absent is the normal case, not a failure -
Create + checkout per
git-branch-createstep 5 -
Record the issue on the branch:
git config branch.<name>.issue <n>Why -> the branch name carries no ticket id, and
git-commitreads this key to write theCloses #<n>trailer. Skip it and the commit has no link back to the tracker. Notgh issue develop- the siblings readbranch.<name>.issue, and develop's GitHub-side link carries no local key forgit-commitandgit-pr-createto read -
Print the report
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.
- 29d ago Changed eac9a2983064
- 1mo ago Changed 91cc1a18cde0
- 1mo ago First seen · 84 lines · 174 tokens per session scan A 8d87088ca8ad
git-issue-start is a skill published in the GitHub repository pivoshenko/pivoshenko.ai (6 stars, last pushed yesterday), licensed MIT. It adds 174 tokens to every session and 1,578 once invoked, about $0.0007 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-09-14.
Other skills, from other repositories
pod-init
Initialize CocoPlus project bundle in the current directory. Creates .cocoplus/ directory structure, copies all templates, initializes AGENTS.md, project.md, flow.json, and creates the initial git commit. Run this once per project before using any other CocoPlus command.
friction-log
File contributor or agent papercuts as GitHub issues labeled friction, or investigate those issues as the daily friction-log Cloud Agent. Use when you hit repo friction, when asked to log friction, or when spawned to resolve open friction issues.
github-operations
GitHub CLI operations for issues, PRs, milestones, and Projects v2. Covers gh commands, REST API patterns, and automation scripts. Use when managing GitHub issues, PRs, milestones, or Projects with gh.
github-ops
GitHub repository operations — issues, PRs, code search, and config-as-code workflows. Use when creating a GitHub issue for a network finding, opening a pull request for a config change, searching repos for IP or VLAN references, or committing an audit report to a repository.
split-and-ship
Execute an approved split plan, shipping each change group separately as its own branch and PR or as sequential commits on the current branch. Use when the user asks to "split and ship", "ship the split plan", "create separate PRs", or "split changes into branches".
jira-execute
Implement a Jira issue, open a pull request, and report the work on the issue. Insert into the prompt of a Jira column rule that does the building.