Agent skill

Kc Issue

by imran31415 in imran31415/kube-coder

Spin up an isolated agent to work a GitHub issue of kube-coder or any other repo checked out in the workspace.

MITAuto-check: notesDevelopment

Install Kc Issue

skills CLI
$ npx skills add imran31415/kube-coder --skill kc-issue -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install imran31415/kube-coder kc-issue --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/imran31415/kube-coder.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/kc-issue .claude/skills/kc-issue && rm -rf skills-src

Use ~/.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/

Facts

Skill name
kc-issue
GitHub stars
388
Token cost
~1.9k tokens
SKILL.md length
957 words
Files
3
Skills in repo
8
Repo updated
First seen
Licence
MIT

At a glance

Spin up an isolated agent to work a GitHub issue of kube-coder or any other repo checked out in the workspace.

  • Works in 2 steps: It branches from a freshly-fetched… → The agent is launched inside its own…
  • The user wants to work on issue N
  • SKILL.md covers Do this when invoked, Notes & footguns and Parallel: several issues at once
  • Runs Shell scripts from its folder; calls bash and git

What it does

Kc Issue is an agent skill from imran31415/kube-coder. Spin up an isolated agent to work a GitHub issue of kube-coder or any other repo checked out in the workspace. Given an issue number, pulls the issue text and launches a background Claude task that is BORN inside its own git worktree, branched from a freshly-fetched origin default branch, so it cannot work in the shared clone. Use whenever the user wants to "work on issue N", "start an agent on issue N", or set up a per-issue worktree. Also lists issue worktrees and their task status.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `kc-issue.sh` and `lint_test.sh`).

It sits in Development, covering Git worktrees. It works with GitHub and Git. The repository describes itself as: helm chart for a isolated dev coding environment pod in kubernetes. The licence is MIT.

When your agent uses it

  • The user wants to work on issue N
  • Start an agent on issue N
  • Set up a per-issue worktree

Example prompts

  • “work on issue N”
  • “start an agent on issue N”
  • “/kc-issue”

Requirements

  • A Bash shell
  • Pre-approved tools (allowed-tools): Bash, Read, mcp__dashboard__create_task, mcp__dashboard__list_tasks, mcp__dashboard__get_task

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. It branches from a freshly-fetched origin/, never a
  2. The agent is launched inside its own worktree, so it starts inside its

What it can do on your machine

Read from SKILL.md and the folder at commit fc0b886. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • mcp__dashboard__create_task
    • mcp__dashboard__list_tasks
    • mcp__dashboard__get_task

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • bash
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Kc Issue loads about 1.9k tokens when it runs. Until then it costs about 125 tokens; SKILL.md has 957 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~125
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, mcp__dashboard__create_task, mcp__dashboard__list_tasks, mcp__dashboard__get_task

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.

SKILL.md

The full file from imran31415/kube-coder at commit fc0b886, republished under its MIT licence (© imran31415). 957 words, ~1,930 tokens.

Download SKILL.mdSave it as .claude/skills/kc-issue/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
kc-issue
description
Spin up an isolated agent to work a GitHub issue of kube-coder or any other repo checked out in the workspace. Given an issue number, pulls the issue text and launches a background Claude task that is BORN inside its own git worktree, branched from a freshly-fetched origin default branch, so it cannot work in the shared clone. Use whenever the user wants to "work on issue N", "start an agent on issue N", or set up a per-issue worktree. Also lists issue worktrees and their task status.
allowed-tools
Bash, Read, mcp__dashboard__create_task, mcp__dashboard__list_tasks, mcp__dashboard__get_task
user-invocable
true
argument-hint
<issue-number> [--pr] | list | lint [file] | <slug> "free text"

kc-issue — one issue, one clean worktree, one agent

This is the reliable entrypoint for per-issue work — on kube-coder or any other repository checked out in the workspace. It removes the two things that made ad-hoc worktree use flaky:

  1. It branches from a freshly-fetched origin/<default branch>, never a stale local HEAD.
  2. The agent is launched inside its own worktree, so it starts inside its isolation and physically cannot forget to use it.

Which repository: the git checkout you run the script from (any folder in it, or one of its worktrees), or KC_REPO_ROOT=/home/dev/<repo>; the GitHub repo is read from its origin remote (KC_REPO_SLUG=owner/repo overrides). From /home/dev itself it falls back to /home/dev/kube-coder.

The heavy lifting is in kc-issue.sh next to this file. It does the git/fs part and prints JSON; you (the assistant) do the launch via create_task.

Do this when invoked

list — show existing issue worktrees + task status
bash
bash "$CLAUDE_SKILL_DIR/kc-issue.sh" list

Then call mcp__dashboard__list_tasks and correlate by worktree/branch so the user sees which issues have a live agent.

<issue-number> (optionally --pr) — start an agent on an issue

Step 1 — create/reuse the worktree and get the prompt. If the user passed --pr (auto-open a PR when done), set KC_AUTO_PR=1:

bash
# without --pr (default: preflight then STOP for review):
bash "$CLAUDE_SKILL_DIR/kc-issue.sh" <N>
# with --pr (preflight, push, open PR):
KC_AUTO_PR=1 bash "$CLAUDE_SKILL_DIR/kc-issue.sh" <N>

Capture the JSON it prints on stdout: {issue,title,url,worktree,branch,port,prompt_file,auto_pr,mode,repo_root,repo,slug,base_ref,lint,lint_blockers}.

mode says who makes the worktree:

  • server — this workspace's dashboard creates it when the Build launches (#701), so the Build is recorded with it: its Changes tab shows the diff and push command, and Settings → Worktrees lists it. worktree is where it will be; port is empty until launch.
  • script — an older workspace: the script created the worktree itself.

Step 1b — surface the issue-body lint (#569). The script lints the body before the worktree exists, because the body is baked verbatim into the agent prompt: a thin issue silently produces a thin prompt, and the cost is paid before anyone can react. Findings arrive two ways — human-readable on stderr, and structured in the JSON's lint array ({severity,code,message}).

If lint is non-empty, show the user the findings before Step 3 — a short list, one per line. Then:

  • lint_blockers > 0 (today: the needs-scoping label — the repo itself saying this isn't ready to implement): stop and ask whether to proceed. Spawning on a needs-scoping issue is almost always wrong, so this is the one case where you wait for an explicit yes.
  • warnings only: mention them in one line and continue. A terse issue is sometimes genuinely fine and the operator knows it — the script warns, it never blocks, and the human makes the call.

Never edit or enrich the issue body to silence a warning; the lint reports, it doesn't rewrite.

Step 2 — read the baked prompt (do NOT reconstruct it — use the file):

bash
cat <prompt_file>

Step 3 — launch the agent with mcp__dashboard__create_task:

  • prompt = the full contents of prompt_file
  • assistant = claude (default)
  • with mode: "server":
    • workdir = repo_root
    • isolate = true ← this is what forces isolation
    • worktree_slug = slug (so re-running an issue continues its worktree)
    • base_ref = base_ref
  • with mode: "script": workdir = the worktree path ← forces isolation

A 409 whose code is busy means an agent is already working this issue in that worktree — tell the user and offer its task instead of starting another.

Step 4 — confirm & report. Tell the user: the task id, and — from the worktree object in the response (server mode) or the JSON (script mode) — the branch, the worktree path and the preview port. Offer to show live output with mcp__dashboard__get_task; the Build's Changes tab is where they review the diff and copy the push command.

Show full SKILL.md (397 more words)Show less
<slug> "free text" — ad-hoc (no GitHub issue)

Same flow; the description text is used in place of an issue body — and it is linted the same way. This path is more exposed than the issue path: a one-line --desc becomes the entire specification the agent ever sees, so take its warnings seriously.

lint [file] — check a body without spawning anything
bash
bash "$CLAUDE_SKILL_DIR/kc-issue.sh" lint path/to/draft.md   # or pipe on stdin

Touches no git, no GitHub, no worktree. Findings print on stderr, JSON on stdout; exits 1 on a blocker. Useful for sanity-checking a draft issue before filing it, and it's what lint_test.sh drives.

Notes & footguns

  • The launched agent, not you, does the work. Your job is only to set up the worktree and launch. Don't start editing repo files in this chat.
  • The agent runs inside the repo, so from its cwd a repo's own skills are in scope. In kube-coder the baked prompt names kc-preflight / kc-ship-pr; in any other repo it tells the agent to run that repo's own tests instead. (Repo skills are NOT in scope for you at /home/dev, which is why this orchestration skill lives in the user-global skills dir.)
  • Idempotent. Re-running for the same issue reuses the existing worktree + branch and rewrites the prompt; it won't clobber committed work.
  • The lint warns, it never blocks. Default behaviour always proceeds. Set KC_ISSUE_STRICT=1 to make the script refuse to spawn when a blocker fires — it exits before creating the worktree, so nothing is spent. Leave it unset unless you want that guardrail.
    bash
    KC_ISSUE_STRICT=1 bash "$CLAUDE_SKILL_DIR/kc-issue.sh" <N>
  • Lint runs at spawn time, not issue-creation time. That's deliberate: it's the cheaper place to catch the problem, and it also covers issues written before the lint existed.
  • Cleanup when done (after the PR merges): Remove worktree on the Build's Changes tab (or in Settings → Worktrees) deletes the folder and keeps the branch; delete the branch once it is merged. The dashboard also cleans up on its own — but never a worktree with uncommitted or unpushed work. From a shell:
    bash
    bash /home/dev/kube-coder/.claude/skills/worktree/worktree.sh rm issue-<N>
    git -C <repo_root> branch -D kc/issue-<N>   # after merge only
  • Disk. Each worktree gets its own node_modules/build output — keep only a handful live at once; tear down finished ones.

Parallel: several issues at once

Just invoke this once per issue. Each gets its own worktree, branch, port, and background task, so agents run truly in parallel without colliding. Use list to keep track.

© imran31415, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in .claude/skills/kc-issue of imran31415/kube-coder.

  • SKILL.md
  • kc-issue.sh
  • lint_test.sh

Open the folder on GitHubat commit fc0b886

Compare with similar skills

Kc Issue 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.

Kc Issue compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Kc Issue this skillimran31415/kube-coder388—~1.9kAutomated safety check: NotesMIT
Pre-Release PR Triagejamiepine/voicebox57k—~3.1kAutomated safety check: PassMIT
Ff Worktreesdamus-io/damus2.1k—~451Automated safety check: PassGPL-3.0
Clean Complete Branchesjtenniswood/espcontrol1.1k—~820Automated safety check: PassCustom licence
Clean Merged Branch Foldersjtenniswood/espcontrol1.1k—~813Automated safety check: PassCustom licence
Fixexercism/website549—~1.2kAutomated safety check: NotesAGPL-3.0

Similar skills

  • Pre-Release PR Triage

    jamiepine/voicebox

    Sorts a backlog of open pull requests into must-merge, candidate, superseded and deferred, writes a triage doc and works the merge loop before a release.

    57k GitHub stars~3.1k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Ff Worktrees

    damus-io/damus

    Fast-forward master and every git worktree branch up to a target ref (default github/master), skipping any worktree with unmerged commits.

    2.1k GitHub stars~451 tokensUpdated 27 days ago
    DevelopmentAuto-check passed
  • Clean Complete Branches

    jtenniswood/espcontrol

    Clean up completed Git branches and worktrees for this repository both locally and on GitHub.

    1.1k GitHub stars~820 tokensUpdated today
    DevelopmentAuto-check passed
  • Clean Merged Branch Folders

    jtenniswood/espcontrol

    Clean up local branch worktree folders for this repository after their branches or pull requests have merged to main.

    1.1k GitHub stars~813 tokensUpdated today
    DevelopmentAuto-check passed
  • Fix

    exercism/website

    Fix a GitHub issue end-to-end — fetches issue, creates worktree, plans and implements fix, runs validation, opens PR, cleans up.

    549 GitHub stars~1.2k tokensUpdated yesterday
    DevelopmentAuto-check: notes
  • Kanvibe Release Deploy

    rookedsysc/kanvibe

    A skill your agent uses whenever releasing or deploying KanVibe desktop from a clean, up-to-date dev checkout: ask only for the target version and release-note approval, then let the AI update…

    143 GitHub stars~12k tokensUpdated today
    DevelopmentAuto-check: notes

More from imran31415/kube-coder

All 8 skills in this repo
  • Kc Entrypoint Change

    imran31415/kube-coder

    Safely edit the workspace pod's boot scripts (start.sh, the entrypoint/ssh-server configmaps) in kube-coder.

    388 GitHub stars~1.3k tokensUpdated today
    Auto-check: notes
  • Kc Screenshot

    imran31415/kube-coder

    Capture desktop + mobile, dark + light screenshots of the kube-coder dashboard SPA for visual QA of a UI change.

    388 GitHub stars~870 tokensUpdated today
    Auto-check: notes
  • Kc Ship PR

    imran31415/kube-coder

    Commit local changes and open a pull request against kube-coder from inside a workspace pod.

    388 GitHub stars~2k tokensUpdated today
    Auto-check: notes
  • Remote Task

    imran31415/kube-coder

    Launch a Claude task on a remote kube-coder workspace, check task status, or attach to a running session.

    388 GitHub stars~1.3k tokensUpdated today
    Auto-check: notes
  • Kc Preflight

    imran31415/kube-coder

    Run kube-coder's full CI suite locally before pushing — helm lint + unit tests, server.py tests, dashboard + controller SPA builds + vitest, and shell syntax checks.

    388 GitHub stars~1k tokensUpdated today
    Auto-check: notes
  • Kc Scope PR

    imran31415/kube-coder

    Scope a kube-coder change before you open or update a PR — what the diff actually touches, which tests reach it, what the change made worse, and what is left untested.

    388 GitHub stars~1.2k tokensUpdated today
    Auto-check: notes

Works with

Categories

Questions about Kc Issue

What does Kc Issue do?

Spin up an isolated agent to work a GitHub issue of kube-coder or any other repo checked out in the workspace. Kc Issue is an agent skill from imran31415/kube-coder. Spin up an isolated agent to work a GitHub issue of kube-coder or any other repo checked out in the workspace.

When should I use Kc Issue?

Kc Issue fits situations like: the user wants to work on issue N; start an agent on issue N; set up a per-issue worktree.

How do I install Kc Issue in Claude Code?

Run `npx skills add imran31415/kube-coder --skill kc-issue -a claude-code`. Or copy the skill folder (.claude/skills/kc-issue in imran31415/kube-coder) into .claude/skills/kc-issue in your project. Claude Code loads it when a task matches its description.

How do I install Kc Issue in Codex?

Run `npx skills add imran31415/kube-coder --skill kc-issue -a codex`. Or copy the skill folder (.claude/skills/kc-issue in imran31415/kube-coder) into .agents/skills/kc-issue in your project. Codex loads it when a task matches its description.

Can I use Kc Issue in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add imran31415/kube-coder --skill kc-issue -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/kc-issue, .gemini/skills/kc-issue, .github/skills/kc-issue and .opencode/skills/kc-issue in your project.

What does Kc Issue need to run?

Going by SKILL.md and its folder, Kc Issue needs a shell for the scripts in its folder and the command-line tools its instructions call (bash and git). Our summary lists: A Bash shell. Its frontmatter pre-approves these tools: Bash, Read, mcp__dashboard__create_task, mcp__dashboard__list_tasks, mcp__dashboard__get_task.

Does Kc Issue access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Kc Issue safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Kc Issue use?

Kc Issue is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Kc Issue use?

About 1.9k tokens (SKILL.md is roughly 7.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Kc Issue?

Skills that share tags, products or a category with Kc Issue: Pre-Release PR Triage (jamiepine/voicebox, 57k stars), Ff Worktrees (damus-io/damus, 2.1k stars), Clean Complete Branches (jtenniswood/espcontrol, 1.1k stars) and Clean Merged Branch Folders (jtenniswood/espcontrol, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Kc Issue?

imran31415 (a GitHub user) maintains it in imran31415/kube-coder, which has 388 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 8, 2026.

Source: imran31415/kube-coder on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.