Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
6bdf7ca
Initial skils for new breakdown.
trmartin4 Jun 9, 2026
988130c
PR feedback.
trmartin4 Jun 9, 2026
2957433
Clarifications on gate.
trmartin4 Jun 9, 2026
6e39f15
PR feedback.
trmartin4 Jun 9, 2026
65fee3b
Allowing MCP for querying Jira.
trmartin4 Jun 9, 2026
566b8cd
PR feedback.
trmartin4 Jun 9, 2026
f52c99b
Extract developing-the-plan skill from tech-breakdown-skill-updates
trmartin4 Jun 10, 2026
8859c5d
Added breakdown plan skill.
trmartin4 Jun 10, 2026
b9ae00d
Added new task skill.
trmartin4 Jun 10, 2026
da2d16c
More explicitly handle reading content.
trmartin4 Jun 10, 2026
23e1928
Remove skill created during evaluation.
trmartin4 Jun 10, 2026
f523aa4
PR feedback
trmartin4 Jun 10, 2026
e8ab115
Enhancements.
trmartin4 Jun 10, 2026
6f73126
Removed specific reference to Spec-Kit.
trmartin4 Jun 10, 2026
f0fb11d
Cleaned up process flow.
trmartin4 Jun 10, 2026
d3743c2
PR feedback.
trmartin4 Jun 11, 2026
dda75aa
Remove spec-kit reference
trmartin4 Jun 11, 2026
2f25608
Removed "the" from skill names.
trmartin4 Jun 11, 2026
f89a12b
Merge branch 'tech-breakdown-spec-skill' into tech-breakdown-plan-skill
trmartin4 Jun 11, 2026
cf7ce16
Remove "the" from skill name.
trmartin4 Jun 11, 2026
dfb3d47
Removed duplicate folder.
trmartin4 Jun 11, 2026
95fa9ba
Removing Spec-Kit, again.
trmartin4 Jun 11, 2026
13c8aa6
Updates to task skill.
trmartin4 Jun 11, 2026
5b30416
Updated to use folder structure to support separate files for tasks.
trmartin4 Jun 11, 2026
16f4eae
Merge branch 'tech-breakdown-spec-skill' into tech-breakdown-plan-skill
trmartin4 Jun 11, 2026
5bd0a70
Updated wording.
trmartin4 Jun 11, 2026
3133bdb
Prompt for breakdown location.
trmartin4 Jun 11, 2026
29980e7
Added orientation requirement.
trmartin4 Jun 11, 2026
f3051b6
Updated with orientation.
trmartin4 Jun 11, 2026
1dd89dd
Added required tools.
trmartin4 Jun 12, 2026
573c5d8
PR feedback.
trmartin4 Jun 12, 2026
018d320
Added plan skill reference.
trmartin4 Jun 12, 2026
e5b78b9
PR feedback.
trmartin4 Jun 12, 2026
7d71286
Merge branch 'tech-breakdown-spec-skill' into tech-breakdown-plan-skill
trmartin4 Jun 12, 2026
26b4e6b
Updated template reference.
trmartin4 Jun 12, 2026
66bbb7d
Merge branch 'tech-breakdown-spec-skill' into tech-breakdown-plan-skill
trmartin4 Jun 12, 2026
03be9e7
Merge branch 'tech-breakdown-plan-skill' into tech-breakdown-tasks-skill
trmartin4 Jun 12, 2026
dcbadea
Cleanup.
trmartin4 Jun 12, 2026
0aa8a7b
Linting and diagram consolidation.
trmartin4 Jun 12, 2026
baa47ca
More additional words.
trmartin4 Jun 12, 2026
b25da12
PR recommendations.
trmartin4 Jun 12, 2026
48df024
Fixed spacing.
trmartin4 Jun 12, 2026
bc1f8d8
Merge branch 'tech-breakdown-plan-skill' into tech-breakdown-tasks-skill
trmartin4 Jun 12, 2026
1b4b6f6
Removed reference to model for collaboration.
trmartin4 Jun 13, 2026
18fa71e
Merge branch 'main' into tech-breakdown-plan-skill
trmartin4 Jun 15, 2026
5f19152
Architecting solutions changes.
trmartin4 Jun 15, 2026
7616ead
Merge branch 'tech-breakdown-plan-skill' into tech-breakdown-tasks-skill
trmartin4 Jun 15, 2026
ad817f2
Removed obsolete skills.
trmartin4 Jun 15, 2026
62b1e12
Fix incorrect references.
trmartin4 Jun 15, 2026
b8aa114
Merge branch 'main' into tech-breakdown-tasks-skill
trmartin4 Jun 19, 2026
45293c7
Removed worked example.
trmartin4 Jun 19, 2026
a34fb83
Code review feedback.
trmartin4 Jun 19, 2026
882fe63
Skill creator feedback.
trmartin4 Jun 19, 2026
01717d0
Removed unnecessary allowed tools.
trmartin4 Jun 19, 2026
198079b
Path changes.
trmartin4 Jun 19, 2026
3bf559b
Fix given/when/when order.
trmartin4 Jun 19, 2026
f4b4917
Completion skill.
trmartin4 Jun 19, 2026
75dabfa
Version updates.
trmartin4 Jun 19, 2026
51d4b19
Merge branch 'main' into tech-breakdown-complete-skill
trmartin4 Jun 29, 2026
3eb0afb
Removed duplicates
trmartin4 Jun 29, 2026
6a4ddc0
Fixed duplicates.
trmartin4 Jun 29, 2026
d8f1177
Fixed merge.
trmartin4 Jun 29, 2026
999fd1a
Fixed folder name.
trmartin4 Jun 29, 2026
f423f4a
PR feedback updates.
trmartin4 Jul 1, 2026
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": "2.0.0",
"version": "2.1.0",
"description": "Delivery lifecycle skills for Bitwarden initiatives — initiative funnel navigation, work transitions, tech breakdowns and task decomposition, commits, pull requests, preflight checks, and change labeling."
},
{
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ A curated collection of plugins for AI-assisted development at Bitwarden. Enable
| [bitwarden-shepherd](plugins/bitwarden-shepherd/) | 1.0.0 | 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.2.7 | Read-only Atlassian access via MCP server with deep Jira issue research skill |
| [bitwarden-code-review](plugins/bitwarden-code-review/) | 1.13.0 | Autonomous code review agent following Bitwarden engineering standards with GitHub integration |
| [bitwarden-delivery-tools](plugins/bitwarden-delivery-tools/) | 2.0.0 | Delivery lifecycle skills: initiative funnel navigation, work transitions, tech breakdowns and task decomposition, commits, PRs, preflight, labeling |
| [bitwarden-delivery-tools](plugins/bitwarden-delivery-tools/) | 2.1.0 | Delivery lifecycle skills: initiative funnel navigation, work transitions, tech breakdowns and task decomposition, commits, PRs, preflight, labeling |
| [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.1.3 | DevOps engineering assistant: workflow compliance linting, action security auditing, and org-wide CI/CD remediation |
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "bitwarden-delivery-tools",
"version": "2.0.0",
"version": "2.1.0",
"description": "Delivery lifecycle skills for Bitwarden initiatives — initiative funnel navigation, work transitions, tech breakdowns and task decomposition, commits, pull requests, preflight checks, and change labeling.",
"author": {
"name": "Bitwarden",
Expand Down
6 changes: 6 additions & 0 deletions plugins/bitwarden-delivery-tools/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ 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).

## [2.1.0] - 2026-06-19

### Added

- **`completing-breakdown` skill** — marks a breakdown `Complete` and moves the breakdown folder into the team's `complete/` subfolder.

## [2.0.0] - 2026-06-19

### Added
Expand Down
1 change: 1 addition & 0 deletions plugins/bitwarden-delivery-tools/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ Any agent (tech-lead, software-engineer, shepherds, others) can compose these sk
| `developing-breakdown-spec` | "understand the work", "resolve open questions", "write the breakdown spec", "Spec Alternatives" | Resolve open design questions one at a time with concrete options, then capture what's being built into the Specification section. |
| `developing-breakdown-plan` | "develop the plan", "draft the implementation plan", "map per-layer impact", "scan for in-flight work", "identify cross-team impacts" | Develop the Plan section after the Spec is filled: technical architecture, per-layer impact, in-flight collision scan, cross-team impact mapping, and self-review. Supports resumption. |
| `decomposing-into-tasks` | "decompose into tasks", "draft the tasks section", "break this into stories", "split into Jira tickets", "fill in the tasks table" | Decompose a Plan into a `tasks.md` document with one entry per future Jira work item. |
| `completing-breakdown` | "complete this breakdown", "archive the breakdown", "move breakdown to complete", "finish the breakdown" | Marks a breakdown `Complete` and `git mv` the breakdown folder into the team's `complete/` archive so the active directory only holds in-flight work. |

### Mechanics

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
name: completing-breakdown
description: Complete a Bitwarden Tech Breakdown. Use when a team has completed delivering the work captured in a Tech Breakdown. Triggered by phrasings such as "complete this breakdown", "mark the breakdown as done", "archive the breakdown", "move breakdown to complete", "finish the breakdown", "wrap up the breakdown".
argument-hint: "[<breakdown-path | jira-key | slug>]"
arguments: breakdown
allowed-tools: Read, Edit, Glob, Bash(git mv:*), Bash(git status:*), Bash(mkdir:*), AskUserQuestion
---

# Completing a Tech Breakdown

## Overview

Help the user retire a Tech Breakdown once the work it describes has shipped.

<HARD-GATE>
Orientation within a breakdown is required. If `$breakdown` was provided at invocation, treat it as the breakdown identifier (path, Jira key, or slug) and resolve it via `Glob` under `tech-breakdowns/` to a real `breakdown.md`, then confirm the resolved path with `AskUserQuestion` before proceeding. Otherwise, ask the user which breakdown to complete — they can give a path, a Jira key, or a slug — and resolve the same way. If the user already named it earlier in the conversation, confirm the resolved path with `AskUserQuestion` before proceeding.

Once the breakdown is found, do NOT update the Status or move the folder until both hold:

- The resolved folder is not already inside a `complete/` directory. If it is, surface that and stop — the breakdown is already archived.
- The working tree is clean (`git status` in the `tech-breakdowns` checkout shows no uncommitted changes that would be entangled with the move). If it is not clean, surface the dirty files and ask the user whether to proceed or stash first.

</HARD-GATE>

## Key Principles

- **Status flip then move.** Update `breakdown.md` first so the commit that moves the folder also carries the terminal-state edit. Reversing the order leaves a window where the file is at its new path with stale status.
- **Preserve history.** Use `git mv` rather than `mv`. The breakdown folder's history is the design record; moving outside git rewrites it as a delete + add and breaks blame.
- **Don't touch sibling artifacts.** `tasks.md` and other files in the folder move with the folder unchanged.
- **Inform the use after move is complete.** The folder move is reversible but disruptive — links to the old path break. Surface the source path, destination path, and the affected files after doing the move so the user can revert if they did not intend to do so.

## Phases

### Phase 1: Resolve the breakdown

Use the orientation rules from the HARD-GATE to locate `<team>/<JIRA-KEY>-<short-slug>/breakdown.md` in the `tech-breakdowns` working copy. Record the resolved values:

- `BREAKDOWN_PATH` — absolute path to `breakdown.md`.
- `BREAKDOWN_FOLDER` — the parent folder.
- `TEAM_DIR` — the team directory (`BREAKDOWN_FOLDER`'s parent).
- `DEST_FOLDER` — `<TEAM_DIR>/complete/<JIRA-KEY>-<short-slug>/`.

**Validate before using in shell commands.** Slug must match `^[a-z][a-z0-9-]*$`. Jira key must match `^[A-Z][A-Z0-9]+-[0-9]+$`. Reject any resolved path that contains `..` or characters outside `[A-Za-z0-9._/-]`, and confirm `BREAKDOWN_FOLDER` and `DEST_FOLDER` resolve inside the `tech-breakdowns` working copy. If any check fails, stop and surface the mismatch — never interpolate a non-validated value into `mkdir`, `git mv`, or any other shell command.

Read `breakdown.md` and surface the current Status block to the user before proceeding.

### Phase 2: Update the Status block

Edit `breakdown.md` in place. Update the Status block:

- `Status:` — `Complete`
- `Last substantive update:` — today's date + the literal note `breakdown completed`

Leave `Active owner / contact:` unchanged; the historical record should keep pointing at the engineer who ran the breakdown.

Do not edit the Spec, Plan, Tasks, or any other section. The breakdown's content is now the as-shipped record.

### Phase 3: Move the folder

1. Ensure the `complete/` directory exists under `TEAM_DIR`. `git mv` does not create missing parent directories — if `<TEAM_DIR>/complete/` does not exist yet, run `mkdir -p '<TEAM_DIR>/complete/'` first (single-quote the interpolated path). The first breakdown a team completes will hit this case.
2. Run `git mv '<BREAKDOWN_FOLDER>' '<DEST_FOLDER>'` from inside the `tech-breakdowns` working copy — single-quote both operands so a path containing whitespace or shell metacharacters cannot word-split. This moves `breakdown.md`, `tasks.md`, and any sibling artifacts in one operation while preserving history.
3. Surface the result to the user:
Comment thread
theMickster marked this conversation as resolved.
- Old path: `<team>/<JIRA-KEY>-<short-slug>/`
- New path: `<team>/complete/<JIRA-KEY>-<short-slug>/`
- Files moved: list from `git status`.

Leave the commit to the user — they may want to bundle the status flip + move with a referencing message (`PM-XXXXX: complete breakdown`) and push at their own cadence.

## Output

When all phases are complete, tell the user:

1. The new path of `breakdown.md` under the `complete/` subfolder.
2. That the Status block now reads `Complete`.
3. That the move is staged in git and waiting for them to commit.
Loading