Bitwarden Code Review
Skill 13 of 83
Use this skill when emitting inline review comments, whether posted to a GitHub pull request or written to a local file under caller-declared local-file output.
2 minutes · 546 words · 6 sections
Install
npx skills add bitwarden/ai-plugins --skill posting-bitwarden-review-commentsnpx skills add bitwarden/ai-plugins/plugin marketplace add bitwarden/ai-pluginsThe first command installs just this skill, by the name in its SKILL.md; the second installs the whole repository.
Check destinations in this order — use the first match:
| Destination | How to Detect | Action |
|---|---|---|
| Local output in effect | An OUTPUT: local files line in the prompt’s leading directive block, or a caller that passes local files as the destination in effect. Check this first, and never key it on which tools happen to be available | Write to the inline-comments path the caller passed. With no path, pick none: return the formatted findings in your reply and say no destination was given. bitwarden-code-reviewer resolves the directory and file name in its Step 1 and passes it on every invocation; this skill never picks either |
| Local target, no GitHub destination | The review target is local changes and no caller declared a GitHub destination | Write to the inline-comments path the caller passed. With no path, pick none: return the formatted findings in your reply and say no destination was given |
| GitHub pull request | Neither of the above | Post via mcp__github_inline_comment__create_inline_comment |
Under either local destination, format every finding exactly as below, without the source line, and write them all to the one file, or return them in your reply when no path was passed — do not post, whatever comment tools happen to be available.
On a GitHub pull request, a finding raised again in an existing thread goes as a reply in that thread, so its history stays in one place. Call mcp__github_replies__add_reply_to_pull_request_comment with the database_id of the thread’s first comment as commentId, the owner and repository from the threads data’s top-level repository, and the pull request number as pullNumber, which the tool requires whenever a reply has a body. The reply uses the same finding format as an inline comment. When that tool is unavailable, the thread’s first comment has no database_id, or the reply call fails, post a new inline comment instead.
CRITICAL: Never use # followed by numbers - GitHub will autolink it to unrelated issues/PRs.
CORRECT FORMAT:
WRONG (DO NOT USE):
Every inline comment MUST:
<details> AND closing </details> tags<sub>code-review</sub>, short comments and thread replies includedVisibility Rule: Only severity + one-line description and, on a GitHub pull request, the source line visible; everything else inside <details> tags.
[emoji] **[SEVERITY]**: [One-line issue description]
<details>
<summary>Details and fix</summary>
[Code example or specific fix]
[Rationale explaining why]
Reference: [docs link if applicable]
</details>
<sub>code-review</sub>Invoke Skill(posting-review-summary) for all summary formatting and posting.
Use this skill when emitting inline review comments, whether posted to a GitHub pull request or written to a local file under caller-declared local-file output. Apply when formatting comments following Bitwarden engineering standards with severity emojis, clear explanations, and actionable suggestions. Use after findings are classified and ready to emit. DO NOT USE when posting summary comments.
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
main, last pushed 6 November 2026.SKILL.md, not by matching a directory convention. 20 distinct layouts observed: plugins/bitwarden-abacus-tools/skills/*/SKILL.md, plugins/bitwarden-adr-tools/skills/*/SKILL.md, plugins/bitwarden-atlassian-tools/skills/*/SKILL.md, plugins/bitwarden-code-review/skills/*/SKILL.md, plugins/bitwarden-delivery-tools/skills/*/SKILL.md, plugins/bitwarden-design-tools/skills/*/SKILL.md, plugins/bitwarden-designer/skills/*/SKILL.md, plugins/bitwarden-devops-engineer/skills/*/SKILL.md, plugins/bitwarden-doc-parity/skills/*/SKILL.md, plugins/bitwarden-mailcatcher-tools/skills/*/SKILL.md, plugins/bitwarden-product-analyst/skills/*/SKILL.md, plugins/bitwarden-retrospective-tools/skills/*/SKILL.md, plugins/bitwarden-security-engineer/skills/*/SKILL.md, plugins/bitwarden-shepherd/skills/*/SKILL.md, plugins/bitwarden-stripe-tools/skills/*/SKILL.md, plugins/bitwarden-tech-lead/skills/*/SKILL.md, plugins/bitwarden-testing-tools/skills/*/SKILL.md, plugins/bitwarden-testmo-tools/skills/*/SKILL.md, plugins/claude-config-validator/skills/*/SKILL.md, plugins/claude-retrospective/skills/*/SKILL.md.h1 and no skipped levels:.claude-plugin/marketplace.json by Bitwarden, declaring 23 plugins. It is read for editorial metadata only — never as the skill index, which is always the repository tree./bitwarden/ai-plugins.md, and each skill at its own .md URL.