Agent skill

Backlog Grooming

by forcedotcom in forcedotcom/salesforcedx-vscode

Triage the team's open GUS backlog — propose closing done-but-open work items (with code/test citations), flag under-specified items for grilling, catch wrong-epic / orphan / unpointed / dead-link…

BSD-3-ClauseAuto-check passedProduct & Project Management

Install Backlog Grooming

skills CLI
$ npx skills add forcedotcom/salesforcedx-vscode --skill backlog-grooming -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install forcedotcom/salesforcedx-vscode backlog-grooming --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/forcedotcom/salesforcedx-vscode.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/backlog-grooming .claude/skills/backlog-grooming && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
backlog-grooming
GitHub stars
1k
Token cost
~1.5k tokens
SKILL.md length
711 words
Files
2
Skills in repo
37
Repo updated
First seen
Licence
BSD-3-Clause

At a glance

Triage the team's open GUS backlog — propose closing done-but-open work items (with code/test citations), flag under-specified items for grilling, catch wrong-epic / orphan / unpointed / dead-link…

  • Works in 6 steps: Preflight + scope → Team-wide pass (always — runs under both… → Per-epic deep pass (scope b only) → …
  • Tasks that involve Task management
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Tasks that involve User stories

What it does

Backlog Grooming is an agent skill from forcedotcom/salesforcedx-vscode. Triage the team's open GUS backlog — propose closing done-but-open work items (with code/test citations), flag under-specified items for grilling, catch wrong-epic / orphan / unpointed / dead-link items, and close completed epics. User-invoked.

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `checks.md`).

It sits in Product & Project Management, covering Task management, User stories and Requirements gathering. The repository describes itself as: Salesforce Extensions for VS Code. The licence is BSD-3-Clause.

When your agent uses it

  • Tasks that involve Task management
  • Tasks that involve User stories
  • Tasks that involve Requirements gathering

Example prompts

  • “/backlog-grooming”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Preflight + scope
  2. Team-wide pass (always — runs under both scope a and b)
  3. Per-epic deep pass (scope b only)
  4. Gated code investigation (done-but-open, scope b)
  5. Write the report
  6. Confirm and execute

What it can do on your machine

Read from SKILL.md and the folder at commit 27807f6. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • gus.lightning.force.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Backlog Grooming loads about 1.5k tokens when it runs. Until then it costs about 65 tokens; SKILL.md has 711 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~65
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from forcedotcom/salesforcedx-vscode at commit 27807f6, republished under its BSD-3-Clause licence (© forcedotcom). 711 words, ~1,539 tokens.

Download SKILL.mdSave it as .claude/skills/backlog-grooming/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
backlog-grooming
description
Triage the team's open GUS backlog — propose closing done-but-open work items (with code/test citations), flag under-specified items for grilling, catch wrong-epic / orphan / unpointed / dead-link items, and close completed epics. User-invoked.
review
never
disable-model-invocation
true

Backlog grooming

Triage pass over open GUS work items + epics. Every finding is a proposal — never auto-write. Output: one report file, then confirm-and-execute.

CLI mechanics (queries, statuses, IDs, create/update, Duplicate handling, aggregate-query limits, 15-vs-18-char Ids) live in gus-cli — this skill never restates them.

Scale is real: ~900+ open WIs across ~45 epics. Two tiers:

  • Team-wide aggregates (counts, GROUP BY) — run once, cover everything. Cheap.
  • Per-WI checks (readiness, done-but-open, wrong-epic, dup, dead-link, sequencing) — too many for one whole-team pass. Scope to one epic per run, or a user-chosen subset.

Steps

1. Preflight + scope
  • Resolve gus alias + runner identity per gus-cli.
  • Ask the scope: (a) team-wide aggregates only (epics + bulk counts — fast), or (b) also deep-groom one epic (per-WI checks). Default (a); offer the epic list if (b).

Done when: alias resolves, scope chosen.

2. Team-wide pass (always — runs under both scope a and b)

Aggregates over the whole team — one query each, no per-WI memory. Mind the gus-cli ## CLI tips aggregate-paginate cap (200 rows, needs LIMIT) + 15-vs-18-char Id rule.

  • Open WI count + orphan + unpointed: scope by Scrum_Team__c = <team> (the authoritative "team backlog" set; see gus-cli ## Work items "Team's open"). Use the whitelist Status__c IN (<open list>) from gus-cli ## Open queries — NOT a NOT IN exclusion (legacy statuses like Closed-U/Ftest/Tested leak through a blacklist). orphan = + Epic__c=null, unpointed = + Story_Points__c=null. For bulk-point cleanup, also filter RecordType.Name IN ('User Story','Bug').
  • Open epics + Description__c, Development_Lead__c, Scheduled_Build__c. Drop separator epics (names like ===== below the line =====) — board dividers, not real.
  • Per-epic counts: GROUP BY Epic__c for open-WIs (whitelist Status__c IN (<open list>), same as above) and for total-WIs (any status), each scoped Epic__c IN (<the open-epic Ids>) LIMIT 200. Join GROUP-BY keys to the epic list on first 15 chars (truncate both sides). Note: GROUP BY only returns epics that HAVE WIs — derive empty-epic by set difference (open-epic list MINUS total-WI keys), not from the query rows. Then epic-complete = in total-keys, not in open-keys; epic-ownerless = Development_Lead__c null. See checks.md.

(Scope by Scrum_Team__c and by epic-membership can diverge — an orphan WI belongs to the team but no epic; per-epic sums won't equal the team total. Both are intended: team count for headline, epic-IN for per-epic.)

Done when: every team-wide check in checks.md has a count or list. High-volume counts (orphans, unpointed, ownerless) reported as a number + sample, not a per-item list.

3. Per-epic deep pass (scope b only)

For the chosen epic, pull its open WIs (whitelist Status__c IN (<open list>); SELECT Id, Name, Subject__c, Status__c, Story_Points__c, RecordType.Name, Details__c, Details_and_Steps_to_Reproduce__c (Bug-type body — see checks.md Readiness), Assignee__c). Run the per-WI checks in checks.md: readiness (grill / ai-auto), wrong-epic, open-vs-open dup, dead-link, merged-not-Completed, sequencing-health. Then the gated done-but-open investigation (step 4).

Done when: every open WI in the epic evaluated by every per-WI check; each emits a list (possibly empty) of {WI, evidence, proposed action}.

Show full SKILL.md (248 more words)Show less
4. Gated code investigation (done-but-open, scope b)
  1. Filter the epic's open WIs to plausible done-but-open candidates — has a PR/issue link, names a greppable feature/file, or has shipped siblings. Skip pure-design / coordination WIs.
  2. Log the drop count: "investigating N of M; skipped M−N (reason)." Never silently truncate.
  3. Fan out one investigator subagent per candidate (caveman:cavecrew-investigator or Explore). Note: WIs may reference PRs in other repos (e.g. forcedotcom/apex-language-support) — the investigator follows those via gh. Each: blame the cited/likely area → introducing commit → PR → owning WI name. Returns {tier, citation, causingPR, relatedWI}. See checks.md for tier bar + subagent prompt.

Done when: every filtered candidate has a verdict; drop count logged.

5. Write the report

Write .claude/backlog-grooming-<YYYY-MM-DD>.md (gitignored). Section per check; each finding = WI/Epic Name + link + evidence/citation + proposed action + tier (done-but-open only). Order high-confidence → low. Top summary: counts per check, scope, investigation drop count.

Done when: file written, every finding present with its citation, chat shows the summary table.

6. Confirm and execute

(Dry-run mode: if the user asked for read-only / validation, stop here — list what would be proposed, perform no writes.)

Walk findings with the user. Per gus-cli ## Safety: present each write, act only on explicit yes. High-volume buckets (orphans, unpointed) → offer bulk action or top-N, not one-by-one. Execute approved writes (Close/Duplicate+Related_Work__c, epic close, [ai-auto] tag, epic move, dev-lead tag, point=2). Grill candidates not executed here — user later runs grill-me on ones they pick.

Done when: every approved write succeeded (verify per gus-cli), report annotated with actioned vs deferred.

© forcedotcom, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .claude/skills/backlog-grooming of forcedotcom/salesforcedx-vscode.

  • SKILL.md
  • checks.md

Open the folder on GitHubat commit 27807f6

Compare with similar skills

Backlog Grooming next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Backlog Grooming compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Backlog Grooming this skillforcedotcom/salesforcedx-vscode1k—~1.5kAutomated safety check: PassBSD-3-Clause
User Story Writerdeanpeters/Product-Manager-Skills7.2k2 repos~2.9kAutomated safety check: PassCustom licence
PRD Developmentdeanpeters/Product-Manager-Skills7.2k3 repos~6.2kAutomated safety check: PassCustom licence
Feature ForgeJeffallan/claude-skills12k—~1.1kAutomated safety check: PassMIT
Specificationcitypaul/.dotfiles739—~2.2kAutomated safety check: PassCustom licence
Find Gapscitypaul/.dotfiles739—~6.6kAutomated safety check: PassCustom licence

Similar skills

  • User Story Writer

    deanpeters/Product-Manager-Skills

    Writes user stories in Mike Cohn's format with Gherkin acceptance criteria, turning user needs into development-ready work with testable conditions.

    7.2k GitHub starsUsed in 2 repos~2.9k tokens
    Product & Project ManagementAuto-check passed
  • PRD Development

    deanpeters/Product-Manager-Skills

    Builds a structured PRD that ties problem, users, solution and success criteria together, turning discovery notes into a document engineers can act on.

    7.2k GitHub starsUsed in 3 repos~6.2k tokens
    Product & Project ManagementAuto-check passed
  • Feature Forge

    Jeffallan/claude-skills

    Runs a structured requirements interview to produce a feature specification with EARS requirements, acceptance criteria and an implementation checklist.

    12k GitHub stars~1.1k tokensUpdated 5 days ago
    Product & Project ManagementAuto-check passed
  • Specification

    citypaul/.dotfiles

    Turn fuzzy intent into shared understanding and acceptance criteria — specification as a conversation, run one question at a time, before any story is split or planned.

    739 GitHub stars~2.2k tokensUpdated 5 days ago
    Product & Project ManagementAuto-check passed
  • Find Gaps

    citypaul/.dotfiles

    Adversarially review an existing written artifact — stories, plans, acceptance criteria, specs, or design mocks — to surface missing states, unhandled edge cases, unstated assumptions, unverifiable…

    739 GitHub stars~6.6k tokensUpdated 5 days ago
    Product & Project ManagementAuto-check passed
  • Kanban Refine

    cyanluna-git/cyanluna.skills

    Refine backlog requirements through structured user interview.

    183 GitHub stars~1.5k tokensUpdated 3 mo ago
    Productivity & AutomationAuto-check passed

More from forcedotcom/salesforcedx-vscode

All 37 skills in this repo
  • Command UI

    forcedotcom/salesforcedx-vscode

    Command palette, CodeLens, context menus, package.nls titles, and NotificationModeService.

    1k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Services Extension Consumption

    forcedotcom/salesforcedx-vscode

    Consume the salesforcedx-vscode-services extension API. An agent skill from forcedotcom/salesforcedx-vscode.

    1k GitHub stars~5k tokensUpdated today
    Auto-check passed
  • Changelog

    forcedotcom/salesforcedx-vscode

    Polish the automated CHANGELOG on develop before the next stable build.

    1k GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Core Extension API

    forcedotcom/salesforcedx-vscode

    Public API exported by salesforcedx-vscode-core activate(). An agent skill from forcedotcom/salesforcedx-vscode.

    1k GitHub stars~842 tokensUpdated today
    Auto-check passed
  • Drivable Vscode

    forcedotcom/salesforcedx-vscode

    Operate a real VS Code instance through drivable-vscode. An agent skill from forcedotcom/salesforcedx-vscode.

    1k GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Effect Best Practices

    forcedotcom/salesforcedx-vscode

    Enforces Effect-TS patterns for services, errors, layers, atoms, and Effect.pipe composition.

    1k GitHub stars~6.2k tokensUpdated today
    Auto-check passed

Questions about Backlog Grooming

What does Backlog Grooming do?

Triage the team's open GUS backlog — propose closing done-but-open work items (with code/test citations), flag under-specified items for grilling, catch wrong-epic / orphan / unpointed / dead-link…. Backlog Grooming is an agent skill from forcedotcom/salesforcedx-vscode. Triage the team's open GUS backlog — propose closing done-but-open work items (with code/test citations), flag under-specified items for grilling, catch wrong-epic / orphan / unpointed / dead-link items, and close completed epics.

When should I use Backlog Grooming?

Backlog Grooming fits situations like: tasks that involve Task management; tasks that involve User stories; tasks that involve Requirements gathering.

How do I install Backlog Grooming in Claude Code?

Run `npx skills add forcedotcom/salesforcedx-vscode --skill backlog-grooming -a claude-code`. Or copy the skill folder (.claude/skills/backlog-grooming in forcedotcom/salesforcedx-vscode) into .claude/skills/backlog-grooming in your project. Claude Code loads it when a task matches its description.

How do I install Backlog Grooming in Codex?

Run `npx skills add forcedotcom/salesforcedx-vscode --skill backlog-grooming -a codex`. Or copy the skill folder (.claude/skills/backlog-grooming in forcedotcom/salesforcedx-vscode) into .agents/skills/backlog-grooming in your project. Codex loads it when a task matches its description.

Can I use Backlog Grooming in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add forcedotcom/salesforcedx-vscode --skill backlog-grooming -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/backlog-grooming, .gemini/skills/backlog-grooming, .github/skills/backlog-grooming and .opencode/skills/backlog-grooming in your project.

What does Backlog Grooming need to run?

SKILL.md names no scripts, command-line tools or credentials: Backlog Grooming is instructions for the agent only.

Does Backlog Grooming access the network?

SKILL.md names 1 domain. As links in the text: gus.lightning.force.com. This is read from the text; nothing was executed.

Is Backlog Grooming safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Backlog Grooming use?

Backlog Grooming is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Backlog Grooming use?

About 1.5k tokens (SKILL.md is roughly 6.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Backlog Grooming?

Skills that share tags, products or a category with Backlog Grooming: User Story Writer (deanpeters/Product-Manager-Skills, 7.2k stars), PRD Development (deanpeters/Product-Manager-Skills, 7.2k stars), Feature Forge (Jeffallan/claude-skills, 12k stars) and Specification (citypaul/.dotfiles, 739 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Backlog Grooming?

forcedotcom (a GitHub organization) maintains it in forcedotcom/salesforcedx-vscode, which has 1,035 GitHub stars. The repository holds 37 skills in this directory. The repository was last updated on October 8, 2026.

Source: forcedotcom/salesforcedx-vscode on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.