Awesome-omni-skill 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".

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/devops/github-workflow" ~/.claude/skills/diegosouzapw-awesome-omni-skill-github-workflow-138681 && rm -rf "$T"
manifest: skills/devops/github-workflow/SKILL.md
source content

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