Home · DevOps & Infra · github-actions-efficiency
github-actions-efficiency
GitHub's CI cost-cutting playbook from the awesome-copilot collection: audit a workflow's waste in a fixed order, apply guarded fixes — caching, stale-run cancellation, trigger scoping — and report savings without inventing them.
Score
“A disciplined audit playbook whose guardrails and honesty rules are the best we have scored — held back by a description that hides its creation mode, a cache pattern one idiom behind the baseline, and a test workflow that differed from no-skill output in exactly one block: it cancelled stale runs.”
The workflow it produced passed every programmatic check — and so did the baseline. The skill's entire measurable contribution was one block: concurrency cancellation.
Sub-scores & evidence
| Task completion | All 8 objective checks passed: YAML parses, push + pull_request triggers scoped to main, lint/test/build jobs with npm ci, test matrix exactly [20, 22], caching in all 3 jobs. Docked one point because the YAML came from a 60-line patterns file — the core skill contains no workflow example at all. | 11/12 |
| Beats the no-skill baseline | One structural difference: the with-skill run cancels superseded runs (concurrency group workflow+ref, cancel-in-progress true); the baseline lets them burn minutes. Everything else matched, and on caching the baseline's setup-node built-in is the more current idiom than the skill's manual cache step. | 5/10 |
| Self-verification in output | Step 4 of the skill demands live validation by test push, or an explicit statement that it was not possible — an honesty rule most skills lack. But nothing in its process validates the workflow file itself (no lint/parse step); we parsed both outputs ourselves. | 3/5 |
| Failure behaviour | Guardrails are failure-aware: never hide required validation, treat severity drift as a regression risk, treat live behaviour that contradicts the YAML as a real bug. No failure case was injected this round. | 2/3 |
A numbered measure → guardrails → select → verify pipeline with the clearest stop rules we have scored. Built for existing workflows; the greenfield path is a side door.
Sub-scores & evidence
| Clear steps | Four numbered steps in SKILL.md plus an audit order in references/actions.md. Docked because creating a workflow from scratch — the path our test needed — gets one sentence in the entrypoint and one line in the reference. | 5/6 |
| Inputs & outputs defined | Required Output names four deliverables (waste sources, proposed fixes, validation, impact). Inputs are exact: workflow files plus gh run list --limit 10, with a paste-the-files fallback when shell access is missing. | 4/4 |
| Checks & verification | Live test-push validation for path gating and stale-run cancellation, plus a review-rubric reference for follow-up passes. No static check of the produced YAML. | 3/4 |
| Stop conditions | Five guardrails written as drop/flag rules: drop any fix that hides required validation, drop unjustified parallelism cuts, flag automatic write-back jobs instead of silently keeping them. | 3/3 |
| Failure recovery | Defined fallbacks when gh or shell access is unavailable (files-only mode, labelled 'Static-only analysis'). No guidance for recovering when an applied fix itself misbehaves. | 2/3 |
A 79-line entrypoint with four references behind explicit load conditions — the layering pdf scored 15 for, minus a point for repeated material.
Sub-scores & evidence
| Leanness | SKILL.md is 79 lines / 4,575 bytes — about 1,144 tokens in the always-loaded layer. | 5/5 |
| Progressive disclosure | references/actions.md (77 lines), patterns.md (60), reporting.md (42) and review-rubric.md (12) each state when to load them; the entrypoint's 'Load Only What You Need' section routes by task. | 5/5 |
| Organisation & naming | Entrypoint, then audit reference, patterns, reporting, rubric — in the order the work happens. File names match contents. | 3/3 |
| No padding | Dense overall, but the five-item waste list appears near-verbatim in both SKILL.md and references/actions.md. | 1/2 |
The weakest dimension. The description advertises only the audit; the creation help the body genuinely offers is invisible to description-based matching.
Sub-scores & evidence
| What it does | Description: 'Audit GitHub Actions workflow efficiency and recommend fixes to reduce CI minutes and costs.' Accurate for half the skill — the greenfield mode in the body goes unmentioned. | 3/4 |
| When to use | A five-bullet 'Use This Skill When' list exists, but inside the body where matching cannot see it; the description itself has no when-clause. | 3/4 |
| User-word keywords | 'CI minutes' and 'costs' match how people complain about slow CI. 'Caching', 'speed up' and 'slow workflow' appear only in the body. | 2/3 |
| When NOT to use | No boundary anywhere — and the gap is live: 'is my workflow secure?' requests belong to the sibling github-actions-hardening skill, and nothing here routes them away. | 0/3 |
| Naming & voice | Functional hyphenated name that says the domain and the job; impersonal description. | 1/1 |
Five Markdown files, zero scripts, zero URLs. The shell commands it prescribes are read-only inspection of your own workflow files.
Sub-scores & evidence
| Least privilege | Pattern scan of all five files found no network calls, no subprocess or env access, no credential handling. Its audit commands are rg over .github/workflows and gh run list/view — reads, not writes. | 4/4 |
| Declared tool scope | No allowed-tools field in the frontmatter; the tool footprint (rg, gh) is implied by the commands in step 1. | 2/3 |
| Sensitive-action confirmation | The skill recommends and ranks fixes rather than applying them, and flags write-back jobs instead of dropping them silently — but it never states an explicit confirm-before-editing rule. | 2/3 |
Precise fragments, real numbers, honest reporting rules — and not one complete workflow anywhere in the package.
Sub-scores & evidence
| Examples & templates | patterns.md ships three copyable YAML fragments (cache step, concurrency block, trigger scoping) plus a change-detection output list. No end-to-end workflow file to start from. | 2/3 |
| Scripts & instruction precision | Ships no scripts. Where it gives YAML or commands they are exact — the concurrency expression and the lockfile-hash cache key can be pasted as written, and our test did. | 2/3 |
| Dependencies stated | Assumes rg and the gh CLI, names both in step 1, and specifies the fallback when they are unavailable. | 2/2 |
| Concrete instructions | Guardrail 2 puts a number on parallelism cuts (new critical path within 1.25x of the original); fixes are capped at a top 3 ranked by estimated daily minutes saved. | 2/2 |
Best for / not for
Best for
- Teams whose CI minutes or queue times hurt — the fixed audit order and top-3 fix selection are the product
- Rapid-push branches where superseded runs pile up; the concurrency pattern alone pays for the install
- Reviewers who want fixes ranked by minutes saved, with guardrails that refuse to trade away required checks
Not for
- CI security — permissions blocks, SHA-pinning and injection review live in the sibling github-actions-hardening skill; this one never mentions them (our test workflow has no permissions block, and neither does the baseline)
- Copy-paste users who want a finished workflow file — the package contains fragments to assemble, not a complete example
- Anyone quoting exact savings — the skill itself refuses to claim minutes saved without before/after run data
What it does
One of 441 skills in GitHub’s awesome-copilot collection (40,312 stars, MIT, checked Oct 2026), added in a single commit on 2026-05-25 and untouched since. The package is five Markdown files: a 79-line SKILL.md entrypoint and four references that load on demand — an audit guide, a patterns file, a reporting guide, and a review rubric. No scripts anywhere.
The core is a four-step audit: measure (an rg sweep of your workflow files plus gh run list), check every candidate fix against five guardrails, keep a ranked top 3 from six named fixes, then verify with a live test push — or say, in writing, that live verification was not possible. The guardrails are the strongest writing in the package. A fix that hides required validation is dropped, not debated. A parallelism cut needs the new critical path within 1.25x of the original. Write-back jobs get flagged and moved to opt-in triggers rather than quietly kept.
The reporting reference deserves its own mention: it forbids claiming exact minutes saved without before/after run data and ships the sentence to use instead. Skills that ship their own honesty constraints are rare.
How the live test went
Greenfield work is the skill’s side door: SKILL.md says to load references/actions.md and define a baseline when no workflows exist, so we did exactly that for our standard brief (Node 20 project; install with caching, lint, test, build; pushes and PRs to main; Node 22 as a second test leg). The with-skill workflow assembled the patterns file’s fragments as written — the manual actions/cache@v4 step over ~/.npm keyed on hashFiles('**/package-lock.json'), and the concurrency block.
We verified both outputs programmatically rather than by eye. Both parse, both carry the same three jobs, the same commands, the same triggers, and the same [20, 22] test matrix: 8 of 8 brief requirements on each side. The single structural difference is concurrency with cancel-in-progress — present with the skill, absent without it. On a branch receiving rapid pushes, that one block is the difference between paying for every superseded run and paying for the last one.
Two findings cut the other way. On caching, the baseline used setup-node’s built-in cache: npm; the skill’s prescribed pattern is the older manual cache step — correct, with a restore-keys fallback the built-in lacks, but a step behind the current idiom. And neither workflow has a permissions: block or a single SHA-pinned action (0 of 9 refs with the skill, 0 of 6 without). That is not this skill’s failure so much as its scope: it never claims security. The sibling skill in the same folder, github-actions-hardening, exists precisely for that half.
Where it falls short
Start with the trigger score, 9 of 15 — the lowest dimension. The description reads “Audit GitHub Actions workflow efficiency and recommend fixes”, full stop. The creation mode our test used is claimed only in a body section titled “Use This Skill When”, which description-based matching never sees. A user asking an agent to “set up CI from scratch” may never load the one skill in the repo that covers it.
Second: there is no complete workflow anywhere in the package. patterns.md gives three fragments — cache, concurrency, trigger scoping — and our with-skill run had to assemble a 69-line workflow from them plus its own knowledge. For a skill whose entrypoint promises a baseline workflow, shipping one finished example would close most of that gap.
Third, smaller: the five-item waste list is printed twice, near-verbatim, in SKILL.md and references/actions.md — the one padding slip in an otherwise tight 270-line package. And if your problem is CI security rather than CI cost, this is simply the wrong folder: permissions, pinning and injection review are next door in github-actions-hardening, and nothing in this skill points you there.
Live A/B test — the evidence
One brief, run twice: write a GitHub Actions CI workflow for a Node 20 project — install dependencies with caching, run lint, run tests, and build, on pushes and pull requests to main; the test job also runs on Node 22 as a matrix leg. Both outputs verified programmatically (YAML parse, jobs, commands, triggers, matrix, cache, concurrency, permissions, action refs).
With the skill
Approach: The skill's greenfield path, followed literally: references/actions.md baseline rules (small workflow, documented matrix legs only) plus the exact references/patterns.md fragments — actions/cache@v4 over ~/.npm keyed on the lockfile hash, and the workflow/ref concurrency group with cancel-in-progress.
- Concurrency cancellation present — the one structural difference from the baseline
- Cache in all 3 jobs via the skill's prescribed pattern: lockfile-hash key plus restore-keys fallback
- Test matrix held to the two documented legs [20, 22], per guardrail 3
Without the skill (baseline)
Approach: A competent default workflow written from scratch: three jobs, setup-node@v4 with its built-in cache: npm in every job.
- Identical jobs, triggers, commands and matrix to the with-skill run — verified programmatically, not eyeballed
- Caching via setup-node's built-in cache, the idiom most new workflows now default to
- No concurrency block: push three fixes in a minute and all three runs burn minutes to completion
| Objective count | With skill | Baseline |
|---|---|---|
| Brief requirements met (of 8 checked) | 8/8 | 8/8 |
| Concurrency cancellation | Yes | No |
| Cache mechanism | Manual actions/cache step x3 | setup-node built-in x3 |
| permissions: block | Absent | Absent |
| Action refs pinned to full SHA | 0 of 9 | 0 of 6 |
The skill changed one thing that matters and nothing that hurts: it cancelled stale runs. The workflow itself — jobs, matrix, triggers, even the missing permissions block — matched the baseline, and its prescribed cache pattern is the older manual idiom standing next to setup-node's built-in cache. What you are actually installing is the audit discipline around the workflow, not the workflow.
Full outputs: With-skill workflow (full output) · Without-skill workflow (baseline)
Trigger tests
| Prompt | Expected | Result |
|---|---|---|
| “Our CI takes 25 minutes a run — how do I cut that down?” | trigger | Triggers — 'reduce CI minutes' is the description's own wording. |
| “Add caching to my GitHub Actions workflow” | trigger | Triggers — efficiency framing, and the body names missing dependency caches as waste source number one. |
| “Set up a CI workflow for this repo from scratch” | trigger | Borderline — the body's 'Use This Skill When' claims greenfield setup, but the description says only 'audit… and recommend fixes', so description-based matching can miss the skill's own creation mode. |
| “Review my workflow for security issues and pin the actions to SHAs” | skip | Skips — that is github-actions-hardening's stated job in the same repo; nothing in this description claims security review. |
| “Write the changelog for the v2.0 release” | skip | Skips — no CI content at all. |
Desk-simulated against the skill's description matching rules; noted as simulated wherever the score depends on it.
Security screen
✓ Pass
Credential theft / exfiltration
✓ Pass
Remote code download & execute
✓ Pass
Data sent to unrelated third parties
✓ Pass
Hidden instructions (incl. invisible Unicode)
✓ Pass
Obfuscated payloads
✓ Pass
Privilege escalation requests
Screening only — not a security certification. We read all five files end to end and pattern-scanned them: no scripts, no URLs, no network or shell-out instructions, and a zero-width/invisible-character scan came back clean. Industry context: Snyk's ToxicSkills scan of 3,984 public skills found security flaws in 36.82% of them.
Install
GitHub CLI (v2.90.0+, per the repo docs)
gh skills install github/awesome-copilot github-actions-efficiency
Any agent (skills CLI)
npx skills add github/awesome-copilot --skill github-actions-efficiency
Cursor / Codex (manual)
# copy the github-actions-efficiency folder into: .cursor/skills/github-actions-efficiency/ # Cursor project .agents/skills/github-actions-efficiency/ # shared agents folder
Alternatives
github-actions-hardening (same repo)
The security half of CI work: SHA-pinning, least-privilege permissions, script-injection sinks, privileged triggers. Our efficiency-written test workflow has no permissions block and zero SHA pins — run this sibling after it if those gaps matter to you.
Frequently asked questions
Is the github-actions-efficiency skill safe?
In our screening on 2026-10-23, github-actions-efficiency passed all six security red lines (credential theft, remote code execution, data exfiltration, hidden instructions, obfuscated payloads, privilege abuse) and scored 8/10 on the safety dimension. Screening is not a certification — re-screen after major updates.
What is the github-actions-efficiency skill used for?
GitHub's CI cost-cutting playbook from the awesome-copilot collection: audit a workflow's waste in a fixed order, apply guarded fixes — caching, stale-run cancellation, trigger scoping — and report savings without inventing them.
How do I install the github-actions-efficiency skill?
For Claude Code, add the marketplace and install the plugin set that contains it. With the skills CLI: npx skills add anthropics/skills --skill github-actions-efficiency. For Cursor or Codex, copy the github-actions-efficiency folder into .cursor/skills/ or .agents/skills/. Full commands are in the Install section of this page.
How good is the github-actions-efficiency skill?
github-actions-efficiency scored 77/100 (grade B) in our live test on 2026-10-23: A disciplined audit playbook whose guardrails and honesty rules are the best we have scored — held back by a description that hides its creation mode, a cache pattern one idiom behind the baseline, and a test workflow that differed from no-skill output in exactly one block: it cancelled stale runs.
Tested 2026-10-23 in an agent environment following the skill's own instructions — not inside the Cursor desktop app. Scores follow the Skills List methodology v1: red lines veto regardless of score; install counts and stars never count toward quality. More in DevOps & Infra.