Skip to content
Back to skills

Backlog

ASecurity

Move an increment to backlog (planned but not ready to start)

  • 666 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 12, 2026
ai-agentstypescriptbash

Security analysis

A100/100

Scanned June 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill backlog --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Backlog?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Backlog
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-backlog/badge)](https://www.skillsdirectory.com/skills/majiayu000-backlog)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
name: backlog
description: Move an increment to backlog (planned but not ready to start)
argument-hint: [increment-id] --reason="reason"
---

# Backlog Increment Command

**Usage**: `/sw:backlog <increment-id> --reason="<reason>"`

---

## Purpose

Move an increment to backlog when:
- **Planned** but not ready to start yet
- **Low priority** compared to other work
- **Waiting** for decisions or approvals before starting
- **Multiple ideas** you want to plan without violating WIP limits

**Key Difference**:
- **Backlog** = Never started, planned for future (does NOT count towards WIP)
- **Paused** = Started but blocked (does NOT count towards WIP)

---

## Behavior

1. **Validates** increment exists and is "active"
2. **Prompts** for reason if not provided via --reason flag
3. **Updates** metadata.json:
   - `status`: "active" β†’ "backlog"
   - `backlogReason`: User-provided reason
   - `backlogAt`: Current timestamp
4. **Displays** confirmation message
5. **Suggests** next actions (`/sw:resume` to start work)

---

## Examples

### Move to backlog with reason
```bash
/sw:backlog 0032 --reason="Low priority, focus on 0031 first"

βœ… Increment 0032 moved to backlog
πŸ“ Reason: Low priority, focus on 0031 first
πŸ—‚οΈ  No longer counts toward WIP limits
πŸ’‘ Start work with: /sw:resume 0032
```

### Move to backlog without reason (prompts)
```bash
/sw:backlog 0032

❓ Why are you moving this to backlog?
   1. Low priority
   2. Waiting for decisions/approvals
   3. Multiple planned ideas
   4. Other (type reason)

> 1

βœ… Increment 0032 moved to backlog
πŸ“ Reason: Low priority
πŸ’‘ Start work with: /sw:resume 0032
```

---

## Edge Cases

### Already in Backlog
```bash
/sw:backlog 0032 --reason="Different reason"

⚠️  Increment 0032 is already in backlog
   Previous reason: Low priority
   New reason: Different reason

Update reason? [Y/n]: y

βœ… Reason updated
πŸ“ New reason: Different reason
```

### Cannot Backlog Completed
```bash
/sw:backlog 0005

❌ Cannot move increment 0005 to backlog
   Status: completed
   Completed increments cannot be moved to backlog
```

### Cannot Backlog Paused
```bash
/sw:backlog 0008

❌ Cannot move increment 0008 to backlog
   Status: paused
   Paused work should be resumed or abandoned, not moved to backlog
   Resume it: /sw:resume 0008
```

### Increment Not Found
```bash
/sw:backlog 9999

❌ Increment not found: 9999
πŸ’‘ Check available increments: /sw:status
```

---

## Implementation

This command uses the MetadataManager to update increment status:

```typescript
import { MetadataManager, IncrementStatus } from '../src/core/increment/metadata-manager';

// Read current metadata
const metadata = MetadataManager.read(incrementId);

// Validate can move to backlog
if (metadata.status !== IncrementStatus.ACTIVE) {
  throw new Error(`Cannot move increment with status: ${metadata.status}`);
}

// Update status
MetadataManager.updateStatus(incrementId, IncrementStatus.BACKLOG, reason);
```

---

## Status Flow

```
active ──backlog──> backlog
   β”‚
   └──resume──> active
```

---

## Related Commands

- `/sw:resume <id>` - Move from backlog to active (start work)
- `/sw:pause <id>` - Pause active work (different from backlog)
- `/sw:status` - Show all increment statuses including backlog
- `/sw:abandon <id>` - Abandon increment (permanent)

---

## Best Practices

βœ… **Use backlog for planning** - Plan multiple increments without violating WIP

βœ… **Prioritize backlog regularly** - Review and reorder based on value

βœ… **Clear reasons** - Helps with prioritization decisions

βœ… **Start when ready** - Use `/sw:resume` to move from backlog to active

❌ **Don't confuse with paused** - Backlog = never started, Paused = started but blocked

❌ **Don't let backlog grow unbounded** - Review and abandon obsolete items

---

## Backlog vs Paused

| Aspect | Backlog | Paused |
|--------|---------|--------|
| **Definition** | Planned but not started | Started but blocked |
| **WIP Count** | NO | NO |
| **Use Case** | Low priority, future work | Blocked, deprioritized |
| **Resume** | Start from beginning | Continue where left off |

---

## Warning: Large Backlog

If your backlog grows too large (10+ increments), `/sw:status` will warn:

```bash
/sw:status

πŸ—‚οΈ  Backlog (12):
  πŸ“¦ 0032-feature-a [feature] - Low priority
  πŸ“¦ 0033-feature-b [feature] - Waiting for decisions
  πŸ“¦ 0034-feature-c [feature] - Multiple planned ideas
  ... (9 more)

⚠️  Large backlog! Consider:
   - Abandoning obsolete items
   - Consolidating similar features
   - Reviewing priorities

πŸ’‘ Actions:
   /sw:resume <id>  # Start work on highest priority
   /sw:abandon <id> # Remove obsolete items
```

---

**Command**: `/sw:backlog`
**Plugin**: specweave (core)
**Version**: v0.19.0
**Part of**: Backlog Support Feature

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.