Skip to content

feat: Shadow Spec + Convergence Broadcasts + Kiloagent Mode (v2.0.0) #118

feat: Shadow Spec + Convergence Broadcasts + Kiloagent Mode (v2.0.0)

feat: Shadow Spec + Convergence Broadcasts + Kiloagent Mode (v2.0.0) #118

Workflow file for this run

name: Validate
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Check SKILL.md files are in sync
run: |
diff skills/havoc-hackathon/SKILL.md .github/skills/havoc-hackathon/SKILL.md || \
(echo "❌ SKILL.md files have drifted! Update both copies." && exit 1)
echo "✅ SKILL.md files are in sync"
- name: Validate catalog.yml syntax
run: |
python3 -c "import yaml; yaml.safe_load(open('skills/havoc-hackathon/catalog.yml'))" && \
echo "✅ catalog.yml is valid YAML"
- name: Check catalog.yml required fields
run: |
python3 -c "
import yaml
d = yaml.safe_load(open('skills/havoc-hackathon/catalog.yml'))
required = ['schema_version','id','name','description','emoji','codename','category']
missing = [f for f in required if f not in d]
if missing:
print(f'❌ Missing required fields: {missing}')
exit(1)
print('✅ All required catalog fields present')
"
- name: Structural validation (SKILL.md + agent.md)
run: python3 tests/validate_skill.py
- name: Preflight checks (SQL + bracket math)
run: python3 tests/preflight.py
- name: Full dry-run simulation (9-phase walkthrough)
run: python3 tests/dry_run_sim.py