English · 简体中文
Accept PRs with trusted model proofs. Defaults: Astra and Fable 5.1.
Your generation platform signs a small proof; repository CI verifies it offline. Node.js 22+, zero third-party runtime dependencies, no session uploads or backend.
You need a generation platform you trust. This project provides signing and
verification tools, but no built-in provider attestation service. Missing proofs
remain unverified; the tool cannot infer a model from code.
Set the signer's public keys in the Actions variable MODEL_GATE_TRUSTED_KEYS
(JSON format). Keep private keys with the generator.
Save this as .github/workflows/model-proof.yml:
name: Model proof
on:
pull_request:
types: [opened, reopened, synchronize, edited, ready_for_review]
permissions: {}
concurrency:
group: model-proof-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: mattheliu/model-pr-gate@v0.4.0
with:
trusted-keys: ${{ vars.MODEL_GATE_TRUSTED_KEYS }}No checkout or token needed. Protect both public-key configuration and the workflow; a same-named required status alone is not enough to prevent bypass. See configuration and enforcement.
Fable 5, including claude-fable-5-high, is rejected. Maintainers can
replace the allowlist.
- CI options, CLI and development
- Connect a trusted signer
- DeepSeek Harness plugin: preflight, verification and a bundled skill
- Agent guide · Importable skill
- Recreate the project: English prompt · 中文 prompt
Proofs expose model and PR metadata, never conversations or code. They are readable by PR viewers. Privacy details.
