agentsclimarketplace

Backlog grooming assistant

Skill KirKruglov/claude-skills-kit/skills/project-management/backlog-grooming-assistant

70+ curated agent skills for Claude Cowork and Claude.ai — ready-to-use tools for non-technical users: project management, productivity, and AI workflow automation

Install
npx -y skills add KirKruglov/claude-skills-kit --skill backlog-grooming-assistant

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 14 stars14 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Analyze backlog files (CSV or Markdown) to flag problematic items and generate a structured grooming agenda. No Jira API needed — works entirely with local exports. Use when preparing for sprint grooming, auditing accumulated tasks, or reviewing the backlog after a sprint. Triggers: 'groom my backlog', 'backlog grooming assistant', 'подготовь повестку груминга', 'груминг-ассистент', 'проверь бэклог на проблемы'.

SKILL.md

6.5 KB, as published. Nobody here has run it

Backlog Grooming Assistant

This skill reads a local backlog export (CSV or Markdown table), flags problematic items using a structured checklist, and produces a grooming session agenda with a scorecard. No external service connections required — works entirely from pasted or uploaded file contents.

Input:

  • Backlog file contents: CSV (with column headers) or Markdown table — pasted directly or uploaded
  • Minimum required columns: item ID and title; additional columns (owner, priority, estimate, status, last-updated) enable more flags

Output:

  • Markdown document with: Scorecard → Top Issues → Grooming Agenda → Skipped Checks

Language Detection

Detect the user's language from their message:

  • If Russian (or contains Cyrillic): respond in Russian
  • If English (or other Latin-script language): respond in English
  • If ambiguous: respond in the language of the trigger phrase used

The detected language applies to all output text: section headings, table column headers, field labels, agenda topic titles, error messages, and recommended actions. Translate every part of the output format template into the detected language — do not leave any section header or label in English when responding in Russian.


Instructions

Step 1: Parse and Validate Input

  1. Accept backlog content from the user (pasted text or file contents)

    • If content is empty: stop and return — "Backlog is empty — no items to analyze. Paste CSV or Markdown table content."
  2. Detect format:

    • CSV: first line contains comma-separated headers
    • Markdown table: lines starting with | and separator row |---|
    • If neither format detected: stop — "Format not recognized. Supported: CSV with headers, Markdown table. Paste the file contents in chat."
  3. Parse rows: extract all items as a list of key-value pairs

    • Identify available columns by name (case-insensitive matching)
    • Map common synonyms: "Task" → title, "Assignee" → owner, "SP"/"Points" → estimate, "Updated"/"Modified" → last-updated
    • If columns cannot be mapped automatically: ask user to specify column mapping for the ambiguous columns, then continue
  4. Validate row count:

    • If 0 data rows (headers only): stop — "Backlog is empty — no items to analyze."
    • If all rows have status "Done" or "Closed": stop — "All items are completed — no active tasks for grooming."

Step 2: Apply Flag Checklist

For each item, evaluate applicable flags (skip flags that require unavailable columns):

FlagConditionRequired column(s)
NO_OWNEROwner/Assignee field is empty or missingowner
NO_ESTIMATEEstimate/story points field is empty or zeroestimate
UNCLEAR_SCOPEDescription/title is absent or fewer than 5 wordstitle, description
STALELast-updated date is more than 14 days agolast-updated
BLOCKED_NO_ETAStatus contains "blocked" with no ETA/date mentionedstatus, description
ALL_HIGH_PRIORITYSignal: more than 50% of all items marked High/Criticalpriority (applied to entire backlog, not per item)
DUPLICATE_TITLETitle is ≥80% similar to another item in the backlogtitle

Compile per-item flag list and a backlog-wide summary count for each flag type.

Edge Cases:

  • Column missing for a flag: skip that flag for all items; record the skipped check in output
  • STALE check: if date format is ambiguous, skip and note in skipped checks
  • ALL_HIGH_PRIORITY: apply once to the whole backlog; annotate in scorecard, not per-item

Step 3: Identify Top Issues

  1. Sort flagged items by flag count (descending)
  2. Select top 10 items (or fewer if backlog is small)
  3. For each top item: collect ID, title, flags, and priority level

Step 4: Generate Grooming Agenda

Group top issues by flag type into agenda topics:

  • No Owner → agenda item: "Assign owners to unowned tasks"
  • No Estimate → "Estimate unscored items"
  • Unclear Scope → "Clarify scope / rewrite descriptions"
  • Stale Items → "Review or close items with no recent activity"
  • Blocked Items → "Resolve blockers or set ETA"
  • Priority Inflation → "Re-prioritize — too many High/Critical items"
  • Possible Duplicates → "Review and merge duplicate candidates"

For each agenda topic, list the affected item IDs and a recommended action.

Step 5: Produce Output

Write the full output in the format specified in the Output Format section below.


Negative Cases

  • Empty input or headers-only file: Stop. Return "Backlog is empty — no items to analyze."
  • Unrecognized format: Stop. Return "Format not recognized. Supported: CSV with headers, Markdown table."
  • All items Done/Closed: Stop. Return "All items are completed — no active tasks for grooming."
  • Plain text list without structure: Warn — "Insufficient structure for flag analysis. Try adding columns: status, owner, priority." Produce minimal output based on titles only (UNCLEAR_SCOPE check only).

Output Format

# Grooming Report — [date]

## Scorecard
- Total items: N
- Flagged items: N (X%)
- No owner: N
- No estimate: N
- Stale (>14 days): N
- Blocked without ETA: N
- Possible duplicates: N
- Priority inflation: YES / NO

## Top Issues for Grooming

| Item | Title | Flags | Priority |
|------|-------|-------|----------|
| [ID] | [Title] | NO_OWNER, NO_ESTIMATE | High |
| ... | ... | ... | ... |

## Grooming Agenda

### 1. [Topic]
**Items:** [ID1], [ID2]
**Problem:** [description]
**Recommended action:** [what to discuss / decide]

### 2. ...

## Skipped Checks
The following checks were not applied due to missing columns:
- [Flag name]: requires column "[column name]"

Field rules:

  • Scorecard numbers must be accurate counts from the parsed data
  • Top Issues table: max 10 rows, sorted by flag count descending
  • Agenda topics: include only those with at least one affected item
  • Skipped Checks: list only checks that were actually skipped; omit section if none skipped

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.