{"slug": "i-built-an-ai-skill-that-writes-github-actions-workflows-with-zero-config-errors", "title": "I Built an AI Skill That Writes GitHub Actions Workflows — With Zero Config Errors", "summary": "A developer built an AI Skill that generates production-ready GitHub Actions workflows with zero configuration errors. The skill enforces 12 quality gates, 5 decision templates, and 3 mandatory security configs, ensuring least-privilege permissions, concurrency control, and SHA-1 pinned actions. It works with Claude Code, Cursor, GitHub Copilot, Windsurf, Aider, and Cline.", "body_md": "Stop hand-crafting YAML. Let any AI agent generate production-ready workflows with 12 quality gates, 5 decision templates, and 3 mandatory security configs.\n\nHand-writing GitHub Actions YAML is error-prone. Did you remember `permissions`\n\n? Did you pin action versions? Did you configure caching? Is concurrency set?\n\nEvery omitted config is either slower builds, security holes, or wasted billable minutes.\n\nI built an **AI Skill** — an executable instruction set, not a vague prompt. It forces any AI agent to follow a strict pipeline:\n\n```\nDecision Tree → Mandatory Config Injection → Cache Matching → 12 Quality Gates → Production YAML\n```\n\n\"Add CI for my Node.js project — run eslint and jest on PRs\"\n\n**What the AI generates under the hood:**\n\n`package.json`\n\n→ Node.js`permissions: contents: read`\n\ninjected`concurrency`\n\nwith auto-cancel`cache: 'npm'`\n\n→ ~70% faster installs`@11bd71...`\n\nnot `@v4`\n\n)**5 seconds. Zero omissions.**\n\n| Approach | Universal | Security Check | Caching | Quality Gates |\n|---|---|---|---|---|\n| GitHub templates | ✅ | ❌ | ❌ | ❌ |\n| Manual YAML | ✅ | ❌ | ❌ | ❌ |\n| Raw ChatGPT prompt | ✅ | ❌ | ❌ | ❌ |\nThis Skill |\n✅ All agents | ✅ 5 red lines | ✅ 6 langs | ✅ 12 gates |\n\nRaw LLM chats miss configs every time. This Skill makes them **mandatory**, not optional.\n\nEvery template enforces **least-privilege permissions, concurrency control, and SHA-1 pinned actions** — no exceptions.\n\n`pull_request_target`\n\nmisuse → blocked`@main`\n\n/ `@master`\n\naction refs → blocked`permissions: write-all`\n\n→ blocked| Agent | How |\n|---|---|\nClaude Code |\n`SKILL.md` → `.claude/skills/`\n|\nCursor |\n`PROMPT.md` → `.cursor/rules/`\n|\nGitHub Copilot |\n`PROMPT.md` → `.github/copilot-instructions.md`\n|\nWindsurf / Aider / Cline |\nPaste into System Prompt |\nInternational users |\n`PROMPT.en.md` (English) |\n\n```\n# ❌ Without Skill — typical raw LLM output\nname: CI\non: push\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4    # unpinned\n      - run: npm install              # no cache\n      - run: npm test                 # no permissions, no concurrency\n\n# ✅ With Skill — production-grade\nname: CI\non:\n  pull_request:\n    branches: [main]\n  push:\n    branches: [main]\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}\n  cancel-in-progress: true\npermissions:\n  contents: read\njobs:\n  lint:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2\n      - uses: actions/setup-node@cd063736c72066a58f36dd95fb0460484b220fb7 # v4.3.0\n        with:\n          node-version: 20\n          cache: 'npm'\n      - run: npm ci\n      - run: npx eslint .\n  test:\n    needs: lint\n    # ... full pipeline\ngit clone https://github.com/2B0748/github-actions-skill.git\n```\n\n👉 Star the repo if you find it useful. PRs welcome for new language templates and edge cases.", "url": "https://wpnews.pro/news/i-built-an-ai-skill-that-writes-github-actions-workflows-with-zero-config-errors", "canonical_source": "https://dev.to/2b0748/i-built-an-ai-skill-that-writes-github-actions-workflows-with-zero-config-errors-2mh1", "published_at": "2026-07-24 04:55:59+00:00", "updated_at": "2026-07-24 05:01:16.691308+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools", "ai-agents", "ai-products"], "entities": ["GitHub Actions", "Claude Code", "Cursor", "GitHub Copilot", "Windsurf", "Aider", "Cline"], "alternates": {"html": "https://wpnews.pro/news/i-built-an-ai-skill-that-writes-github-actions-workflows-with-zero-config-errors", "markdown": "https://wpnews.pro/news/i-built-an-ai-skill-that-writes-github-actions-workflows-with-zero-config-errors.md", "text": "https://wpnews.pro/news/i-built-an-ai-skill-that-writes-github-actions-workflows-with-zero-config-errors.txt", "jsonld": "https://wpnews.pro/news/i-built-an-ai-skill-that-writes-github-actions-workflows-with-zero-config-errors.jsonld"}}