{"id":"75d9516c-3ce6-4185-87f0-14b24bca63fe","shortId":"aWwu85","kind":"skill","title":"Lint GitHub Actions workflows before CI runs with actionlint","tagline":"Validate workflow syntax, expressions, and shell steps before broken GitHub Actions changes reach CI.","description":"# Lint GitHub Actions workflows before CI runs with actionlint\n\nValidate workflow syntax, expressions, and shell steps before broken GitHub Actions changes reach CI.\n\n## Prerequisites\n\nactionlint binary and GitHub Actions workflow files\n\n## Installation\n\nUse the upstream install or setup path that matches your environment:\n- go install github.com/rhysd/actionlint/cmd/actionlint@latest\n\nRequirements and caveats from upstream:\n- uses: actions/setup-node@v4\n- key: ${{ matrix.platform }}-node-${{ hashFiles('**/package-lock.json') }}\n- 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...\n\nBasic usage or getting-started notes:\n- **Actions usage check** to check that inputs at with: and outputs in steps.{id}.outputs are correct\n- **[shellcheck][] and [pyflakes][] integrations** for scripts at run:\n- **Example of broken workflow:**\n\n- Source: https://github.com/rhysd/actionlint\n- Extracted from upstream docs: https://raw.githubusercontent.com/rhysd/actionlint/HEAD/README.md\n\n## Documentation\n\n- https://github.com/rhysd/actionlint\n\n## Source\n\n- [Agent Skill Exchange](https://agentskillexchange.com/skills/lint-github-actions-workflows-before-ci-runs-with-actionlint/)","tags":["lint","github","actions","workflows","before","runs","with","actionlint","skills","agentskillexchange","agent-skills","ai-agents"],"capabilities":["skill","source-agentskillexchange","skill-lint-github-actions-workflows-before-ci-runs-with-actionlint","topic-agent-skills","topic-ai-agents","topic-ai-tools","topic-awesome-list","topic-claude-code","topic-codex","topic-cursor","topic-llm","topic-mcp","topic-npx-skills","topic-openclaw","topic-skills-catalog"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/agentskillexchange/skills/lint-github-actions-workflows-before-ci-runs-with-actionlint","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add agentskillexchange/skills","source_repo":"https://github.com/agentskillexchange/skills","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 8 github stars · SKILL.md body (1,343 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:11:10.192Z","embedding":null,"createdAt":"2026-05-18T13:17:32.457Z","updatedAt":"2026-05-18T19:11:10.192Z","lastSeenAt":"2026-05-18T19:11:10.192Z","tsv":"'/package-lock.json':84 '/rhysd/actionlint':157,168 '/rhysd/actionlint/cmd/actionlint@latest':71 '/rhysd/actionlint/head/readme.md':164 '/skills/lint-github-actions-workflows-before-ci-runs-with-actionlint/)':175 '11':86 'action':3,20,26,43,52,94,125 'actionlint':9,32,48 'actions/setup-node':78,95 'agent':170 'agentskillexchange.com':174 'agentskillexchange.com/skills/lint-github-actions-workflows-before-ci-runs-with-actionlint/)':173 'alway':101 'always-auth':100 'architectur':103 'auth':102 'avail':97 'basic':118 'binari':49 'broken':18,41,152 'cach':104,106 'cache-dependency-path':105 'caveat':74 'chang':21,44 'check':110,127,129 'check-latest':109 'ci':6,23,29,46 'correct':141 'defin':92 'depend':107 'doc':161 'document':165 'environ':66 'exampl':150 'exchang':172 'express':13,36 'extract':158 'file':54 'get':122 'getting-start':121 'github':2,19,25,42,51 'github.com':70,156,167 'github.com/rhysd/actionlint':155,166 'github.com/rhysd/actionlint/cmd/actionlint@latest':69 'go':67 'hashfil':83 'id':138 'input':87,98,131 'instal':55,59,68 'integr':145 'key':80 'latest':111 'lint':1,24 'match':64 'matrix.platform':81 'node':82,88,113,116 'node-vers':112 'node-versi':115 'note':124 'output':135,139 'path':62,108 'prerequisit':47 'pyflak':144 'raw.githubusercontent.com':163 'raw.githubusercontent.com/rhysd/actionlint/head/readme.md':162 'reach':22,45 'requir':72 'run':7,30,149 'script':147 'setup':61 'shell':15,38 'shellcheck':142 'skill':171 'skill-lint-github-actions-workflows-before-ci-runs-with-actionlint' 'sourc':154,169 'source-agentskillexchange' 'start':123 'step':16,39,137 'syntax':12,35 'test.yaml:17':85 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-tools' 'topic-awesome-list' 'topic-claude-code' 'topic-codex' 'topic-cursor' 'topic-llm' 'topic-mcp' 'topic-npx-skills' 'topic-openclaw' 'topic-skills-catalog' 'upstream':58,76,160 'usag':119,126 'use':56,77 'v4':79,96 'valid':10,33 'versi':117 'version':89,114 'workflow':4,11,27,34,53,153","prices":[{"id":"a0d5e773-f49d-43a5-83d0-5006147dc114","listingId":"75d9516c-3ce6-4185-87f0-14b24bca63fe","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"agentskillexchange","category":"skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:17:32.457Z"}],"sources":[{"listingId":"75d9516c-3ce6-4185-87f0-14b24bca63fe","source":"github","sourceId":"agentskillexchange/skills/lint-github-actions-workflows-before-ci-runs-with-actionlint","sourceUrl":"https://github.com/agentskillexchange/skills/tree/main/skills/lint-github-actions-workflows-before-ci-runs-with-actionlint","isPrimary":false,"firstSeenAt":"2026-05-18T13:17:32.457Z","lastSeenAt":"2026-05-18T19:11:10.192Z"}],"details":{"listingId":"75d9516c-3ce6-4185-87f0-14b24bca63fe","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"agentskillexchange","slug":"lint-github-actions-workflows-before-ci-runs-with-actionlint","github":{"repo":"agentskillexchange/skills","stars":8,"topics":["agent-skills","ai-agents","ai-tools","awesome-list","claude-code","codex","cursor","llm","mcp","npx-skills","openclaw","skills-catalog"],"license":"mit","html_url":"https://github.com/agentskillexchange/skills","pushed_at":"2026-05-18T19:02:17Z","description":"The open catalog of AI agent skills — 2,000+ security-scanned skills for Claude Code, Cursor, Codex, and more.","skill_md_sha":"7f86b97a167227ebf8b198826f4ae3952ef996fa","skill_md_path":"skills/lint-github-actions-workflows-before-ci-runs-with-actionlint/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/agentskillexchange/skills/tree/main/skills/lint-github-actions-workflows-before-ci-runs-with-actionlint"},"layout":"multi","source":"github","category":"skills","frontmatter":{"name":"Lint GitHub Actions workflows before CI runs with actionlint","description":"Validate workflow syntax, expressions, and shell steps before broken GitHub Actions changes reach CI."},"skills_sh_url":"https://skills.sh/agentskillexchange/skills/lint-github-actions-workflows-before-ci-runs-with-actionlint"},"updatedAt":"2026-05-18T19:11:10.192Z"}}