From virtual-team
File-based backlog management using docs/backlog.md with bracket markers for status. Automatically activated when stack.md specifies local backlog.
How this skill is triggered — by the user, by Claude, or both
Slash command
/virtual-team:backlog-localThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
```yaml
implements: backlog
stack: local
This skill implements the backlog interface using a local markdown file. It is the default implementation when stack.md has backlog: local or no backlog: field.
| File | Purpose | Format |
|---|---|---|
docs/backlog.md | Item list with statuses | Markdown with bracket markers |
| Status | Marker | Example |
|---|---|---|
| ready | [ ] | - [ ] S-003: Story title | feature:FEAT-005 | group:1 | order:1 |
| doing | [>] | - [>] S-003: Story title |
| implemented | [=] | - [=] S-003: Story title — implemented, pending PR |
| done | [x] | - [x] S-003: Story title — PR #42 |
# Backlog
## Doing
- [>] S-003: Story title
## Ready
- [ ] S-010: Story title | feature:FEAT-005 | group:1 | order:1 | service:be | spec:docs/features/...
- [ ] S-011: Story title | feature:FEAT-005 | group:1 | order:2 | service:be | spec:docs/features/...
## Done
- [x] S-001: Story title — PR #12
- [x] S-002: Story title — PR #15
## Inbox
- Raw idea 1
- Raw idea 2
Items are ordered within sections. ## Ready items are in priority order (top = highest). Within a feature group, order:N defines the execution sequence.
docs/backlog.md- [ to extract: marker, ID, title, tagsstatus: match bracket marker ([ ]=ready, [>]=doing, [=]=implemented, [x]=done)feature: match feature:FEAT-NNN tagservice: match service:xx taggroup: match group:N tagdocs/backlog.mdS-003 or CTR-12)docs/backlog.mdS-NNN IDs using regexS-{max+1} zero-padded to 3 digits (e.g., S-016)backlog/SKILL.md title contract):
len(title) — the title string only, excluding the S-NNN: prefix and the | tag:value suffix that gets appended at write time.len(title) > 80, abort immediately. Do not write any item to the file (not even the valid ones — fail the whole batch so the caller fixes the source). Surface this error to the caller:
⛔ Story title too long: {N} chars (max 80) for {id}.
Title: "{title[:60]}..."
Rewrite as a short imperative verb phrase (e.g., "Add reviews migration",
"Wire review module factory"). Implementation detail — file paths, schema,
config keys, code fragments — belongs in the spec file referenced by spec:,
not the title.
docs/backlog.md## Ready section (create it if it doesn't exist — place between ## Doing and ## Inbox, or at the top)- [ ] {id}: {title} | feature:{feature_id} | group:{group} | order:{order} | service:{service} | spec:{spec_path}
docs/backlog.md- [ ] to - [>]- [>] {id}: {title}git add docs/backlog.md
git commit -m "chore(backlog): start {id}"
docs/backlog.md- [>] to - [=]- [=] {id}: {title} — implemented, pending PRgit add docs/backlog.md
git commit -m "chore(backlog): mark {id} implemented, pending PR"
docs/backlog.md[>] or [=] to [x]- [x] {id}: {title} — PR #{number}- [x] {id}: {title} — completed on main[x]. If yes, update the feature spec's status: frontmatter to done.git add docs/backlog.md docs/features/{feature_file}
git commit -m "chore(backlog): complete {id}"
All sync operations are no-ops for the local backend:
npx claudepluginhub ovargas/virtual-team --plugin virtual-teamDefines abstract backlog operations (list, get, create, update, start, finish) that commands reference, delegating to the active implementation skill selected by stack.md.
Interactively adds features, ideas, or requirements to project backlog by prompting for details, creating docs/features/[id]/idea.md with YAML frontmatter, validating duplicates from DASHBOARD.md, and optionally staging git changes.
Manages backlog items synced to GitHub Issues via MCP tools. Create, list, view, update, close, resolve, groom, and sync without direct file edits.