>- Reference for all Bitwarden workflow linter (bwwl) rules. Covers all 10 linter rules split into permissions_exist, pinned_job_runner, step_pinned, underscore_outputs, job_environment_prefix, check_pr_target) and judgment rules requiring user input (name_exists, step_approved, run_actionlint). Use the workflow-audit skill to run the linter and report findings, and the workflow-fix skill to apply fixes. <example> </example> <example> </example>
npx skills add https://github.com/bitwarden/ai-plugins --skill bitwarden-workflow-linter-rules
name_capitalized
name: value does not start with a capital letter.permissions_exist
permissions: key.permissions: {} at the workflow level if all jobs are missing it, or at the individual job level if only some jobs are missing it. Prefer job-level permissions.pinned_job_runner
runs-on: uses an unpinned label.ubuntu-latest → ubuntu-24.04windows-latest → windows-2022macos-latest → macos-14step_pinned
Bitwarden enforces two distinct pinning requirements depending on who owns the action. Steps with no uses: field and local actions (starting with ./) are skipped entirely.
uses: reference starting with bitwarden/ is not pinned to @main. Exception: references of the form bitwarden/sm-action[/path]@<any-ref> are compliant at any ref and never trigger this rule.uses: reference not starting with bitwarden/ is not pinned to a full 40-character commit SHA, or is missing an inline version comment.@main (e.g., bitwarden/gh-actions/azure-login@v1 → bitwarden/gh-actions/azure-login@main)@main is the required and compliant state.gh api repos/{owner}/{repo}/commits/{ref} --jq '.sha'https://github.com/{owner}/{repo}/commit/{sha}) to the user before applying.uses: value with {action}@{sha} and add a comment with the original tag: # {original-ref}uses: actions/checkout@v4 → uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4underscore_outputs
$GITHUB_OUTPUT write or outputs: block uses hyphens or camelCase instead of underscores.job_environment_prefix
SCREAMING_SNAKE_CASE.SCREAMING_SNAKE_CASE and update all usages within the job.check_pr_target
pull_request_target has jobs not restricted to the default branch.if: github.ref == 'refs/heads/<default-branch>'. Determine the repo's default branch rather than assuming main. If the job already has an if: condition, combine with && (e.g., if: <existing-condition> && github.ref == 'refs/heads/<default-branch>').name_exists
name: key entirely.name: key at the correct level with a capitalized value.step_approved
uses: references an action not on the Bitwarden approved actions list.bitwarden/workflow-linter's approved actions config.run_actionlint (complex findings)
actionlint reports an error that is not a simple formatting issue (e.g., type mismatches in expressions, invalid context references, shell script errors).shellcheck style warnings with a clear single-line fix) may be applied automatically.Control Cursor AI code editor via CLI. Open files, folders, diffs, and manage extensions.
Comprehensive checklist for conducting thorough code reviews covering functionality, security, performance, and maintainability
Systematically evaluate architecture decisions, document trade-offs, and select appropriate patterns. This skill should be used when the user asks about 'architecture decision', 'ADR', 'design pattern selection', 'technology choice', or needs to evaluate architectural trade-offs. Keywords: architecture, ADR, patterns, trade-offs, technical debt, quality attributes, decision record.
Facilitates deliberate skill development during AI-assisted coding. Offers interactive learning exercises after architectural work (new files, schema changes, refactors). Use when completing features, making design decisions, or when user asks to understand code better. Triggers on "learning exercise", "help me understand", "teach me", "why does this work", or after creating new files/modules. Do NOT use for urgent debugging, quick fixes, or when user says "just ship it".
Organize project files and folders for maintainability and scalability. Use when structuring new projects, refactoring folder structure, or establishing conventions. Handles project structure, naming conventions, and file organization best practices.
Automatically trigger review agents after task completion. Use when strategic-planner finishes planning tasks (calls plan-consultant) or when main agent completes coding tasks in /implement workflow (calls code-reviewer). Triggers on phrases like "plan complete", "implementation done", "coding finished", "ready for review".
Provides a structured workflow for planning and executing code reviews like a senior engineer. Use when asked to review code, PRs, or plan a code review task.
Recall project-first and global-supplement ChatCrystal memories before substantive implementation, refactoring, migration, configuration, investigation, or optimization work. Use when the task is non-trivial, has repository or project context, and prior fixes, decisions, pitfalls, or reusable patterns may change the approach.
Take bitwarden/bitwarden-workflow-linter-rules from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.