Skip to content
Latchkey

Skill Validation workflow (boshi-xixixi/TraeSkill)

The Skill Validation workflow from boshi-xixixi/TraeSkill, explained and optimized by Latchkey.

D

CI health: D - needs work

Point runs-on at Latchkey and get caching, run de-duplication, job timeouts, self-healing for flaky steps, and up to 58% lower cost, applied automatically.

Grade your own workflow free or run it on Latchkey →
Source: boshi-xixixi/TraeSkill.github/workflows/validate.ymlLicense MITView source

What it does

This is the Skill Validation workflow from the boshi-xixixi/TraeSkill repository, a real project running GitHub Actions. It is shown here with attribution under its MIT license.

Below, Latchkey shows a faster, safer version produced by its optimization engine.

The workflow

workflow (.yml)
name: Skill Validation

on:
  push:
    branches: [ main ]
    paths:
      - '.trae/Skills/**'
  pull_request:
    branches: [ main ]
    paths:
      - '.trae/Skills/**'

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4

    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.11'

    - name: Validate Skills
      run: |
        python .trae/Skills/scripts/validate_skills.py

    - name: Check SKILL.md files
      run: |
        echo "Checking all SKILL.md files have required frontmatter..."
        find .trae/Skills -name "SKILL.md" | while read file; do
          if ! grep -q "^name:" "$file"; then
            echo "Error: $file missing 'name' in frontmatter"
            exit 1
          fi
          if ! grep -q "^description:" "$file"; then
            echo "Error: $file missing 'description' in frontmatter"
            exit 1
          fi
          echo "βœ“ $file"
        done

    - name: Count Skills
      run: |
        echo "πŸ“Š Skill Statistics"
        echo "=================="
        TOTAL=$(find .trae/Skills -name "SKILL.md" | wc -l)
        echo "Total Skills: $TOTAL"
        echo ""
        echo "Skills by category:"
        find .trae/Skills -maxdepth 1 -type d -name "[0-9]*" | while read dir; do
          name=$(basename "$dir")
          count=$(find "$dir" -name "SKILL.md" | wc -l)
          echo "  $name: $count skill(s)"
        done

The same workflow, on Latchkey

Estimated ~20% faster on cache hits, plus fewer wasted runs and a safer supply chain. Added and changed lines are highlighted.

name: Skill Validation
 
on:
  push:
    branches: [ main ]
    paths:
      - '.trae/Skills/**'
  pull_request:
    branches: [ main ]
    paths:
      - '.trae/Skills/**'
 
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
 
jobs:
  validate:
    timeout-minutes: 30
    runs-on: latchkey-small
    steps:
    - uses: actions/checkout@v4
 
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        cache: 'pip'
        python-version: '3.11'
 
    - name: Validate Skills
      run: |
        python .trae/Skills/scripts/validate_skills.py
 
    - name: Check SKILL.md files
      run: |
        echo "Checking all SKILL.md files have required frontmatter..."
        find .trae/Skills -name "SKILL.md" | while read file; do
          if ! grep -q "^name:" "$file"; then
            echo "Error: $file missing 'name' in frontmatter"
            exit 1
          fi
          if ! grep -q "^description:" "$file"; then
            echo "Error: $file missing 'description' in frontmatter"
            exit 1
          fi
          echo "βœ“ $file"
        done
 
    - name: Count Skills
      run: |
        echo "πŸ“Š Skill Statistics"
        echo "=================="
        TOTAL=$(find .trae/Skills -name "SKILL.md" | wc -l)
        echo "Total Skills: $TOTAL"
        echo ""
        echo "Skills by category:"
        find .trae/Skills -maxdepth 1 -type d -name "[0-9]*" | while read dir; do
          name=$(basename "$dir")
          count=$(find "$dir" -name "SKILL.md" | wc -l)
          echo "  $name: $count skill(s)"
        done
 

What changed

This workflow runs 1 job per trigger. On Latchkey the same minutes cost up to 58% less than GitHub-hosted, with zero queue time.

Actions used in this workflow