-
Notifications
You must be signed in to change notification settings - Fork 1
Operations Playbook
Document boundary — playbook. This page defines repeatable release, verification, rollback, incident, and truth-update procedures. It does not declare what is currently live; compare its gates with Current Production Status.
The operating rule is simple: a public claim is downstream of evidence. A merge is not a deployment, a deployment is not a verified release, and containment is not incident closure.
Every production release must bind this chain:
authorized scope
-> reviewed source SHA
-> required CI/security checks at that SHA
-> build ID and immutable source identity
-> serving deployment and rollback target
-> live protocol/discovery checks
-> real-inference smoke
-> GitHub Release at the deployed SHA
-> MCP Registry publication at the same SHA
-> production-status and disclosure update
If a link is unknown, record it as unknown and stop the affected claim. Never reconstruct an identifier from memory or a nearby release.
| Role | Responsibility |
|---|---|
| Human release owner | authorizes scope, deployment, rollback, and public close |
| Implementation owner | prepares the bounded change and evidence plan |
| Independent reviewer | verifies the exact candidate SHA and high-risk negative paths |
| Security reviewer | checks secrets, authorization, data paths, and incident constraints |
| Operations recorder | captures build, revision, smoke, release, registry, and truth-update evidence |
One person may perform more than one role in a small project, but the record must not imply independence that did not exist.
Before merge, record:
- candidate source SHA and intended base;
- expected server and registry metadata versions;
- expected MCP protocol version;
- expected defined/active/unavailable tool inventory;
- expected default seat/provider/model routes;
- expected runtime failover state;
- rollback source or serving revision;
- required tests, reviewers, and smoke assertions; and
- whether a public statement or policy update is required.
Any unreviewed change to those expectations reopens the gate.
- Work from the canonical public repository and protected-branch workflow.
- Prove the candidate SHA before accepting test or review evidence.
- Require all substantive checks to complete successfully at that SHA.
- Treat cancelled, skipped, stale, or unrelated-SHA evidence as absent unless the release contract explicitly permits it.
- Preserve the merge parent and rollback target before deployment.
For a normal release touching mcp-server/**, the protected-main Cloud Build trigger is the deployment lane. Do not follow the trigger deployment with a second manual deployment.
The repository’s canonical manual carrier, mcp-server/deploy-cloudrun.sh, is reserved for an explicitly authorized recovery or non-trigger lane. Wiki and command documentation must not embed a second standalone gcloud builds submit or gcloud run deploy recipe.
Capture the exact merge SHA, build ID, resulting serving revision, deployment time, and rollback target. A build tagged only by a mutable version is insufficient provenance.
Check the production hostname, not a guessed platform URL:
-
/healthreturns success and the expected server version, protocol, tool counts, provider routes, storage state, and failover state. -
/setupagrees with the discovery and availability contract. -
/mcp/completes a real MCP initialize and tool-list exchange using the expected protocol. - Redirecting surfaces such as
/changelogresolve to their intended canonical location. - Terms, Privacy Policy, and security-reporting links render and agree with their canonical sources.
Printing a response is not a check. Each expected field must be asserted and a mismatch must stop the release.
Static health cannot prove provider inference. Exercise the release-specific Trinity paths and classify every assertion:
- PASS: the product behavior matches the contract.
- STOP: a product or release-contract failure; do not close the release.
- INSTRUMENT: the test harness, credentials, quota, or observation mechanism failed; repair the instrument and rerun before drawing a product conclusion.
Smoke must cover the happy path and the release’s risk delta. For degradation work, include typed single-seat failure and all-seat failure. Verify that successful seats remain, failed-seat fields are withheld, the result is incomplete, provenance is visible, and incomplete runs are not persisted.
- The GitHub Release tag must resolve to the deployed merge SHA.
- The MCP Registry publication workflow must succeed at that same SHA.
- Registry metadata must match the intended server card and active/unavailable description.
- A surviving older registry entry does not make a failed new publication harmless.
A trigger-generated build or serving revision cannot be known before merge. Use a two-stage documentation sequence:
- The release PR contains candidate-safe wording and no claim that it is live.
- After deployment verification, a bounded follow-up PR records exact production facts in
CHANGELOG.md, the server status source, and Current Production Status.
Only after that truth update may an announcement say the release is live. If the change requires a durable disclosure, add or amend the trust ledger according to its correction policy.
The release receipt should contain:
- source and release SHA;
- required-check and review results;
- build ID and serving revision;
- rollback target and whether it was used;
- smoke PASS/STOP/INSTRUMENT totals and detailed artifact;
- GitHub Release URL and exact target;
- registry workflow URL and result;
- production-status/truth PR; and
- remaining risks, owners, and next review date.
Stop or hold the release when any of the following applies:
- source is dirty, unreviewed, or not at the declared SHA;
- required CI/security evidence is missing or belongs to another SHA;
- the wrong cloud project, service, region, or image identity is selected;
- the live version, protocol, tool inventory, provider route, or failover state differs from the release contract;
- any smoke assertion is STOP;
- an INSTRUMENT result remains unresolved;
- the serving revision or rollback target is unknown;
- release or registry target differs from the deployed SHA; or
- public text would overstate deployment, incident closure, legal status, or test coverage.
Rollback is a controlled production change, not a way to erase a release record.
- Preserve evidence before changing traffic.
- Obtain human authorization for the rollback target.
- Move traffic or redeploy only through the approved carrier.
- Re-run health, discovery, and risk-focused smoke against the restored version.
- update production status and release notes with the rollback fact.
- Keep published statements and incident records; correct them by dated addendum.
A GitHub Release, public statement, or commit cannot be made “unpublished” by rolling back Cloud Run.
Use distinct states:
reported -> triaged -> contained -> remediated -> independently verified -> authorized to restore -> closed
- Contained means the vulnerable path can no longer be exercised under the tested conditions.
- Remediated means the underlying control has been implemented.
- Closed additionally requires evidence, owner approval, documentation, and any separate legal/privacy track.
For security or privacy incidents, preserve logs and timestamps, minimize access, avoid public personal data, and keep legal conclusions with qualified counsel. See Trust and Safety.
At each release and scheduled review:
- compare live
/healthand/setupwith the status page; - compare release tag, deployed SHA, registry version, and recorded build/revision;
- verify unavailable tools fail in the documented way;
- check that public statements still describe open matters accurately;
- mark metrics with their observation date; and
- open a bounded truth correction when any source disagrees.
The current worked evidence set is recorded in Current Production Status. The durable method remains in Genesis Methodology and Architecture.
VerifiMind PEAS documentation · Current status · Live health · Public statements · MIT License
Runtime versions, models, routing, tool availability, policies, metrics, and deployment facts are owned by their linked live or release-bound sources.
Start Here
Operator Playbook
Textbook
Trust & Transparency
Evidence & Research
Project Links