feat: subagent roles + structural sealing for contradiction-lift (v0.37.0) #219
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| pull_request: | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Run helper tests | |
| run: bash scripts/test-helpers.sh | |
| - name: Run Claude collaboration helper tests | |
| run: bash skills/claude-collab/scripts/test-claude-helpers.sh | |
| - name: Run hook tests | |
| run: bash hooks/test-enforce-skill-usage.sh | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Shellcheck | |
| run: shellcheck --source-path=SCRIPTDIR -x scripts/*.sh hooks/*.sh skills/claude-collab/scripts/*.sh | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.x' | |
| - name: Install PyYAML | |
| run: python -m pip install --upgrade pip pyyaml | |
| - name: Lint JSON | |
| run: | | |
| python - <<'PY' | |
| import json | |
| import glob | |
| import sys | |
| files = glob.glob(".claude-plugin/*.json") | |
| failed = False | |
| for path in files: | |
| try: | |
| with open(path, "r", encoding="utf-8") as f: | |
| json.load(f) | |
| except Exception as e: | |
| print(f"JSON lint failed: {path}: {e}") | |
| failed = True | |
| if failed: | |
| sys.exit(1) | |
| print(f"Checked {len(files)} JSON file(s).") | |
| PY | |
| - name: Lint YAML | |
| run: | | |
| python - <<'PY' | |
| import glob | |
| import sys | |
| import yaml | |
| files = glob.glob("skills/**/*.yaml", recursive=True) | |
| failed = False | |
| for path in files: | |
| try: | |
| with open(path, "r", encoding="utf-8") as f: | |
| yaml.safe_load(f) | |
| except Exception as e: | |
| print(f"YAML lint failed: {path}: {e}") | |
| failed = True | |
| if failed: | |
| sys.exit(1) | |
| print(f"Checked {len(files)} YAML file(s).") | |
| PY | |
| - name: Plugin consistency lint | |
| run: bash scripts/lint-plugin.sh |