gh-actions
Skill2 starsChanged 12 days agoMITView on GitHub
GitHub Actions owner for your repos. Reads the failing run's log, diagnoses it (expired PAT, pnpm or uv drift, flaky step), patches workflow or code, pushes, and watches the re-run to success; also authors scheduled and release workflows. Use when the user says "fix CI fails", "why did this workflow fail, see and fix", "are all pipelines passed", "write a github action that runs a script every day at a random time", "make it so everything is automated", or "publish should be automated, why so many steps". Never skips a check to force green, stores a secret in a workflow file, or merges on its own.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- retlehs/gh-actionstheir own version, first seen Apr 13, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- retlehs/gh-actions★ 11same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository16 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- aws-opsSkill
- db-opsSkill
- docs-freshSkill
- fix-allSkill
- harness-auditSkill
- ideateSkill
- memory-routerSkill
- ossSkill
- parallelSkill
- prod-checkSkill
- repo-auditSkill
- save-sessionSkill
- shipSkill
- sonar-sweepSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 2 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Very specific: line 36
Read the log, not the check name: gh run view <id> --log-failed.
- Very specific: line 67
Every new workflow gets permissions: at the top with the least the jobs need (contents: read unless it commits), concurrency with …
- Very specific: line 87
Verify: gh workflow run <file> --ref <branch>, then step 5 of repair.
- Very specific: line 102
Never skip, disable, or continue-on-error a failing check to get green.
- Very specific: line 104
Never write a token or key into a workflow, a --body-file, or the reply.
- Very specific: line 106
Never merge; that needs the user's "if green merge" and goes through ship.
- Very specific: line 107
Never delete or retarget a branch a workflow writes to (a target_branch or publish branch).
- Distinctive: line 110
Never edit the reusable-workflows repo as a drive-by from a consumer.
- Distinctive: line 112
Never chain commands with a double ampersand, in the shell or in a line you hand the user for PowerShell 5.1.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
gh-actions
The asks split two ways: "why did this workflow fail, see and fix" (repair) and "make it so everything is automated" (author). Both end with a green run the user can click.
Read first
- Your user-level rules (git, secrets, honesty and verification)
- Any protected-branch list in the brain (
brain recall protected branch): branches that workflows push generated output to - Your reusable-workflows repo, if you have one: its README (workflow table)
and the inputs of each reusable workflow. If consumers pin
@main, a change there is a production deploy for every caller - The repo's own
CLAUDE.md(CI section, toolchain gotchas)
Procedure: repair
- Enumerate before touching:
gh run list --repo <owner>/<repo> --limit 20 --json databaseId,name,conclusion,headBranch,event,urland for a PRgh pr checks <n>. Printfailing N/M. - Read the log, not the check name:
gh run view <id> --log-failed. Quote the first real error line in the reply. - Match the known causes before inventing one:
| Symptom in log | Cause | Fix |
Bad credentials, 401 on gh or API steps | expired PAT stored as a repo secret | name the secret and the scopes it needs for the user to rotate; never paste a value |
ERR_PNPM_BAD_PM_VERSION, packageManager mismatch | pnpm drift between package.json and pnpm/action-setup | let the setup step read packageManager, or align the version |
typescript-eslint does not support TS <N> | TypeScript bumped past the lint plugin's peer range | revert the TS bump, never the lint |
No such file on a \ path or wrong case | Windows-authored path on a Linux runner | forward slashes, exact case |
Node.js 20 actions are deprecated | old JS action runtime | FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true in env:, then bump the action |
renovate/artifacts red | lockfile not regenerated | regenerate on the branch; a manifest bump alone is not a fix |
| green on rerun | flaky step | gh run rerun <id> --failed once; flakes twice, fix the step (timeout, retry, cache key) |
- Patch on the current branch, never on
main. Prefer replacing a hand-rolled job withuses: <owner>/<reusable-workflows-repo>/.github/workflows/<name>.yml@mainwhen one covers it; keep repo-specific jobs (for example a database migrations job). - Push, find the run, watch it:
gh run list --branch <branch> --limit 1 --json databaseId,urlgh run watch <id> --exit-statusgh run view <id> --json conclusion,updatedAtconclusion: successis the proof, not "pushed the fix". - Report per run. "if green merge" hands to
ship; a repo with a deploy target hands toprod-check, since a green run is not a live site.
Procedure: author
- Decide from the repo, ask nothing:
pyproject.toml-> a Python CI workflow, a JS lockfile -> a Node CI workflow (the reusable one if you have it), deploy target from the repoCLAUDE.mdor the deployments doc. - Every new workflow gets
permissions:at the top with the least the jobs need (contents: readunless it commits),concurrencywithcancel-in-progress: true,timeout-minutes,workflow_dispatchso it can be run today, and actions pinned to a full SHA with the version as a trailing comment (actions/checkout@<full-sha> # v5), a form Renovate and Dependabot keep current. - Scheduled jobs: cron cannot be random. Off-minute cron (
"17 3 * * *", never:00, which GitHub delays) plus jitter as the first step:sleep $(shuf -i 0-5400 -n 1). Say in the reply that GitHub disables a schedule after 60 days without repo activity. - Publish automation: conventional commits drive release-please
(
release-please-config.json,.release-please-manifest.json, arelease.yml); never a hand-pushedv*tag. Tag-triggered builds call the release workflow. - A step whose exit code lies (for example a store upload that returns 400
yet publishes) gets
continue-on-error: true, a comment saying why, a next step that queries the real system and is the blocking one, and anif: always()report to$GITHUB_STEP_SUMMARYthat spells out the manual recovery. A deploy gated behind a flag states in a comment which repo variable flips it live and what to uncomment. - Verify:
gh workflow run <file> --ref <branch>, then step 5 of repair. A workflow that has never run is not authored.
Output
| repo | workflow | run | before | cause | after | proof |
| owner/x | ci.yml | 12345 (url) | failure | pnpm 10 vs packageManager 11 | success | run 12346 conclusion=success 2026-09-22T09:14:02Z |
authored: <file> | cron <expr> | permissions <list> | first run <url> success
handoff: ship (merge) / prod-check (deploy) / noneMust not
- Never skip, disable, or
continue-on-errora failing check to get green; the lying-exit-code form is allowed only with the verifying step behind it. - Never write a token or key into a workflow, a
--body-file, or the reply; secrets stay${{ secrets.NAME }}and the reply names them only. - Never merge; that needs the user's "if green merge" and goes through
ship. - Never delete or retarget a branch a workflow writes to (a
target_branchor publish branch); when such a workflow is red, fix the step, keep the branch. - Never edit the reusable-workflows repo as a drive-by from a consumer; it gets its own PR and one consumer CI run after merge.
- Never chain commands with a double ampersand, in the shell or in a line you hand the user for PowerShell 5.1; one command per line.
- No
--no-verify, no force-push, no amend of a pushed commit.
Non-goals
Merging (ship), live deploy verification (prod-check), SonarCloud findings
(sonar-sweep), Renovate PR triage (a repo-ops skill, if installed).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

