Posting Review Summary logo

Posting Review Summary

Organization
bitwarden
posting-review-summary

Use this skill when posting the final summary comment, including its No Verdict form when nothing could be reviewed and no inline comments exist. Otherwise apply as the LAST step of code review, after all findings are classified and inline comments are complete. Detects context (caller-declared local-file output, agent mode sticky comment, GitHub Actions MCP tool, or local file) and routes output accordingly.

Overview

Publisherbitwarden
Repositoryai-plugins
Skill nameposting-review-summary
Stars
149
Forks
19
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by bitwarden on GitHub. Read the source before you install it.

Installation

Install the Posting Review Summary AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/bitwarden/ai-plugins.git /tmp/ai-plugins
mkdir -p .claude/skills
cp -r /tmp/ai-plugins/plugins/bitwarden-code-review/skills/posting-review-summary .claude/skills/posting-review-summary
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Posting Review Summary in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Posting Review Summary on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Posting Review Summary is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Posting Review Summary

Context Detection

Check contexts in this order — use the first match:

ContextHow to DetectAction
Local output in effectAn 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 availableWrite to review-summary.md in working directory
Local target, no GitHub destinationThe review target is local changes and no caller declared a GitHub destinationWrite to review-summary.md in working directory
Agent ModeSticky comment context provided in prompt (comment ID + <!-- bitwarden-code-review --> marker)Write summary to /tmp/review-summary.md
GitHub Actions (tag mode)mcp__github_comment__update_claude_comment available AND no sticky comment contextUpdate sticky comment via MCP tool
Local reviewNeither agent mode context nor MCP tool availableWrite to review-summary.md in working directory

FORBIDDEN: Do not use gh pr comment to create summary comments.

PR Metadata Assessment

If PR title, description, or test plan is genuinely deficient, add as a finding in the Code Review Details collapsible section.

Rules

  • DO NOT comment on minor improvements
  • DO NOT comment on adequate-but-imperfect metadata
  • NEVER add as an inline comment
  • DO NOT exceed 3 lines of feedback on the PR Metadata Assessment

Examples

Genuinely deficient means:

  • Title is literally "fix bug", "update", "changes", or single word
  • Description is empty or just "See Jira"
  • UI changes with zero screenshots
  • No test plan AND changes are testable

Adequate (DO NOT flag):

  • Title describes the change even if imperfect: "Fix login issue for SSO users"
  • Description exists and explains the change, even briefly
  • Test plan references Jira task with testing details

Format

markdown
-**QUESTION**: PR title could be more specific
  - Suggested: "Fix null check in UserService.getProfile"

Summary Format

markdown
## 🤖 Bitwarden Claude Code Review

**Overall Assessment:** APPROVE / REQUEST CHANGES

[Up to 4 neutral sentences describing what was reviewed]

[Optional **Not covered:** line - only when a review step the diff called for did not run and nothing else in this review covered its ground]

<details>
<summary>Code Review Details</summary>

[Findings grouped by severity - see ordering below]

[Optional PR Metadata Assessment - only for truly deficient metadata]

</details>

No Verdict

Use this form instead of the template above — not as a third value inside it — when nothing was reviewed — the diff could not be produced, it came back empty, the pull request could not be identified, or any other reason the review did not happen. Emit no APPROVE or REQUEST CHANGES; a verdict over an unreviewed diff is worse than none.

It goes to the same destination the mode you are in would have used for a normal summary, by the routing in Context Detection above and the per-mode steps in Output Execution below — including the marker append in agent mode, without which the next run cannot find the sticky comment and duplicates it. Nothing about this form changes where output lands — a stop that writes nowhere leaves a placeholder comment reading as a review that found nothing, which is the outcome the form exists to prevent.

The reason goes in the assessment-sentence position, outside <details>, for the same reason the coverage note does — a reason nobody expands is a reason nobody reads. There is no <details> block at all here, because there are no findings to put in one, and no coverage note either: this form already says the whole review did not happen.

markdown
## 🤖 Bitwarden Claude Code Review

**Overall Assessment:** NO VERDICT

[One or two sentences: what was attempted, what stopped it, and what the caller should do next]

Not Covered

A coverage note is not a finding: it has no file:line to cite and it says what was not reviewed, which is the opposite of the assessment sentences above it. So it gets its own line, outside the <details> block, where an approval cannot bury it.

Render it when a review step the diff called for did not run and nothing else in this review covered its ground — this path cannot reach that reviewer at all, or the reviewer errored or returned nothing usable. An optional enrichment skill that was merely unavailable does not qualify: those fall back to your existing review knowledge, so the ground was still covered. Name the files that went unreviewed, why, and which other path covers them. Give the reason that actually applies on your path — do not assert an install state you cannot check, and do not point at a remedy the stated reason would also block.

Example, the bitwarden-code-reviewer path, where Task is unavailable so plugin-dev:skill-reviewer cannot be launched whatever is installed:

markdown
**Not covered:** Skill review did not run — this review path cannot launch
`plugin-dev:skill-reviewer`, so `plugins/example/skills/doing-a-thing/SKILL.md` was not checked
for description quality, length, or progressive disclosure.
`performing-multi-agent-code-review` covers them where `plugin-dev` is installed.

Omit the line entirely when every review step the diff called for ran. An approval that hides what went unreviewed reads as a pass on it.

Dependency Changes Table

When the PR diff includes dependency manifest file changes, add a Dependency Changes subsection inside the <details> block, after the findings list and before the optional PR Metadata Assessment.

Only render this table when there are meaningful version changes — not for lock file-only churn with no manifest changes.

markdown
### Dependency Changes

| Package           | Change                | Ecosystem |
| ----------------- | --------------------- | --------- |
| `@foo/bar`        | New (1.2.0)           | npm       |
| `lodash`          | 3.x → 4.x (**major**) | npm       |
| `Newtonsoft.Json` | 13.0.1 → 13.0.3       | NuGet     |
| `old-package`     | Removed               | npm       |

Bold the word "major" for major version bumps. Mark new additions as "New (version)" and removals as "Removed".

Findings in Details Section

Ordering: Group findings by severity in this exact order:

  1. ❌ : CRITICAL
  2. ⚠️ : IMPORTANT
  3. ♻️ : DEBT
  4. 🎨 : SUGGESTED
  5. ❓ : QUESTION

Omit empty categories entirely.

Format per finding:

markdown
- [emoji]: [One-line description]
  - `filename.ts:42`

Example:

markdown
<details>
<summary>Code Review Details</summary>

- ❌ : SQL injection in user query builder
  - `src/auth/queries.ts:87`
- ⚠️ : Missing null check on optional config
  - `src/config/loader.ts:23`

</details>

Output Execution

Agent Mode (Sticky Comment)

When sticky comment context is provided in the prompt (comment ID + marker):

  1. Write the summary to /tmp/review-summary.md using the Write tool
  2. Append \n\n<!-- bitwarden-code-review --> at the end of the file content
  3. Do NOT use mcp__github_comment__update_claude_comment
  4. Do NOT use gh pr comment or gh api

The workflow post-step will read this file and update the placeholder comment automatically.

GitHub Actions (Tag Mode)

Use mcp__github_comment__update_claude_comment to update the sticky comment with the summary.

Local

Write summary to review-summary.md in working directory.

Frequently asked questions

What does the Posting Review Summary AI skill do?

Use this skill when posting the final summary comment, including its No Verdict form when nothing could be reviewed and no inline comments exist. Otherwise apply as the LAST step of code review, after all findings are classified and inline comments are complete. Detects context (caller-declared local-file output, agent mode sticky comment, GitHub Actions MCP tool, or local file) and routes output accordingly.

Why use Posting Review Summary on TypingMind?

Because you install it once and use it with any model. Posting Review Summary is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Posting Review Summary in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/bitwarden/ai-plugins/tree/main/plugins/bitwarden-code-review/skills/posting-review-summary. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Posting Review Summary?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Posting Review Summary?

As many as you like. As long as a model supports skills, you can use Posting Review Summary with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Posting Review Summary AI skill free?

It is published on GitHub by bitwarden. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇