github-actions
This skill creates, audits, and fixes GitHub Actions workflows for projects using Node.js, Go, Python, Rust, or Ruby.
Community author
- Agents
- Claude Code
- License
- MIT (permissive)
- Pin
- a7812b9pinned Oct 9, 2026
- Context cost
- about 990 tokenswhen the skill loads
- GitHub stars
- 8on tartinerlabs/skills
- Scripts
- None found
What it does
“Use when adding CI/CD, creating workflows, auditing GitHub Actions, or fixing action pinning. Creates and audits workflows for SHA pinning and permissions.”
Generated summary from the skill's own text
This skill creates, audits, and fixes GitHub Actions workflows for projects using Node.js, Go, Python, Rust, or Ruby. It automatically detects project type and package manager, generates pinned workflows following security best practices, and audits existing workflows against nine rules covering action pinning, permissions, concurrency, caching, and more.
When to use it
- Setting up CI/CD pipelines for new projects
- Auditing existing GitHub Actions workflows for security issues
- Pinning action versions to specific commit SHAs
- Adding required status checks for database migrations
When not to
- Projects using CI/CD systems other than GitHub Actions
- When workflows are already fully compliant with all rules
Install
These commands install from the publisher's repository and need no account.
skills CLI
npx skills add tartinerlabs/skills --skill github-actionsInstalls from the repository's default branch, which may have changed since the commit we checked.
GitHub CLI 2.90 or later
gh skill install tartinerlabs/skills github-actions@a7812b928cd37d688879fed1e94b6e424bf21da7Installs the commit we checked (a7812b9).
Copy by hand
Download the folder at a7812b9 and put it in .claude/skills/github-actions for Claude Code and in .agents/skills/github-actions for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.
Copy for your agent
A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.
Prompt
Install the agent skill "github-actions" by tartinerlabs. Source, pinned to commit a7812b928cd37d688879fed1e94b6e424bf21da7: https://github.com/tartinerlabs/skills/tree/a7812b928cd37d688879fed1e94b6e424bf21da7/plugins/workflow/skills/github-actions 1. Download that folder at exactly this commit. Do not use the default branch. 2. Copy every file unchanged, keeping the folder structure, into .claude/skills/github-actions/ for Claude Code and .agents/skills/github-actions/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist. 3. Do not edit the files, and do not run any script in the folder unless I ask you to. 4. When you are done, list the files you copied and where you put them. Listing and checks: https://www.agentnative.dev/skills/tartinerlabs/github-actions
SKILL.md at the pin
---
name: github-actions
description: Use when adding CI/CD, creating workflows, auditing GitHub Actions, or fixing action pinning. Creates and audits workflows for SHA pinning and permissions.
license: MIT
allowed-tools: Read Glob Grep Edit Write Bash(gh:*)
model: sonnet
effort: high
context: fork
agent: general-purpose
compatibility: Targets GitHub Actions (GitHub-native); uses gh for SHA lookups; auto-detects project language (Node/JS-TS, Go, Python, Rust, Ruby)
metadata:
short-description: Create and audit CI workflows.
---
## Mode Detection
Audit and report by default. Generate workflows only when asked to create, add, or set up CI — and **never merely because `.github/workflows/` is absent**; report that none were found instead. Apply fixes only when asked to fix or pin. When the ask is unclear, report and offer to apply the fixes.
## Create Mode
### 1. Detect Project Type
Scan for project indicators:
- `package.json` → Node.js/JS/TS
- `go.mod` → Go
- `requirements.txt` / `pyproject.toml` / `setup.py` → Python
- `Cargo.toml` → Rust
- `Gemfile` → Ruby
### 2. Detect Package Manager (JS/TS projects)
Detect the package manager from the lockfile, in this order: `nub.lock`, `pnpm-lock.yaml`, `bun.lock`/`bun.lockb`, `yarn.lock`, `package-lock.json`. With no lockfile, ask.
A `packageManager` or `devEngines.packageManager` field in `package.json` outranks any lockfile. Nub runs in compat-mode over another manager's lockfile, so `nub.lock` alongside `pnpm-lock.yaml` means nub — check the field before concluding from lockfiles alone.
### 3. Generate Workflow
Read each rule file in `rules/` and apply all of them when generating workflows.
Pin every action per `rules/action-pinning.md` before writing the workflow, including GitHub-owned `actions/*`. Resolve the intended release or source ref to a full commit SHA with `gh api repos/{owner}/{repo}/commits/{ref} --jq '.sha'`, then retain the release or source ref in a comment.
When the project commits migrations from a migration tool, also add a separate `migration-drift` job per `rules/migration-drift.md`, and tell the user to make it a required status check.
### 4. Workflow Template
Route by the language detected in Step 1. The template below is the **JS/TS default**; for any other detected language, load `references/<lang>.md` and use its template instead:
| Language | Template |
|----------|----------|
| **JS/TS** (Node) | the template below |
| **Go** | `references/go.md` |
| **Python** | `references/python.md` |
| **Rust** | `references/rust.md` |
| **Ruby** | `references/ruby.md` |
Every template applies the same `rules/` (action pinning, `permissions`, concurrency). Adapt the JS/TS template to the detected package manager (replace `<pm>` with the detected package manager):
```yaml
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 'lts/*'
cache: '<pm>'
- run: <pm> install --frozen-lockfile
- run: <pm> check
- run: <pm> test
- run: <pm> build
```
## Audit Mode
### 1. Scan Workflows
Read all `.yml` and `.yaml` files in `.github/workflows/` and audit against every rule in the `rules/` directory.
### 2. Report Format
Report each finding as `path:line` — what is wrong → the fix, grouped by severity, and close with per-severity counts and the number of files scanned.
Report **all** rule violations found, not just pinning and permissions — migration drift, concurrency, node version, caching, triggers, matrix, and parallel steps too.
### 3. Auto-Fix
When fixing, look up commit SHAs for pinning using `gh api`.
## Rules
| Rule | Impact | File |
|------|--------|------|
| Action pinning | HIGH | `rules/action-pinning.md` |
| Permissions | HIGH | `rules/permissions.md` |
| Migration drift | HIGH | `rules/migration-drift.md` |
| Concurrency | MEDIUM | `rules/concurrency.md` |
| Node version | MEDIUM | `rules/node-version.md` |
| Caching | MEDIUM | `rules/caching.md` |
| Triggers | LOW | `rules/triggers.md` |
| Matrix strategy | LOW | `rules/matrix.md` |
| Parallel steps | LOW | `rules/parallel-steps.md` |
From tartinerlabs/skills at a7812b9, shown as plain text under its license: MIT (permissive). The license text is in plugins/workflow/skills/github-actions/SKILL.md.
View SKILL.md on GitHub at a7812b9Files
- SKILL.md4.5 KB · 963f5e47d1b5
- references/
- go.md1.3 KB · 1c9562dd51c0
- python.md1.6 KB · 630fef4535d8
- ruby.md1.4 KB · a58ef33251a0
- rust.md1.4 KB · 19c73fe73f91
- rules/
- action-pinning.md1.5 KB · 39ccef52c83a
- caching.md1.5 KB · 9d161b39f5ac
- concurrency.md1.1 KB · ccb1bbadf3ab
- matrix.md2.4 KB · 0de738ccef45
- migration-drift.md5.6 KB · 9dba184e011a
- node-version.md1.5 KB · c88390d259f5
- parallel-steps.md2.7 KB · 2275900f1f66
- permissions.md1.9 KB · 13856b80c6b2
- triggers.md1.5 KB · 7e24212dd408
14 files, 30 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.
Skill folder on GitHub at a7812b9Related in Cloud and DevOps
push-to-registry
This skill configures Packer to push build metadata to HCP Packer registry, enabling version control and governance of machine images across infrastructure…
by HashiCorpOfficial publisher
Claude Code, Codex, Cursor +4 · about 1.1K tokens · pinned 7 days ago
deployments-cicd
This skill provides expert guidance on Vercel deployments and CI/CD workflows, covering preview and production deployments, the `vercel` CLI commands…
by VercelOfficial publisher
Claude Code, Codex, Cursor +3 · about 2.6K tokens · pinned 7 days ago
github-workflows
Creates or updates GitHub Actions workflows for pull request CI, merge automation, release publication, and container image publishing.
by NebiusOfficial publisher
Contains scripts
Claude Code, Codex, Cursor +3 · about 1.6K tokens · pinned 7 days ago
nebius-serverless-recipes
Provides end-to-end command chains for Nebius Serverless AI workflows including single and multi-GPU training, model serving with vLLM, batch inference…
by NebiusOfficial publisher
Claude Code, Codex, Cursor +4 · about 3.9K tokens · pinned 7 days ago
github-actions
This skill provides reusable GitHub Actions patterns to build React Native apps for iOS simulators and Android emulators in the cloud, then upload and…
by callstackincubatorCommunity
Claude Code, Codex, Cursor +4 · about 630 tokens · pinned 7 days ago
playwright-ci-caching
This skill configures caching of Playwright browser binaries in GitHub Actions and Azure DevOps CI/CD pipelines by extracting the Playwright version from…
by AarononthewebCommunity
Claude Code, Codex, Cursor +3 · about 1.7K tokens · pinned 7 days ago