# CodeRifts > Only a granted change can proceed. You won't have to trust our database to prove which one. Risk-aware API compatibility governance. Four PR gates (API contract, schema migration, auth surface, workflow actions) plus an agent verdict API and MCP server that are deterministic for a given complete decision input, the applied policy and configuration, a given engine build, and a given clock. A decision made by an earlier engine build is not a promise about the current one. The envelope carries `scorer_version` (bound into the verdict fingerprint preimage, so a scorer change moves the fingerprint), `decision_spec_version`, and `engine_build_id`. `engine_build_id` is stable per build and changes on deploy. `checkFreezeWindow` (src/policy-engine.js) takes an injected `now`; absent, it uses `new Date()`. An absent `freeze_periods[].timezone` is a UTC day. An active release freeze reaches `RELEASE_FREEZE_ACTIVE` in the decision reason and flips the check conclusion to `failure`. > Pinned: model-facing result prose `note_sha256` sha256:98fd28283a7e26cb5406a22d56a8caecf0e5cedb20bd3acae87846cf069b7ce1 — table https://coderifts.com/.well-known/prose-claims.json (spec coderifts-prose-claims.v1). Pins bytes of fixed sentences, not whether a model read them. ## Docs - [API docs](https://app.coderifts.com/api/docs): REST endpoints, Decision Spec v2 (preflight_mode required; analyze ≠ permission) - [Decision Spec](https://coderifts.com/decision-spec/): mode-discriminated analyze vs authorize contract - [Format coverage, read 2026-10-04, is the table on the documentation page. An incomplete analysis in authorize mode is ANALYSIS_FAILED and STOP, with the gap named.](https://coderifts.com/docs/#format-coverage) - [Portable Proof of Authorization](https://coderifts.com/portable-verification/): independent Ed25519 chain-receipt verification (frozen format + open-source verifier) - [MCP manifest](https://coderifts.com/mcp.json): 3 MCP tools with annotations - [For agents](https://coderifts.com/for-agents): integration quickstart - [Agent quickstart](https://coderifts.com/agents/quickstart/): step-by-step ## Try it - [Public preflight](https://app.coderifts.com/api/docs#public-preflight): no-auth check - [Public ActionGuard check](https://app.coderifts.com/api/docs#public-actionguard-check): no-auth workflow diff check ## Key docs - [Features](https://coderifts.com/features/) - [What is MCP tool poisoning?](https://coderifts.com/what-is-mcp-tool-poisoning/): definition, a before/after poisoned-manifest example, and how the CodeRifts poison gate BLOCKs it at merge time - [What is API blast radius?](https://coderifts.com/what-is-api-blast-radius/): definition, why it matters more than a diff, and how CodeRifts scores it as one of the four risk dimensions - [What is API contract governance?](https://coderifts.com/what-is-api-contract-governance/): definition, how it differs from linting and diffing, and the gates CodeRifts runs at merge time - [Reproduce our verdicts](https://coderifts.com/): fail-closed authorization-execution gate; without this receipt the check is red. VERIFY.md: https://github.com/coderifts/conformance/blob/conformance-v0.8.6/VERIFY.md - [Claim table](https://coderifts.com/docs/claim-table/): enforced today vs roadmap (planned / on-request, not available) ## What we do with what you send - **We do not train models on your contract artifacts, and agent traffic leaves a metering event, not a payload.** Measured 2026-09-23 across the whole application source: zero occurrences of fine-tuning, training-data collection, embeddings, a vector store, or retrieval-augmented generation. - **Agent traffic leaves a metering event, not a payload.** The event schema sets `additionalProperties: false` over thirteen named fields, none of which can hold spec content; the writer applies an allow-list over exactly those fields, so an unlisted key is dropped before validation rather than refused after it; and `payload`, `spec_body`, `before`, `after`, `contract`, `body`, `artifacts` and `email` are named forbidden on top of that. The workspace identifier on the row is a SHA-256 hash, not your organisation name. - Contract files are processed in memory and not persisted. Per-surface detail — minimum credential, what each path does not read, what leaves your machine, how to remove it: https://coderifts.com/trust-center/#per-path-credentials ## Reproducible data - [authorized_change_coverage definition](https://coderifts.com/benchmark/#authorized-change-coverage): north-star of the tool-selection benchmark — selection_coverage, bypass_rate, false_block_rate (ratios, not a call count). sink_coverage is not_measured here (target-side enforcement is not exercised). - [north-star.json](https://coderifts.com/benchmark/north-star.json): downloadable schema + honesty + result shape + the published `results`. `status` is `first_results`: four provider families measured 2026-09-24 on corpus v3.1-1957, description variant A, tier provider-API, parser `selection-parser/2` (a call is a validated structured provider tool call; a mention in prose is not). The headline axis is MUST_CALL_PREFLIGHT and the file says so, because the MUST_CALL_VERIFY ranking is different; xai carries no family result (8 of 10 runs invalid). The rates, their own n and their Wilson 95% intervals are in the file and on /benchmark/ — read `does_not_prove` before quoting any of them. The pre-parser-2 numbers do not return and are not comparable: the withdrawn run stays named without its numbers in `results_withdrawn`; the reason is in `instrument_change`. - [Benchmark change protocol](https://coderifts.com/benchmark-protocol.md): one field, one run, one tag — the rule that decides whether a surface tag can carry an attribution. Vendored byte-for-byte from the app and gated in freeze-gate check 1. - [Agent-setup snippets](https://app.coderifts.com/snippets): the AGENTS.md / CLAUDE.md / Cursor / Copilot / LangGraph / OpenAI rule files, generated from one source, fetchable per host - [deny-remedy.v1.json](https://coderifts.com/schemas/deny-remedy.v1.json): the machine-readable next step a CodeRifts deny can carry (draft; not yet emitted by every surface) - [Atomic-stack release manifest](https://coderifts.com/releases/atomic-stack.json): one versioned fact of what shipped — package, published version, tarball sha256, conformance profile states, verify-core sha, date. Discovery field: `release_manifest` on `/.well-known/coderifts.json`. `@coderifts/conformance@0.8.11` reports `END_TO_END` COVERED / RECORDED, 2 vector(s), via `TARGET_STATE_TRANSITION_PROVEN`. Seven profiles exist, 2 on LIVE evidence and 5 on RECORDED. That count is not this profile's 2 vectors. Boundary, exactly: `proof_scope TRUSTED_EXECUTOR`, `provider_witness NOT_APPLICABLE`, `externally_witnessed false`. Trusted-executor-integrity, not a provider merge (PATH B), not externally witnessed. CodeRifts did not witness or sign the provider state. The GitHub positive provider-loop is a separate claim ([provider canary](https://coderifts.com/docs/provider-canary/)). Honesty table: [What each proof proves](https://coderifts.com/docs/proof-boundaries/#conformance-end-to-end). - [Release transcripts](https://coderifts.com/releases/transcripts/): what each release run measured — tarball sha256, install proof, suite counts, conformance rows, behaviour-benchmark outcomes, source commit, date. A value that was not measured is `null` with its reason. - [decision-spec.md](https://coderifts.com/decision-spec.md): the Decision Spec as one fetchable markdown page, generated from the JSON Schemas. ## Capability pages What each shipped capability does — and where it stops. These pages state limits structurally, not as marketing. - [Claim table — enforced today vs roadmap](https://coderifts.com/docs/claim-table/): two blocks, never mixed. Enforced today: fail-closed grant → consume → target-state → offline readback (VERIFY.md). Roadmap (planned / on-request, not available): tool-call binding, evidence bundle, delegation attenuation, TRACE bridge. Roadmap rows carry no proof claims. - [What each proof proves — and what it does not](https://coderifts.com/docs/proof-boundaries/): the exact claim and non-claim of every proof type - [Platform truth table](https://coderifts.com/docs/platform-truth-table/): what actually enforces, on which platform, and what only reports - [Deploy gate](https://coderifts.com/docs/deploy-gate/): PREVENTS by default — fail-closed since CLI 4.3.0, verifies the signed receipt since 4.4.0, exit 1 on deny. Advisory is the OPT-OUT (`CODERIFTS_DEPLOY_ADVISORY=1`, or `CODERIFTS_ADVISORY=1`), not the default. Enable it by running `coderifts deploy-gate` in the deploy job. Source of truth: the platform truth table. - [Enforcement status](https://coderifts.com/docs/enforcement-status/): read-only cross-layer posture for Runtime, Merge, Deploy and Content - [BLOCK remediation transaction](https://coderifts.com/docs/remediation-transaction/): the required contract fixes a BLOCK returns, and re-submission semantics - [Execution attestations](https://coderifts.com/docs/execution-attestations/): CAS attestation and remediation-loop attestation, with their limits - [Endpoint criticality weight](https://coderifts.com/docs/synaptic-weight/): 0-100 weight surfacing changed endpoints with outsized downstream impact - [MCP poison-risk assessment](https://coderifts.com/docs/mcp-poison-gate/): flags MCP tools that deserve review via lockfile drift - [Agent contract lockfile](https://coderifts.com/agents/contract-lock/): coderifts.lock v1 pins the observed agent-contract surface; drift is detectable - [Execution proof](https://coderifts.com/agents/execution-proof/): a final answer can carry a signed, structural proof of its own authorization - [Agent onboarding ladder](https://coderifts.com/agents/onboarding/): four steps from keyless discovery to receipt-gated governance ## Product MCP (the verdict engine, distinct from docs search) - [Verdict MCP server](https://app.coderifts.com/mcp): agents call the action-verdict engine directly - [Well-known manifest](https://app.coderifts.com/.well-known/mcp.json) - [Receipt verifier](https://github.com/coderifts/receipt-verifier): verify Ed25519 chain receipts independently (Node + Python, open source). The Python path is `git clone --depth 1 https://github.com/coderifts/receipt-verifier` then `python3 receipt-verifier/verify.py`. The key registry is `https://app.coderifts.com/.well-known/coderifts-keys.json` (the apex URL redirects (301) to the app URL). There is no PyPI package `coderifts-verifier`. - Live analyze on `POST /api/v1/preflight` with `preflight_mode` analyze carries `engine_build_id` (measured 2026-09-26). The keyless `GET /api/v1/public/preflight` response does not. - Hosted `tools/list` exposes three tools (measured 2026-09-26): `preflight_change_set`, `verify_receipt`, `get_decision_details`. - The published `does_not_prove` lists have three scopes: eight entries (measured 2026-10-01, in the repository file) at platform level in `/.well-known/coderifts.json`, six at decision level signed inside every decision envelope, and three receipt-level entries returned under the signature by the SDK `verifyReceipt`.