When the board backlog is running low, generate an aggressive batch of new well-scoped tickets — with the feature/bugfix mix set by the monitor's REFILL_FOCUS (in objective.md) — so the board always has enough queued to keep the monitor's agent target busy. Use when the monitor sees the backlog dipping below its BACKLOG_FLOOR.
Install
npx skillscat add p-wegner/agentic-kanban/backlog-refill Install via the SkillsCat registry.
backlog-refill
Keep the board well-fed so the monitor can always keep its ACTIVE_AGENTS_TARGET workspaces running. Refill aggressively and early — act before the backlog hits BACKLOG_FLOOR, not when it reaches zero. Batch size AND focus are set by the monitor, not here: create enough tickets to bring the backlog back above BACKLOG_FLOOR plus a small buffer (both numbers live in scripts/board-monitor/objective.md, the single source) so the next refill isn't needed immediately.
Honor the monitor's REFILL_FOCUS (in objective.md):
REFILL_FOCUS = bugfix-only— create ONLY tickets for real, reproducible bugs. Draw exclusively from the Bug hunting source below; do not create feature, enhancement, or speculative quality tickets. Every ticket must name a concrete, verifiable defect with repro steps. If you genuinely cannot find enough real bugs to reach the floor, create fewer and say so in the output — never pad with features.REFILL_FOCUS = balanced— use the feature-weighted mix: a majority of substantial feature tickets plus at least one quality ticket. Favor bigger, more ambitious features (split an over-large one into an epic + its first 2–3 implementable children rather than dropping it). Rotate which sub-area you draw from each time so coverage spreads over runs.
Feature sources (rotate across refills — lean ambitious)
- Feature gaps —
$ui-explorer: compare the running UI againstdocs/prd/01-features-catalog.mdand surface a missing capability. - PRD scope — unfinished items in
docs/prd/05-mvp-scope.md/ the PRD. - Competitor gaps —
docs/competitors/(what vibe-kanban / cline-kanban have that we don't and should). - User-value enhancements — a concrete UX or workflow improvement that makes an existing flow materially better.
- New surfaces — an entirely new view, panel, integration, or workflow that opens up a capability the board doesn't have yet. Think big here.
Quality sources (rotate across refills)
- Architecture — run
$architecture-improvementfor a prioritized list; pick the single highest-value item. - E2E gaps —
$e2e-author: find an untested or under-tested user flow worth covering. - Bug hunting — review recent merged diffs,
docs/learnings/, and server error logs for a real, reproducible bug (not speculation). - Performance / refactor — a concrete hotspot or a duplication/complexity smell flagged by scope-guard.
- Dependency hygiene —
$dependency-analyzer. - UI/UX —
$ui-reviewfindings.
Rules
- Real, specific, scoped tickets — sized for the GATE, not just the agent (#661). Title + description that an agent could pick up and implement in one focused workspace. No vague "improve X" — concrete acceptance criteria, following
CLAUDE.mdscope-guard. Bigger features are encouraged, but each individual ticket must still be implementable in one workspace (split ambitious work into linked tickets instead of writing one unimplementable mega-ticket). The floor matters as much as the ceiling: every ticket costs a full worktree + review + ~40-min merge-gate run, so a change an agent finishes in a few minutes (one helper, one rename, one doc tweak) is TOO GRANULAR as its own ticket — fold it into the adjacent ticket it belongs with, or emit the slices as one batch linkedcoupled_with(rule 4) so the board runs them as one ticket group. - No duplicates.
list_issuesfirst; skip anything already open (or recently Done) that overlaps. - Create via the board. Use
mcp__agentic-kanban__create_issue(title, description, priority, type). Set priority honestly (quality debt is usually medium; a real bug can be high; flagship features can be high). - Declare coupling at creation (#918). When a single feature genuinely splits into vertical slices that touch the SAME code (e.g. a UI panel + the endpoint that feeds it, or two tickets editing one central file), DON'T emit them as independent tickets that will start as conflicting parallel workspaces. Create them in ONE
mcp__agentic-kanban__create_issues_batchcall and add acoupled_withedge between them in the same call'sdependencies(by 0-based index,type: "coupled_with"). This captures the coupling at birth — the monitor then starts the whole component as ONE ticket-group workspace (#661: one agent, one review, one merge-gate run; each ticket keeps its identity and closes with the group), and the gated auto-contract step can alternatively collapse them. Only declarecoupled_withwhen you KNOWINGLY produce coupled slices; independent tickets stay independent. (Sequential ordering is stilldepends_on, notcoupled_with.) For a backlog that ALREADY contains granular adjacent tickets,mcp__agentic-kanban__propose_ticket_groupsruns the consolidation scan (preview first,apply: trueto write the edges). - Tag them. Add a
backlog-refilltag (create it once viacreate_tagif missing) so auto-generated tickets are traceable and you can audit the mix later. Withcreate_issues_batch, passtags: ["backlog-refill"]per issue. - Stay in scope. You are generating work, not doing it. Create the tickets and stop; the monitor's normal loop pulls and starts them through board workspaces.
Output
Report the tickets created (numbers + titles) and note which axis each one served (feature / quality), so the mix is visible over time.