feat: dual-client Social Scientist platform for Claude Code and Codex #117
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: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | |
| jobs: | |
| lint-markdown: | |
| name: Markdown lint | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| with: | |
| fetch-depth: 1 | |
| persist-credentials: false | |
| - name: Setup Node.js | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 | |
| with: | |
| node-version: "20" | |
| cache: npm | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run markdownlint-cli2 | |
| run: npm run lint | |
| python-quality: | |
| name: Python ${{ matrix.python-version }} | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| permissions: | |
| contents: read | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.9", "3.12"] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| with: | |
| fetch-depth: 1 | |
| persist-credentials: false | |
| - name: Setup Python | |
| uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: pip | |
| - name: Install package and quality tools | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -e . pytest ruff mypy build | |
| - name: Run tests | |
| run: python -m pytest tests/ -v | |
| - name: Run Ruff | |
| run: ruff check . | |
| - name: Run strict mypy | |
| run: mypy --strict src tests | |
| - name: Build package | |
| if: matrix.python-version == '3.12' | |
| run: python -m build | |
| - name: Inspect wheel contents | |
| if: matrix.python-version == '3.12' | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| python - <<'PY' | |
| import glob | |
| import zipfile | |
| wheels = glob.glob("dist/*.whl") | |
| assert len(wheels) == 1, wheels | |
| with zipfile.ZipFile(wheels[0]) as archive: | |
| names = archive.namelist() | |
| assert any(name.endswith("social_cc_plugin/skills/apa-doi-verifier/SKILL.md") for name in names) | |
| assert any(name.endswith("LICENSE.code") for name in names) | |
| assert any(name.endswith("LICENSE.content") for name in names) | |
| print(f"wheel contains {len(names)} entries") | |
| PY | |
| - name: Isolated wheel smoke test | |
| if: matrix.python-version == '3.12' | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| python -m venv /tmp/social-cc-venv | |
| /tmp/social-cc-venv/bin/python -m pip install dist/*.whl | |
| /tmp/social-cc-venv/bin/social-cc --version | |
| /tmp/social-cc-venv/bin/social-cc list | |
| HOME="$(mktemp -d)" /tmp/social-cc-venv/bin/social-cc doctor --client all | |
| repo-integrity: | |
| name: Repository integrity validation | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | |
| with: | |
| fetch-depth: 1 | |
| persist-credentials: false | |
| - name: Setup Node.js | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 | |
| with: | |
| node-version: "20" | |
| cache: npm | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Validate repository metadata | |
| run: npm run validate | |
| - name: Validate release truth | |
| run: npm run validate:truth | |
| - name: Validate generated agent adapters | |
| run: npm run check:agents | |
| - name: Validate GitHub Actions pins | |
| run: npm run check:actions | |
| - name: Validate bilingual routing and agent scenarios | |
| run: npm run check:evaluation |