Validate workflow syntax, expressions, and shell steps before broken GitHub Actions changes reach CI.
Scanned 6/8/2026
Install via CLI
openskills install agentskillexchange/skills---
name: "Lint GitHub Actions workflows before CI runs with actionlint"
slug: "lint-github-actions-workflows-before-ci-runs-with-actionlint"
description: "Validate workflow syntax, expressions, and shell steps before broken GitHub Actions changes reach CI."
github_stars: 3787
verification: "security_reviewed"
source: "https://github.com/rhysd/actionlint"
author: "rhysd"
publisher_type: "individual"
category: "CI/CD Integrations"
framework: "Multi-Framework"
tool_ecosystem:
github_repo: "rhysd/actionlint"
github_stars: 3787
---
# Lint GitHub Actions workflows before CI runs with actionlint
Validate workflow syntax, expressions, and shell steps before broken GitHub Actions changes reach CI.
## Prerequisites
actionlint binary and GitHub Actions workflow files
## Installation
Use the upstream install or setup path that matches your environment:
- go install github.com/rhysd/actionlint/cmd/actionlint@latest
Requirements and caveats from upstream:
- uses: actions/setup-node@v4
- key: ${{ matrix.platform }}-node-${{ hashFiles('**/package-lock.json') }}
- test.yaml:17:11: input "node_version" is not defined in action "actions/setup-node@v4". available inputs are "always-auth", "architecture", "cache", "cache-dependency-path", "check-latest", "node-version", "node-versi...
Basic usage or getting-started notes:
- **Actions usage check** to check that inputs at with: and outputs in steps.{id}.outputs are correct
- **[shellcheck][] and [pyflakes][] integrations** for scripts at run:
- **Example of broken workflow:**
- Source: https://github.com/rhysd/actionlint
- Extracted from upstream docs: https://raw.githubusercontent.com/rhysd/actionlint/HEAD/README.md
## Documentation
- https://github.com/rhysd/actionlint
## Source
- [Agent Skill Exchange](https://agentskillexchange.com/skills/lint-github-actions-workflows-before-ci-runs-with-actionlint/)
No comments yet. Be the first to comment!
Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.
Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...
**Complete production-ready guide for Google Gemini embeddings API** This skill provides comprehensive coverage of the `gemini-embedding-001` model for generating text embeddings, including SDK usage, REST API patterns, batch processing, RAG integration with Cloudflare Vectorize, and advanced use cases like semantic search and document clustering. ---
Interview, source-challenge, verify, save, and ADR-gate fuzzy coding requests into Codex-ready implementation specs. Use when a feature, bugfix, refactor, migration, repo-wide change, or architecture task needs user-verified requirements, source-backed decisions, durable architecture decisions, acceptance criteria, validation commands, rollout notes, saved spec/ADR files, and a Codex execution prompt. Do not use when already fully specified or when the user wants direct implementation now.
Use when a repo needs CodeGraph plus ast-grep for Codex MCP setup, exploration, impact analysis, structural search, or safe refactor planning.