-
Notifications
You must be signed in to change notification settings - Fork 0
Implement bitwarden-software-engineer Claude Code Plugin with Agent Skills #15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
Great job! No new security vulnerabilities introduced in this pull request |
withinfocus
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Few thoughts. Here's a list of other Claude skills I've built elsewhere that may be worthy of inclusion in a first pass:
- dapper-implementation
- ef-core-implementation
- dotnet-api-development
- unit-testing
- authentication-implementation
- authorization-implementation
- query-optimization
- responsive-design
Also, do we not need to have a skills.json that organizes all of these? I haven't maintained a marketplace but when it's in a repo you should.
plugins/bitwarden-software-engineer/agents/bitwarden-software-engineer.md
Outdated
Show resolved
Hide resolved
| tools: Read, Write, Edit, Bash, Glob, Grep | ||
| --- | ||
|
|
||
| You are a senior T-SQL developer specializing in SQL Server query optimization, stored procedures, and database programming. Write performant, maintainable T-SQL code using modern features like CTEs, window functions, and set-based operations. Focus on execution plan analysis and index-aware query design. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
π¨ I think it would be advisable to open this up to all SQL variants. T-SQL is our primary language but we are also responsible for our other RDBMSes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did that at first and the skill got overblown real fast. I also don't know enough about the internals of the other RDBMS yet. I'll try to find some other good examples for us to consider and we can see what works best; one SQL skill or multiple
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
π± π€ This might be a good place to leverage Progressive Disclosure. Define general SQL guidelines directly in SKILL.md then have variant specific guidelines in /skills/sql-dev/guides/{sql-variant}.md.
That will result in Claude always consuming the general rules, then conditionally loading the specific variant rules relevant to the changes being reviewed. Irrelevant guidelines are never loaded into context.
P.S.
Obviously out of scope for this PR, but something to consider for later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought that it was a good idea; gave it a shot.
I know very little about what we're trying / not trying to do in these particular areas so I did rely on Claude Code to craft the wording after having it scan the repo & read our contributing docs.
plugins/bitwarden-software-engineer/agents/bitwarden-software-engineer.md
Outdated
Show resolved
Hide resolved
plugins/bitwarden-software-engineer/agents/bitwarden-software-engineer.md
Outdated
Show resolved
Hide resolved
plugins/bitwarden-software-engineer/agents/bitwarden-software-engineer.md
Outdated
Show resolved
Hide resolved
plugins/bitwarden-software-engineer/agents/bitwarden-software-engineer.md
Outdated
Show resolved
Hide resolved
plugins/bitwarden-software-engineer/agents/bitwarden-software-engineer.md
Outdated
Show resolved
Hide resolved
withinfocus
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some fundamental questions about structure and design of this plugin and how it relates to monorepo development as well as work as a whole across many repos.
| @@ -0,0 +1,83 @@ | |||
| --- | |||
| name: writing-client-code | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
βΉοΈ We must be mindful of what's in the various repos instructing and defining these approaches, and eliminate that content in favor of this one at the right time. Have to have one single source of truth, as a skill, here.
plugins/bitwarden-software-engineer/skills/writing-database-queries/guides/entity-framework.md
Outdated
Show resolved
Hide resolved
| @@ -0,0 +1,100 @@ | |||
| # T-SQL Guide | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
π¨ Per your other guide, this is meant to be ORM-focused right? So we'd write this with a Dapper mindset, but still include the T-SQL references which it uses.
| @@ -0,0 +1,100 @@ | |||
| # T-SQL Guide | |||
|
|
|||
| ## Stored Procedure Naming | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This comment applies in several other places. My understanding is these guides document approach and rationale, but we should have the actual "how" in close-to-code or the docs site; traditionally I'd want just the former but these are company-wide and can't be just in individual repos.
plugins/bitwarden-software-engineer/skills/writing-client-code/SKILL.md
Outdated
Show resolved
Hide resolved
| tools: Read, Write, Edit, Bash, Glob, Grep | ||
| --- | ||
|
|
||
| ## Repository Structure |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| tools: Read, Write, Edit, Bash, Glob, Grep | ||
| --- | ||
|
|
||
| ## Repository Architecture |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
β¦eries/guides/entity-framework.md Co-authored-by: Matt Bishop <[email protected]>
| @@ -0,0 +1,20 @@ | |||
| --- | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
β Just found out while experimenting that this should be named AGENT.md.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's not technically required. I'm for making it a Bitwarden practice though. We just need to document it somewhere. By default, when using Claude Code to generate a new agent it does not name the file AGENT.md. It uses a descriptive name like pr-knowledge-extractor.md or test-forge-engineer.md, so devs would have to manually rename them when created this way.
|
Claude finished @theMickster's task in 2m 20s ββ View job Plugin Review CompleteI've completed a comprehensive review of the β Component Validation: PASSEDAgent Fileplugins/bitwarden-software-engineer/agents/bitwarden-software-engineer.md Structure: β Valid
Tool Access: β Appropriate
Description:
System Prompt: β Well-Structured
Model Selection: β Appropriate
Skills FilesAll three skills validated:
Structure: β Valid
Descriptions: β
Excellent
Tool Access: β
Appropriate
Content Quality: β Strong
π Security Validation: PASSEDCritical Security Checks:
Tool Access Security: β Appropriate
π Best Practices Reviewβ Strengths
π Recommendations (Optional Improvements)1. Agent Naming Convention (from review comments)
2. Progressive Disclosure Enhancement (writing-database-queries)
3. Marketplace.json Entry
4. Skills Organization Consideration
π― VerdictStatus: β APPROVED with optional recommendations The
The optional recommendations above are enhancements, not blockers. The plugin is well-structured and ready for internal testing. Related Review CommentsSeveral thoughtful review comments from the team touch on important architectural considerations:
These are excellent points for the next iteration and align with the PR's stated goal of building foundational patterns. |

ποΈ Tracking
TBD
π Objective
What?
Plugin Marketplaces enable teams to distribute curated collections of customizations (slash commands, sub-agents, MCP servers, hooks) with single-command installation. This creates an opportunity for Bitwarden to codify institutional knowledge, enforce coding standards, and accelerate developer onboarding by packaging our development patterns, security practices, and codebase conventions into a discoverable, shareable plugin.
The vision for the
bitwarden-software-engineerplugin is to bundle Skills that understand our Angular architecture, Tailwind CSS (tw-) conventions, FusionCache adoption (ADR-0028), Signals/RxJS best practices and migration (ADR-0029), the Rust SDK, and so many more β enabling Claude to auto-invoke relevant expertise based on conversational context without manual commands.Why?
Skills operate through prompt expansion and context modification β Claude automatically detects when a skill is relevant and loads only the minimal information needed.
This means:
References
Highly encourage reading before code reviewing this PR