docs: complete profile discovery contract #3
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: Profile contract | |
| on: | |
| pull_request: | |
| paths: | |
| - "profile/**" | |
| - "scripts/check_profile_contract.py" | |
| - "tests/**" | |
| - "requirements-profile-check.txt" | |
| - ".github/workflows/profile-contract.yml" | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - "profile/**" | |
| - "scripts/check_profile_contract.py" | |
| - "tests/**" | |
| - "requirements-profile-check.txt" | |
| - ".github/workflows/profile-contract.yml" | |
| permissions: | |
| contents: read | |
| jobs: | |
| validate: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-python@v7 | |
| with: | |
| python-version: "3.12" | |
| - name: Install profile-check dependencies | |
| run: python -m pip install -r requirements-profile-check.txt | |
| - name: Run adversarial contract tests | |
| run: python -m unittest discover -s tests -v | |
| - name: Check identity, discovery, and public links | |
| run: python scripts/check_profile_contract.py --links | |
| - name: Lint Markdown | |
| run: npx --yes markdownlint-cli2 "profile/*.md" | |
| - name: Render Markdown | |
| run: | | |
| npx --yes marked -i profile/README.md -o /tmp/profile-en.html | |
| npx --yes marked -i profile/README_zh.md -o /tmp/profile-zh.html | |
| test -s /tmp/profile-en.html | |
| test -s /tmp/profile-zh.html | |
| grep -q '<table>' /tmp/profile-en.html | |
| grep -q 'Unreal MCP' /tmp/profile-en.html | |
| grep -q 'Tuanjie MCP' /tmp/profile-zh.html |