[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-bitwarden-perform-preflight":3,"mdc-lusidt-key":36,"related-org-bitwarden-perform-preflight":223,"related-repo-bitwarden-perform-preflight":295},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":31,"sourceUrl":34,"mdContent":35},"perform-preflight","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},"bitwarden","Bitwarden","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fbitwarden.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Productivity","productivity","tag",{"name":17,"slug":18,"type":15},"Code Review","code-review",{"name":20,"slug":21,"type":15},"QA","qa",{"name":23,"slug":24,"type":15},"Testing","testing",127,"https:\u002F\u002Fgithub.com\u002Fbitwarden\u002Fai-plugins","2026-04-29T05:36:31.512969",null,14,[],{"repoUrl":26,"stars":25,"forks":29,"topics":32,"description":33},[],"AI plugin marketplace.","https:\u002F\u002Fgithub.com\u002Fbitwarden\u002Fai-plugins\u002Ftree\u002FHEAD\u002Fplugins\u002Fbitwarden-delivery-tools\u002Fskills\u002Fperform-preflight","---\nname: perform-preflight\ndescription: 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\".\n---\n\n# Preflight Checklist\n\nRun this checklist before committing or creating a PR. Consult the repo's CLAUDE.md for platform-specific commands (test runner, linter, formatter).\n\n## Tests\n\n- [ ] Run tests for affected modules (consult CLAUDE.md for commands)\n- [ ] New code has test coverage\n- [ ] No existing tests broken\n\n## Code Quality\n\n- [ ] Lint and format pass (consult CLAUDE.md for commands)\n- [ ] No TODO comments without Jira ticket references\n- [ ] Public APIs documented per repo convention (KDoc, DocC, XML docs, etc.)\n\n## Bitwarden Security\n\n- [ ] Zero-knowledge architecture preserved — no unencrypted vault data logged, persisted, or transmitted\n- [ ] Sensitive data uses platform-appropriate secure storage (consult CLAUDE.md Security Rules)\n- [ ] No sensitive data in log statements\n\n## Architecture\n\n- [ ] Changes follow patterns in CLAUDE.md and architecture docs\n- [ ] Dependency injection and error handling follow repo convention\n- [ ] String resources added to the correct location (if applicable)\n\n## On Failure\n\nIf any check fails, fix the issue before proceeding. For test failures, diagnose the root cause rather than skipping. For lint\u002Fformat failures, run the repo's auto-fix command if available. If a check cannot be resolved, flag it to the user with the specific failure output.\n",{"data":37,"body":38},{"name":4,"description":6},{"type":39,"children":40},"root",[41,50,56,63,101,107,138,144,175,181,212,218],{"type":42,"tag":43,"props":44,"children":46},"element","h1",{"id":45},"preflight-checklist",[47],{"type":48,"value":49},"text","Preflight Checklist",{"type":42,"tag":51,"props":52,"children":53},"p",{},[54],{"type":48,"value":55},"Run this checklist before committing or creating a PR. Consult the repo's CLAUDE.md for platform-specific commands (test runner, linter, formatter).",{"type":42,"tag":57,"props":58,"children":60},"h2",{"id":59},"tests",[61],{"type":48,"value":62},"Tests",{"type":42,"tag":64,"props":65,"children":68},"ul",{"className":66},[67],"contains-task-list",[69,83,92],{"type":42,"tag":70,"props":71,"children":74},"li",{"className":72},[73],"task-list-item",[75,81],{"type":42,"tag":76,"props":77,"children":80},"input",{"disabled":78,"type":79},true,"checkbox",[],{"type":48,"value":82}," Run tests for affected modules (consult CLAUDE.md for commands)",{"type":42,"tag":70,"props":84,"children":86},{"className":85},[73],[87,90],{"type":42,"tag":76,"props":88,"children":89},{"disabled":78,"type":79},[],{"type":48,"value":91}," New code has test coverage",{"type":42,"tag":70,"props":93,"children":95},{"className":94},[73],[96,99],{"type":42,"tag":76,"props":97,"children":98},{"disabled":78,"type":79},[],{"type":48,"value":100}," No existing tests broken",{"type":42,"tag":57,"props":102,"children":104},{"id":103},"code-quality",[105],{"type":48,"value":106},"Code Quality",{"type":42,"tag":64,"props":108,"children":110},{"className":109},[67],[111,120,129],{"type":42,"tag":70,"props":112,"children":114},{"className":113},[73],[115,118],{"type":42,"tag":76,"props":116,"children":117},{"disabled":78,"type":79},[],{"type":48,"value":119}," Lint and format pass (consult CLAUDE.md for commands)",{"type":42,"tag":70,"props":121,"children":123},{"className":122},[73],[124,127],{"type":42,"tag":76,"props":125,"children":126},{"disabled":78,"type":79},[],{"type":48,"value":128}," No TODO comments without Jira ticket references",{"type":42,"tag":70,"props":130,"children":132},{"className":131},[73],[133,136],{"type":42,"tag":76,"props":134,"children":135},{"disabled":78,"type":79},[],{"type":48,"value":137}," Public APIs documented per repo convention (KDoc, DocC, XML docs, etc.)",{"type":42,"tag":57,"props":139,"children":141},{"id":140},"bitwarden-security",[142],{"type":48,"value":143},"Bitwarden Security",{"type":42,"tag":64,"props":145,"children":147},{"className":146},[67],[148,157,166],{"type":42,"tag":70,"props":149,"children":151},{"className":150},[73],[152,155],{"type":42,"tag":76,"props":153,"children":154},{"disabled":78,"type":79},[],{"type":48,"value":156}," Zero-knowledge architecture preserved — no unencrypted vault data logged, persisted, or transmitted",{"type":42,"tag":70,"props":158,"children":160},{"className":159},[73],[161,164],{"type":42,"tag":76,"props":162,"children":163},{"disabled":78,"type":79},[],{"type":48,"value":165}," Sensitive data uses platform-appropriate secure storage (consult CLAUDE.md Security Rules)",{"type":42,"tag":70,"props":167,"children":169},{"className":168},[73],[170,173],{"type":42,"tag":76,"props":171,"children":172},{"disabled":78,"type":79},[],{"type":48,"value":174}," No sensitive data in log statements",{"type":42,"tag":57,"props":176,"children":178},{"id":177},"architecture",[179],{"type":48,"value":180},"Architecture",{"type":42,"tag":64,"props":182,"children":184},{"className":183},[67],[185,194,203],{"type":42,"tag":70,"props":186,"children":188},{"className":187},[73],[189,192],{"type":42,"tag":76,"props":190,"children":191},{"disabled":78,"type":79},[],{"type":48,"value":193}," Changes follow patterns in CLAUDE.md and architecture docs",{"type":42,"tag":70,"props":195,"children":197},{"className":196},[73],[198,201],{"type":42,"tag":76,"props":199,"children":200},{"disabled":78,"type":79},[],{"type":48,"value":202}," Dependency injection and error handling follow repo convention",{"type":42,"tag":70,"props":204,"children":206},{"className":205},[73],[207,210],{"type":42,"tag":76,"props":208,"children":209},{"disabled":78,"type":79},[],{"type":48,"value":211}," String resources added to the correct location (if applicable)",{"type":42,"tag":57,"props":213,"children":215},{"id":214},"on-failure",[216],{"type":48,"value":217},"On Failure",{"type":42,"tag":51,"props":219,"children":220},{},[221],{"type":48,"value":222},"If any check fails, fix the issue before proceeding. For test failures, diagnose the root cause rather than skipping. For lint\u002Fformat failures, run the repo's auto-fix command if available. If a check cannot be resolved, flag it to the user with the specific failure output.",{"items":224,"total":294},[225,242,255,274,281],{"slug":226,"name":226,"fn":227,"description":228,"org":229,"tags":230,"stars":25,"repoUrl":26,"updatedAt":241},"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},[231,234,235,238],{"name":232,"slug":233,"type":15},"ADR","adr",{"name":180,"slug":177,"type":15},{"name":236,"slug":237,"type":15},"Risk Assessment","risk-assessment",{"name":239,"slug":240,"type":15},"System Design","system-design","2026-04-29T05:36:35.460171",{"slug":243,"name":243,"fn":244,"description":245,"org":246,"tags":247,"stars":25,"repoUrl":26,"updatedAt":254},"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},[248,251],{"name":249,"slug":250,"type":15},"Git","git",{"name":252,"slug":253,"type":15},"Workflow Automation","workflow-automation","2026-04-29T05:36:32.816824",{"slug":256,"name":256,"fn":257,"description":258,"org":259,"tags":260,"stars":25,"repoUrl":26,"updatedAt":273},"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},[261,264,267,270],{"name":262,"slug":263,"type":15},"Agile","agile",{"name":265,"slug":266,"type":15},"Engineering","engineering",{"name":268,"slug":269,"type":15},"Operations","operations",{"name":271,"slug":272,"type":15},"Project Management","project-management","2026-05-08T05:03:15.197555",{"slug":4,"name":4,"fn":5,"description":6,"org":275,"tags":276,"stars":25,"repoUrl":26,"updatedAt":27},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[277,278,279,280],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"slug":282,"name":282,"fn":283,"description":284,"org":285,"tags":286,"stars":25,"repoUrl":26,"updatedAt":293},"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},[287,290,291,292],{"name":288,"slug":289,"type":15},"Documentation","documentation",{"name":265,"slug":266,"type":15},{"name":268,"slug":269,"type":15},{"name":271,"slug":272,"type":15},"2026-05-08T05:03:13.935149",5,{"items":296,"total":294},[297,304,309,316,323],{"slug":226,"name":226,"fn":227,"description":228,"org":298,"tags":299,"stars":25,"repoUrl":26,"updatedAt":241},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[300,301,302,303],{"name":232,"slug":233,"type":15},{"name":180,"slug":177,"type":15},{"name":236,"slug":237,"type":15},{"name":239,"slug":240,"type":15},{"slug":243,"name":243,"fn":244,"description":245,"org":305,"tags":306,"stars":25,"repoUrl":26,"updatedAt":254},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[307,308],{"name":249,"slug":250,"type":15},{"name":252,"slug":253,"type":15},{"slug":256,"name":256,"fn":257,"description":258,"org":310,"tags":311,"stars":25,"repoUrl":26,"updatedAt":273},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[312,313,314,315],{"name":262,"slug":263,"type":15},{"name":265,"slug":266,"type":15},{"name":268,"slug":269,"type":15},{"name":271,"slug":272,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":317,"tags":318,"stars":25,"repoUrl":26,"updatedAt":27},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[319,320,321,322],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"slug":282,"name":282,"fn":283,"description":284,"org":324,"tags":325,"stars":25,"repoUrl":26,"updatedAt":293},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[326,327,328,329],{"name":288,"slug":289,"type":15},{"name":265,"slug":266,"type":15},{"name":268,"slug":269,"type":15},{"name":271,"slug":272,"type":15}]