[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-bitwarden-committing-changes":3,"mdc-eneyw2-key":30,"related-org-bitwarden-committing-changes":191,"related-repo-bitwarden-committing-changes":268},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":19,"repoUrl":20,"updatedAt":21,"license":22,"forks":23,"topics":24,"repo":25,"sourceUrl":28,"mdContent":29},"committing-changes","manage Git commits and conventions","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\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"bitwarden","Bitwarden","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fbitwarden.png",[12,16],{"name":13,"slug":14,"type":15},"Git","git","tag",{"name":17,"slug":18,"type":15},"Workflow Automation","workflow-automation",127,"https:\u002F\u002Fgithub.com\u002Fbitwarden\u002Fai-plugins","2026-04-29T05:36:32.816824",null,14,[],{"repoUrl":20,"stars":19,"forks":23,"topics":26,"description":27},[],"AI plugin marketplace.","https:\u002F\u002Fgithub.com\u002Fbitwarden\u002Fai-plugins\u002Ftree\u002FHEAD\u002Fplugins\u002Fbitwarden-delivery-tools\u002Fskills\u002Fcommitting-changes","---\nname: committing-changes\ndescription: 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\".\n---\n\n# Git Commit Conventions\n\n## Commit Message Format\n\n```\n[PM-XXXXX] \u003Ctype>: \u003Cimperative summary>\n\n\u003Coptional body explaining why, not what>\n```\n\n### Rules\n\n1. **Ticket prefix**: Always include `[PM-XXXXX]` matching the Jira ticket\n2. **Type keyword**: Read `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Fchange-type-labels.md` for the full table of conventional commit types and their CI label mappings. **If the type cannot be confidently determined, ask the user.**\n\n### Examples\n\n```\n[PM-12345] feat: Add biometric unlock timeout configuration\n\nUsers reported confusion about when biometric prompts appear.\nThis adds a configurable timeout setting to the security preferences.\n```\n\nAmbiguous cases — choosing between similar types:\n\n```\n# Refactor that also fixes a bug? Use the primary intent:\n[PM-12345] fix: Resolve null pointer in vault sync retry logic\n\n# Test-only change:\n[PM-12345] test: Add unit tests for biometric timeout edge cases\n```\n\n### Followup Commits\n\nOnly the first commit on a branch needs the full format (ticket prefix, type keyword, body). Subsequent commits can use a short, descriptive summary with no prefix or body required.\n\n```\nUpdate error handling in login flow\n```\n\n---\n\n## Pre-Commit Quality Gate\n\nBefore staging, run the `perform-preflight` skill for the full quality gate checklist (tests, lint, security, architecture). Consult the repo's CLAUDE.md for platform-specific build and lint commands.\n",{"data":31,"body":32},{"name":4,"description":6},{"type":33,"children":34},"root",[35,44,51,64,71,118,124,133,139,148,154,159,168,172,178],{"type":36,"tag":37,"props":38,"children":40},"element","h1",{"id":39},"git-commit-conventions",[41],{"type":42,"value":43},"text","Git Commit Conventions",{"type":36,"tag":45,"props":46,"children":48},"h2",{"id":47},"commit-message-format",[49],{"type":42,"value":50},"Commit Message Format",{"type":36,"tag":52,"props":53,"children":57},"pre",{"className":54,"code":56,"language":42},[55],"language-text","[PM-XXXXX] \u003Ctype>: \u003Cimperative summary>\n\n\u003Coptional body explaining why, not what>\n",[58],{"type":36,"tag":59,"props":60,"children":62},"code",{"__ignoreMap":61},"",[63],{"type":42,"value":56},{"type":36,"tag":65,"props":66,"children":68},"h3",{"id":67},"rules",[69],{"type":42,"value":70},"Rules",{"type":36,"tag":72,"props":73,"children":74},"ol",{},[75,95],{"type":36,"tag":76,"props":77,"children":78},"li",{},[79,85,87,93],{"type":36,"tag":80,"props":81,"children":82},"strong",{},[83],{"type":42,"value":84},"Ticket prefix",{"type":42,"value":86},": Always include ",{"type":36,"tag":59,"props":88,"children":90},{"className":89},[],[91],{"type":42,"value":92},"[PM-XXXXX]",{"type":42,"value":94}," matching the Jira ticket",{"type":36,"tag":76,"props":96,"children":97},{},[98,103,105,111,113],{"type":36,"tag":80,"props":99,"children":100},{},[101],{"type":42,"value":102},"Type keyword",{"type":42,"value":104},": Read ",{"type":36,"tag":59,"props":106,"children":108},{"className":107},[],[109],{"type":42,"value":110},"${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Fchange-type-labels.md",{"type":42,"value":112}," for the full table of conventional commit types and their CI label mappings. ",{"type":36,"tag":80,"props":114,"children":115},{},[116],{"type":42,"value":117},"If the type cannot be confidently determined, ask the user.",{"type":36,"tag":65,"props":119,"children":121},{"id":120},"examples",[122],{"type":42,"value":123},"Examples",{"type":36,"tag":52,"props":125,"children":128},{"className":126,"code":127,"language":42},[55],"[PM-12345] feat: Add biometric unlock timeout configuration\n\nUsers reported confusion about when biometric prompts appear.\nThis adds a configurable timeout setting to the security preferences.\n",[129],{"type":36,"tag":59,"props":130,"children":131},{"__ignoreMap":61},[132],{"type":42,"value":127},{"type":36,"tag":134,"props":135,"children":136},"p",{},[137],{"type":42,"value":138},"Ambiguous cases — choosing between similar types:",{"type":36,"tag":52,"props":140,"children":143},{"className":141,"code":142,"language":42},[55],"# Refactor that also fixes a bug? Use the primary intent:\n[PM-12345] fix: Resolve null pointer in vault sync retry logic\n\n# Test-only change:\n[PM-12345] test: Add unit tests for biometric timeout edge cases\n",[144],{"type":36,"tag":59,"props":145,"children":146},{"__ignoreMap":61},[147],{"type":42,"value":142},{"type":36,"tag":65,"props":149,"children":151},{"id":150},"followup-commits",[152],{"type":42,"value":153},"Followup Commits",{"type":36,"tag":134,"props":155,"children":156},{},[157],{"type":42,"value":158},"Only the first commit on a branch needs the full format (ticket prefix, type keyword, body). Subsequent commits can use a short, descriptive summary with no prefix or body required.",{"type":36,"tag":52,"props":160,"children":163},{"className":161,"code":162,"language":42},[55],"Update error handling in login flow\n",[164],{"type":36,"tag":59,"props":165,"children":166},{"__ignoreMap":61},[167],{"type":42,"value":162},{"type":36,"tag":169,"props":170,"children":171},"hr",{},[],{"type":36,"tag":45,"props":173,"children":175},{"id":174},"pre-commit-quality-gate",[176],{"type":42,"value":177},"Pre-Commit Quality Gate",{"type":36,"tag":134,"props":179,"children":180},{},[181,183,189],{"type":42,"value":182},"Before staging, run the ",{"type":36,"tag":59,"props":184,"children":186},{"className":185},[],[187],{"type":42,"value":188},"perform-preflight",{"type":42,"value":190}," skill for the full quality gate checklist (tests, lint, security, architecture). Consult the repo's CLAUDE.md for platform-specific build and lint commands.",{"items":192,"total":267},[193,212,217,236,254],{"slug":194,"name":194,"fn":195,"description":196,"org":197,"tags":198,"stars":19,"repoUrl":20,"updatedAt":211},"architecting-solutions","architect and review system designs","Framework for architecting solutions inside a team's domain while staying coherent with Bitwarden's holistic architecture. Covers security mindset, blast radius assessment, architectural judgment, Bitwarden-specific constraints, working with the architecture group, and working with initiative shepherds. Use when planning a solution, reviewing architecture within a team's scope, assessing blast radius, evaluating trade-offs, or deciding whether a choice needs architecture-group input.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[199,202,205,208],{"name":200,"slug":201,"type":15},"ADR","adr",{"name":203,"slug":204,"type":15},"Architecture","architecture",{"name":206,"slug":207,"type":15},"Risk Assessment","risk-assessment",{"name":209,"slug":210,"type":15},"System Design","system-design","2026-04-29T05:36:35.460171",{"slug":4,"name":4,"fn":5,"description":6,"org":213,"tags":214,"stars":19,"repoUrl":20,"updatedAt":21},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[215,216],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"slug":218,"name":218,"fn":219,"description":220,"org":221,"tags":222,"stars":19,"repoUrl":20,"updatedAt":235},"navigating-the-initiative-funnel","navigate the Bitwarden initiative funnel","Phase-by-phase guidance for participating in Bitwarden's Software Initiative Funnel. Covers ownership boundaries between shepherd and tech lead at each phase, how to run an epic breakdown after handoff, sizing and estimation, cross-team dependency tracking, and the escalation paths that protect team autonomy. Use when a team is about to receive an initiative epic, when participating in an Architectural Assessment or PoC, when preparing a team breakdown, or when surfacing concerns back to the shepherd or engineering leadership.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[223,226,229,232],{"name":224,"slug":225,"type":15},"Agile","agile",{"name":227,"slug":228,"type":15},"Engineering","engineering",{"name":230,"slug":231,"type":15},"Operations","operations",{"name":233,"slug":234,"type":15},"Project Management","project-management","2026-05-08T05:03:15.197555",{"slug":188,"name":188,"fn":237,"description":238,"org":239,"tags":240,"stars":19,"repoUrl":20,"updatedAt":253},"run quality gate preflight checklists","Quality gate checklist to run before committing or creating a PR. Use when finishing implementation, checking work quality, or preparing to commit. Triggered by \"preflight\", \"self review\", \"ready to commit\", \"check my work\", \"quality gate\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[241,244,247,250],{"name":242,"slug":243,"type":15},"Code Review","code-review",{"name":245,"slug":246,"type":15},"Productivity","productivity",{"name":248,"slug":249,"type":15},"QA","qa",{"name":251,"slug":252,"type":15},"Testing","testing","2026-04-29T05:36:31.512969",{"slug":255,"name":255,"fn":256,"description":257,"org":258,"tags":259,"stars":19,"repoUrl":20,"updatedAt":266},"running-work-transitions","run ownership transitions for software work","Six-phase playbook for running ownership transitions in either direction — receiving work from another team (initiative handoffs from shepherds, frameworks from Platform, operational responsibilities from SRE), or originating a transition (handing off a built framework, transitioning a shepherded initiative, or moving operational responsibilities). Applies Bitwarden's Work Transition Playbook from whichever side a team is on. Use when a team is about to take on or hand off transferred work, when preparing materials or sessions, when the support period is underway, or when running a pulse check or retrospective on a handoff.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[260,263,264,265],{"name":261,"slug":262,"type":15},"Documentation","documentation",{"name":227,"slug":228,"type":15},{"name":230,"slug":231,"type":15},{"name":233,"slug":234,"type":15},"2026-05-08T05:03:13.935149",5,{"items":269,"total":267},[270,277,282,289,296],{"slug":194,"name":194,"fn":195,"description":196,"org":271,"tags":272,"stars":19,"repoUrl":20,"updatedAt":211},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[273,274,275,276],{"name":200,"slug":201,"type":15},{"name":203,"slug":204,"type":15},{"name":206,"slug":207,"type":15},{"name":209,"slug":210,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":278,"tags":279,"stars":19,"repoUrl":20,"updatedAt":21},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[280,281],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"slug":218,"name":218,"fn":219,"description":220,"org":283,"tags":284,"stars":19,"repoUrl":20,"updatedAt":235},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[285,286,287,288],{"name":224,"slug":225,"type":15},{"name":227,"slug":228,"type":15},{"name":230,"slug":231,"type":15},{"name":233,"slug":234,"type":15},{"slug":188,"name":188,"fn":237,"description":238,"org":290,"tags":291,"stars":19,"repoUrl":20,"updatedAt":253},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[292,293,294,295],{"name":242,"slug":243,"type":15},{"name":245,"slug":246,"type":15},{"name":248,"slug":249,"type":15},{"name":251,"slug":252,"type":15},{"slug":255,"name":255,"fn":256,"description":257,"org":297,"tags":298,"stars":19,"repoUrl":20,"updatedAt":266},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[299,300,301,302],{"name":261,"slug":262,"type":15},{"name":227,"slug":228,"type":15},{"name":230,"slug":231,"type":15},{"name":233,"slug":234,"type":15}]