/backlog
Backlog review and cleanup - multi-agent backlog review, quick no-agent pulse (--fast), or interactive triage cleanup
$ npx -y skills add restarter/lets-workflow --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/backlog
Context preview
What this command does when you run it.
Backlog review and cleanup - multi-agent backlog review, quick no-agent pulse (--fast), or interactive triage cleanup
Command definition
backlog.mddescription: Backlog review and cleanup - multi-agent backlog review, quick no-agent pulse (--fast), or interactive triage cleanup
argument-hint: "[review|cleanup] [--fast] [--workflow]"
Backlog
Backlog management in three modes. Review (heavy) launches an explorer + parallel domain agents for multi-perspective backlog insights. `--fast` is a quick no-agent backlog pulse (orchestrator-only, the lightweight sibling of Review). Cleanup is fast interactive triage - no agents.
**Quick no-agent backlog pulse: `/lets:backlog --fast`. For HOW to build something, use `/lets:plan`. For an open question or decision about the project, use `/lets:opinion`.**
> **IMPORTANT:** If the spec below invokes any deferred tool (e.g. `AskUserQuestion`), you MUST load and call it as specified. Never skip the call, never substitute a default answer of your own — the tool invocation is part of the contract. This is critical.
Usage
/lets:backlog # Ask which mode, then go
/lets:backlog review # Multi-agent backlog review (skip menu)
/lets:backlog cleanup # Interactive triage cleanup (skip menu)
/lets:backlog review --workflow # Run the Review fan-out + aggregate off-context via a Dynamic Workflow
Step 0: Choose Mode
**Parse the argument first:** strip a `--fast` token (sets fast mode - no agents) and a `--workflow` token (sets workflow mode - Review only) if present; the remaining token is the mode keyword. Precedence/compat:
- `--fast` selects the orchestrator-only **Fast mode** (a quick no-agent pulse) regardless of the `review`/no-arg keyword. `--fast` + `--workflow` -> `--fast` wins (orchestrator-only beats off-context fan-out); note it in one line.
- `--fast` passed with `cleanup` is ignored with a one-line note (Cleanup is already no-agent triage).
- `--workflow` passed with `cleanup` is ignored with a one-line note (Cleanup has no agents).
If an argument is provided, parse it: `--fast` -> Fast mode (below); `review` -> Review Backlog Mode; `cleanup` -> Cleanup Mode. A remaining token that is **neither** `review` nor `cleanup` is an **area/topic filter** -> Fast mode with that token as the F1 filter (e.g. `/lets:backlog --fast auth` scopes the pulse to auth; a bare `/lets:backlog <area>` implies Fast mode too).
If no argument, use AskUserQuestion:
AskUserQuestion(
questions=[{
question: "What do you want to do with the backlog?",
header: "Backlog",
options: [
{ label: "Review backlog", description: "Agents analyze project state, generate ideas and surface gaps (~2-3 min)" },
{ label: "Quick pulse", description: "No agents - fast orchestrator-only scan and conversation" },
{ label: "Cleanup", description: "Triage stale tasks - close, merge, reprioritize" }
],
multiSelect: false
}]
)**Handle response:**
- **Review backlog** -> Review Backlog Mode (below)
- **Quick pulse** -> Fast mode (below)
- **Cleanup** -> Cleanup Mode (below)
---
Fast Mode (--fast)
No agents. The orchestrator gathers backlog context directly and enters conversation - a quick pulse, the lightweight sibling of the agent-backed Review below (same house `--fast` convention as `/lets:plan --fast`: no flag = subagents, `--fast` = orchestrator-only).
Step F1: Gather Context
Start with the shared snapshot so the pulse builds on the same "where are we" view as `/lets:status`:
Invoke `Skill(skill: "lets:orient")`.
Then gather the backlog-specific extras the snapshot doesn't cover:
LETS_PROJECT_ROOT=$(git rev-parse --show-toplevel)
list-by-status status=open limit=30
(`stats` + the in_progress list already came from the orient snapshot above - don't re-fetch them.)
git log --oneline -15
Also use the Grep tool (not bash grep) to scan for tech-debt signals:
Grep(pattern="TODO|FIXME|HACK|XXX", path="{LETS_PROJECT_ROOT}", output_mode="content", head_limit=20)If an area/epic argument was passed alongside `--fast`:
- the tracker's `search` verb on {argument} (if no results, fall back to `list-by-status` and scan titles)
- Grep/Glob for related code
Step F2: Open with Observations
Based on the orient snapshot above plus the backlog signals gathered, present 3-5 proactive observations:
## Backlog Pulse
Based on what I see in the project:
1. **{observation}** - {why it matters, 1-2 sentences}
2. **{observation}** - {why it matters}
3. **{observation}** - {why it matters}
**Question:** {probing question that opens discussion}Categories to draw observations from:
- Gaps: areas with activity but no tasks
- Stale work: tasks open long with no progress
- Patterns: recurring themes across tasks/commits
- Quick wins: small improvements with high impact
- Risks: things that could break or become debt
Step F3: Interactive Dialog
After each user response: 1. **Acknowledge** - brief, no fluff 2. **Build** - add insight or connection 3. **Probe** - ask next question that goes deeper
If the user wants the heavier multi-agent pass: "Want a deeper backlog review? `/lets:backlog review` launches expert agents."
Step F4: Capture & Exit
If active task:
comment-add task=<task-id> body="Backlog pulse: {key takeaways, 2-3 items}"If ideas emerged that deserve tasks, offer to create them (use the `create-task` skill, user approval per task).
---
Review Backlog Mode
The one heavy mode: explorer scouts the project, parallel domain agents ideate over the backlog, results aggregate.
Execution path (standard vs workflow)
The scout (Phase 1) and agent selection (Phase 2) ALWAYS run in-context. Only Phases 3-4 (fan-out + aggregate) can move off-context via a Dynamic Workflow - `--workflow` is a transparent perf lever, same findings.
- If `--workflow` was parsed -> use the workflow path (go to `## Workflow Mode` after Phase 2). An explicit `--workflow` always wins.
- Else if the `Workflow` tool is **not** available this session -> silently use th
Read more
description: Backlog review and cleanup - multi-agent backlog review, quick no-agent pulse (--fast), or interactive triage cleanup argument-hint: "[review|cleanup] [--fast] [--workflow]"
Backlog
Backlog management in three modes. Review (heavy) launches an explorer + parallel domain agents for multi-perspective backlog insights. `--fast` is a quick no-agent backlog pulse (orchestrator-only, the lightweight sibling of Review). Cleanup is fast interactive triage - no agents.
**Quick no-agent backlog pulse: `/lets:backlog --fast`. For HOW to build something, use `/lets:plan`. For an open question or decision about the project, use `/lets:opinion`.**
> **IMPORTANT:** If the spec below invokes any deferred tool (e.g. `AskUserQuestion`), you MUST load and call it as specified. Never skip the call, never substitute a default answer of your own — the tool invocation is part of the contract. This is critical.
Usage
/lets:backlog # Ask which mode, then go /lets:backlog review # Multi-agent backlog review (skip menu) /lets:backlog cleanup # Interactive triage cleanup (skip menu) /lets:backlog review --workflow # Run the Review fan-out + aggregate off-context via a Dynamic Workflow
Step 0: Choose Mode
**Parse the argument first:** strip a `--fast` token (sets fast mode - no agents) and a `--workflow` token (sets workflow mode - Review only) if present; the remaining token is the mode keyword. Precedence/compat:
- `--fast` selects the orchestrator-only **Fast mode** (a quick no-agent pulse) regardless of the `review`/no-arg keyword. `--fast` + `--workflow` -> `--fast` wins (orchestrator-only beats off-context fan-out); note it in one line.
- `--fast` passed with `cleanup` is ignored with a one-line note (Cleanup is already no-agent triage).
- `--workflow` passed with `cleanup` is ignored with a one-line note (Cleanup has no agents).
If an argument is provided, parse it: `--fast` -> Fast mode (below); `review` -> Review Backlog Mode; `cleanup` -> Cleanup Mode. A remaining token that is **neither** `review` nor `cleanup` is an **area/topic filter** -> Fast mode with that token as the F1 filter (e.g. `/lets:backlog --fast auth` scopes the pulse to auth; a bare `/lets:backlog <area>` implies Fast mode too).
If no argument, use AskUserQuestion:
AskUserQuestion(
questions=[{
question: "What do you want to do with the backlog?",
header: "Backlog",
options: [
{ label: "Review backlog", description: "Agents analyze project state, generate ideas and surface gaps (~2-3 min)" },
{ label: "Quick pulse", description: "No agents - fast orchestrator-only scan and conversation" },
{ label: "Cleanup", description: "Triage stale tasks - close, merge, reprioritize" }
],
multiSelect: false
}]
)**Handle response:**
- **Review backlog** -> Review Backlog Mode (below)
- **Quick pulse** -> Fast mode (below)
- **Cleanup** -> Cleanup Mode (below)
---
Fast Mode (--fast)
No agents. The orchestrator gathers backlog context directly and enters conversation - a quick pulse, the lightweight sibling of the agent-backed Review below (same house `--fast` convention as `/lets:plan --fast`: no flag = subagents, `--fast` = orchestrator-only).
Step F1: Gather Context
Start with the shared snapshot so the pulse builds on the same "where are we" view as `/lets:status`:
Invoke `Skill(skill: "lets:orient")`.
Then gather the backlog-specific extras the snapshot doesn't cover:
LETS_PROJECT_ROOT=$(git rev-parse --show-toplevel)
list-by-status status=open limit=30
(`stats` + the in_progress list already came from the orient snapshot above - don't re-fetch them.)
git log --oneline -15
Also use the Grep tool (not bash grep) to scan for tech-debt signals:
Grep(pattern="TODO|FIXME|HACK|XXX", path="{LETS_PROJECT_ROOT}", output_mode="content", head_limit=20)If an area/epic argument was passed alongside `--fast`:
- the tracker's `search` verb on {argument} (if no results, fall back to `list-by-status` and scan titles)
- Grep/Glob for related code
Step F2: Open with Observations
Based on the orient snapshot above plus the backlog signals gathered, present 3-5 proactive observations:
## Backlog Pulse
Based on what I see in the project:
1. **{observation}** - {why it matters, 1-2 sentences}
2. **{observation}** - {why it matters}
3. **{observation}** - {why it matters}
**Question:** {probing question that opens discussion}Categories to draw observations from:
- Gaps: areas with activity but no tasks
- Stale work: tasks open long with no progress
- Patterns: recurring themes across tasks/commits
- Quick wins: small improvements with high impact
- Risks: things that could break or become debt
Step F3: Interactive Dialog
After each user response: 1. **Acknowledge** - brief, no fluff 2. **Build** - add insight or connection 3. **Probe** - ask next question that goes deeper
If the user wants the heavier multi-agent pass: "Want a deeper backlog review? `/lets:backlog review` launches expert agents."
Step F4: Capture & Exit
If active task:
comment-add task=<task-id> body="Backlog pulse: {key takeaways, 2-3 items}"If ideas emerged that deserve tasks, offer to create them (use the `create-task` skill, user approval per task).
---
Review Backlog Mode
The one heavy mode: explorer scouts the project, parallel domain agents ideate over the backlog, results aggregate.
Execution path (standard vs workflow)
The scout (Phase 1) and agent selection (Phase 2) ALWAYS run in-context. Only Phases 3-4 (fan-out + aggregate) can move off-context via a Dynamic Workflow - `--workflow` is a transparent perf lever, same findings.
- If `--workflow` was parsed -> use the workflow path (go to `## Workflow Mode` after Phase 2). An explicit `--workflow` always wins.
- Else if the `Workflow` tool is **not** available this session -> silently use th
A development workflow plugin for Claude Code Stop babysitting your AI. Start shipping with it.
Other commands on lets-workflow.
- /ask
Ask a single expert agent a question - like a Slack ping to a colleague
Open command - /check
Quick sanity check - code (inline 6-perspective) or plan (--plan).
Open command - /done
Finish a task - document, create PR or merge, close
Open command - /end
End a work session - a settlement pass that reconciles uncommitted / unpushed work + session context into git, the tracker, and a session snapshot file. --pre-compact skips settlement and only writes the shared snapshot, keeping the session going.
Open command - /execute
Execute implementation plan from /lets:plan - load plan and enter native plan mode
Open command - /github-pr
GitHub PR review lifecycle - analyze, discuss, post inline comments, follow-up, respond, approve
Open command

