mirror of
https://github.com/magnus919/agent-skills.git
synced 2026-09-16 22:16:52 +03:00
Wire the Phase 3 ratchet into CI by passing the PR base SHA to eval-coverage.py --modified-from. Expand changed-skill detection from SKILL.md-only diffs to the entire skill directory so that references, scripts, fixtures, README, and eval manifest edits all count as modifications. Add a monotonic coverage floor that fails CI when coverage decreases between the base and candidate revisions. Add script tests for ratchet-mode detection and coverage-decrease behaviour. Update AGENTS.md and CONTRIBUTING.md to describe the behaviour CI now enforces. Closes #102 Signed-off-by: Magnus Hedemark <magnus919@pm.me>
53 lines
1.8 KiB
YAML
53 lines
1.8 KiB
YAML
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: Enforce eval coverage ratchet
|
|
env:
|
|
EVAL_RATCHET_BASE: ${{ github.event.pull_request.base.sha || github.event.before }}
|
|
run: python3 scripts/eval-coverage.py --modified-from "$EVAL_RATCHET_BASE"
|
|
- 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')
|