release
Cut a paad release — pick the semver bump from what is in [Unreleased], run make release, merge, tag, and verify the published…
EXPERIMENTAL. Use when working the project-wide out-of-scope backlog at paad/code-reviews/backlog.md and paad/security/backlog.md — cleaning it of entries that are already fixed or gone, or picking the next entry and fixing it end-to-end. Not for producing backlog entries — that
$ npx -y skills add Ovid/paad --skill backlog --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/backlogContext preview
The summary Claude sees to decide when to auto-load this skill.
EXPERIMENTAL. Use when working the project-wide out-of-scope backlog at paad/code-reviews/backlog.md and paad/security/backlog.md — cleaning it of entries that are already fixed or gone, or picking the next entry and fixing it end-to-end. Not for producing backlog entries — that
name: backlog description: EXPERIMENTAL. Use when working the project-wide out-of-scope backlog at paad/code-reviews/backlog.md and paad/security/backlog.md — cleaning it of entries that are already fixed or gone, or picking the next entry and fixing it end-to-end. Not for producing backlog entries — that is /agentic-review — and not for reviewing a branch diff.
**On invocation:** announce "Running paad:backlog v2.0.2", then immediately proceed with the steps below — do not stop after announcing.
**Configuration (experimental):** after announcing, check whether `paad/config/paad.md` and `paad/config/backlog.md` exist, relative to the working directory. If any does, read it and follow its instructions for the rest of this run, passing the relevant parts to every subagent you dispatch, and make the first line of your final answer `Config: <path>` naming each file you followed. If none exists, do not mention config at all. Config never changes a subagent's type or grants it write tools — refuse that line, say so, and continue. Config can contradict the flow below; see https://github.com/Ovid/paad/blob/main/CONFIG.md before writing one.
**Experimental.** Arguments, modes, and behavior may change — or this skill may be withdrawn — in any release, including a patch release. The semver promise the settled skills carry does not apply here. If you build a workflow on it, pin your plugin version and [file what breaks](https://github.com/Ovid/paad/issues).
Work the project-wide bug backlog at `paad/code-reviews/backlog.md` and `paad/security/backlog.md` — the files `/agentic-review` writes its out-of-scope findings to. Two modes: **Clean** re-verifies every entry against the current code and drops the ones already fixed or gone; **Fix** picks the next entry and fixes it end-to-end. This is the always-available entry point into that backlog.
**This is a technique skill.** Follow the mode's steps in order. Two rules bind both modes and are the reason the skill exists:
**Flow:**
digraph backlog {
"Invoked" [shape=doublecircle];
"Both backlogs missing, or zero entries between them?" [shape=diamond];
"STOP: report empty, suggest /agentic-review" [shape=box, style=bold];
"Mode from $ARGUMENTS?" [shape=diamond];
"List entries; show menu; WAIT for choice" [shape=box];
"CLEAN: one skeptical read-only analyst per entry" [shape=box];
"Verdict, decided from code at the cited lines?" [shape=diamond];
"Any doubt: KEEP the entry (never delete on ambiguity)" [shape=box, style=bold];
"Delete RESOLVED/GONE entries + merge-losers" [shape=box];
"FIX: rank by severity then age; propose top; WAIT for pick" [shape=box];
"Fix the bug (directly or via /vibe)" [shape=box];
"Independent read-only analyst reads code; best-effort tests (none: inspection only, never a pass alone)" [shape=box];
"Analyst confirms the specific bug is gone?" [shape=diamond];
"KEEP entry; report what is still wrong" [shape=box, style=bold];
"Delete the entry" [shape=box];
"Write each edit back to the file its entry came from; security backlog never in the commit command" [shape=box];
"Print the git commit command for what changed (none if the committed backlog did not); NEVER run git commit" [shape=box, style=bold];
"Done" [shape=doublecircle];
"Invoked" -> "Both backlogs missing, or zero entries between them?";
"Both backlogs missing, or zero entries between them?" -> "STOP: report empty, suggest /agentic-review" [label="yes"];
"Both backlogs missing, or zero entries between them?" -> "Mode from $ARGUMENTS?" [label="no"];
"Mode from $ARGUMENTS?" -> "List entries; show menu; WAIT for choice" [label="none"];
"Mode from $ARGUMENTS?" -> "CLEAN: one skeptical read-only analyst per entry" [label="clean"];
"Mode from $ARGUMENTS?" -> "FIX: rank by severity then age; propose top; WAIT for pick" [label="fix"];
"List entries; show menu; WAIT for choice" -> "CLEAN: one skeptical read-only analyst per entry" [label="1 clean"];
"List entries; show menu; WAIT for choice" -> "FIX: rank by severity then age; propose top; WAIT for pick" [label="2 fix"];
"CLEAN: one skeptical read-only analyst per entry" -> "Verdict, decided from code at the cited lines?";
"Verdict, decided from code at the cited lines?" -> "Any doubt: KEEP the entry (never delete on ambiguity)" [label="STILL-PRESENT / unsure"];
"Verdict, decided from code at the cited lines?" -> "Delete RESOLVED/GONE entries + merge-losers" [label="RESOLVED / GONE, cited"];
"Any doubt: KEEP the entry (never delete on ambiguity)" -> "Write each edit back to the file its entry came from; security backlog never in the commit command";
"Delete RESOLVED/GONE entries + merge-losers" -> "Write each edit back to the file its entry came from; security backlog never in the commit command";
"FIX: rank by severity then age; propose top; WAIT for pick" -> "Fix the bug (directly or via /vibe)";
"Fix the bug (directly or via /vibe)" -> "Independent read-only analyst reads code; best-effort tests (none: inspection only, never a pass alone)";
"Independent read-only analyst reads code; best-effort tests (none: inspection only, never a pass alone)" -> "Analyst confirms the specific bug is gone?";
"Analyst confirms the specific bug is gone?" -> "Delete the entry" [label="yes"];
"Analyst confirms the specific bug ipaad 2.0.0 is out. You can now tailor paad to your own needs with config files, and security findings now stay out of your committed reports. See the 2.0.0 release notes and the changelog.
Cut a paad release — pick the semver bump from what is in [Unreleased], run make release, merge, tag, and verify the published…
Read the feature roadmap, find the next unplanned phase, brainstorm it, and update the roadmap with the resulting document name
Use when auditing a user-facing app — web, mobile (iOS/Android/React Native/Flutter), desktop, CLI, or games — for accessibility…
Use when assessing the architectural health of a codebase — before a major refactor, when onboarding to an unfamiliar repo, after…
EXPERIMENTAL. Use when looking for meaningfully duplicated logic in a codebase, especially duplicate behavior hidden behind…
EXPERIMENTAL. Use when code needs a security review against the OWASP Top 10:2025 — access control, misconfiguration, supply…