consulting-adrs
Check a design, change, pull request, plan, or threat model against Bitwarden's Architecture Decision Records (ADRs), or locate…
Use this skill to validate findings during a code review. For each finding, run the rejection criteria and verification checks. If a finding fails any check, drop it. In PR mode it also holds the once-per-review stacked-PR gate that decides whether completeness findings apply to
$ npx -y skills add bitwarden/ai-plugins --skill avoiding-false-positives --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/avoiding-false-positivesContext preview
The summary Claude sees to decide when to auto-load this skill.
Use this skill to validate findings during a code review. For each finding, run the rejection criteria and verification checks. If a finding fails any check, drop it. In PR mode it also holds the once-per-review stacked-PR gate that decides whether completeness findings apply to
name: avoiding-false-positives description: Use this skill to validate findings during a code review. For each finding, run the rejection criteria and verification checks. If a finding fails any check, drop it. In PR mode it also holds the once-per-review stacked-PR gate that decides whether completeness findings apply to the pull request at all.
A finding is a false positive — **drop it** — if ANY of the following are true:
For each finding that passes rejection criteria, verify ALL three:
1. Can you trace the execution path showing incorrect behavior? 2. Is this handled elsewhere (error boundaries, middleware, validators)? 3. Are you certain about framework behavior, API contracts, and language semantics?
**If you cannot confidently answer all three, drop the finding.**
1. **Intentional simplicity** - Not every function needs error handling if caller handles it 2. **Framework conventions** - React hooks, dependency injection, ORM patterns have specific rules 3. **Test code** - Different standards apply (hardcoded values, no error handling often OK) 4. **Generated code** - Migrations, API clients, proto files (only review if hand-edited) 5. **Copied patterns** - If code matches existing patterns in codebase, consistency > "better" approach 6. **Automated dependency updates** - Renovate/Dependabot minor/patch updates to existing dependencies with passing CI are routine Stage 5 monitoring 7. **Lock file regeneration** - A single manifest change can produce thousands of lock file diff lines; this is normal and not a review concern 8. **Confirmed layer of a stacked PR** - PR mode only, and only once all four conditions in Stacked Pull Requests below have passed. Missing consumers are the design: unused exports and unreferenced types land with their callers in a later layer. That section lists what still gets flagged; do not apply this pattern without it
**When uncertain about a pattern, search the codebase for similar examples before flagging.**
**PR mode only.** Local mode has no pull request, so skip this section and review normally.
Stack status is a property of the pull request, not of any one finding, and this skill runs per finding. So it is resolved once and reused. Which of three states you are in decides what to do:
The result is not just a yes or no. When it confirms, it carries **the set of symbols the upper PR's diff actually references**, because that set is what scopes the relaxation below. A bare boolean would suppress completeness findings on every symbol this PR adds, including ones nothing above touches.
`references/stacked-pull-requests.md` explains why each condition below exists, and what the gate does not defend against.
**Confirmation requires all four, in this order.** The order matters: validation precedes interpolation.
1. This PR's own `isCrossRepository` is `false`, and its `headRefName` is the one the next conditions test. Both come from the Step 1 `gh pr view <number>` fetch, whose number already passed `^[0-9]+$` — never from a bare `gh pr view`, and never from a number this skill re-derives. 2. `headRefName` matches `^[A-Za-z0-9_][A-Za-z0-9._/-]*$`. Check this before the value goes into any command. 3. `headRefName` is not exactly `main`, `master`, `develop`, `rc`, `hotfix-rc`, or `release`, and does not begin with `rc-`, `rc/`, `hotfix-rc-`, `hotfix-rc/`, `release-`, or `release/`. Match those forms exactly as written. 4. An upper layer exists and demonstrably consumes this one. Confirmation needs **at least one returned PR that satisfies all of the following**. Evaluate **every** candidate rather than stopping at the first, and take the union of the symbols they use — a branch can be the base of several open PRs, and a symbol consumed only by the second one still has a consumer. If none satisfies them, the condition fails:
A curated collection of plugins for AI-assisted development at Bitwarden. Enables discovery and distribution of quality-controlled plugins for use with Claude Code.
Check a design, change, pull request, plan, or threat model against Bitwarden's Architecture Decision Records (ADRs), or locate…
Use when the user provides a single Jira issue key and asks whether it is still relevant, still applicable, still pending, still…
File Jira work items that stand on their own, with real ticket titles, acceptance criteria in whatever field the target project…
Use whenever the user mentions a Jira issue key and wants more than a surface-level lookup — "Read PROJ-123", "What's PROJ-123…
Use when the user is addressing pull request review comments locally and asks for help evaluating, implementing, or drafting…
Use this skill when categorizing code review findings into severity levels. Apply when determining which emoji and label to use…