Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
{
"name": "bitwarden-delivery-tools",
"source": "./plugins/bitwarden-delivery-tools",
"version": "3.2.0",
"version": "3.3.0",
"description": "Delivery lifecycle skills for Bitwarden initiatives β€” initiative funnel navigation, work transitions, architectural judgment, commits, pull requests, preflight checks, change labeling, and Jira ticket filing."
},
{
Expand Down
36 changes: 18 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,24 @@ A curated collection of plugins for AI-assisted development at Bitwarden. Enable

## Available Plugins

| Plugin | Version | Description |
| ------------------------------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [bitwarden-ai-telemetry](plugins/bitwarden-ai-telemetry/) | 1.1.0 | Claude Code hooks emitting metadata-only AI-usage telemetry (identity, git-linkage, MCP) via OTLP |
| [bitwarden-tech-lead](plugins/bitwarden-tech-lead/) | 3.0.1 | Tech lead for technical planning, architecture coherence, and surfacing patterns to Technical Strategy Ideas |
| [bitwarden-shepherd](plugins/bitwarden-shepherd/) | 1.0.1 | Champion of a technical strategy β€” shepherds a TSI through evaluation into the funnel, then through to adoption |
| [bitwarden-atlassian-tools](plugins/bitwarden-atlassian-tools/) | 2.7.0 | Atlassian access via MCP server with deep Jira issue research skill and opt-in Jira write tools |
| [bitwarden-code-review](plugins/bitwarden-code-review/) | 2.1.0 | Autonomous code review agent following Bitwarden engineering standards with GitHub integration |
| [bitwarden-delivery-tools](plugins/bitwarden-delivery-tools/) | 3.2.0 | Delivery lifecycle skills: initiative funnel navigation, work transitions, architectural judgment, commits, PRs, preflight, labeling, Jira ticket filing |
| [bitwarden-designer](plugins/bitwarden-designer/) | 0.1.0 | Product designer persona: Code of Conduct and 30/60/90 critique, critique facilitation; dispatches into bitwarden-design-tools |
| [bitwarden-design-tools](plugins/bitwarden-design-tools/) | 0.1.0 | Design toolkit: content style guide, Figma Dev Mode MCP, Bitwarden brand application, handoff prep, Design System governance, Product and Design Jira |
| [bitwarden-devops-engineer](plugins/bitwarden-devops-engineer/) | 0.3.0 | DevOps engineering assistant: workflow compliance linting, action security auditing, and org-wide CI/CD remediation |
| [bitwarden-init](plugins/bitwarden-init/) | 1.2.2 | Initialize and enhance CLAUDE.md files with Bitwarden's standardized template format |
| [bitwarden-product-analyst](plugins/bitwarden-product-analyst/) | 0.1.7 | Product analyst agent for creating comprehensive Bitwarden requirements documents from multiple sources, and writing user-facing release notes |
| [bitwarden-security-engineer](plugins/bitwarden-security-engineer/) | 2.0.0 | Application security engineering: vulnerability triage, threat modeling, and secure code analysis |
| [bitwarden-software-engineer](plugins/bitwarden-software-engineer/) | 1.0.0 | Software engineer agent for a Bitwarden product team. Implements stories, tasks, and bugs with code quality, performance, security, and team comms in mind. |
| [bitwarden-testing-tools](plugins/bitwarden-testing-tools/) | 1.1.0 | Testing tools for analyzing and improving test quality across Bitwarden's repositories. |
| [claude-config-validator](plugins/claude-config-validator/) | 2.0.2 | Validates Claude Code configuration files for security, structure, and quality |
| [claude-retrospective](plugins/claude-retrospective/) | 1.1.1 | Analyze Claude Code sessions to identify successful patterns and improvement opportunities |
| Plugin | Version | Description |
| ------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [bitwarden-ai-telemetry](plugins/bitwarden-ai-telemetry/) | 1.1.0 | Claude Code hooks emitting metadata-only AI-usage telemetry (identity, git-linkage, MCP) via OTLP |
| [bitwarden-tech-lead](plugins/bitwarden-tech-lead/) | 3.0.1 | Tech lead for technical planning, architecture coherence, and surfacing patterns to Technical Strategy Ideas |
| [bitwarden-shepherd](plugins/bitwarden-shepherd/) | 1.0.1 | Champion of a technical strategy β€” shepherds a TSI through evaluation into the funnel, then through to adoption |
| [bitwarden-atlassian-tools](plugins/bitwarden-atlassian-tools/) | 2.7.0 | Atlassian access via MCP server with deep Jira issue research skill and opt-in Jira write tools |
| [bitwarden-code-review](plugins/bitwarden-code-review/) | 2.1.0 | Autonomous code review agent following Bitwarden engineering standards with GitHub integration |
| [bitwarden-delivery-tools](plugins/bitwarden-delivery-tools/) | 3.3.0 | Delivery lifecycle skills: initiative funnel navigation, work transitions, architectural judgment, commits, PRs and stacks, preflight, labeling, Jira filing |
| [bitwarden-designer](plugins/bitwarden-designer/) | 0.1.0 | Product designer persona: Code of Conduct and 30/60/90 critique, critique facilitation; dispatches into bitwarden-design-tools |
| [bitwarden-design-tools](plugins/bitwarden-design-tools/) | 0.1.0 | Design toolkit: content style guide, Figma Dev Mode MCP, Bitwarden brand application, handoff prep, Design System governance, Product and Design Jira |
| [bitwarden-devops-engineer](plugins/bitwarden-devops-engineer/) | 0.3.0 | DevOps engineering assistant: workflow compliance linting, action security auditing, and org-wide CI/CD remediation |
| [bitwarden-init](plugins/bitwarden-init/) | 1.2.2 | Initialize and enhance CLAUDE.md files with Bitwarden's standardized template format |
| [bitwarden-product-analyst](plugins/bitwarden-product-analyst/) | 0.1.7 | Product analyst agent for creating comprehensive Bitwarden requirements documents from multiple sources, and writing user-facing release notes |
| [bitwarden-security-engineer](plugins/bitwarden-security-engineer/) | 2.0.0 | Application security engineering: vulnerability triage, threat modeling, and secure code analysis |
| [bitwarden-software-engineer](plugins/bitwarden-software-engineer/) | 1.0.0 | Software engineer agent for a Bitwarden product team. Implements stories, tasks, and bugs with code quality, performance, security, and team comms in mind. |
| [bitwarden-testing-tools](plugins/bitwarden-testing-tools/) | 1.1.0 | Testing tools for analyzing and improving test quality across Bitwarden's repositories. |
| [claude-config-validator](plugins/claude-config-validator/) | 2.0.2 | Validates Claude Code configuration files for security, structure, and quality |
| [claude-retrospective](plugins/claude-retrospective/) | 1.1.1 | Analyze Claude Code sessions to identify successful patterns and improvement opportunities |

## Usage

Expand Down
5 changes: 3 additions & 2 deletions plugins/bitwarden-delivery-tools/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "bitwarden-delivery-tools",
"version": "3.2.0",
"description": "Delivery lifecycle skills for Bitwarden initiatives β€” initiative funnel navigation, work transitions, architectural judgment, commits, pull requests, preflight checks, change labeling, and Jira ticket filing.",
"version": "3.3.0",
"description": "Delivery lifecycle skills for Bitwarden initiatives β€” initiative funnel navigation, work transitions, architectural judgment, commits, pull requests, stacked pull requests, preflight checks, change labeling, and Jira ticket filing.",
"author": {
"name": "Bitwarden",
"url": "https://github.com/bitwarden"
Expand All @@ -16,6 +16,7 @@
"commit",
"pull-request",
"pr-conventions",
"stacked-pull-requests",
"preflight",
"labeling",
"jira"
Expand Down
13 changes: 13 additions & 0 deletions plugins/bitwarden-delivery-tools/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,19 @@ All notable changes to the `bitwarden-delivery-tools` plugin will be documented
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [3.3.0] - 2026-09-09

### Added

- **`stacking-pull-requests` skill** β€” carries Bitwarden's per-PR conventions across a chain of dependent pull requests: layer planning, per-layer gates walked bottom to top, one whole-stack submission preview, lower-layer feedback, and merging. `gh stack` mechanics are delegated to GitHub's `gh-stack` skill and extension, and Step 0 falls back to a single-branch PR whenever either is unusable for the current run.
- `perform-preflight`: a Stacked Branches section covering the current layer, with its own stack detection. It stops when a commit is about to land on a layer that already has an open pull request, since that rebase belongs to `stacking-pull-requests` Step 5.
- `committing-changes`: `description` gains a stack boundary so stack-level requests route to `stacking-pull-requests`. The body stays stack-agnostic, since a layer is a branch and the existing "first commit on a branch" rule already applies per layer.

### Changed

- `creating-pull-request`: routes chain requests to `stacking-pull-requests`, and accepts a single pull request back from it when the stack path is unavailable. Its review gate runs per layer when that skill drives it.
- `applying-pr-conventions`: invoked once per layer by the stack path.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ DEBT: The eval changes in this release have no entry, including one stale baseline a reader has to re-record.

Details and fix

Two net changes against 3.2.0 are unrecorded, and both have precedent in this file:

  • committing-changes evals went 13 β†’ 14 cases and its baseline is now stale. committing-changes/evals/README.md says so itself β€” "stale as of the stack-scope description change: it holds 13 results against the current 14 queries … Record the baseline after this version ships, not before." Nobody re-records what the changelog does not mention, and 3.2.0 carries exactly this bullet shape for creating-pull-request (line 33).
  • skills/stacking-pull-requests/evals/ is new with no committed baseline. 3.1.0 lists the equivalent addition as its own Added bullet ("filing-breakdown-tasks trigger eval (skills/filing-breakdown-tasks/evals/)").

Neither is branch-internal churn β€” both are real deltas from 3.2.0, so they do not fall in the class corrected earlier in this review. The Added bullet at line 12 can absorb the evals directory; this one covers the baseline:

Suggested change
- `applying-pr-conventions`: invoked once per layer by the stack path.
- `applying-pr-conventions`: invoked once per layer by the stack path.
- `committing-changes` evals: 14 cases, adding a should-trigger case for a commit on a stack layer. Baseline needs re-recording after release β€” that runner loads the installed cache.


## [3.2.0] - 2026-09-09

### Added
Expand Down
12 changes: 9 additions & 3 deletions plugins/bitwarden-delivery-tools/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Bitwarden Delivery Tools

Delivery lifecycle skills for Bitwarden initiatives β€” from routing work through the Software Initiative Funnel and running cross-team work transitions, down to the day-to-day mechanics of committing, opening pull requests, running preflight checks, and labeling changes.
Delivery lifecycle skills for Bitwarden initiatives β€” from routing work through the Software Initiative Funnel and running cross-team work transitions, down to the day-to-day mechanics of committing, opening pull requests and stacks of them, running preflight checks, and labeling changes.

## Overview

Expand Down Expand Up @@ -41,7 +41,8 @@ Any agent (tech-lead, software-engineer, shepherds, others) can compose these sk
| `filing-breakdown-tasks` | "tickets from tasks.md", "file the epic and stories" | Turn a breakdown's `tasks.md` into epic + child ticket drafts for `filing-jira-tickets` to file |
| `force-multiplier` | "across all repos", "in bulk" | Fan one change across many repos or monorepo projects as isolated, piloted draft PRs |
| `labeling-changes` | "label", "change type" | Conventional commit type keywords, CI label mapping |
| `perform-preflight` | "preflight", "self review" | Pre-commit quality gate checklist |
| `perform-preflight` | "preflight", "self review" | Pre-commit quality gate checklist, plus per-layer checks for a stacked branch |
| `stacking-pull-requests` | "stack these PRs", "stacked diffs" | Bitwarden conventions across a chain of dependent PRs; mechanics delegated to `gh-stack` |

## Design Principle

Expand All @@ -55,7 +56,8 @@ Several skills in this plugin reference tools or skills provided by sibling plug

- **`bitwarden-atlassian-tools`** β€” provides the Jira/Confluence MCP tools used by `navigating-the-initiative-funnel`, and the `filing-jira-tickets` skill plus its opt-in Jira write tools that `filing-breakdown-tasks` hands off to.
- **`bitwarden-security-engineer`** β€” provides `Skill(bitwarden-security-context)`, referenced from `architecting-solutions`.
- **`bitwarden-code-review`** β€” provides `/bitwarden-code-review:code-review-local` and `Skill(performing-multi-agent-code-review)`, the code-review gate `creating-pull-request` runs before opening a PR. If it is absent, `creating-pull-request` prompts you to install it rather than skip the review.
- **`gh-stack`** β€” GitHub's [`gh-stack`](https://github.com/github/gh-stack) owns the `gh stack` surface that `stacking-pull-requests` delegates to. It needs both the extension (`gh extension install github/gh-stack`) and the `gh-stack` skill from that repo's `skills/gh-stack/`, since the extension install places only the binary. Missing either, stack requests fall back to a single-branch PR.
- **`bitwarden-code-review`** β€” provides `/bitwarden-code-review:code-review-local` and `Skill(performing-multi-agent-code-review)`, the code-review gate `creating-pull-request` runs before opening a PR. If it is absent, `creating-pull-request` prompts you to install it rather than skip the review. Also supplies `Skill(addressing-code-review-comments)`, which `stacking-pull-requests` uses for lower-layer feedback and treats as optional.

## Installation

Expand Down Expand Up @@ -83,6 +85,10 @@ Commit these changes
Create a PR for this branch
```

```
Split this into a stack of dependent PRs
```

```
Run preflight before I commit
```
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: committing-changes
description: Git commit conventions and workflow for Bitwarden repositories. Use when committing code, writing commit messages, or preparing changes for commit. Triggered by "commit", "git commit", "commit message", "prepare commit", "stage changes".
description: Git commit conventions and workflow for Bitwarden repositories. Use when committing code, writing commit messages, or preparing changes for commit. Triggered by "commit", "git commit", "commit message", "prepare commit", "stage changes". Not for planning, gating, submitting, or merging a stack of dependent pull requests (that is stacking-pull-requests).
---

# Git Commit Conventions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Two eval sets. Run the one that matches what changed.

## Trigger eval

Does the skill activate on the right phrasings and stay silent on near-misses? `trigger-eval.json` holds 13 queries; `run_real_eval.py` runs them (see `../../creating-pull-request/evals/run_real_eval.py` for why this runner exists instead of the skill-creator harness); `baseline.json` is the last known-good run. Requires Python 3.10+ and an authenticated `claude` CLI.
Does the skill activate on the right phrasings and stay silent on near-misses? `trigger-eval.json` holds 14 queries; the `stacking-pull-requests` boundary is not measurable from here, since a correctly-routed stack phrasing invokes this skill per layer and the runner matches its token anywhere in the response; `run_real_eval.py` runs them (see `../../creating-pull-request/evals/run_real_eval.py` for why this runner exists instead of the skill-creator harness); `baseline.json` is the last known-good run β€” **stale as of the stack-scope description change**: it holds 13 results against the current 14 queries. Regenerate before relying on the diff below β€” and note this runner takes no `--plugin-dir`, so it loads the installed plugin cache. Record the baseline after this version ships, not before, or it captures the description the change replaced. Requires Python 3.10+ and an authenticated `claude` CLI.

```bash
python3 run_real_eval.py --eval-set trigger-eval.json --runs-per-query 3 \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,5 +50,9 @@
{
"query": "create a new branch for the PM-33210 work before I start coding, nothing to commit yet",
"should_trigger": false
},
{
"query": "commit what I have on this layer before I start the next one",
"should_trigger": true
}
]
Loading