diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 1b18e28..7f08a42 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -42,3 +42,15 @@ jobs: done done exit $fail + + ci: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Validate JSON files + run: | + find . -name "*.json" -not -path "./.git/*" | while read -r f; do + python3 -m json.tool "$f" > /dev/null || { echo "::error file=$f::Invalid JSON"; exit 1; } + done + echo "All JSON files valid" diff --git a/.gitea/workflows/promotion-gate.yaml b/.gitea/workflows/promotion-gate.yaml new file mode 100644 index 0000000..49f118b --- /dev/null +++ b/.gitea/workflows/promotion-gate.yaml @@ -0,0 +1,24 @@ +name: Promotion Gate + +on: + pull_request: + branches: [main] + +jobs: + promotion_gate: + name: Promotion Gate + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Validate skills directory structure + run: | + set -e + fail=0 + for dir in skills/*/; do + if [ ! -f "${dir}SKILL.md" ]; then + echo "::error::Missing SKILL.md in ${dir}" + fail=1 + fi + done + exit $fail