-
Notifications
You must be signed in to change notification settings - Fork 0
46 lines (40 loc) · 1.54 KB
/
Copy pathvalidate.yml
File metadata and controls
46 lines (40 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
name: Validate Skill
# Runs whenever the skill definition or its engine changes, plus on PRs and
# manual dispatch. Cheap (Python stdlib only, ~15s).
on:
push:
branches: [main]
paths:
- 'SKILL.md'
- 'INSTRUCTIONS.md'
- 'scripts/**'
- 'agents/**'
- '.github/workflows/validate.yml'
pull_request:
branches: [main]
workflow_dispatch:
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Validate SKILL.md frontmatter
# Equivalent to WorkBuddy's `package_skill.py` validation:
# required fields, hyphen-case name, no angle brackets in description.
run: python scripts/validate_skill.py .
- name: Generator smoke + robustness tests
# Same script contributors run locally, so "passes CI" == "passes
# scripts/smoke_test.py". Covers: cool/warm/balanced brands produce
# non-empty tokens.css + preview.html; every --color-* value is valid
# hex; semantic sanity (guards the HSL->RGB regression where a blue
# brand emitted a blue "error"); extreme/degenerate brands
# (black/white/gray/short/lowercase) don't crash; invalid input is
# rejected with a non-zero exit code.
run: python scripts/smoke_test.py
- name: Summary
if: always()
run: echo "Validation complete — frontmatter + generator smoke + extreme-color robustness + semantic sanity."