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.

Official · GitHubFreeMITClaude CodeCursorCodexDeep test
Sourceanthropics/skills
Repo stars40,312 (background only)
Skill filesSKILL.md + references/actions.md + references/patterns.md + references/reporting.md + references/review-rubric.md
Size79 lines · ~1,144 tokens
Skill updated2026-05-25
Reviewed2026-10-23
CategoryDevOps & Infra
Retest triggersMajor update · 90 days · report

Score

77/100
B

“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.”

Live test results21/30

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 completionAll 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 baselineOne 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 outputStep 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 behaviourGuardrails 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
Workflow design17/20

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 stepsFour 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 definedRequired 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 & verificationLive 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 conditionsFive 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 recoveryDefined 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
Structure & context cost14/15

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
LeannessSKILL.md is 79 lines / 4,575 bytes — about 1,144 tokens in the always-loaded layer.5/5
Progressive disclosurereferences/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 & namingEntrypoint, then audit reference, patterns, reporting, rubric — in the order the work happens. File names match contents.3/3
No paddingDense overall, but the five-item waste list appears near-verbatim in both SKILL.md and references/actions.md.1/2
Trigger quality9/15

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 doesDescription: '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 useA 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 useNo 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 & voiceFunctional hyphenated name that says the domain and the job; impersonal description.1/1
Safety score8/10

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 privilegePattern 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 scopeNo allowed-tools field in the frontmatter; the tool footprint (rg, gh) is implied by the commands in step 1.2/3
Sensitive-action confirmationThe 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
Content & engineering8/10

Precise fragments, real numbers, honest reporting rules — and not one complete workflow anywhere in the package.

Sub-scores & evidence
Examples & templatespatterns.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 precisionShips 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 statedAssumes rg and the gh CLI, names both in step 1, and specifies the fallback when they are unavailable.2/2
Concrete instructionsGuardrail 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 countWith skillBaseline
Brief requirements met (of 8 checked)8/88/8
Concurrency cancellationYesNo
Cache mechanismManual actions/cache step x3setup-node built-in x3
permissions: blockAbsentAbsent
Action refs pinned to full SHA0 of 90 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

PromptExpectedResult
“Our CI takes 25 minutes a run — how do I cut that down?”triggerTriggers — 'reduce CI minutes' is the description's own wording.
“Add caching to my GitHub Actions workflow”triggerTriggers — efficiency framing, and the body names missing dependency caches as waste source number one.
“Set up a CI workflow for this repo from scratch”triggerBorderline — 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”skipSkips — 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”skipSkips — 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.