Marketplace

github-workflow

Write and edit GitHub Actions workflow files. Use when creating new workflows, editing existing .github/workflows/*.yml files, or setting up CI/CD pipelines. Triggers on requests like "create a workflow", "add GitHub Actions", "set up CI", or "edit the workflow file".

$ Installer

git clone https://github.com/yaakaito/env /tmp/env && cp -r /tmp/env/cc-plugins/base/skills/github-workflow ~/.claude/skills/env

// tip: Run this command in your terminal to install the skill


name: github-workflow description: Write and edit GitHub Actions workflow files. Use when creating new workflows, editing existing .github/workflows/*.yml files, or setting up CI/CD pipelines. Triggers on requests like "create a workflow", "add GitHub Actions", "set up CI", or "edit the workflow file".

GitHub Workflow

Write clear, minimal GitHub Actions workflow files.

Naming Guidelines

Do NOT name

  • run steps that are self-explanatory from the command itself
  • uses steps for common, obvious actions like:
    • actions/checkout
    • actions/setup-node
    • oven-sh/setup-bun
    • pnpm/action-setup
    • actions/cache

DO name

  • uses steps with actions/github-script (explain what the script does)
  • Complex multi-line shell scripts (summarize the purpose)
  • Steps where the intent is not obvious from the code

Examples

Good

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: oven-sh/setup-bun@v2
      - run: bun install
      - run: bun run build
      - run: bun test

      - name: Post build status to Slack
        uses: actions/github-script@v7
        with:
          script: |
            const webhook = process.env.SLACK_WEBHOOK;
            // ... complex logic

Bad

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Setup Bun
        uses: oven-sh/setup-bun@v2
      - name: Install dependencies
        run: bun install
      - name: Build project
        run: bun run build
      - name: Run tests
        run: bun test

Best Practices

  • Pin action versions with full SHA or major version tag (@v4, not @main)
  • Use workflow_dispatch for manual triggers when useful
  • Set appropriate permissions to follow least privilege
  • Use concurrency to cancel redundant runs
  • Prefer ${{ github.token }} over PAT when possible
  • Avoid emoji in workflow names and step names
  • Use $GITHUB_STEP_SUMMARY to output execution results in Markdown format
  • Avoid obvious comments; only add comments to explain complex logic

Step Summary Example

- name: Report test results
  run: |
    echo "## Test Results" >> $GITHUB_STEP_SUMMARY
    echo "| Suite | Passed | Failed |" >> $GITHUB_STEP_SUMMARY
    echo "|-------|--------|--------|" >> $GITHUB_STEP_SUMMARY
    echo "| Unit  | 42     | 0      |" >> $GITHUB_STEP_SUMMARY