Skip to content
Development
Command

/backlog

Backlog review and cleanup - multi-agent backlog review, quick no-agent pulse (--fast), or interactive triage cleanup

From plugin
lets-workflow
1726 skills15 agents26 commands
> /plugin marketplace add restarter/lets-workflow
> /plugin install lets@lets-workflow

Command definition

backlog.md
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" },
      { 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", args: "caller=backlog")`.

Then gather the backlog-specific extras the snapshot doesn't cover:

LETS_PROJECT_ROOT=$(git rev-parse --show-toplevel)

**Tracker protocol:** `Skill(skill: "lets:protocol-tracker")` before this and any later `lets-tracker` block here, unless its text is in your current context.

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 (through the `create-task` skill - its gate follows `LETS_GATES`).

---

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 ->
Read more
@restarter
Ships withlets-workflow

A development workflow plugin for Claude Code Stop babysitting your AI. Start shipping with it.

1725 skills15 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
17
Star history of restarter/lets-workflow on GitHub, a chart by star-history.com

Other commands on lets-workflow.

end

end

Command

End a work session - a settlement pass that reconciles uncommitted / unpushed work + session context into git, the tracker, and a…

execute

execute

Command

Execute implementation plan from /lets:plan - inline in native plan mode, or delegated to named implementer subagents you review…

More commands from other plugins.

build
Auto-invoked

build

Command

Implement tasks incrementally — build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.

@addyosmani@addyosmaniInstall Command