Agent skill

backlog

Markdown task backlog and project roadmap (backlog/{todo,doing,done,failed}/, backlog/ROADMAP.md) for adding, advancing, recording progress, rescuing, cancelling, retrying, failing, maintenance, or reflecting on backlog priorities and roadmap direction.

27 files · 279.6 KB · Source ↗ · Raw SKILL.md · Markdown directory · Download skill.tgz

Copy the prompt. Paste it into your agent.

Verify the bytes and inspect the files before trusting a skill. A matching hash is not a safety review.

Read the install prompt
Full inline prompt for offline use

Includes SKILL.md. Supporting files still require a download.

Install from a shell

Run this in a terminal. It downloads the pinned archive, checks its SHA-256 digest, and extracts it into ~/.claude/skills, where Claude Code loads skills. For Codex and other agents that read ~/.agents/skills, edit the SKILLS_DIR line. If the skill is already installed, the command stops and changes nothing.

Backlog

A task tracker shaped like a maildir. Each task is one markdown file; its directory is its state. Tasks move forward through a pipeline of directories; there is no backward verb.

The default pipeline is todo → doing → done. A project may add intermediate in-flight directories (e.g. reviewing/) by declaring the pipeline in backlog/AGENTS.md. See references/pipeline.md.

To claim is to advance from todo/ to the first in-flight dir. The backend declared by backlog/AGENTS.md provides the lock mechanism — maildir-git lets racing git mvs collide at merge; maildir-shared uses an atomic create in a git-common-dir shared directory so the race is caught at claim time across worktrees.

Slash invocation

Invokable as /backlog <subcommand> [args]. The canonical mechanism is scripts/backlog.sh — it reads backlog/AGENTS.md, detects the backend, and dispatches. Agents should prefer the script over re-implementing bash inline.

Subcommand Script call Semantics
/backlog setup scripts/backlog.sh setup --backend=<maildir-git|maildir-shared|github-issues|jira|gitea> One-time scaffold: for maildir backends, creates dirs, AGENTS.md, ROADMAP skeleton, symlinks + .gitignore for maildir-shared; for github-issues, creates static labels on the remote; for jira, writes the Jira project/JQL/status mapping expected by the Atlassian CLI adapter; for gitea, creates labels on the Gitea repo (reached via a gitea git remote + a tea login) and writes a ## Gitea section holding only the remote/login names — no server URL or token. Remote backends write AGENTS.md + ROADMAP skeleton (no local task tree). Backend flag is required — the script refuses without it and prints a heuristic hint based on git worktree list.
/backlog add <slug> [category] scripts/backlog.sh add <slug> [category] Create new task in todo/
/backlog take [slug] scripts/backlog.sh take [slug] Claim from todo/ (auto-pick if no slug)
/backlog advance <slug> scripts/backlog.sh advance <slug> One forward step along the pipeline
/backlog progress <note> scripts/backlog.sh progress "<note>" Append a progress line to the current claim
/backlog cancel <slug> <reason> scripts/backlog.sh cancel <slug> "<reason>" Abandon an in-flight task
/backlog fail <slug> <reason> scripts/backlog.sh fail <slug> "<reason>" Dead-letter an in-flight task
/backlog rescue <slug> scripts/backlog.sh rescue <slug> Take over a stale claim
/backlog retry <slug> <reason> scripts/backlog.sh retry <slug> "<reason>" Move from failed/ back to todo/
/backlog status scripts/backlog.sh status Counts per state + recent in-flight
/backlog maintain read references/maintain.md Advisory walk over buckets (agent-judgment, no script)
/backlog worker follow references/worker-loop.md Full loop: load + maintain + rank + claim + execute + close
/backlog (no args) — Skill loads; agent infers intent from conversation context

The script is scripts/backlog.sh in this skill's base directory. Semantics for each verb live in references/worker.md; mechanism details (what the script actually does) live in references/backends/<name>.md. The test harness scripts/test.sh exercises the maildir backends end-to-end including a real git worktree-based race test, and syntax-checks every bundled script.

File shape

Above the divider: what the author meant. Below: what the workers did.

Two halves, divided by --- with blank lines around it so markdown renders it as a horizontal rule.

---
priority: 2
dependencies:
  other-task-slug: "why we depend on it"
---

# Task Title

[problem statement, key decisions, phases, acceptance criteria]

---

- 2026-05-16T14:22:00Z advanced to=doing claimer=conductor:austin-v3 branch=feat/foo
- 2026-05-16T16:45:00Z progress | auth prototype passing locally
- 2026-05-17T11:03:00Z advanced to=done | PR=https://github.com/.../pull/123

Frontmatter and description above the divider are author-set and frozen after first commit (one exception: retry may edit them, since retry IS a correction). Below the divider is an append-only event log written by workers — see references/worker.md for the verb recipes that maintain it.

Frontmatter (optional)

Every field has a default, so a minimal task can omit frontmatter entirely:

# Quick fix

The login button is misaligned on mobile.

---

Defaults: priority=999, timeout=7d, dependencies={}. Add fields above the title to override.

Additional keys an author writes are preserved but not interpreted by any recipe. Full schema, kinds table, and "reading state" queries: references/agents-schema.md.

Add a task

Gather slug (kebab-case), category (plan / followup / task-list / ideas, filename suffix), and a description.

scripts/backlog.sh add <slug> [category]
# then edit backlog/todo/<slug>-<category>.md to fill in
# frontmatter (priority/timeout/dependencies) and the body

The script writes a skeleton file in backlog/todo/ and commits with add(<slug>-<category>). Edit the file in-place to fill in the spec (frontmatter + description); follow-up commits to the same file before claim are fine.

Quality: write enough that a fresh session can execute without ever having met you — specific paths, verification commands, deps declared if any. Commit before anyone can claim.

Outcome contract: by default, a claim ends with the worker opening a merge-ready PR — the user clicks, reviews, merges. The task is agent-done when its file lands in done/ with an advanced to=done | PR=<url> log line; the human's merge closes the loop. Lead time from agent-done to merged is later trackable from that timestamp. If the task wants something else (draft PR for exploratory work, no PR for batched grooming, etc.), say so in the spec — the default is review-ready.

Working the backlog

For advance, progress, cancel, fail, rescue, retry, status, and maintain — the verb semantics plus the rules workers must follow — see references/worker.md. The canonical implementation lives in scripts/ (invoke scripts/backlog.sh <verb>); the backend declaration in backlog/AGENTS.md selects which implementation runs. Mechanism prose for each backend: references/backends/<name>.md. For extending the pipeline with intermediate dirs (e.g. reviewing/) and how advance reads the ordering, see references/pipeline.md.

Roadmap and reflection

backlog/ROADMAP.md sits above the queue — Intent, Principles, Current Focus, Priorities (named arcs), Non-goals — and answers why these tasks, in this order. Tasks optionally link via arc: frontmatter. Shape and conventions: references/roadmap.md. For reflecting on the backlog, adding to the roadmap, or initializing one, load references/reflect.md and follow its posture.

References

Files

27 files · 279.6 KB