بنقرة واحدة
backlog
Manage the project backlog — add, list, filter, update, prioritize, and suggest work items
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Manage the project backlog — add, list, filter, update, prioritize, and suggest work items
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Daily session wrapper — start with backlog, work, commit, retro
End-of-session retrospective — summarize work, update backlog statuses, update MEMORY.md
Commit, branch, PR, self-review, fix — then stop for human approval before merge
Pre-flight for parallel work — pick items, check file overlap, set statuses, generate terminal commands
Manage project backlog — add, list, filter, update, prioritize, suggest
Full ship cycle: branch, PR, self-review, fix, human approval, merge
| name | backlog |
| description | Manage the project backlog — add, list, filter, update, prioritize, and suggest work items |
| user-invocable | true |
Use this skill to manage backlog items tracked in GitHub Projects (project #15). Items are GitHub Issues with custom fields (Priority, Effort, Scope) and labels (type, area). This replaces the old docs/backlog.md file-based approach.
Project URL: https://github.com/users/YanCheng-go/projects/15
Repo: YanCheng-go/danskprep
Parse the user's arguments to determine which subcommand to run:
| Invocation | Action |
|---|---|
/backlog (no args) | Dashboard — show status counts + top ready items (blocked items separate) |
/backlog add <text> | Add — parse prompt, auto-assign metadata, write deps bidirectionally, confirm, create issue |
/backlog list [--status=X] [--area=X] [--priority=X] | List — show filtered items |
/backlog view BL-NNN | View — show full issue detail |
/backlog update BL-NNN field=value [...] | Update — modify fields on issue/project (supports blocks= and blocked-by=) |
/backlog done BL-NNN | Done — close issue, set status to Done, report newly unblocked items |
/backlog drop BL-NNN [reason] | Drop — close issue as "not planned", warn if items stay blocked |
/backlog next | Next — recommend highest-priority unblocked item (blocked listed separately) |
/backlog deps [BL-NNN] | Deps — show dependency graph or single item's dependency tree |
/backlog prioritize | Prioritize — interactive review of open items |
| Field | Options |
|---|---|
| Priority | p0, p1, p2, p3 |
| Effort | xs, s, m, l, xl |
| Scope | all, PD3M2, PD3M1, PD2 |
| Prefix | Values |
|---|---|
type: | type:feature, type:bug, type:chore, type:infra, type:content |
area: | area:ui, area:dx, area:db, area:quiz, area:auth, area:vocabulary, area:grammar, area:srs, area:scraping, area:analytics |
status: | status:idea (distinguishes ideas from ready items — both use Todo status) |
requires: | requires:human-review (item touches AI context files — needs careful human review) |
| Backlog status | GitHub Projects Status | Issue state | Extra |
|---|---|---|---|
| idea | Todo | open | + status:idea label |
| ready | Todo | open | no status:idea label |
| in-progress | In Progress | open | — |
| done | Done | closed (completed) | — |
| dropped | Done | closed (not planned) | — |
gh project item-edit)PROJECT_ID=PVT_kwHOAtALr84BQs_6
STATUS_FIELD=PVTSSF_lAHOAtALr84BQs_6zg-vxHc
Todo=f75ad846 InProgress=47fc9ee4 Done=98236657
PRIORITY_FIELD=PVTSSF_lAHOAtALr84BQs_6zg-vxbg
p0=794e355b p1=151159eb p2=5f1080aa p3=99d30072
EFFORT_FIELD=PVTSSF_lAHOAtALr84BQs_6zg-vxcM
xs=a24764ac s=c6281781 m=0b736dda l=639a71de xl=c1b86069
SCOPE_FIELD=PVTSSF_lAHOAtALr84BQs_6zg-vxcQ
all=458a4a3b PD3M2=36696fe9 PD3M1=2e32e278 PD2=a544201a
Issue titles use the format BL-NNN: <title>. When creating a new issue, find the highest existing BL number:
gh issue list --repo YanCheng-go/danskprep --search "BL-" --json title --limit 200 | jq -r '.[].title' | grep -oP 'BL-\d+' | sort -t- -k2 -n | tail -1
All subcommands that read or write items must be dependency-aware. This section defines the canonical format and scanning procedure.
Dependencies live in a ## Dependencies section at the bottom of the issue body. Each line uses one of two prefixes:
## Dependencies
- Blocks: #95 (BL-041), #98 (BL-043)
- Blocked by: #64 (BL-024)
Rules:
#NN (BL-NNN) — GitHub issue number first, BL-ID in parentheses- Blocks: line if nothing is blocked)## Dependencies section if there are no dependencies at all- Blocks: #B and B's body says - Blocked by: #AUsed by dashboard, next, deps, done, drop, and add subcommands:
gh issue list --repo YanCheng-go/danskprep --state open --label backlog \
--json number,title,body --limit 200
Parse each issue body:
- Blocks: or - Blocked by:#(\d+)blocks[issueNum] = [list of issues it blocks]Blocked by list is still open| Term | Meaning |
|---|---|
| Blocked | Has at least one open "Blocked by" item — cannot be started |
| Unblocked | No open "Blocked by" items — eligible for work |
| Root blocker | Unblocked itself, but blocks one or more other items |
| Unblock count | Number of items directly listing this one in "Blocked by" |
/backlog (dashboard)gh project item-list 15 --owner YanCheng-go --format json --limit 200
status:idea label to separate idea vs readystatus:idea, not blocked), sorted by Priority (p0 first), then Effort (xs first). Root blockers get an [unblocks N] annotation/backlog add <description>## Dependencies)BL-038: Fix mobile quiz layout cutting off on iPhone SE
Type: bug | Area: ui | Pri: p1 | Effort: s | Scope: all | Status: ready
Labels: requires:human-review (if applicable)
Description: [expanded from prompt]
Dependencies:
- Blocks: #64 (BL-024)
- Blocked by: none
- Related: BL-026 (mobile overflow) — same area
Confirm? (or override any field)
## Dependencies section in the body (canonical format):
# Create issue — body includes ## Dependencies section
gh issue create --repo YanCheng-go/danskprep \
--title "BL-038: <title>" \
--body "<description + ## Dependencies section>" \
--label "type:<type>,area:<area>,backlog"
# Add to project
gh project item-add 15 --owner YanCheng-go --url <issue_url> --format json
# Set custom fields (use item ID from above)
gh project item-edit --project-id PVT_kwHOAtALr84BQs_6 --id <item_id> \
--field-id <FIELD_ID> --single-select-option-id <OPTION_ID>
Repeat item-edit for Priority, Effort, and Scope fields.- Blocked by: #<new> (BL-038) to its ## Dependencies section- Blocks: #<new> (BL-038) to its ## Dependencies sectiongh issue edit <number> --body "<updated body>" to update existing issuesidea, also add the status:idea labelrequires:human-review label/backlog list [filters]gh project item-list 15 --owner YanCheng-go --format json --limit 200
--status=X → filter by Status field (idea/ready/in-progress/done/dropped)--area=X → filter by area:X label--priority=X → filter by Priority field--type=X → filter by type:X label/backlog view BL-NNNgh issue list --repo YanCheng-go/danskprep --search "BL-NNN" --json number,title --limit 5
gh issue view <number> --repo YanCheng-go/danskprep
/backlog update BL-NNN field=value [field=value ...]gh issue edit <number> --add-label/--remove-labelgh project item-editblocks=BL-NNN or blocked-by=BL-NNN): Update this issue's ## Dependencies section in canonical format, AND update the other issue's body with the reverse relationship (bidirectional)gh issue comment <number> --repo YanCheng-go/danskprep --body "Status changed from X to Y"
/backlog done BL-NNNgh issue close <number> --repo YanCheng-go/danskprep --reason completed
gh project item-edit --project-id PVT_kwHOAtALr84BQs_6 --id <item_id> \
--field-id PVTSSF_lAHOAtALr84BQs_6zg-vxHc --single-select-option-id 98236657
Completed on YYYY-MM-DD- Blocked by::
- Blocked by: line- Blocked by: line becomes empty, remove it (and the ## Dependencies section if no other lines remain)gh issue edit <number> --body "<updated body>" for each affected issue/backlog drop BL-NNN [reason]- Blocked by::
- Blocks: lines — those items would remain blockedgh issue close <number> --repo YanCheng-go/danskprep --reason "not planned"
Dropped on YYYY-MM-DD — <reason>/backlog done step 5: remove refs from other issues' - Blocked by: lines, clean up empty sections/backlog nextstatus:idea label)- Blocks: refs)git diff --stat HEAD~5)/backlog deps [BL-NNN]#95 (BL-041) → blocks → #93 (BL-040), #98 (BL-043))/backlog prioritizegh project item-edit callsWhen the user provides a natural language description, infer metadata using these rules. If multiple signals conflict, prefer the more specific one. Always present results for user confirmation.
| Signal words | Inferred type |
|---|---|
| fix, bug, broken, crash, error, wrong, stale | bug |
| add, new, implement, create, build, support | feature |
| exercise, word, grammar, sentence, prompt, content | content |
| migrate, deploy, CI, config, lint, test, build, Nix | infra |
| refactor, clean, rename, update deps, reorganize | chore |
| Signal words | Inferred area |
|---|---|
| quiz, exercise, cloze, multiple choice, word order | quiz |
| word, vocabulary, inflection, dictionary, verb, noun | vocabulary |
| grammar, topic, rule, conjugation, explanation | grammar |
| SRS, FSRS, card, review, spaced, scheduling | srs |
| layout, mobile, responsive, dark mode, button, page, CSS | ui |
| scrape, scraper, SpeakSpeak, speakandlearn, Moodle | scraping |
| Supabase, migration, database, RLS, table, SQL | db |
| auth, login, sign in, sign up, token, session | auth |
| progress, stats, chart, streak, analytics | analytics |
| CI, build, lint, Nix, deploy, Vercel, DX, tooling | dx |
| Signal words | Inferred priority |
|---|---|
| critical, urgent, blocks everything, security, ASAP | p0 |
| important, should, next, soon, high priority | p1 |
| (no signal — default) | p2 |
| nice to have, someday, low, minor, eventually | p3 |
| Signal words | Inferred effort |
|---|---|
| quick, one-liner, trivial, just change, tiny | xs |
| small, simple, straightforward | s |
| (no signal — default) | m |
| complex, multiple files, needs research, several | l |
| epic, multi-session, whole system, major rewrite | xl |
| Signal | Inferred scope |
|---|---|
| Mentions PD2 or Module 2 content specifically | PD2 |
| Mentions PD3M1 or Module 3.1 content | PD3M1 |
| Mentions PD3M2 or Module 3.2 content | PD3M2 |
| Infrastructure, UI, or cross-cutting concern | all |
| Not exam-related at all | (leave blank) |
New items start as ready (Todo, no status:idea label) unless the user says "just an idea", "maybe", "someday", or "thinking about" — then use idea (Todo + status:idea label).
If the item will likely touch AI context files, auto-add the requires:human-review label:
| Signal words | Files affected |
|---|---|
| skill, agent, rule, reference, CLAUDE.md, .claude, context, prompt | .claude/, CLAUDE.md |
| DEVELOPMENT.md, dev guide, workflow, skill chain | DEVELOPMENT.md |
| memory, MEMORY.md | MEMORY.md |
Also add the label when area:dx is inferred AND the description mentions AI/agent/skill configuration (not general DX like CI or Nix).
/backlog done BL-NNN before creating a PR/commit skill searches GitHub Issues for related backlog itemsCloses #NNN format to auto-close issues on mergegh auth switch --user YanCheng-go before any gh commands