{"id":"522c0c84-1e47-4f97-ab4f-565400276278","shortId":"CFsU4L","kind":"skill","title":"Prevent broken GitHub Actions workflows before CI runs with actionlint","tagline":"Use actionlint when an agent needs to inspect GitHub Actions workflow files before a push or pull request lands. The skill checks syntax, expressions, action inputs, runner labels, cron patterns, and a few security footguns so the agent can stop bad workflow changes before CI bur","description":"# Prevent broken GitHub Actions workflows before CI runs with actionlint\n\nUse actionlint when an agent needs to inspect GitHub Actions workflow files before a push or pull request lands. The skill checks syntax, expressions, action inputs, runner labels, cron patterns, and a few security footguns so the agent can stop bad workflow changes before CI burns time.\n\n## Prerequisites\n\nactionlint binary, plus optional shellcheck and pyflakes for deeper inline script checks\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/blob/main/docs/usage.md\n\n## Source\n\n- [Agent Skill Exchange](https://agentskillexchange.com/skills/prevent-broken-github-actions-workflows-before-ci-runs-with-actionlint/)","tags":["prevent","broken","github","actions","workflows","before","runs","with","actionlint","skills","agentskillexchange","agent-skills"],"capabilities":["skill","source-agentskillexchange","skill-prevent-broken-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/prevent-broken-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,611 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:52.007Z","embedding":null,"createdAt":"2026-05-18T13:18:31.597Z","updatedAt":"2026-05-18T19:11:52.007Z","lastSeenAt":"2026-05-18T19:11:52.007Z","tsv":"'/package-lock.json':156 '/rhysd/actionlint':229 '/rhysd/actionlint/blob/main/docs/usage.md':240 '/rhysd/actionlint/cmd/actionlint@latest':143 '/rhysd/actionlint/head/readme.md':236 '/skills/prevent-broken-github-actions-workflows-before-ci-runs-with-actionlint/)':247 '11':158 'action':4,20,35,60,76,91,166,197 'actionlint':10,12,66,68,115 'actions/setup-node':150,167 'agent':15,48,71,104,242 'agentskillexchange.com':246 'agentskillexchange.com/skills/prevent-broken-github-actions-workflows-before-ci-runs-with-actionlint/)':245 'alway':173 'always-auth':172 'architectur':175 'auth':174 'avail':169 'bad':51,107 'basic':190 'binari':116 'broken':2,58,224 'bur':56 'burn':112 'cach':176,178 'cache-dependency-path':177 'caveat':146 'chang':53,109 'check':32,88,126,182,199,201 'check-latest':181 'ci':7,55,63,111 'correct':213 'cron':39,95 'deeper':123 'defin':164 'depend':179 'doc':233 'document':237 'environ':138 'exampl':222 'exchang':244 'express':34,90 'extract':230 'file':22,78 'footgun':45,101 'get':194 'getting-start':193 'github':3,19,59,75 'github.com':142,228,239 'github.com/rhysd/actionlint':227 'github.com/rhysd/actionlint/blob/main/docs/usage.md':238 'github.com/rhysd/actionlint/cmd/actionlint@latest':141 'go':139 'hashfil':155 'id':210 'inlin':124 'input':36,92,159,170,203 'inspect':18,74 'instal':127,131,140 'integr':217 'key':152 'label':38,94 'land':29,85 'latest':183 'match':136 'matrix.platform':153 'need':16,72 'node':154,160,185,188 'node-vers':184 'node-versi':187 'note':196 'option':118 'output':207,211 'path':134,180 'pattern':40,96 'plus':117 'prerequisit':114 'prevent':1,57 'pull':27,83 'push':25,81 'pyflak':121,216 'raw.githubusercontent.com':235 'raw.githubusercontent.com/rhysd/actionlint/head/readme.md':234 'request':28,84 'requir':144 'run':8,64,221 'runner':37,93 'script':125,219 'secur':44,100 'setup':133 'shellcheck':119,214 'skill':31,87,243 'skill-prevent-broken-github-actions-workflows-before-ci-runs-with-actionlint' 'sourc':226,241 'source-agentskillexchange' 'start':195 'step':209 'stop':50,106 'syntax':33,89 'test.yaml:17':157 'time':113 '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':130,148,232 'usag':191,198 'use':11,67,128,149 'v4':151,168 'versi':189 'version':161,186 'workflow':5,21,52,61,77,108,225","prices":[{"id":"37ae831d-7fe6-42c5-b900-1205ab02bcb3","listingId":"522c0c84-1e47-4f97-ab4f-565400276278","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:18:31.597Z"}],"sources":[{"listingId":"522c0c84-1e47-4f97-ab4f-565400276278","source":"github","sourceId":"agentskillexchange/skills/prevent-broken-github-actions-workflows-before-ci-runs-with-actionlint","sourceUrl":"https://github.com/agentskillexchange/skills/tree/main/skills/prevent-broken-github-actions-workflows-before-ci-runs-with-actionlint","isPrimary":false,"firstSeenAt":"2026-05-18T13:18:31.597Z","lastSeenAt":"2026-05-18T19:11:52.007Z"}],"details":{"listingId":"522c0c84-1e47-4f97-ab4f-565400276278","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"agentskillexchange","slug":"prevent-broken-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":"3730fe0f5b4e119e51b57dd9d6a595cd8386e4aa","skill_md_path":"skills/prevent-broken-github-actions-workflows-before-ci-runs-with-actionlint/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/agentskillexchange/skills/tree/main/skills/prevent-broken-github-actions-workflows-before-ci-runs-with-actionlint"},"layout":"multi","source":"github","category":"skills","frontmatter":{"name":"Prevent broken GitHub Actions workflows before CI runs with actionlint","description":"Use actionlint when an agent needs to inspect GitHub Actions workflow files before a push or pull request lands. The skill checks syntax, expressions, action inputs, runner labels, cron patterns, and a few security footguns so the agent can stop bad workflow changes before CI burns time."},"skills_sh_url":"https://skills.sh/agentskillexchange/skills/prevent-broken-github-actions-workflows-before-ci-runs-with-actionlint"},"updatedAt":"2026-05-18T19:11:52.007Z"}}