66 - main
77
88jobs :
9+ markdown :
10+ name : 📝 Markdown Quality
11+ runs-on : ubuntu-latest
12+ steps :
13+ - uses : actions/checkout@v4
14+ - name : Lint Markdown
15+ uses : DavidAnson/markdownlint-cli2-action@v19
16+ with :
17+ globs : ' **/*.md'
18+ config : ' config/custom.markdownlint.jsonc'
919 spelling :
10- name : ✍️ Spelling Check
11- runs-on : ubuntu-latest
12- steps :
13- - uses : actions/checkout@v4
14- - name : Spell Check
15- uses : streetsidesoftware/cspell-action@v6
16- with :
17- files : ' **/*.md'
18- config : ' config/cspell.json'
19- structure :
20- name : 🏗️ Structure Validation
20+ name : ✍️ Spelling Check
21+ runs-on : ubuntu-latest
22+ steps :
23+ - uses : actions/checkout@v4
24+ - name : Spell Check Code
25+ uses : streetsidesoftware/cspell-action@v6
26+ with :
27+ files : ' **/*.md'
28+ config : ' config/cspell.json'
29+ detect-changed-skills :
30+ name : 🔎 Detect Changed Skills
2131 runs-on : ubuntu-latest
32+ outputs :
33+ skills : ${{ steps.changed-skills.outputs.skills }}
2234 steps :
2335 - uses : actions/checkout@v4
24- - name : Check For Large Files (under 50KB)
25- run : bash ./scripts/check_large_files.sh
26- skill-validation :
27- name : 📋 Skill Validation
36+ with :
37+ fetch-depth : 0
38+ - name : Get changed skills
39+ id : changed-skills
40+ run : |
41+ BASE=${{ github.event.pull_request.base.sha }}
42+ HEAD=${{ github.event.pull_request.head.sha }}
43+ SKILLS=$(git diff --name-only $BASE $HEAD | \
44+ { grep 'SKILL.md' || true; } | \
45+ xargs -I {} dirname {} | \
46+ sort -u | \
47+ jq -R -s -c 'split("\n") | map(select(length > 0))')
48+ echo "skills=$SKILLS" >> "$GITHUB_OUTPUT"
49+ echo "Changed skills: $SKILLS"
50+ validate-skills :
51+ name : 🔍 Validate Skills
52+ needs : detect-changed-skills
53+ if : needs.detect-changed-skills.outputs.skills != '[]'
2854 runs-on : ubuntu-latest
55+ strategy :
56+ fail-fast : false
57+ matrix :
58+ skill : ${{ fromJson(needs.detect-changed-skills.outputs.skills) }}
2959 steps :
3060 - uses : actions/checkout@v4
31- - name : Validate SKILL.md Files
32- run : bash ./scripts/validate_skills.sh
61+ - name : Validate ${{ matrix.skill }}
62+ id : validate
63+ uses : Flash-Brew-Digital/validate-skill@v1
64+ with :
65+ path : ${{ matrix.skill }}
66+ validate-references : ' true'
67+ fail-on-warning : ' true'
68+ ignore-rules : ' name-match-directory,unknown-field'
69+ - name : Check results
70+ if : always()
71+ run : |
72+ echo "Valid: ${{ steps.validate.outputs.valid }}"
73+ echo "Errors: ${{ steps.validate.outputs.errors }}"
74+ echo "Warnings: ${{ steps.validate.outputs.warnings }}"
3375 manifest-validation :
3476 name : 📦 Manifest Validation
3577 runs-on : ubuntu-latest
3678 steps :
3779 - uses : actions/checkout@v4
3880 - name : Validate Plugin Manifest
39- run : bash ./scripts/validate_plugin_manifest.sh
81+ run : bash ./scripts/validate_plugin_manifest.sh
0 commit comments