> Audit GitHub Actions action usage across an org. Searches for a specific action (incident mode) or sweeps all workflow files for non-compliant action references (audit mode). Produces a read-only report of findings with compliance status and resolved SHAs. Does not modify any files. <example> </example> <example> </example>
npx skills add https://github.com/bitwarden/ai-plugins --skill action-audit
gh api GET requests are allowed freely. Do not use -X POST, -X PUT, -X PATCH, or -X DELETE.Before classifying any action reference, read ${CLAUDE_PLUGIN_ROOT}/skills/bitwarden-workflow-linter-rules/SKILL.md and apply the step_pinned rule as the compliance definition for all steps below. That skill is the single source of truth for what is and is not compliant.
incident (default): Targeted search for a specific action — used when an action is compromised or deprecated.audit: Sweep all workflow files org-wide for any non-compliant action references.Determine the mode from the user's request:
tj-actions/changed-files), use incident mode.action-remediate skill).Incident mode — search for the specific action:
gh search code "uses: <action-name>" --owner <org> --path .github/workflows/ --limit 100
Also search without the uses: prefix to catch indirect references:
gh search code "<action-name>" --owner <org> --path .github/workflows/ --limit 100
Audit mode — find all workflow files and extract uses: references:
gh search code "uses:" --owner <org> --path .github/workflows/ --limit 100
Then apply the step_pinned compliance filter from ${CLAUDE_PLUGIN_ROOT}/skills/bitwarden-workflow-linter-rules/SKILL.md to each reference.
> Note: GitHub code search indexes can lag by minutes to hours after a recent push. Results may not reflect the very latest commits. Flag this caveat in the output.
For each uses: reference (excluding local ./ paths), determine:
uses: value (full line)internal — starts with bitwarden/third-party — all others (excluding local)hash — pinned to a full 40-char SHAtag — pinned to a version tag (e.g., @v3, @v1.2.3)branch — pointing to a named branch (e.g., @main, @master)none — no ref at allstep_pinned rule from ${CLAUDE_PLUGIN_ROOT}/skills/bitwarden-workflow-linter-rules/SKILL.md — ✅ if compliant, ❌ otherwise.Display a table:
| Repo | File | Current Reference | Type | Pin Status | Compliant |
| ---- | ---- | ----------------- | ---- | ---------- | --------- |
| ... | ... | ... | ... | ... | ... |
In incident mode, include all rows. In audit mode, omit compliant (✅) rows.
If there are no non-compliant findings, inform the user and stop.
Apply the correct fix approach based on action type and mode. Do not treat all non-compliant references the same way.
Incident mode — replacement action provided:
If the user mentioned a replacement action in Step 1, do not resolve a SHA for the compromised action. Instead, resolve the SHA for the replacement action:
gh api repos/<owner>/<repo>/commits/<ref> --jq '.sha'
Present the resolved replacement SHA and a verification link (https://github.com/<owner>/<repo>/commit/<sha>) to the user. Ask for confirmation before finalizing.
Internal actions (bitwarden/):
@main. No SHA resolution needed.@main and may be intentional (e.g., frozen during a security incident or pinned for reproducibility). Inform the user and ask whether to change it to @main before including it in the remediation list.Third-party actions:
gh api repos/<owner>/<repo>/commits/<ref> --jq '.sha'
Where <owner>/<repo> is the action's repo and <ref> is the target tag or main.
Present to the user:
https://github.com/<owner>/<repo>/commit/<sha>Ask: "Does this SHA look correct? Type yes to confirm, or provide a different SHA."
Wait for confirmation before finalizing the report.
> In audit mode, group unique third-party actions and resolve each once rather than per-occurrence.
Output a final summary:
| Repo | File | Current Reference | Type | Compliant | Remediation |
| ---- | ---- | ----------------- | ---- | --------- | ----------- |
| ... | ... | ... | ... | ... | ... |
The Remediation column should contain:
change ref to @main@abc123...def456 # v4.1.1)Inform the user that they can use the action-remediate skill to apply fixes based on these findings.
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming technical commits into clear, customer-friendly release notes. Turns hours of manual changelog writing into minutes of automated generation.
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
Next.js best practices - file conventions, RSC boundaries, data patterns, async APIs, metadata, error handling, route handlers, image/font optimization, bundling
Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification
Take bitwarden/action-audit 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.