Back to list
mvillmow

validate-workflow

by mvillmow

Training framework written in Mojo

11🍴 4📅 Jan 24, 2026

SKILL.md


name: validate-workflow description: Validate GitHub Actions workflow files for syntax, best practices, and correctness. Use before committing workflow changes or when workflows fail. mcp_fallback: none category: ci user-invocable: false

CI Workflow Validation Skill

Validate GitHub Actions workflow files for correctness.

When to Use

  • Creating new workflow
  • Modifying existing workflow
  • Workflow syntax errors
  • Before committing workflow changes

Quick Reference

# List workflows
gh workflow list

# View workflow details
gh workflow view <workflow-name>

# Validate YAML
yamllint .github/workflows/*.yml

# Lint with actionlint
actionlint .github/workflows/*.yml

Validation Methods

1. GitHub CLI

# View workflow
gh workflow view deploy.yml

# List all workflows
gh workflow list

# Get workflow metadata
gh api repos/owner/repo/actions/workflows

2. actionlint

pip install actionlint
actionlint .github/workflows/*.yml

3. yamllint

yamllint .github/workflows/*.yml

Common Issues

IssueExampleFix
Syntax erroron: [push pull_request]Add comma: on: [push, pull_request]
Invalid action versionuses: actions/checkout@v99Use valid version: @v4
Missing required fieldJob missing runs-onAdd runs-on: ubuntu-latest
Invalid context${{ job.status }} in wrong placeMove to correct context

Workflow Checklist

  • Valid YAML syntax
  • on trigger configured correctly
  • All jobs have runs-on
  • All steps have run or uses
  • Action versions are specific (not @main)
  • All secrets/vars available
  • Timeouts set appropriately
  • Permissions configured correctly

Best Practices

name: Quality Check
on: [push, pull_request]

jobs:
  quality:
    runs-on: ubuntu-latest
    timeout-minutes: 10
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@v4      # Specific version
      - uses: actions/cache@v3
        with:
          path: ~/.cache/pip
          key: ${{ runner.os }}-pip

      - run: just pre-commit-all

Validation Workflow

# 1. Edit workflow
vim .github/workflows/test.yml

# 2. Validate YAML
yamllint .github/workflows/test.yml

# 3. Lint with actionlint
actionlint .github/workflows/test.yml

# 4. Review in GitHub
gh workflow view test.yml

# 5. Commit if valid
git add .github/workflows/test.yml
git commit -m "ci: update workflow"

Error Handling

ErrorFix
"Invalid YAML"Fix YAML syntax errors
"Unknown action"Check action name and version
"Missing field"Add required fields (run, uses, etc.)
"Invalid context"Use correct context expression syntax

Configuration Files

  • .pre-commit-config.yaml - Pre-commit hooks
  • .github/workflows/ - Workflow definitions
  • actionlint config - Action linting rules

References

Score

Total Score

60/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon