name: Validate skills on: push: branches: [main] pull_request: permissions: contents: read jobs: validate: runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: '3.3' - name: Validate skill format and links run: ruby scripts/validate-skills.rb - name: Test changed-skill quality validation run: ruby scripts/test-validate-skill-quality.rb - name: Validate changed skill quality env: SKILL_QUALITY_BASE: ${{ github.event.pull_request.base.sha || github.event.before }} run: ruby scripts/validate-skill-quality.rb --base "$SKILL_QUALITY_BASE" - name: Check tracked repository artifacts run: python3 scripts/check-artifacts.py - name: Validate Claude Code marketplace run: ruby scripts/gen-claude-marketplace.rb - name: Validate Codex plugin packaging run: ruby scripts/gen-codex-plugin.rb - name: Report eval coverage run: python3 scripts/eval-coverage.py - name: Test llms.txt generator run: ruby scripts/test-gen-llms-txt.rb - name: Validate llms.txt catalog run: ruby scripts/gen-llms-txt.rb - name: Build tracked Python packages run: | wheel_dir=$(mktemp -d) while IFS= read -r pyproject; do python3 -m pip wheel --no-deps "./$(dirname "$pyproject")" --wheel-dir "$wheel_dir" done < <(git ls-files -- ':(glob)**/pyproject.toml')