Step Procedures Reference
Detailed procedure content for Steps 0, Q, P, R, and the feature request template.
Step 0: Interactive Browser
Invoke the backlog script to list items with status:
uv run .claude/skills/backlog/scripts/backlog.py list --format json --with-status -R Jamie-BitFlight/claude_skills
Parse the JSON output. Each entry has section, title, issue, plan, status, milestone, file_path (index format), groomed (true if item has groomed content).
Groomed = item has groomed: true in JSON, or ## Groomed section in its per-item file (.claude/backlog/{priority}-{slug}.md). Read the item file; if groomed sections present, use them.
Present a numbered list. Use these status indicators in user-visible output only:
P0
- ✅ SAM: Error Recovery / Rollback Procedures [#12 status:in-progress v1.0]
- 🔍 SAM: Regex False Positive Suppression [#14 status:needs-grooming v1.0]
P1
3. 📋 SAM: Validate Task File Schema [no issue]
4. 📋 SAM: Implement Feature Dry-Run Mode [no issue]
P2
5. 🔍 SAM: Context Window Budget Tracking [#18 status:needs-grooming —]
Ideas
6. 📋 SAM: Multi-Repo Support [no issue]
Status: ✅ = planned/in-progress 🔍 = groomed/needs-grooming 📋 = not yet groomed
Options:
[number] — Select item to work on
G [number] — Groom a specific item
G all — Groom all ungroomed items
D [number] — Show full details for an item
Use AskUserQuestion to ask: "Which item would you like to work on next?"
Handle the response:
[number] — use that item's title as the working title and proceed to Step 1
G [number] — invoke Skill(skill="groom-backlog-item", args="{item title}") then re-display the list
G all — invoke Skill(skill="groom-backlog-item", args="all") then re-display the list
D [number] — display the full item description, research_first field, and groomed content (if present in the item file under ## Groomed), then re-display the list
C [number] — proceed to Step 9 (close path) with that item's title
R [number] — proceed to Step 9 (resolve path) with that item's title
Step 5: Feature Request Template
Build this string for add-new-feature:
Source: {source}
Priority: {priority section — P0/P1/P2/Ideas}
Added: {added date}
Description
{description text}
Research Questions
{research_first text, or "None" if absent}
Suggested Location
{suggested_location text, or "To be determined during architecture phase" if absent}
RT-ICA Assessment
Decision: APPROVED
Goal: {goal statement}
Verified conditions: {list of AVAILABLE items}
Assumptions to confirm: {list of DERIVABLE items, or "None"}
Grooming Context
{full context manifest from Step 3, if available}
Stack Profile (optional)
{stack profile name if --stack specified, e.g., python-fastapi}
If --stack was specified, append a "Stack profile" line. If --language was specified and is not python, invoke the corresponding language plugin (e.g., /typescript-development:add-new-feature for typescript).
Step Q: Quick Mode
Trigger: $0 is --quick. Skips grooming, RT-ICA, and SAM planning. For one-file fixes, broken links, and typo patches where full pipeline overhead is disproportionate.
Extract title from $1+ joined. Build slug: title lowercased, spaces → hyphens.
Find the item in .claude/backlog/ per-item files (same logic as Step 1). If not found, create a minimal item with the title.
Extract the item's description and acceptance criteria if available.
Write the plan to plan/quick/{slug}.md with frontmatter type: quick, fields: title, priority, issue, created. Body sections: ## Task (description), ## Steps (1-3 checklist items derived from description), ## Done When (acceptance_criteria if present, else goal from description).
Invoke backlog script to record the plan:
uv run .claude/skills/backlog/scripts/backlog.py update "{title}" --plan "plan/quick/{slug}.md" -R Jamie-BitFlight/claude_skills
Report:
To execute: /python3-development:implement-feature plan/quick/{slug}.md
To close: /work-backlog-item close {title}
Step P: Progress Report
Trigger: $0 is progress.
Scan .claude/backlog/ per-item files. Count items by priority (P0, P1, P2, Ideas) and status (done, resolved, closed).
Query GitHub for the active milestone:
gh api repos/Jamie-BitFlight/claude_skills/milestones --jq '[.[] | select(.state=="open")] | sort_by(.due_on) | first'
Extract: milestone number, title, open_issues, closed_issues.
For items in the active milestone, identify the highest-priority groomed item with no **Plan**: field — that is the recommended next action.
Display:
Active Milestone: #{N} {title}
Closed: {closed_issues} items
Open: {open_issues} items
Progress: [{####......}] {pct}%
Overall Backlog:
P0: {n} items ({m} in milestone)
P1: {n} items ({m} in milestone, {k} groomed but unassigned)
P2: {n} items
Ideas: {n} items
Next recommended action:
/work-backlog-item {title} — {title} (P{x}, groomed, in active milestone)
If no active milestone exists, omit the milestone section and show only Overall Backlog counts.
If the backlog directory is empty, note: (no backlog items found)
Step R: Resume Report
Trigger: $0 is resume.
Extract title from $1+ joined. If $1 starts with #, fetch title from GitHub Issue (same logic as Step 1b).
Find the item in .claude/backlog/ per-item files. Extract metadata.plan field. If absent:
Then stop.
Read the plan file. Parse the checklist:
total_tasks — lines matching - \[[ x]\]
checked_tasks — lines matching - \[x\]
last_checked — last line matching - \[x\] (trim the - [x] prefix)
first_unchecked — first line matching - \[ \] (trim the - [ ] prefix)
Compute completion_pct = checked_tasks * 100 / total_tasks (integer).
Report:
Progress: {checked_tasks}/{total_tasks} tasks ({completion_pct}%)
Last completed: {last_checked task text}
Next to do: {first_unchecked task text}
To continue: /python3-development:implement-feature {slug}
To close: /work-backlog-item close {title}
If checked_tasks == 0, report "No tasks completed yet."
If checked_tasks == total_tasks, report "All tasks complete — run /work-backlog-item close {title}."
1---2name: step-procedures-reference3description: Detailed procedure content for Steps 0, Q, P, R, and the feature request template.4---5# Step Procedures Reference67Detailed procedure content for Steps 0, Q, P, R, and the feature request template.89---1011## Step 0: Interactive Browser12131. Invoke the backlog script to list items with status:1415 ```bash16 uv run .claude/skills/backlog/scripts/backlog.py list --format json --with-status -R Jamie-BitFlight/claude_skills17 ```1819 Parse the JSON output. Each entry has `section`, `title`, `issue`, `plan`, `status`, `milestone`, `file_path` (index format), `groomed` (true if item has groomed content).20212. **Groomed** = item has `groomed: true` in JSON, or `## Groomed` section in its per-item file (`.claude/backlog/{priority}-{slug}.md`). Read the item file; if groomed sections present, use them.22233. Present a numbered list. Use these status indicators in user-visible output only:2425 <eg>26 Backlog Items:2728 P029 1. ✅ SAM: Error Recovery / Rollback Procedures [#12 status:in-progress v1.0]30 2. 🔍 SAM: Regex False Positive Suppression [#14 status:needs-grooming v1.0]3132 P133 3. 📋 SAM: Validate Task File Schema [no issue]34 4. 📋 SAM: Implement Feature Dry-Run Mode [no issue]3536 P237 5. 🔍 SAM: Context Window Budget Tracking [#18 status:needs-grooming —]3839 Ideas40 6. 📋 SAM: Multi-Repo Support [no issue]4142 Status: ✅ = planned/in-progress 🔍 = groomed/needs-grooming 📋 = not yet groomed4344 Options:45 [number] — Select item to work on46 G [number] — Groom a specific item47 G all — Groom all ungroomed items48 D [number] — Show full details for an item49</eg>50514. Use `AskUserQuestion` to ask: "Which item would you like to work on next?"52535. Handle the response:54 - `[number]` — use that item's title as the working title and proceed to Step 155 - `G [number]` — invoke `Skill(skill="groom-backlog-item", args="{item title}")` then re-display the list56 - `G all` — invoke `Skill(skill="groom-backlog-item", args="all")` then re-display the list57 - `D [number]` — display the full item description, research_first field, and groomed content (if present in the item file under `## Groomed`), then re-display the list58 - `C [number]` — proceed to Step 9 (close path) with that item's title59 - `R [number]` — proceed to Step 9 (resolve path) with that item's title6061---6263## Step 5: Feature Request Template6465Build this string for `add-new-feature`:6667<eg>68## Backlog Item: {title}6970**Source**: {source}71**Priority**: {priority section — P0/P1/P2/Ideas}72**Added**: {added date}7374### Description7576{description text}7778### Research Questions7980{research_first text, or "None" if absent}8182### Suggested Location8384{suggested_location text, or "To be determined during architecture phase" if absent}8586### RT-ICA Assessment8788**Decision**: APPROVED89**Goal**: {goal statement}90**Verified conditions**: {list of AVAILABLE items}91**Assumptions to confirm**: {list of DERIVABLE items, or "None"}9293### Grooming Context9495{full context manifest from Step 3, if available}9697### Stack Profile (optional)9899{stack profile name if --stack specified, e.g., python-fastapi}100</eg>101102If `--stack` was specified, append a "Stack profile" line. If `--language` was specified and is not `python`, invoke the corresponding language plugin (e.g., `/typescript-development:add-new-feature` for `typescript`).103104---105106## Step Q: Quick Mode107108**Trigger:** `$0` is `--quick`. Skips grooming, RT-ICA, and SAM planning. For one-file fixes, broken links, and typo patches where full pipeline overhead is disproportionate.1091101. Extract title from `$1`+ joined. Build slug: title lowercased, spaces → hyphens.1111122. Find the item in `.claude/backlog/` per-item files (same logic as Step 1). If not found, create a minimal item with the title.1131143. Extract the item's description and acceptance criteria if available.1151164. Write the plan to `plan/quick/{slug}.md` with frontmatter `type: quick`, fields: `title`, `priority`, `issue`, `created`. Body sections: `## Task` (description), `## Steps` (1-3 checklist items derived from description), `## Done When` (acceptance_criteria if present, else goal from description).1171185. Invoke backlog script to record the plan:119120 ```bash121 uv run .claude/skills/backlog/scripts/backlog.py update "{title}" --plan "plan/quick/{slug}.md" -R Jamie-BitFlight/claude_skills122 ```1231246. Report:125126 <eg>127 Quick plan created: plan/quick/{slug}.md128 Steps: {N} tasks129130 To execute: /python3-development:implement-feature plan/quick/{slug}.md131 To close: /work-backlog-item close {title}132 </eg>133134---135136## Step P: Progress Report137138**Trigger:** `$0` is `progress`.1391401. Scan `.claude/backlog/` per-item files. Count items by priority (P0, P1, P2, Ideas) and status (done, resolved, closed).1411422. Query GitHub for the active milestone:143144 ```bash145 gh api repos/Jamie-BitFlight/claude_skills/milestones --jq '[.[] | select(.state=="open")] | sort_by(.due_on) | first'146 ```147148 Extract: milestone number, title, open_issues, closed_issues.1491503. For items in the active milestone, identify the highest-priority groomed item with no `**Plan**:` field — that is the recommended next action.1511524. Display:153154 <eg>155 Backlog Health — {YYYY-MM-DD}156157 Active Milestone: #{N} {title}158 Closed: {closed_issues} items159 Open: {open_issues} items160 Progress: [{####......}] {pct}%161162 Overall Backlog:163 P0: {n} items ({m} in milestone)164 P1: {n} items ({m} in milestone, {k} groomed but unassigned)165 P2: {n} items166 Ideas: {n} items167168 Next recommended action:169 /work-backlog-item {title} — {title} (P{x}, groomed, in active milestone)170 </eg>171172 If no active milestone exists, omit the milestone section and show only Overall Backlog counts.173174 If the backlog directory is empty, note: `(no backlog items found)`175176---177178## Step R: Resume Report179180**Trigger:** `$0` is `resume`.1811821. Extract title from `$1`+ joined. If `$1` starts with `#`, fetch title from GitHub Issue (same logic as Step 1b).1831842. Find the item in `.claude/backlog/` per-item files. Extract `metadata.plan` field. If absent:185186 <eg>187 No plan file recorded for "{title}".188 Run /work-backlog-item {title} to create a plan first.189 </eg>190191 Then stop.1921933. Read the plan file. Parse the checklist:194 - `total_tasks` — lines matching `- \[[ x]\]`195 - `checked_tasks` — lines matching `- \[x\]`196 - `last_checked` — last line matching `- \[x\]` (trim the `- [x]` prefix)197 - `first_unchecked` — first line matching `- \[ \]` (trim the `- [ ]` prefix)1981994. Compute `completion_pct = checked_tasks * 100 / total_tasks` (integer).2002015. Report:202203 <eg>204 Resume: {title}205 Plan: {plan file path}206207 Progress: {checked_tasks}/{total_tasks} tasks ({completion_pct}%)208209 Last completed: {last_checked task text}210 Next to do: {first_unchecked task text}211212 To continue: /python3-development:implement-feature {slug}213 To close: /work-backlog-item close {title}214 </eg>215216 If `checked_tasks == 0`, report "No tasks completed yet."217 If `checked_tasks == total_tasks`, report "All tasks complete — run /work-backlog-item close {title}."