agentsclimarketplace

Actionlint

Skill rshade/agent-skills/skills/actionlint

Picks and Shovels for digging AI

Install
npx -y skills add rshade/agent-skills --skill actionlint

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Validate GitHub Actions workflow files for syntax errors, invalid references, and common mistakes. Auto-detects actionlint binary or guides installation. Checks project config or falls back to sensible defaults. Use when creating or modifying GitHub Actions workflows, validating CI/CD pipelines, or catching workflow errors before pushing.

SKILL.md

4.2 KB, as published. Nobody here has run it

<!-- Copyright 2025-2026 Richard Shade. Licensed under Apache-2.0. --> <!-- SPDX-License-Identifier: Apache-2.0 -->

Actionlint

Validate GitHub Actions workflow files (.github/workflows/*.yml) for syntax errors, invalid references, expression mistakes, and security issues. Catches errors that would otherwise only surface at runtime.

What this skill does

  1. Checks if actionlint is available; guides installation if missing.
  2. Detects project-specific .actionlintrc.yaml or falls back to a sensible default config.
  3. Validates workflow files for syntax, action references, expressions, shell scripts, and security issues.
  4. Reports errors with specific rule categories and fixes.

Installation check

actionlint --version 2>/dev/null

If not installed, install using one of:

# Go (requires Go 1.22+)
go install github.com/rhysd/actionlint/cmd/actionlint@latest

# Homebrew (macOS/Linux)
brew install actionlint

# Download binary (Linux amd64)
curl -sL "$(curl -sL https://api.github.com/repos/rhysd/actionlint/releases/latest \
  | grep browser_download_url | grep linux_amd64.tar.gz | cut -d'"' -f4)" \
  | tar xz -C /usr/local/bin actionlint

If installation fails, stop and report the issue with remediation steps. Do not silently skip validation.

Optional enhancement: if shellcheck is installed, actionlint automatically validates shell scripts in run: blocks. This is recommended but not required.

Config detection priority

  1. .actionlintrc.yaml in project root
  2. Default config (see references/actionlint-config.yaml)

If no project config exists, create a temporary .actionlintrc.yaml using the default config from references before running validation.

Validation workflow

1. Check actionlint installation
   ├─ Installed → continue
   └─ Missing → install, then continue (fail if install fails)

2. Detect project config
   ├─ Found → use it
   └─ Not found → use default config from references/

3. Run validation
   ├─ All workflows:
   │    actionlint
   ├─ Specific files:
   │    actionlint .github/workflows/ci.yml
   └─ With config:
        actionlint -config-file .actionlintrc.yaml

4. Report results
   ├─ Valid → confirm and proceed
   └─ Invalid → show errors, suggest fixes, re-validate after correction

Validation methods

Validate all workflow files (auto-discovers .github/workflows/)

actionlint

Validate specific files

actionlint .github/workflows/ci.yml .github/workflows/release.yml

Validate with explicit config

actionlint -config-file .actionlintrc.yaml

Validate from stdin (useful for generated workflows)

cat workflow.yml | actionlint -

Error handling

Install failure

If actionlint cannot be installed, report the error and provide remediation steps. Do not proceed with validation.

Validation failure

When validation fails, report each error with:

  • The file and line number
  • The error category (syntax, action, expression, runner, shell, etc.)
  • What was wrong
  • A concrete fix

Example:

Validation failed:

1. .github/workflows/ci.yml:15:9
   action "actions/checkout@master" — use a commit hash or version tag
   Fix: actions/checkout@v4

2. .github/workflows/ci.yml:23:14
   expression error: property "repo" not defined in "github" context
   Fix: use "github.repository" instead of "github.repo"

3. .github/workflows/deploy.yml:8:5
   "push" event does not support "paths" filter with "tags" filter
   Fix: split into separate workflows or remove one filter

After reporting errors, suggest fixes and re-validate after correction.

Rule reference

See references/actionlint-rules.md for the full rule reference, common error categories, security checks, and fix examples.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.