name: Skill Docs Freshness on: [push, pull_request] # Cancel superseded runs for the same branch (matches evals.yml, # windows-free-tests.yml, etc.). head_ref is set on pull_request; ref_name is # the fallback for push so a rapid push series doesn't pile up stale runs. concurrency: group: skill-docs-${{ github.head_ref || github.ref_name }} cancel-in-progress: true jobs: check-freshness: runs-on: ubicloud-standard-8 steps: - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v2 - run: bun install - name: Check Claude host freshness run: bun run gen:skill-docs - name: Verify Claude skill docs are fresh run: | git diff --exit-code || { echo "Generated SKILL.md files are stale. Run: bun run gen:skill-docs" exit 1 } - name: Check Codex host freshness run: bun run gen:skill-docs --host codex - name: Verify Codex skill docs are fresh run: | git diff --exit-code -- .agents/ || { echo "Generated Codex SKILL.md files are stale. Run: bun run gen:skill-docs --host codex" exit 1 } - name: Generate Factory skill docs run: bun run gen:skill-docs --host factory - name: Verify Factory skill docs are fresh run: | git diff --exit-code -- .factory/ || { echo "Generated Factory SKILL.md files are stale. Run: bun run gen:skill-docs --host factory" exit 1 }