Skip to content

feat: add bitwarden-designer and bitwarden-design-tools plugins#125

Open
withinfocus wants to merge 9 commits into
mainfrom
feat/bitwarden-designer-plugin
Open

feat: add bitwarden-designer and bitwarden-design-tools plugins#125
withinfocus wants to merge 9 commits into
mainfrom
feat/bitwarden-designer-plugin

Conversation

@withinfocus
Copy link
Copy Markdown
Contributor

@withinfocus withinfocus commented May 22, 2026

🎟️ Tracking

No Jira ticket — this work is from me working directly with the design team to package their published practices into Claude Code plugins. The two seed skills came from the designer-agent-skills branch on bitwarden/clients (one commit ahead of main, authored by Sukhleen). The rest is grounded in the Product and Design Confluence space and the canonical Bitwarden brand sources at bitwarden.com/brand and github.com/bitwarden/brand.

📔 Objective

Adds two new v0.1.0 plugins to the marketplace, split per design-team feedback into a persona half and a toolkit half:

bitwarden-designer (persona)

The Bitwarden product designer agent. Holds the design team's Code of Conduct and the 30/60/90 critique framework, and dispatches into the bitwarden-design-tools toolkit for everything else.

In-plugin skills (judgment-heavy, exercised in the room):

  • design-review — Code of Conduct + 30/60/90 critique framework. Ported verbatim from the designer-agent-skills branch.
  • facilitating-design-critique — running or participating in the weekly team critique or a one-off Product Design Review. Grounded in the Weekly Design Critique & Etiquette quick guide and the Product Design Review Guidelines.

bitwarden-design-tools (toolkit)

No agent — skills only, like bitwarden-delivery-tools. Composed by the bitwarden-designer persona and usable standalone.

  • content-style-guide — Bitwarden's product content style guide for GUI copy (voice, tone, AP-style-with-exceptions grammar, sentence case in UI, no ampersands, accessibility-first language). Lean SKILL.md with detail split into references/grammar-mechanics.md and references/accessibility-rules.md.
  • using-figma — read and inspect Figma designs via the Dev Mode MCP server. Per-job-to-be-done read-tool selection, with Code Connect and write tools documented in their own subsections.
  • applying-bitwarden-brandingnew skill. Bitwarden brand standards: logo usage, color palette (full HEX/HSL/SCSS reference), typography (Inter), iconography (the shield), capitalization rules ("B" is capitalized, "W" is never capitalized). Grounded in bitwarden.com/brand and github.com/bitwarden/brand. Includes references/color-palette.md (full palette with print CMYK) and references/brand-assets.md (asset inventory with repo-relative paths).
  • preparing-design-handoff — Confluence handoff page, Figma Ready-for-Dev state, and Jira transitions. Full template field reference in references/handoff-template.md.
  • evolving-design-system-components — propose new patterns or modify existing components per the published governance process. Figma branching, property ordering, documentation conventions in references/figma-conventions.md.
  • navigating-design-jira-process — design tasks nested under engineering epics, the 30/60/90 iteration cadence, status transitions across the design and engineering boards, the one-off engineering story flow.

Why the split

Feedback on the original single-plugin PR was that judgment-heavy persona skills should live separately from reusable toolkit skills. The split mirrors the established pattern with bitwarden-shepherd + bitwarden-delivery-tools and bitwarden-tech-lead + bitwarden-delivery-tools. The persona is thin without the toolkit — both ship together — but the toolkit is usable standalone by designers, design-adjacent engineers, and PMs running a handoff.

Validation

  • ./scripts/validate-plugin-structure.sh — ✅ both plugins
  • ./scripts/validate-marketplace.sh — ✅
  • npm run lint (prettier + cspell) — ✅
  • New domain terms added to .cspell.json across the original and split work: askable, bwi, CMYK, ESL, EXIF, FigJam, Figma, inclusivity, Solutioning, unassigning, unassigns, ungroup, userflow, Userflows

Packages the two designer-agent-skills branch skills from bitwarden/clients
(content-style-guide, design-review) into a v0.1.0 plugin, rounds them out
with a using-figma skill for the Dev Mode MCP server, and adds four
Confluence-grounded skills for design-team processes — critique facilitation,
handoff preparation, Design System governance, and the Product and Design
Jira workflow.
@withinfocus withinfocus added the ai-review Request a Claude code review label May 22, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 22, 2026

Plugin Validation Summary

PR validated two plugins (bitwarden-design-tools, bitwarden-designer), one agent, and eight skills. Overall: PASS — no critical or major blockers. Several minor advisories are surfaced for hygiene.

Scope

  • Plugins validated: bitwarden-design-tools (v0.1.0), bitwarden-designer (v0.1.0)
  • Agents reviewed: 1 (bitwarden-designer/agents/AGENT.md)
  • Skills reviewed: 8 (6 in bitwarden-design-tools, 2 in bitwarden-designer)
  • Security scan: All 22 changed files

Critical Issues

None.

Major Issues

None.

Minor / Advisory Findings

Frontmatter hygiene (systemic, all 8 skills)

All eight SKILL.md files declare a non-standard when_to_use: frontmatter field. The Claude Code spec recognizes only name and description; the runtime auto-trigger matcher reads description, so the rich trigger phrases currently held in when_to_use may not contribute to discoverability.

  • plugins/bitwarden-design-tools/skills/applying-bitwarden-branding/SKILL.md:4
  • plugins/bitwarden-design-tools/skills/content-style-guide/SKILL.md:4
  • plugins/bitwarden-design-tools/skills/evolving-design-system-components/SKILL.md:4
  • plugins/bitwarden-design-tools/skills/navigating-design-jira-process/SKILL.md:4
  • plugins/bitwarden-design-tools/skills/preparing-design-handoff/SKILL.md:4
  • plugins/bitwarden-design-tools/skills/using-figma/SKILL.md:4
  • plugins/bitwarden-designer/skills/design-review/SKILL.md:4
  • plugins/bitwarden-designer/skills/facilitating-design-critique/SKILL.md:4

Remediation (recommended, not blocking): Merge the trigger-phrase content from when_to_use into description and drop the when_to_use key. Example for applying-bitwarden-branding:

description: Apply Bitwarden brand standards — logo usage, color palette, typography,
  iconography, capitalization. Triggers — "check the brand", "what color is Bitwarden
  blue", "is this on-brand", "logo usage". Not for product content voice (use
  content-style-guide).

allowed-tools on skills (all 8 skills)

Each SKILL.md declares an allowed-tools field that includes Skill plus, in some cases, MCP tool names. allowed-tools is a slash-command frontmatter field and is not part of the documented skill spec; the Skill self-reference is also a no-op (skills are dispatched by description match, not invoked as tools).

Remediation: Confirm whether the runtime respects this field on skills. If not, remove the field entirely. If yes, keep the MCP-tool entries on the five skills that use them and drop Skill from every skill's list.

bitwarden-designer/.claude-plugin/plugin.json:18

"agents": "./agents/AGENT.md" points the manifest field at a single file. Auto-discovery walks the agents/ directory itself; pointing the field at a file is non-standard.

Remediation: Either drop the agents key (auto-discovery handles agents/AGENT.md automatically) or change to "agents": "./agents/" for consistency with directory-style discovery.

bitwarden-designer/agents/AGENT.md

  • Line 42: tools: Read, Write, Glob, Grep, Skill. Skill is not a standard tool name. Remediation: Drop Skill; keep Read, Write, Glob, Grep.
  • Lines 43–45: A skills: block in frontmatter is non-standard and not enforced — agent → skill dispatch is driven by the system prompt and skill descriptions. Remediation: Remove the skills: block, or move its contents into the system prompt as documentation only.

Minor skill polish (non-blocking)

  • content-style-guide/SKILL.md — references the external figma-to-angular skill; one-line clarification that it is not bundled would help readers.
  • evolving-design-system-components/SKILL.md — Step 1 references search_design_system / get_libraries; note explicitly that these are accessed via dispatch into using-figma, not declared in this skill's tools.
  • navigating-design-jira-process/SKILL.md — brief explanation of mixed Jira status casing (e.g. IN DESIGN vs. Ready for Dev) would aid readers.
  • using-figma/SKILL.md — promote the "confirm scope before invoking write tools" rule into a bolded checklist for visibility.
  • design-review/SKILL.md — consider expanding the "Instead of / Try" phrase table by one or two more rows.

bitwarden-design-tools/CHANGELOG.md:8

Release date 2026-05-22 predates today (2026-06-02). Confirm it matches the intended merge/tag date when shipping.

Security Validation

PASS. Scans performed across all 22 changed files:

  • No hardcoded secrets, API keys, tokens, passwords, or private keys detected (scanned for sk-*, ghp_*, github_pat_*, AKIA*, xox*, AIza*, BEGIN PRIVATE KEY, and password|secret|token|api_key|bearer|credential assignments).
  • No settings.local.json, .env*, *.pem, *.key, or credentials* files committed.
  • No insecure http:// URLs in plugin content; external references use HTTPS.
  • No MCP server configurations declared in either plugin (both plugins reference MCP tools from the separately installed bitwarden-atlassian-tools plugin and the external Figma Dev Mode MCP server, both clearly disclosed in READMEs).
  • Skill allowed-tools entries (where present) are tightly scoped to specific named MCP tools rather than wildcards.
  • Author/repo/homepage URLs in both plugin.json files use HTTPS.

Version & Marketplace Consistency

Both plugins are version-consistent across plugin.json, marketplace.json, and CHANGELOG.md at 0.1.0. CHANGELOG entries follow Keep a Changelog format. README files are present and comprehensive.

Positive Findings

  • All skills are within the lean 776–1,332 word target range (avg ~1,042 words); no bloated SKILL.md.
  • Every references/ file referenced by a SKILL.md exists on disk; no broken paths.
  • Imperative/infinitive writing style applied consistently across all skills.
  • Strong cross-skill composition and explicit "Not for X (use <other>)" anti-trigger guidance prevents skill overlap.
  • Agent description includes four well-formed <example> blocks with <commentary> explaining dispatch routing.
  • Cross-plugin dependency on bitwarden-atlassian-tools and external Figma MCP dependency are explicitly disclosed in both READMEs.
  • READMEs document scope boundaries with engineering-side counterparts (bitwarden-tech-lead, bitwarden-shepherd).

Recommendation

APPROVE. No errors block merge. The advisories above are warnings the maintainers should consider addressing in a follow-up pass — particularly the systemic when_to_usedescription migration, since it directly affects auto-trigger effectiveness for skills the authors clearly invested in.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 22, 2026

🤖 Bitwarden Claude Code Review

Overall Assessment: APPROVE

Reviewed the addition of two new v0.1.0 marketplace plugins — bitwarden-designer (persona: Code of Conduct, 30/60/90 critique, critique facilitation) and bitwarden-design-tools (toolkit: content style, Figma MCP usage, brand application, handoff prep, Design System governance, Product and Design Jira workflow). The persona-plus-toolkit split mirrors the established bitwarden-shepherd + bitwarden-delivery-tools pattern. All 18 prior review threads from earlier passes are resolved, and the most recent commit cleans up the last cross-plugin reference drift (setup.md text, AGENT.md "handoff template" mention, design-tools README listing of facilitating-design-critique). The PR description explicitly addresses validator advisory items (word counts, description length polish, "last synced" pointer, redundant agents field) with reasonable justifications.

Code Review Details

No findings — clean review.

Structural checks confirmed against the working tree:

  • Both plugins have .claude-plugin/plugin.json, README.md, CHANGELOG.md, and skills/ directories.
  • bitwarden-designer has agents/AGENT.md with frontmatter (name, description with <example> blocks, model, tools, skills, color) and lists only the two in-plugin skills (design-review, facilitating-design-critique).
  • bitwarden-design-tools is skills-only (no agent), matching the bitwarden-delivery-tools precedent.
  • All eight SKILL.md files include name, description, when_to_use, and allowed-tools frontmatter.
  • .claude-plugin/marketplace.json versions (0.1.0) match each plugin's plugin.json.
  • Root README.md table updated with both new entries.
  • .cspell.json additions (askable, bwi, CMYK, ESL, EXIF, FigJam, Figma, inclusivity, Solutioning, unassigning, unassigns, ungroup, userflow, Userflows) all correspond to terms used in the new content.
  • Cross-plugin Atlassian MCP tool prefixes (mcp__plugin_bitwarden-atlassian-tools_bitwarden-atlassian__*) match the convention used by 17 other skills across bitwarden-tech-lead, bitwarden-shepherd, bitwarden-delivery-tools.
  • Previously flagged references/handoff-template.md confirmed removed; no stale references remain in preparing-design-handoff/SKILL.md.

- Sync plugin.json description with marketplace.json (Figma phrase)
- Refactor content-style-guide for progressive disclosure: split into
  references/grammar-mechanics.md and references/accessibility-rules.md
- Replace checkmark/cross glyphs with Good:/Avoid: text markers
- Annotate external figma-to-angular references as (external — not bundled)
- using-figma: extract Code Connect and write tools out of the wide
  jobs-to-be-done table into named subsections; reframe the intro as
  read-primary with write capabilities noted but de-emphasized.
- content-style-guide: add (external, not bundled) qualifier to the
  figma-to-angular references in description and body for consistency.
- design-review: add Composing with other skills section noting
  content-style-guide composition at 60%/90% and using-figma when a
  Figma URL is in play.
- facilitating-design-critique: replace awkward \_\_ escape sequences
  with [blank] placeholders.
- navigating-design-jira-process: add meta-note explaining that the
  mixed Jira status casing throughout the skill mirrors the actual
  Jira labels and should be copied verbatim.
- preparing-design-handoff: remove 'move this to Ready for Dev' from
  triggers to resolve dispatch overlap with navigating-design-jira-process,
  which now owns that specific phrase.
…anding

Per feedback, separates judgment-heavy persona skills from reusable
toolkit skills:

bitwarden-designer (persona, has the agent):
- design-review (kept)
- facilitating-design-critique (kept)
- AGENT.md updated to dispatch cross-plugin into bitwarden-design-tools

bitwarden-design-tools (no agent, like bitwarden-delivery-tools):
- using-figma (moved from designer)
- content-style-guide (moved from designer)
- preparing-design-handoff (moved from designer)
- evolving-design-system-components (moved from designer)
- navigating-design-jira-process (moved from designer)
- applying-bitwarden-branding (NEW) — Bitwarden brand standards (logo,
  color palette, typography, capitalization), grounded in bitwarden.com/brand
  and github.com/bitwarden/brand. Includes full color-palette and brand-assets
  references.

Both plugins ship as v0.1.0. Marketplace and root README updated with the
new entry. .cspell.json picks up the CMYK term used in the palette
reference.
@withinfocus withinfocus changed the title feat: add bitwarden-designer plugin for design team workflows feat: add bitwarden-designer and bitwarden-design-tools plugins May 22, 2026
Comment thread plugins/bitwarden-designer/skills/design-review/SKILL.md Outdated
- Update 'Composing with other skills in this plugin' to 'Composing with
  other skills' across 6 SKILL.md files; the post-split skill compositions
  span both plugins now, so 'in this plugin' became inaccurate.
- Rewrite content-style-guide description to lead with the canonical
  'This skill should be used when...' form per the skill-development
  guidance.
- Rewrite design-review description to lead with the canonical
  'This skill should be used when...' form and add a canonical-source
  note pointing at the designer-agent-skills branch where the Code of
  Conduct and 30/60/90 framework were authored.
- Trim using-figma description, dropping the long boundary explanation
  (the SKILL.md body covers it; the description now stays under ~600
  chars and leads with triggers).
- Align design-tools marketplace.json description with plugin.json by
  adding 'reference' to 'Content style guide reference'.

Skipped: removing the 'skills:' frontmatter block and the 'agents' field
in plugin.json — both flagged as non-standard, but all 5 agent-bearing
plugins in this marketplace use 'skills:' frontmatter and all 7 use the
'agents' field. They're the established Bitwarden convention.
Match the bitwarden-shepherd frontmatter pattern across all 8 skills in
this PR. Each skill now has:

- A tight one-sentence description (no trigger phrases).
- when_to_use with 'Use when [context]. Triggers — "phrase", "phrase".
  Not for [adjacent thing] (use `other-skill`).' format.
- allowed-tools scoped to what the skill actually needs.

Tool scoping:

- design-review, content-style-guide, applying-bitwarden-branding:
  Skill only — self-contained, compose other skills.
- facilitating-design-critique: Skill + the four Confluence MCP tools
  needed to fetch the Weekly Critique & Etiquette and Product Design
  Review Guidelines pages.
- preparing-design-handoff, evolving-design-system-components,
  navigating-design-jira-process: Skill + the full bitwarden-atlassian-tools
  MCP surface (Jira + Confluence), matching shepherd skills that fetch
  Confluence-canonical content and may reference Jira tickets.
- using-figma: Skill + the full Figma Dev Mode MCP tool surface
  (get_design_context, get_metadata, get_screenshot, get_variable_defs,
  get_libraries, search_design_system, get_figjam, whoami, the five
  Code Connect tools, and the five write tools).
Comment thread plugins/bitwarden-design-tools/skills/navigating-design-jira-process/SKILL.md Outdated
Comment thread plugins/bitwarden-design-tools/skills/navigating-design-jira-process/SKILL.md Outdated
Comment thread plugins/bitwarden-design-tools/skills/navigating-design-jira-process/SKILL.md Outdated
Comment thread plugins/bitwarden-design-tools/skills/navigating-design-jira-process/SKILL.md Outdated
Comment thread plugins/bitwarden-design-tools/skills/navigating-design-jira-process/SKILL.md Outdated
Comment thread plugins/bitwarden-design-tools/skills/navigating-design-jira-process/SKILL.md Outdated
Comment thread plugins/bitwarden-design-tools/skills/preparing-design-handoff/SKILL.md Outdated
Comment thread plugins/bitwarden-design-tools/skills/preparing-design-handoff/SKILL.md Outdated
Comment thread plugins/bitwarden-design-tools/skills/preparing-design-handoff/SKILL.md Outdated
Comment thread plugins/bitwarden-design-tools/skills/preparing-design-handoff/SKILL.md Outdated
Comment thread plugins/bitwarden-design-tools/skills/preparing-design-handoff/SKILL.md Outdated
Comment thread plugins/bitwarden-design-tools/README.md Outdated
Comment thread plugins/bitwarden-design-tools/README.md Outdated
…ugin

# Conflicts:
#	.cspell.json
#	README.md
Comment thread plugins/bitwarden-design-tools/skills/using-figma/references/setup.md Outdated
Sukhleen (design-team owner) flagged that two skills were grounded in
process language that the team has evolved past. The canonical Confluence
page (1828094078) hasn't been refreshed since v16, but in practice the
design team:

- No longer maintains a parallel Product Design Jira project or a
  separate design Kanban board. Designs are attached directly to
  engineering tickets.
- No longer uses a Confluence handoff page or 'Message Text File'
  artifact. The handoff lives in Figma — sections marked Ready for Dev,
  strings annotated on the frames.
- For one-off engineering stories, closes the loop with three explicit
  steps: link Figma to the story's Design field, unassign self, comment
  in the ticket that the design is ready to be picked up.
- Has the EM (not the designer) transition the Epic to Ready for Dev.
  Some teams have automation; treat it as the EM's responsibility for
  now.
- Keeps the dev-support task convention for now even as the rest of the
  separate-design-task pattern has retired.

Changes:

navigating-design-jira-process/SKILL.md — rewrite around 'designs are
attached directly to tickets'. Drop the parallel design project, the
design Kanban board, per-stage Jira tasks, the dual-board section, and
the canonical Confluence link (per #3 — the page is currently behind
practice). Replace the one-off engineering story closing with link +
unassign + comment. Reframe common mistakes.

preparing-design-handoff/SKILL.md — rewrite as the end-of-In-Design
gate / checklist. Handoff is now two things, not three: Figma in
Ready-for-Dev state and Jira state aligned. Drop the Confluence
handoff-page template, the Message Text File artifact, the
'Background' common omission. Delete references/handoff-template.md
and its references/ directory entirely. Reframe output format as
Figma-centric.

bitwarden-design-tools/README.md — rewrite the preparing-design-handoff
and navigating-design-jira-process catalog rows; update both usage
examples that referenced the handoff page and the dual-board model.

bitwarden-designer/AGENT.md — rewrite example #3 to drop the
'handoff page' framing and reflect the end-of-In-Design gate.
Update the skill dispatch line equivalently.

bitwarden-designer/README.md — update two usage examples that
referenced the handoff page and the dual-board model.

applying-bitwarden-branding/SKILL.md and using-figma/SKILL.md — sweep
references to the 'handoff page Background' and 'Userflows page'
structure that no longer apply.

bitwarden-design-tools/CHANGELOG.md — rewrite the two affected skill
entries to match the new shape.
Comment thread plugins/bitwarden-designer/agents/AGENT.md Outdated
Comment thread plugins/bitwarden-design-tools/README.md Outdated
- setup.md: 'not bundled with `bitwarden-designer`' was leftover drift
  from before the persona/toolkit split. Change to 'this plugin' so the
  text reads correctly from inside bitwarden-design-tools where the
  using-figma skill now lives.
- AGENT.md cross-plugin Confluence list: drop 'handoff template' — that
  Confluence artifact was retired in the previous commit when we
  reframed handoff as Figma + Jira only.
- design-tools README cross-plugin row: drop `facilitating-design-critique`
  from the Confluence-grounded skills list; it ships in bitwarden-designer
  and is already accounted for by the row above.

Validation summary advisory items reviewed and intentionally skipped:
- Word counts on content-style-guide (791) and preparing-design-handoff
  (776) — validator flags as defensible; padding to a soft target would
  hurt skill density.
- 'Last synced' pointer on design-review — would create a maintenance
  burden (stamp drift) without clear benefit; the source link in the
  skill body already documents provenance.
- 300-430 char description strings — optional polish.
- Redundant 'agents' field in plugin.json — matches all 7 peer plugins
  in this marketplace; deliberate.
@withinfocus withinfocus requested a review from sukhleenb June 2, 2026 19:39
@withinfocus withinfocus marked this pull request as ready for review June 2, 2026 19:40
@withinfocus withinfocus requested a review from a team as a code owner June 2, 2026 19:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-review Request a Claude code review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants