From omni-sw
Backlog management system — Manages user stories as structured JSON with role-based access control, replacing markdown-based BACKLOG.md. Provides CRUD operations for user stories, status tracking, acceptance criteria, dependency maps, and auto-generated markdown summaries. Enforces agency permissions: only po/pm create stories, only po/pm/tl edit descriptions, all agents can change status. Supports migration from legacy markdown BACKLOG.md via review teams. Use when: (1) any agent needs to create, read, update, or delete user stories, (2) agent mentions "backlog", "user story", "US-", "acceptance criteria", "story status", (3) po/pm is producing backlog in Plan phase, (4) any agent needs to query stories by status/feature/priority, (5) generating BACKLOG.md summary from JSON data, (6) migrating an old docs/BACKLOG.md to the new JSON format.
How this skill is triggered — by the user, by Claude, or both
Slash command
/omni-sw:backlogThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Structured JSON-based backlog replacing the markdown template. All backlog data lives in `agent_docs/backlog/` relative to the project root.
Structured JSON-based backlog replacing the markdown template. All backlog data lives in agent_docs/backlog/ relative to the project root.
graph LR
dir["{project_root}/agent_docs/backlog/"]
dir --> json["backlog.json<br/><i>source of truth</i>"]
dir --> md["BACKLOG.md<br/><i>auto-generated summary</i>"]
The script backlog_manager.py is bundled with this skill but its absolute path varies depending on installation method (plugin cache, --plugin-dir, or ~/.claude/skills/). Resolve it once per session using Glob, then reuse the result:
# Run once at session start via Glob tool:
Glob pattern: "**/backlog/scripts/backlog_manager.py"
Store the result as {SCRIPT} for all subsequent commands. This costs one Glob call and avoids hardcoded paths.
Pass --caller <agent> on every command. The script rejects unauthorized operations. See shared/agent-common.md for the full permission matrix.
For the full commands reference (init, create, edit, status, list, stats, get, delete, render, question), see references/commands.md.
create and edit return slim confirmations to minimize context usage:
{"success": true, "id": "US-001"}{"success": true, "id": "US-001", "changes": ["title", "priority"]}Use get --id <US-XXX> to retrieve the full story if needed after mutation.
| Need | Command |
|---|---|
| Progress overview (counts only) | stats |
| Story list (IDs + titles + status) | list --format summary |
| Story list (specific fields) | list --fields id,title,acceptance_criteria |
| Story list (full detail minus audit) | list --format json |
| Single story (all fields + history) | get --id US-XXX |
| Phase | Agent | Typical Transitions |
|---|---|---|
| Plan | PO | → Draft → Ready |
| Design | TL | Ready → In Design |
| Validate | PM/TL | In Design → Validated |
| Implement | Dev | Validated → In Progress → In Review |
| Review | TL | In Review (stays, or → In Progress if issues) |
| Test | QA | In Review → In Testing → Done |
For migration workflows, read references/migration.md. Only triggered by /po migrate or /pm migrate.
For team-based workflows using TeamCreate/Task tools, see references/team-orchestration.md.
For the complete data structure, see references/schema.md.
npx claudepluginhub vitorandtxr/omni-sw --plugin omni-swCreates and maintains product/project backlogs with prioritization, acceptance criteria, and estimates. Supports user stories, MoSCoW, grooming, and tracking.
Manages backlog items synced to GitHub Issues via MCP tools. Create, list, view, update, close, resolve, groom, and sync without direct file edits.
Creates backlog epics in an issue tracker from a specification document. Accepts optional flags for decomposition into subtasks, updates to existing issues, or dry-run preview.