◆ PROVOSTRY · a verification report, as the server writes it provostry.com · How Verify works · Integrate your agents
A sample. This report was rendered on 2026-09-03 by the Provostry demo pipeline (the provostry-demo repository's record/record.mjs) from the live API of a seeded local server — a fictitious shop, two clauses, one human approval. The raw JSON at the bottom is what the API returned and what the renderer received; a customer's report is produced the same way from their own ledger.
◆ Provostry Verify

Proof report — vc:checkout-live

Independent outcome verification. Every value below was read from the live API of the ledger that recorded it; nothing on this page was written by hand.

The goal, verbatim

Checkout charges the card exactly once and the order exists

contract
vc:checkout-live · version 1
content hash
2dcf136de380d80b… (sha-256, full: 2dcf136de380d80b27c082aabaace1d653017ba72dc647f8822a1e00862f1cf0)
work item
wp-checkout-42
initiative
northwind-checkout
clauses authored by
agent builder-7
registered
2026-09-03T21:27:08.323Z
status
active · requires human approval

Human decision

approved by
operator
decided at
2026-09-03T21:28:30.457Z
rationale
Clauses cover the charge and the order — approved.
decision event
13e44ba7-d8c5-41a5-82e3-9ba6210c15f9
subject kind
verification_contract

Verdict

PASS
run
run:vc:checkout-live:1:26acc823
ran at
2026-09-03T21:28:48.459Z · 2046 ms
bound to hash
2dcf136de380d80b… matches the contract judged
source resolved to
shop-api → http://127.0.0.1:4477
authored by
system/verify-engine — computed, never hand-written

Clauses and what was observed

Checkout API answers 200 PASS
clause id
api-up
evidence source
shop-api
probe
GET /api/v1/health
assertion
status_equals 200
criticality
critical

Observed by the verify engine · assurance hosted · 2026-09-03T21:28:46.438Z

Health body reports ok = true PASS
clause id
healthy
evidence source
shop-api
probe
GET /api/v1/health
assertion
json_path_equals ok = true
criticality
critical
time bounds
stableForMs 2000

Observed by the verify engine · assurance hosted · 2026-09-03T21:28:48.458Z

Ledger integrity

chain ok · 17 events checked · 0 breaks
17 events total · signing not enabled on this instance

Other contracts in this ledger

ContractGoalStatusVerdict
vc:teapot · v1 The health endpoint brews coffee (it does not) active FAIL
vc:refund-flow · v1 A refund returns the full amount to the original card active not yet verified

Raw records

The exact ledger events this report summarizes, as returned by GET /api/v1/events and GET /api/v1/integrity.

Show the raw JSON (contract, decision, observations, verdict, integrity)
{
  "contract": {
    "id": "20cc3bbe-3208-4167-b65f-e0c28cf64bb9",
    "ts": "2026-09-03T21:27:08.323Z",
    "type": "verification_contract",
    "actor": { "id": "builder-7", "kind": "agent", "stance": "builder" },
    "initiativeId": "northwind-checkout",
    "workItemId": "wp-checkout-42",
    "payload": {
      "contractId": "vc:checkout-live",
      "version": 1,
      "goal": "Checkout charges the card exactly once and the order exists",
      "generatedBy": { "kind": "agent", "id": "builder-7" },
      "requiresApproval": true,
      "clauses": [
        { "id": "api-up", "title": "Checkout API answers 200", "source": "shop-api",
          "probe": { "kind": "http", "method": "GET", "path": "/api/v1/health" },
          "assert": { "op": "status_equals", "value": 200 }, "critical": true },
        { "id": "healthy", "title": "Health body reports ok = true", "source": "shop-api",
          "probe": { "kind": "http", "method": "GET", "path": "/api/v1/health" },
          "assert": { "op": "json_path_equals", "path": "ok", "value": true },
          "stableForMs": 2000, "critical": true }
      ]
    },
    "prevHash": "73814e9376bbc714cec87e68da3046718e562c0d75a0a3ea54fd030c0af75a41",
    "hash": "e50bd71461fc7ad7098ff1b7b13d3da951c3019cf9a2a1a44b0df494f43c494d"
  },
  "decision": {
    "id": "13e44ba7-d8c5-41a5-82e3-9ba6210c15f9",
    "ts": "2026-09-03T21:28:30.457Z",
    "type": "decision_record",
    "actor": { "id": "operator", "kind": "human" },
    "payload": { "subject": "vc:checkout-live", "decision": "approve",
      "rationale": "Clauses cover the charge and the order — approved.", "subjectKind": "verification_contract" },
    "prevHash": "e14b5b0acbb4e9d80f3449f70bc3ec756f64fdd76f8c974efcd8c0c5e4de3e79",
    "hash": "eccd0e88147b0be0694af7a17406d4b78e079fd8f61888d033baec0ff61a4453"
  },
  "observations": [
    { "id": "48abe728-a0d6-4aba-b358-ed6a212c1fee", "ts": "2026-09-03T21:28:46.438Z",
      "type": "verification_observation",
      "actor": { "id": "verify-engine", "kind": "system", "stance": "verifier" },
      "initiativeId": "northwind-checkout", "workItemId": "wp-checkout-42",
      "payload": { "contractId": "vc:checkout-live",
        "contractHash": "2dcf136de380d80b27c082aabaace1d653017ba72dc647f8822a1e00862f1cf0",
        "runId": "run:vc:checkout-live:1:26acc823", "clauseId": "api-up", "outcome": "pass",
        "evidence": [ "attempt 1: source \"shop-api\" GET /api/v1/health → status 200: status_equals 200 satisfied", "1 attempt(s), 25ms elapsed" ],
        "observedAt": "2026-09-03T21:28:46.438Z", "assurance": "hosted" },
      "prevHash": "eccd0e88147b0be0694af7a17406d4b78e079fd8f61888d033baec0ff61a4453",
      "hash": "f102eac0e9443bf83b00d9e27d52281668a5ebfe86d230f248d1e94f249c70bf" },
    { "id": "5c162a10-6287-4d36-9550-64b125729ff0", "ts": "2026-09-03T21:28:48.458Z",
      "type": "verification_observation",
      "actor": { "id": "verify-engine", "kind": "system", "stance": "verifier" },
      "initiativeId": "northwind-checkout", "workItemId": "wp-checkout-42",
      "payload": { "contractId": "vc:checkout-live",
        "contractHash": "2dcf136de380d80b27c082aabaace1d653017ba72dc647f8822a1e00862f1cf0",
        "runId": "run:vc:checkout-live:1:26acc823", "clauseId": "healthy", "outcome": "pass",
        "evidence": [ "attempt 1: source \"shop-api\" GET /api/v1/health → status 200: json_path_equals ok: observed true",
          "stability re-probe after 2000ms — attempt 2: source \"shop-api\" GET /api/v1/health → status 200: json_path_equals ok: observed true",
          "2 attempt(s), 2019ms elapsed" ],
        "observedAt": "2026-09-03T21:28:48.458Z", "assurance": "hosted" },
      "prevHash": "f102eac0e9443bf83b00d9e27d52281668a5ebfe86d230f248d1e94f249c70bf",
      "hash": "5b7d2fd2e833ec6c66a1179870e72e29e3a985ddd2449f5f903128e3c6130629" }
  ],
  "verdict": {
    "id": "e9ce505b-4057-4278-ae15-09675e9f62ad", "ts": "2026-09-03T21:28:48.459Z",
    "type": "verification_verdict",
    "actor": { "id": "verify-engine", "kind": "system", "stance": "verifier" },
    "initiativeId": "northwind-checkout", "workItemId": "wp-checkout-42",
    "payload": { "contractId": "vc:checkout-live",
      "contractHash": "2dcf136de380d80b27c082aabaace1d653017ba72dc647f8822a1e00862f1cf0",
      "runId": "run:vc:checkout-live:1:26acc823", "verdict": "pass",
      "clauses": [ { "clauseId": "api-up", "outcome": "pass", "critical": true },
                   { "clauseId": "healthy", "outcome": "pass", "critical": true } ],
      "observationEventIds": [ "48abe728-a0d6-4aba-b358-ed6a212c1fee", "5c162a10-6287-4d36-9550-64b125729ff0" ],
      "durationMs": 2046,
      "sourceOrigins": { "shop-api": "http://127.0.0.1:4477" } },
    "prevHash": "5b7d2fd2e833ec6c66a1179870e72e29e3a985ddd2449f5f903128e3c6130629",
    "hash": "28b8ff636d992987b7cc4461e4182b5c9971d7302c5d2b7ede3ea0001d2c4c78"
  },
  "integrity": { "ok": true, "total": 17, "checked": 17, "brokenAt": null, "reason": null, "signed": false, "signatures": null }
}

How to read it

  1. The goal is verbatim so a reader can judge whether the clauses actually cover the ask. A weak contract passes weakly; the report makes that visible rather than hiding it.
  2. The approval names a person and is bound to the contract's content hash. Amend the clauses and the approval — and every verdict — has to be earned again.
  3. Every observation says what was probed, what came back, and when. The engine runs the probes; an agent cannot hand-write a verdict, and the generic ingest route refuses one.
  4. The integrity line is the chain check: each event carries the hash of the one before it. Edit one and every later hash stops matching.
  5. The raw records are the proof. The summary above is a rendering; the JSON is what the ledger holds and what any client can read back.