afk-issue
Implement ONE GitHub issue end-to-end with the afk-task-runner, then the code-reviewer, opening a PR (default base main, override with a branch).
Skill by danievanzyl
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/danievanzyl-afk-issue
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/afk-issue
What's inside
- Skill name
afk-issue- Description
- Implement ONE GitHub issue end-to-end with the afk-task-runner, then the code-reviewer, opening a PR (default base main, override with a branch). Orchestration glue for a single targeted issue — use when the user says "afk issue
- License
- MIT
- Instructions
- 104 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# afk-issue
Single-issue sibling of `feature-branch-fan-in`: one targeted issue → `afk-task-runner` → `code-reviewer` → a reviewed PR. **Orchestration glue, not a reimplementation** — it chains agents/skills you already have. Do not re-grill the design or re-write the issue here (upstream: `grill-with-docs`, `to-issues`).
`$ARGUMENTS` = `<issue-number> [base-branch]`. Base defaults to `main`.
## Why a skill at all (vs just spawning the runner)
`afk-task-runner` is written to **select the next queue task**, not to take a target. Left to its defaults it may pick a different issue and defaults its PR toward main. This skill (a) pins it to issue #N, (b) sets the PR base correctly, (c) sequences an isolated reviewer against the PR, and (d) cleans up both worktrees.
## Correctness rides on explicit data-flow, not hook state
A worktree-isolated subagent runs on a **harness-named branch** (`agent-<id>`), so nothing reliable can be reconstructed from git or a state file after the fact. Therefore:
- The runner **returns** its PR number, head branch, worktree path, and test result. You (the orchestrator) hold these and pass them forward — verify with `gh`, never reconstruct from a state file.
- The hooks are **audit-only / mechanical**, not a data channel: on runner stop `afk-handoff.sh` posts a completion comment to the PR (it writes **no** state file); on reviewer stop `code-reviewer-push.sh` pushes the reviewer's `RALPH:` commits from its own worktree.
## Parameters — resolve first, never hardcode
| Param | Source |
| ----------------- | ------------------------------------------------------------ |
| issue number | `$ARGUMENTS` (first token) |
| base branch | `$ARGUMENTS` (second token); default `main` |
| owner/repo | `gh repo view --json nameWithOwner -q .nameWithOwner` |
| gh account | memory or CLAUDE.md (account routing per org); ask if unknown |
| PR# + head branch | the runner's **return value**, verified via `gh pr view` — NOT assumed from a branch-naming convention |
## Preflight — fail fast, abort on a missing contract
Hard-check ALL of the following before spawning anything. If any fails, **stop and report** what's missing — do not proceed:
- [ ] Issue #N **exists**: `gh issue view N --repo <owner>/<repo>`.
- [ ] Design is **locked**: a "design locked" comment on the issue, plus `CONTEXT.md` / the relevant ADR on the base branch. If not locked → stop, point at `grill-with-docs`.
- [ ] Base branch is **on origin** (a PR can't target a base that isn't pushed). `main` is a given; for any other base verify `git ls-remote --exit-code --heads origin <base>`.
- [ ] Correct **gh account** active for the org: `gh auth switch -u <account>`.
`CODING_STANDARDS.md` is **soft** — the reviewer applies it if present, else general standards. Its absence is not a preflight failure.
## Pipeline
1. **Spawn `afk-task-runner`** (worktree isolation) with the targeted prompt below. It implements issue #N via TDD, runs the feedback loop, commits, and opens the PR. Capture its **return value**: PR#, head branch, worktree path, test result.
2. **Verify the PR** points the right way: `gh pr view <n> --json baseRefName,headRefName` → base = `<base>`, head = the returned branch. If the runner opened no PR, stop and report.
3. **Free the runner's worktree** — BEFORE review, so the reviewer's `gh pr checkout` doesn't hit "branch already checked out": `git worktree remove --force <runner-worktree>` then `git worktree prune`. The branch is safe on origin (the PR is pushed).
4. **Spawn `code-reviewer`** (worktree isolation) with the PR#/branch/issue (template below). It runs `gh pr checkout <n>` in its own worktree, reviews against locked intent + correctness, fixes, and commits `RALPH: Review -`. Its stop fires `code-reviewer-push.sh` → PR updates.
5. **Clean up the reviewer's worktree** (AFTER review): `git worktree remove --force <reviewer-worktree>` then `git worktree prune`.
6. **Report**: PR URL, reviewer verdict (APPROVE / CHANGES MADE / BLOCKED-needs-human), final test result.
Default: **leave the PR open for a human merge** (the PR-to-main is the review gate). Merge only on explicit request: `gh pr merge <n> --squash --delete-branch`.
## Closes vs Addresses (base-dependent)
- base = `main` → PR body **`Closes #N`** (GitHub auto-closes the issue on merge to the default branch).
- base = a non-default branch → PR body **`Addresses #N`** (it will NOT auto-close until that branch reaches main). Say so in the report.
## afk-task-runner prompt template
> Implement GitHub issue #N ONLY ("<title>") in <owner>/<repo>. Work on issue #N
> ONLY — do NOT select a different issue from the queue, do NOT touch other
> issues' scope. Use gh account `<account>` — run `gh auth switch -u <account>` first.
>
> The design is ALREADY LOCKED — do not re-design or re-grill. Read first:
> (1) `gh issue view N --repo <owner>/<repo> --comments` → the "design locked"
> comment is authoritative; (2) `CONTEXT.md` → <relevant entry>; (3)
> `docs/adr/<NNNN>.md`.
>
> <Paste the locked design summary here.>
>
> TDD. Feedback loop must pass before the PR (use `.claude/state/feedback-cmds.json`
> if present, else infer: go → `go vet ./... && go test -race ./...`; node → the
> project's test + typecheck; etc.).
>
> Branch + PR: your isolated worktree is branched from `<base>`. Open the PR with
> **base = `<base>`** and head = your worktree's branch. PR body:
> "<Closes|Addresses> #N" (per the base). Do NOT close or modify the issue.
>
> RETURN (the orchestrator depends on these — be exact): the PR number + URL, the
> head branch name, your worktree path, and the exact test result.
## code-reviewer prompt template
> Review open PR #<n> in <owner>/<repo>. Branch: `<head-branch>`. Issue: #N —
> "<title>". PR base: `<base>`.
>
> Setup: `gh auth switch -u <account>`, then `gh pr checkout <n> --repo <owner>/<repo>`
> — you run worktree-isolated, so check the PR out into your OWN worktree; do NOT
> look for a state file or another agent's worktree.
>
> Review against the LOCKED intent AND correctness: read the issue's "design
> locked" comment, `CONTEXT.md` <entry>, and the ADR. <List the high-value,
> design-specific checks most likely to be subtly wrong.>
>
> Fix issues + write missing tests. Commit with messages prefixed `RALPH: Review - `
> and push so the PR updates (the push hook also ships them). Feedback loop must
> pass after fixes. Return severity-tagged findings, commit SHAs, final test
> result, and a verdict (APPROVE / CHANGES MADE / BLOCKED-needs-human).
## When NOT to use this skill
- **Multiple issues** → `feature-branch-fan-in` (integration branch + consolidated PR).
- **Want herdr-pane observability/mid-run intervention** → `afk-issue-herdr` (same pipeline, herdr panes instead of in-process subagents).
- **Design not locked** → `grill-with-docs` first.
- **No issue yet** → `to-issues` first.From danievanzyl/code-skills, MIT.
More from danievanzyl/code-skills
- 0.587score
handoff-herdr
danievanzyl
Herdr-native sibling of handoff — produces a Handoff document, then routes it to a repo-matched waiting pane agent (idle/blocked) instead of leaving placement…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
feature-branch-fan-in
danievanzyl
Drives a feature-branch fan-in — implements a set of ready-for-agent GitHub issues whose design is already locked by spawning the afk-task-runner per issue…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
feature-branch-fan-in-herdr
danievanzyl
Herdr-native sibling of feature-branch-fan-in — drives a sequential queue of ready-for-agent GitHub issues, each through the full afk-issue-herdr pipeline…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
gh-github
danievanzyl
Use the gh CLI to interact with GitHub when the user references GitHub URLs, repos, PRs, issues, actions, releases, or any github.com resource.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
afk-issue-herdr
danievanzyl
Herdr-native sibling of afk-issue — implements ONE GitHub issue end-to-end by running the afk-task-runner then the code-reviewer, each as a full Claude Code…
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
grilling
danievanzyl
Grill the user relentlessly about a plan, decision, or idea.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
gh-draft-pr
danievanzyl
Commit any outstanding changes, push the current branch, and open a draft PR via the gh CLI.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
codebase-design
danievanzyl
Shared vocabulary for designing deep modules.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
domain-modeling
danievanzyl
Build and sharpen a project's domain model.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 1
- Open issues
- 1
- Last commit (this folder)
- Jul 8, 2026 (3 months ago)
- Last release
- Oct 12, 2026 (16 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/danievanzyl/code-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from danievanzyl
- 0.587score
handoff-herdr
danievanzyl
Herdr-native sibling of handoff — produces a Handoff document, then routes it to a repo-matched waiting pane agent (idle/blocked) instead of leaving placement…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
feature-branch-fan-in
danievanzyl
Drives a feature-branch fan-in — implements a set of ready-for-agent GitHub issues whose design is already locked by spawning the afk-task-runner per issue…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
feature-branch-fan-in-herdr
danievanzyl
Herdr-native sibling of feature-branch-fan-in — drives a sequential queue of ready-for-agent GitHub issues, each through the full afk-issue-herdr pipeline…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
gh-github
danievanzyl
Use the gh CLI to interact with GitHub when the user references GitHub URLs, repos, PRs, issues, actions, releases, or any github.com resource.
SkillAFreshness: A★ 1Claude Code +9 - 0.583score
afk-issue-herdr
danievanzyl
Herdr-native sibling of afk-issue — implements ONE GitHub issue end-to-end by running the afk-task-runner then the code-reviewer, each as a full Claude Code…
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
grilling
danievanzyl
Grill the user relentlessly about a plan, decision, or idea.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
afk-issue skill. Agent Mart. https://agentmart.dev/skills/danievanzyl-afk-issue (last updated 2026-10-24)