Remove tech breakdown skills from delivery-tools plugin - #161
Conversation
The starting-breakdown, developing-breakdown-spec, developing- breakdown-plan, and decomposing-into-tasks skills have moved to bitwarden/tech-breakdowns, where the templates and per-team folder conventions are canonical. - bitwarden-delivery-tools 2.1.0 -> 3.0.0 (BREAKING: 4 skills removed; README, plugin.json description, and keywords updated; navigating-the-initiative-funnel repointed at the new repo) - bitwarden-tech-lead 2.3.2 -> 2.3.3 (AGENT.md references updated) - marketplace.json and README catalog descriptions updated
Plugin Validation Report — PR #161Verdict: PASS — no blocking issues. Both changed plugins validate cleanly on structure, manifests, versioning, frontmatter, and security. Three non-blocking quality findings are documented below; all are documentation-actionability gaps that the skill removal exposed, not defects it introduced. Scope: Errors (must fix)None. Warnings (should fix)Minor 1 — Agent is told to clone a repo but has no tool that can clone
The agent's tool grant is Remediation — prefer rewording over widening permissions. The tool list is correctly least-privilege for a planning agent; adding - **Tech Breakdowns** ([`bitwarden/tech-breakdowns`](https://github.com/bitwarden/tech-breakdowns)):
the canonical repository for the Tech Breakdown template and per-team folder conventions.
Ask the human to clone or open it when the team is drafting a breakdown coming out of the
funnel's Scoping & Commitment phase.If the agent genuinely should fetch it itself, scope the grant narrowly instead — Minor 2 — Phase-4 pointer in the funnel skill is unreachable under its own
|
| Check | Result |
|---|---|
plugin.json valid JSON, kebab-case name, valid semver, well-formed author/homepage/repository/keywords |
Pass (both) |
bitwarden-tech-lead "agents": "./agents/AGENT.md" path resolves |
Pass |
bitwarden-delivery-tools skills/ auto-discovery (no explicit field needed) |
Pass |
Agent frontmatter: name 19 chars lowercase-hyphen, 4 well-formed <example> blocks with <commentary>, model: opus, color: cyan, system prompt lines 48–83 |
Pass |
Declared skills: contributing-to-technical-strategy exists |
Pass |
All 9 SKILL.md files: --- opener, name matching directory, non-empty description |
Pass |
| Hooks / commands / MCP configs | None shipped — nothing to validate |
README.md + CHANGELOG.md present, Keep a Changelog format, descending version order |
Pass (both) |
| Orphaned files / empty directories after removal | None — find -type d -empty clean; each removed skill dir deleted whole including references/ and examples/ children |
No node_modules, .DS_Store, build artifacts |
Pass |
Version consistency — verified across all four locations per plugin (plugin.json, root .claude-plugin/marketplace.json, plugin CHANGELOG.md, root README.md catalog). 3.0.0 and 3.0.1 match everywhere. AGENT.md carries no version: field, consistent with repo convention, so nothing to sync there.
Semver appropriateness — bitwarden-delivery-tools 3.0.0 (MAJOR) is correct for a breaking skill removal, and the changelog marks it **BREAKING:** under ### Removed. bitwarden-tech-lead 3.0.1 (PATCH) is correct for a documentation-only cross-reference fix, and its entry cross-links the cause ("Follows the skill removal in bitwarden-delivery-tools 3.0.0"), making the two-plugin coordination traceable.
Dangling references — repo-wide grep for all four removed skill names returns hits only in CHANGELOG history (bitwarden-delivery-tools/CHANGELOG.md lines 12, 37, 41, 46, 52, 58, 59, 63; bitwarden-tech-lead/CHANGELOG.md lines 12, 30), which is expected and correct. Zero hits in live skills, agents, or READMEs. plugins/bitwarden-tech-lead/README.md:25 already lists only the three surviving delivery-tools skills.
Cross-plugin references resolve — every Skill(...) target in AGENT.md:78-82 and both READMEs exists on disk: architecting-solutions, navigating-the-initiative-funnel, running-work-transitions (delivery-tools); bitwarden-security-context, reviewing-security-architecture, threat-modeling (security-engineer); researching-jira-issues (atlassian-tools).
2. Skill review (skill-reviewer agent) — PASS with recommendations
Only one SKILL.md survived and was modified: navigating-the-initiative-funnel. The other four were deleted.
- Frontmatter —
nameanddescriptionpresent;allowed-toolssyntactically valid and matching the siblingrunning-work-transitions. - Description quality — strong. ~490 chars, third-person, four concrete trigger scenarios, domain-specific vocabulary ("Architectural Assessment", "PoC", "shepherd"). No change needed.
- Word count — 1,601 words, comfortably inside the 1,000–3,000 target.
- Progressive disclosure — appropriately applied by not being applied: uniformly high-value prose with no extractable block; the Reference section (lines 103–106) correctly defers the canonical template, go/no-go criteria, and timeline table to Confluence via
get_confluence_pagerather than inlining them. - Reference resolution — all pass. Both surviving
Skill(...)targets resolve with matchingname:fields; all 9 Atlassian MCP tool names verified against real registrations inplugins/bitwarden-atlassian-tools/mcp/.../src/tools/; the Confluence page ID is identical at lines 7 and 105; noreferences//examples//scripts/are named and none exist, so there are no dangling paths.
Findings 2 and 3 above came from this review.
3. Security validation (reviewing-claude-config skill) — PASS
- No committed secrets. Scanned both plugin trees for API keys, tokens, passwords, credentials, bearer tokens, private keys, and provider-specific prefixes (
ghp_,xox[bp]-,AKIA,sk-). Every hit is legitimate prose or a test fixture: security guidance inforce-multiplier/references/safety-and-self-checks.md:63-75, architectural eval fixtures inarchitecting-solutions/evals/behavior-eval.json, and the word "tokens" in an example PR branch name. The literalAKIA[0-9A-Z]{16}in the force-multiplier reference is a detection regex, not a key. - No
settings.local.jsonor.envcommitted anywhere in the repo. - No settings files modified by this PR, so no permission-scoping or auto-approval surface changed.
- Agent tool access is appropriately least-privilege —
AGENT.md:42grantsRead, Write, Glob, Grep, Skill: noBash, noEdit, no network. This is the correct posture for a planning agent and should be preserved (see Minor 1, which recommends rewording rather than widening it). - All added lines in this PR are prose, versions, and links — no executable code, no configuration with a security surface.
Checks not run
pnpm run lint/npx prettier --checkand the repo'sscripts/validate-plugin-structure.shandscripts/validate-marketplace.shcould not be executed — the sandbox blocked these invocations. Every check those scripts perform was verified manually above.- Prettier's markdown-table alignment was the one mechanical gap, so it was verified by hand for the one table this PR structurally rewrote: the Technical design table at
plugins/bitwarden-delivery-tools/README.md:30-32has separator widths of exactly 24 / 97 / 161 characters, matching its header and content rows. The rootREADME.mdcatalog table kept its separator row unchanged and the replacement row preserved its column padding, so widths are stable there too. CI'slint.ymlremains authoritative.
Positive observations
- The removal is unusually clean: 652 deletions with zero residue — no orphaned directories, no stray
references/process-flow.dotorexamples/task-breakdown.mdfiles, no live dangling references. - The
bitwarden-delivery-tools3.0.0 changelog entry enumerates every downstream file it touched (navigating-the-initiative-funnel,README.md,plugin.json), and the diff matches that description exactly. - Description, keywords, and catalog text were updated in lockstep across
plugin.json,marketplace.json, both READMEs, and both changelogs — no half-renamed surfaces. plugins/bitwarden-delivery-tools/references/change-type-labels.mdwas correctly not removed; it is a plugin-root reference consumed via${CLAUDE_PLUGIN_ROOT}by three surviving skills.
🤖 Bitwarden Claude Code ReviewOverall Assessment: APPROVE This PR removes the four Tech Breakdown drafting skills ( Code Review DetailsNo findings. Verification performed:
|
…ls-from-delivery-tools # Conflicts: # .claude-plugin/marketplace.json # README.md # plugins/bitwarden-delivery-tools/.claude-plugin/plugin.json # plugins/bitwarden-delivery-tools/CHANGELOG.md # plugins/bitwarden-delivery-tools/README.md # plugins/bitwarden-tech-lead/.claude-plugin/plugin.json # plugins/bitwarden-tech-lead/CHANGELOG.md # plugins/bitwarden-tech-lead/agents/AGENT.md
📔 Objective
Remove the four Tech Breakdown drafting skills from
bitwarden-delivery-toolsand update every remaining reference across the repo.They are moved to
tech-breakdownsin https://github.com/bitwarden/tech-breakdowns/pull/23.Removed
plugins/bitwarden-delivery-tools/skills/starting-breakdown/plugins/bitwarden-delivery-tools/skills/developing-breakdown-spec/plugins/bitwarden-delivery-tools/skills/developing-breakdown-plan/plugins/bitwarden-delivery-tools/skills/decomposing-into-tasks/