acquire-codebase-knowl…
Use this skill when the user explicitly asks to map, document, or onboard into an existing codebase. Trigger for prompts like "map this codebase", "document…
Security hardening reviewer for GitHub Actions workflow files (.github/workflows/*.yml). Reasons about the Actions threat model that pattern matchers and general code linters miss — untrusted-input script injection, privileged triggers running fork code, mutable action
$ npx -y skills add github/awesome-copilot --skill github-actions-hardening --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/github-actions-hardeningContext preview
The summary Claude sees to decide when to auto-load this skill.
Security hardening reviewer for GitHub Actions workflow files (.github/workflows/*.yml). Reasons about the Actions threat model that pattern matchers and general code linters miss — untrusted-input script injection, privileged triggers running fork code, mutable action
name: github-actions-hardening
description: Security hardening reviewer for GitHub Actions workflow files (.github/workflows/*.yml). Reasons about the Actions threat model that pattern matchers and general code linters miss — untrusted-input script injection, privileged triggers running fork code, mutable action references, and over-scoped tokens. Use this skill when asked to review, audit, harden, or secure a GitHub Actions workflow, when writing a new workflow, or for any request like "is this workflow safe?", "review my CI for security issues", "why is pull_request_target dangerous here?", "pin my actions", or "lock down GITHUB_TOKEN permissions". Covers script injection via ${{ }} interpolation, pull_request_target / workflow_run privilege escalation, SHA-pinning of third-party actions, least-privilege permissions, GITHUB_ENV/GITHUB_OUTPUT injection, secret exposure, OIDC over long-lived credentials, and self-hosted runner exposure on public repositories.A focused security reviewer for GitHub Actions workflows. It reasons about the *Actions-specific* threat model — where trust boundaries live in trigger types, token scopes, and string interpolation — rather than the application-code vulnerabilities a general security scanner looks for. Most workflow risks are invisible to language linters because the dangerous code is the YAML itself and the way GitHub expands `${{ }}` expressions into a shell before your script runs.
Use this skill when the request involves:
In a workflow, **`${{ <expr> }}` is expanded by the runner into the script *before* the shell executes it.** So a step like:
- run: echo "Title: ${{ github.event.issue.title }}"is not passing a variable — it is *pasting attacker-controlled text directly into your shell command*. An issue titled `"; <attacker-command> #` is concatenated into the script and executed. This single mechanism is the most common real-world Actions vulnerability, and models routinely generate it. Treat every `${{ }}` that contains data an outside contributor can influence as a code-injection sink.
Follow these steps **in order** for every workflow reviewed.
Read every `on:` trigger and classify the workflow's privilege:
**base repository** with a **read/write token and full access to secrets**, but can be **triggered by outside contributors**. These are the dangerous triggers.
Read `references/triggers-and-privilege.md` for the full trust matrix.
For every `run:` block, every `script:` in `actions/github-script`, and every input to a custom action, list the `${{ }}` expressions and check whether any resolve to attacker-controllable data. High-risk contexts include:
Read `references/injection.md` for the complete sink list and the safe-pattern fixes.
If a `pull_request_target` or `workflow_run` workflow checks out PR/fork code (`ref: ${{ github.event.pull_request.head.sha }}`) **and then runs it** (build, test, install scripts, `npm install` with lifecycle scripts, etc.), that is remote code execution against a privileged token. Flag it as CRITICAL. The safe pattern is to split into two workflows: an unprivileged `pull_request` workflow that runs the untrusted code, and a privileged `workflow_run` workflow that only consumes its results.
be read/write to everything. Flag it.
per job (e.g. `pull-requests: write` only on the job that comments).
Read `references/permissions-and-tokens.md` for the per-scope guidance and OIDC setup.
For every `uses:`:
commit SHA, not a tag or branch. Tags and branches are mutable; a compromised upstream action can rewrite `v1` to malicious code that runs with your token and secrets.
you at any time.
A community-created collection of custom agents, instructions, skills, hooks, workflows, and plugins to supercharge your GitHub Copilot experience.
Repo: github/awesome-copilot
Use this skill when the user explicitly asks to map, document, or onboard into an existing codebase. Trigger for prompts like "map this codebase", "document…
Run the AgentRC readiness assessment on the current repository and produce a static HTML dashboard at reports/index.html. Wraps `npx github:microsoft/agentrc…
Generate tailored AI agent instruction files via AgentRC instructions command. Produces .github/copilot-instructions.md (default, recommended for Copilot in VS…
Help the user pick, write, or apply an AgentRC policy. Policies customise readiness scoring by disabling irrelevant checks, overriding impact/level, setting…
Use this skill when the user shares ad campaign performance data and asks what to cut, scale, or test. Trigger for prompts like "analyze my ad campaigns",…
Add educational comments to the file specified, or prompt asking for file to comment if one is not provided.