Analyze GitHub Action Logs
withastro/astro
Analyze recent GitHub Actions workflow runs to identify patterns, mistakes, and improvements.
Create, generate, or scaffold GitHub Actions workflows, action.yml, or .github/workflows CI/CD pipelines.
$ npx skills add akin-ozer/cc-devops-skills --skill github-actions-generator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install akin-ozer/cc-devops-skills github-actions-generator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/devops-skills-plugin/skills/github-actions-generator .claude/skills/github-actions-generator && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "github-actions-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/github-actions-generator into .claude/skills/github-actions-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-actions-generator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/github-actions-generatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add akin-ozer/cc-devops-skills --skill github-actions-generator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install akin-ozer/cc-devops-skills github-actions-generator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/devops-skills-plugin/skills/github-actions-generator .agents/skills/github-actions-generator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "github-actions-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/github-actions-generator into .agents/skills/github-actions-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-actions-generator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add akin-ozer/cc-devops-skills --skill github-actions-generator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install akin-ozer/cc-devops-skills github-actions-generator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/devops-skills-plugin/skills/github-actions-generator .cursor/skills/github-actions-generator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "github-actions-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/github-actions-generator into .cursor/skills/github-actions-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-actions-generator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/akin-ozer/cc-devops-skills.git --path devops-skills-plugin/skills/github-actions-generator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add akin-ozer/cc-devops-skills --skill github-actions-generator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install akin-ozer/cc-devops-skills github-actions-generator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/devops-skills-plugin/skills/github-actions-generator .gemini/skills/github-actions-generator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "github-actions-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/github-actions-generator into .gemini/skills/github-actions-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-actions-generator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install akin-ozer/cc-devops-skills github-actions-generatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add akin-ozer/cc-devops-skills --skill github-actions-generator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/devops-skills-plugin/skills/github-actions-generator .github/skills/github-actions-generator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "github-actions-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/github-actions-generator into .github/skills/github-actions-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-actions-generator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add akin-ozer/cc-devops-skills --skill github-actions-generator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install akin-ozer/cc-devops-skills github-actions-generator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/akin-ozer/cc-devops-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/devops-skills-plugin/skills/github-actions-generator .opencode/skills/github-actions-generator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "github-actions-generator" agent skill from https://github.com/akin-ozer/cc-devops-skills/tree/main/devops-skills-plugin/skills/github-actions-generator into .opencode/skills/github-actions-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "github-actions-generator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
github-actions-generatorCreate, generate, or scaffold GitHub Actions workflows, action.yml, or .github/workflows CI/CD pipelines.
GitHub Actions Generator is an agent skill from akin-ozer/cc-devops-skills. Create, generate, or scaffold GitHub Actions workflows, action.yml, or .github/workflows CI/CD pipelines.
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 47 other files, including scripts, reference files and assets (for example `assets/templates/action/composite/action.yml`, `assets/templates/action/docker/action.yml` and `assets/templates/action/docker/entrypoint.sh`).
It sits in DevOps & Cloud, covering CI/CD. It works with GitHub Actions. The repository describes itself as: DevOps skills for Claude Code and Codex. The licence is Apache-2.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 276af75. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell and JavaScript, from the files we listed), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
GitHub Actions Generator loads about 3.1k tokens when it runs, and up to ~27k if it reads all its reference files. Until then it costs about 33 tokens; SKILL.md has 1,010 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from akin-ozer/cc-devops-skills at commit 276af75, republished under its Apache-2.0 licence (© akin-ozer). 1,010 words, ~3,053 tokens.
.claude/skills/github-actions-generator/SKILL.md (or your agent's skills folder). This skill also uses 38 other files; get the full folder from GitHub.Generate production-ready GitHub Actions workflows and custom actions following current best practices, security standards, and naming conventions. All generated resources are automatically validated using the devops-skills:github-actions-validator skill.
| Capability | When to Use | Reference |
|---|---|---|
| Workflows | CI/CD, automation, testing | references/best-practices.md |
| Composite Actions | Reusable step combinations | references/custom-actions.md |
| Docker Actions | Custom environments/tools | references/custom-actions.md |
| JavaScript Actions | API interactions, complex logic | references/custom-actions.md |
| Reusable Workflows | Shared patterns across repos | references/advanced-triggers.md |
| Security Scanning | Dependency review, SBOM | references/best-practices.md |
| Modern Features | Summaries, environments | references/modern-features.md |
Route every request through this decision tree before reading references or generating files:
.github/workflows/*.yml CI/CD automation, choose Workflow Generation.action.yml or a reusable step package, choose Custom Action Generation.workflow_call or shared pipelines across repositories, choose Reusable Workflow Generation.Load only what is needed for the selected route, in this order:
| Route | Load First (required) | Load Next (only if needed) | Primary Template |
|---|---|---|---|
| Workflow Generation | references/best-practices.md | references/common-actions.md, references/expressions-and-contexts.md, references/modern-features.md | assets/templates/workflow/basic_workflow.yml |
| Custom Action Generation | references/custom-actions.md | references/best-practices.md | assets/templates/action/composite/action.yml, assets/templates/action/docker/, assets/templates/action/javascript/ |
| Reusable Workflow Generation | references/advanced-triggers.md | references/best-practices.md, references/common-actions.md | assets/templates/workflow/reusable_workflow.yml |
If a required reference/template is unavailable, continue with the closest available reference and report the fallback explicitly in output.
Triggers: "Create a workflow for...", "Build a CI/CD pipeline..."
Process:
permissions to read-only, then elevate only per job when requiredreferences/best-practices.md for patternsreferences/common-actions.md for action versionsMinimal Example:
name: CI Pipeline
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
node-version: '24'
cache: 'npm'
- run: npm ci
- run: npm testUntrusted PR Guardrail (required for secret-using jobs):
jobs:
deploy:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repositoryTriggers: "Create a composite action...", "Build a Docker action...", "Create a JavaScript action..."
Types:
Process:
assets/templates/action/references/custom-actions.mdSee references/custom-actions.md for:
Triggers: "Create a reusable workflow...", "Make this workflow callable..."
Key Elements:
workflow_call trigger with typed inputssecrets: inherit)on:
workflow_call:
inputs:
environment:
required: true
type: string
secrets:
deploy-token:
required: false
outputs:
result:
value: ${{ jobs.build.outputs.result }}When secrets are required, pass only the exact secret names needed and prefer environment protection rules for deployment stages.
See references/advanced-triggers.md for complete patterns.
Triggers: "Add security scanning...", "Add dependency review...", "Generate SBOM..."
Components:
actions/dependency-review-action@v4actions/attest-sbom@v2github/codeql-actionPermission Model: Use a read-only workflow-level baseline, then elevate only in the security job that requires write scopes.
permissions:
contents: read
jobs:
security-scan:
permissions:
contents: read
security-events: write # For CodeQL
id-token: write # For attestations
attestations: write # For attestationsSee references/best-practices.md section on security.
Triggers: "Add job summaries...", "Use environments...", "Run in container..."
See references/modern-features.md for:
$GITHUB_STEP_SUMMARY)When using third-party actions (any uses: entry not in the same repository):
Search for documentation:
"[owner/repo] [version] github action documentation"Or use Context7 MCP:
mcp__context7__resolve-library-id to find actionmcp__context7__query-docs for documentationPin to SHA with version comment:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2Cite source and version in the response:
See references/common-actions.md for pre-verified action versions.
CRITICAL: Every generated resource MUST be validated.
devops-skills:github-actions-validator skillSkip validation only for:
If required tooling or network access is unavailable, use this deterministic fallback order:
devops-skills:github-actions-validator is unavailable, run local fallback checks:actionlint (if installed)yamllint (if installed)references/common-actions.md for known action versionsassets/templates/Fallback usage must always be reported in the final output.
All generated resources must follow:
| Standard | Implementation |
|---|---|
| Security | Pin to SHA, minimal permissions, mask secrets |
| Performance | Caching, concurrency, shallow checkout |
| Naming | Descriptive names, lowercase-hyphen files |
| Error Handling | Timeouts, cleanup with if: always() |
See references/best-practices.md for complete guidelines.
| Document | Content | When to Use |
|---|---|---|
references/best-practices.md | Security, performance, patterns | Every workflow |
references/common-actions.md | Action versions, inputs, outputs | Public action usage |
references/expressions-and-contexts.md | ${{ }} syntax, contexts, functions | Complex conditionals |
references/advanced-triggers.md | workflow_run, dispatch, ChatOps | Workflow orchestration |
references/custom-actions.md | Metadata, structure, versioning | Custom action creation |
references/modern-features.md | Summaries, environments, containers | Enhanced workflows |
| Template | Location |
|---|---|
| Basic Workflow | assets/templates/workflow/basic_workflow.yml |
| Reusable Workflow | assets/templates/workflow/reusable_workflow.yml |
| Composite Action | assets/templates/action/composite/action.yml |
| Docker Action | assets/templates/action/docker/ |
| JavaScript Action | assets/templates/action/javascript/ |
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
node: [18, 20, 22]
fail-fast: falsedeploy:
if: github.event_name == 'push' && github.ref == 'refs/heads/main'# Upload
- uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
name: build-${{ github.sha }}
path: dist/
# Download (in dependent job)
- uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
name: build-${{ github.sha }}Third-party action citations:
- actions/checkout: https://github.com/actions/checkout (version: v6.0.2, sha: de0fac2e4500dabe0009e67214ff5f5447ce83dd, accessed: 2026-02-28)The task is complete only when all checks below pass:
devops-skills:github-actions-validator (or documented fallback)© akin-ozer, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 38 other files (scripts, references, assets) in devops-skills-plugin/skills/github-actions-generator of akin-ozer/cc-devops-skills.
Open the folder on GitHubat commit 276af75
GitHub Actions Generator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| GitHub Actions Generator this skillakin-ozer/cc-devops-skills | 319 | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Analyze GitHub Action Logswithastro/astro | 63k | 1 repos | ~1.3k | Automated safety check: Pass | Custom licence | |
| GitHub Actions Templatesbartstc/vite-ts-react-template | 122 | 14 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Nushellccusage/ccusage | 19k | — | ~938 | Automated safety check: Pass | Custom licence | |
| Repo Hygiene Scan and FixQwenLM/qwen-code | 28k | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Senior DevOps Toolkitmaslennikov-ig/claude-code-orchestrator-kit | 260 | 6 repos | ~1.1k | Automated safety check: Notes | Custom licence |
withastro/astro
Analyze recent GitHub Actions workflow runs to identify patterns, mistakes, and improvements.
bartstc/vite-ts-react-template
Create production-ready GitHub Actions workflows for automated testing, building, and deploying applications.
ccusage/ccusage
Guides ccusage Nushell scripts. An agent skill from ccusage/ccusage.
QwenLM/qwen-code
Scheduled CI skill that scans a repository for small, certain docs, test and code hygiene issues and fixes them on one branch with a commit per finding.
maslennikov-ig/claude-code-orchestrator-kit
Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup…
Chachamaru127/claude-code-harness
Diagnoses failing CI pipelines and tests, deciding first whether the test or the implementation is at fault, and hands hard cases to a dedicated fixer subagent.
akin-ozer/cc-devops-skills
Create, scaffold, or generate Helm charts, Chart.yaml, values.yaml, templates, helpers.
akin-ozer/cc-devops-skills
Generate/create/scaffold Jenkinsfile — declarative, scripted, shared library, CI/CD pipelines.
akin-ozer/cc-devops-skills
Validate, lint, audit, or scan a Dockerfile for security and best practices.
akin-ozer/cc-devops-skills
Validate, lint, audit, fix GitHub Actions workflows (.github/workflows).
akin-ozer/cc-devops-skills
Validate, lint, audit, or check Jenkinsfiles and shared libraries.
akin-ozer/cc-devops-skills
Diagnose and fix Kubernetes pods, CrashLoopBackOff, Pending, DNS, networking, storage, and rollout failures with kubectl.
Works with
Categories
Create, generate, or scaffold GitHub Actions workflows, action.yml, or .github/workflows CI/CD pipelines. GitHub Actions Generator is an agent skill from akin-ozer/cc-devops-skills.github/workflows CI/CD pipelines.
GitHub Actions Generator fits situations like: tasks that involve CI/CD.
Run `npx skills add akin-ozer/cc-devops-skills --skill github-actions-generator -a claude-code`. Or copy the skill folder (devops-skills-plugin/skills/github-actions-generator in akin-ozer/cc-devops-skills) into .claude/skills/github-actions-generator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add akin-ozer/cc-devops-skills --skill github-actions-generator -a codex`. Or copy the skill folder (devops-skills-plugin/skills/github-actions-generator in akin-ozer/cc-devops-skills) into .agents/skills/github-actions-generator in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add akin-ozer/cc-devops-skills --skill github-actions-generator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/github-actions-generator, .gemini/skills/github-actions-generator, .github/skills/github-actions-generator and .opencode/skills/github-actions-generator in your project.
Going by SKILL.md and its folder, GitHub Actions Generator needs a shell and JavaScript for the scripts in its folder. Our summary lists: Node.js; A Bash shell; Docker.
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
GitHub Actions Generator is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 24k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with GitHub Actions Generator: Analyze GitHub Action Logs (withastro/astro, 63k stars), GitHub Actions Templates (bartstc/vite-ts-react-template, 122 stars), Nushell (ccusage/ccusage, 19k stars) and Repo Hygiene Scan and Fix (QwenLM/qwen-code, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
akin-ozer (a GitHub user) maintains it in akin-ozer/cc-devops-skills, which has 319 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on July 26, 2026.
Source: akin-ozer/cc-devops-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.