acceptlisted
Install: claude install-skill ytubecoder/ticket-takeaway
# Accept — For Review to Done
Accept a ticket that has passed review. Moves it to Done, writes a permanent summary to `PRODUCT_SPECIFICATION.md`, and cleans up ephemeral working files.
**Architecture:** `PRODUCT_BACKLOG.md` (For Review) --> accept --> `PRODUCT_SPECIFICATION.md` + cleanup
---
## Mode Detection
| Invocation | Mode |
|---|---|
| `/accept {ID}` | Accept a specific ticket by ID |
| `/accept` (no args) | List For Review tickets and ask which to accept |
---
## Steps
### 1. Read the Backlog
Read `PRODUCT_BACKLOG.md` in the current project directory. If not found in cwd, look up the project via `~/.claude/ticket-takeaway/registry.json` and use the registered path.
**Always read fresh — never use cached content.**
### 2. Find the Ticket
If an ID was given, find it in `## For Review` (case-insensitive match). If not found, report: "{ID} not found in For Review section." and stop.
If no ID was given, list all tickets in `## For Review` and ask: "Which ticket to accept?"
### 3. Check for Open Bugs
```bash
python3 ~/.claude/ticket-takeaway/tickets-cli.py list --project <project> --section bugs
```
Look for entries with parent matching {ID} that do NOT have `Status: bug-fixed`.
If open bugs exist:
```
{N} open bug(s) linked to {ID}. Resolve them first or force-accept?
```
Wait for user decision. If they don't force-accept, stop.
### 4. Run /sync
If `docs/features/{ID}/` exists, run `/sync` to extract learnings before cleanup. This step is **mandatory** —