fix-issues

fix-issues is a skill for Claude Code, Codex from kossakovsky/selfhost-ai. It costs 80 tokens per session (2,153 once invoked), scanned A, original, Apache-2.0.

A process for fixing multiple open GitHub issues from investigation through implementation, review, release, and optional publishing. GitHub is a platform for hosting code and tracking issues; a worktree is an isolated copy of a repository.

In plain words
What is it for?
Use it to triage issues, create isolated worktrees, assign implementation and review work, merge fixes into development and release branches, and publish releases or comments.
Why use it?
It organizes parallel issue work while keeping changes separate, reviewed, and integrated in a controlled order.

Skill for Claude CodeCodex

Install

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.

agentmods
npx agentmods add skills/kossakovsky/selfhost-ai/fix-issues
Any agent
npx skills add kossakovsky/selfhost-ai --skill fix-issues
Clone the repo
git clone --depth 1 https://github.com/kossakovsky/selfhost-ai

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for fix-issues

README.md
[![agentmods](https://agentmods.dev/badge/skills/kossakovsky/selfhost-ai/fix-issues.svg)](https://agentmods.dev/skills/kossakovsky/selfhost-ai/fix-issues)
Your own site
<a href="https://agentmods.dev/skills/kossakovsky/selfhost-ai/fix-issues"><img src="https://agentmods.dev/badge/skills/kossakovsky/selfhost-ai/fix-issues.svg" alt="Measured on agentmods" height="20"></a>
Per session 80 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,153 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00080 $0.02153
Opus 5 $0.00040 $0.01077
Sonnet 5 $0.00016 $0.00431
Haiku 4.5 $0.00008 $0.00215

Measured 4d ago against content hash 9ae4a08cf92e, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

fix-issues 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 4d 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.

.claude/skills/fix-issues/SKILL.md · 95 lines

How it starts

The opening of the file, as written. The whole thing — 95 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Batch Issue Fixing Pipeline

Arguments: $ARGUMENTS — optional space-separated issue numbers to limit the batch. Empty means all open issues.

This skill encodes the full process: triage -> parallel fixes in isolated worktrees -> merge into develop -> release -> final review -> publish. Follow the phases in order. All gh commands run from the repo root (no --repo flag needed).

Phase 0 — Preflight

  1. git fetch origin and confirm the working tree is clean (git status --short). If dirty, stop and ask the user.
  2. Compare branches: git rev-list --left-right --count origin/main...origin/develop.
    • If develop is strictly behind main (0 unique commits), fast-forward it: git push origin origin/main:develop.
    • If develop has unique commits, ask the user how to proceed before branching anything.
  3. All fix branches are created from origin/develop.

Phase 1 — Triage

  1. List issues: gh issue list --state open --limit 100 --json number,title,labels.
  2. Read EVERY issue in scope with comments: gh issue view <n> --comments. Comments often contain the real root cause or a maintainer-agreed approach.
  3. Build a summary table (number, type bug/feature, one-line problem). Explicitly check for duplicates and overlapping fixes.
  4. Ask the user (AskUserQuestion) before starting work:
    • Scope: which issues go into this batch (call out breaking changes and pure feature requests separately).
    • Whether to auto-merge fix PRs into develop or leave them open for manual review.
    • Anything that looks external/not-a-bug (e.g. Docker Hub rate limits): propose fix / message-only / skip-and-close options.
  5. Decide the version bump now (semver table in CLAUDE.md) so the release phase is mechanical. The user may override.

Phase 2 — Parallel fixes (one worktree + one agent per issue)

  1. Create worktrees as siblings of the repo:
    git worktree add ../<repo-name>-worktrees/issue-<n> -b fix/issue-<n>-<slug> origin/develop
    
    Use fix/ for bugs, feat/ for features (feat! commit prefix for breaking changes).
  2. Launch one background agent per issue, all in parallel. Each agent prompt MUST include:
    • Work EXCLUSIVELY in its worktree path; never touch the main checkout.
    • Work fully autonomously; never wait for user input.
    • Step 1: read the issue with gh issue view <n> --comments and the worktree's CLAUDE.md.
    • Step 2: invoke the Skill tool with feature-dev:feature-dev to implement. Skip interactive steps; prefer the minimal robust fix.
    • Step 3: commit with a conventional-commit message.
    • Step 4: invoke the Skill tool with pr-review-toolkit:review-pr on the diff origin/develop...HEAD. Fix ALL critical and important findings; ignore nitpicks. Commit fixes.
    • Step 5: git push -u origin <branch> and open a PR to develop with gh pr create --base develop. Body in plain English: summary, what changed, verification, and the line Fixes #<n>.
    • Constraints: do NOT modify CHANGELOG.md or VERSION (prevents 7-way merge conflicts; release handles both). Verification: bash -n on every changed script, cp .env.example .env (gitignored, delete after) + docker compose -p localai config --quiet, node --check welcome/app.js if touched. Docker CLI may not be on PATH — try /usr/local/bin/docker.
    • Known facts from the codebase report (file, line numbers, verified behavior) — give each agent everything already learned during triage.
    • Push the agent to verify root causes upstream (WebFetch the upstream repo/Dockerfile/entrypoint) rather than trusting the issue's proposed fix. Issues regularly misdiagnose (wrong mount path vs stale volume; missing tool vs wrong endpoint).

Read the full file on GitHub · 95 lines

Changes

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.

  1. 4d ago First seen · 95 lines · 80 tokens per session scan A 9ae4a08cf92e

Subscribe to this mod's changes

fix-issues is a skill published in the GitHub repository kossakovsky/selfhost-ai (921 stars, last pushed 6d ago), licensed Apache-2.0. It adds 80 tokens to every session and 2,153 once invoked, about $0.0004 per session on Opus 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.

Related

Other skills, from other repositories

release

Cut a Piper release — choosing the version, the green-tip gate, tagging, verifying goreleaser's output, smoke-testing the published installer, and publishing notes. Use when asked to cut, tag, or publish a release, or to promote an RC to final.

piperbox/piper · 56 tokens

ship-release

Drive a Telepresence release from a prepared branch all the way through CI, docs, the Releases workflow, and PR merges. Assumes make prepare-release has already been run locally and the branch with that commit was pushed and a PR opened. Use when the user says "ship the release", or "complete the release". User-only.

telepresenceio/telepresence · 72 tokens

changelog-entry

Add a new entry to CHANGELOG.yml under the current unreleased version (or create the version block if needed), then regenerate documentation. Use when the user says things like "add a changelog entry", "log this fix in the changelog", or "/changelog-entry".

telepresenceio/telepresence · 60 tokens

prepare-release

Create the local release commit and tags by setting TELEPRESENCEVERSION and running make prepare-release. Stops at the local commit+tags - pushing is the ship-release skill's job. Use when the user explicitly asks to prepare a release, RC, or test build. User-only.

telepresenceio/telepresence · 60 tokens

release

Perform Harbor release procedures — version bumping, codegen, committing, pushing, and drafting GitHub releases. Use this skill when the user wants to release a new version of Harbor, bump the version number, create a release on GitHub, run the release codegen pipeline, or anything related to shipping a new Harbor…

av/harbor · 98 tokens

create-release

Create a versioned GitHub release with changelog.

fpindej/netrock · 10 tokens