Not Another Log
A log says what happened. Forge records the supplied evidence, encoded rule result, uncertainty, and human boundary. Integrity and replay checks do not prove that the evidence or business judgment was correct.
Public API overview
Send the question, allowed actions and evidence from your workflow. Forge returns the selected action with its evidence, policy checks, uncertainty and human-review requirements. Your system verifies the result before using it. The signature lets an outside reviewer check the record's integrity offline.
Start with the plain-language overview below. Engineers can continue to the first-call instructions, response fields and verification requirements. Customer-specific access and field mappings are agreed during the integration handoff.
A log says what happened. Forge records the supplied evidence, encoded rule result, uncertainty, and human boundary. Integrity and replay checks do not prove that the evidence or business judgment was correct.
The output is meant for the regulator, auditor, insurer, board, customer, program office, or executive team that asks why this action was allowed.
The first workflow can run through a scoped test path on non-sensitive data, then expand only after the buyer sees the proof hold up.
Forge records the result and its basis when an action is evaluated. Your team keeps that record instead of rebuilding the explanation later from logs and emails. These are the inputs and outputs.
A signed decision record supports a defense. It does not prove that the evidence you supplied was true, and it does not prove that the business judgment was correct. It proves what was decided, on what basis, under which rule, with what stated uncertainty, and that the record has not changed since it was signed.
Before issuing credentials, we agree the workflow, technical owner and data boundary. The steps below show what your team needs for the handoff.
You send one message describing the decision you want proof for. Forge replies with either a scoping call or a straight answer that this is not a fit. There is no queue to sit in and no form that disappears.
Bring: one named decision or automated action, the business reason it would be hard to defend later, and who owns it internally. One paragraph is enough.
A short working call on that one decision. The goal is to establish whether the decision can be expressed as a closed option list with real evidence behind it. Some cannot, and that is a legitimate outcome of this stage. Forge says so rather than scoping a project around it.
Bring: the workflow owner and a technical owner, the actions currently possible at that decision point, the rules and approvals that apply, and where a human must stay in control.
Before any credential exists, both sides agree what data may cross, where the record is stored, and which deployment shape applies. Forge is one API: the base URL picks the host, so a customer-operated deployment is a configuration decision rather than a different product.
Bring: your security review route, your data-handling constraints, your deployment preference, and the procurement path this would follow.
Forge issues the named technical owner a signed onboarding descriptor and a separate display-once managed key file. The onboarding authority key id and public key arrive through an independent trusted channel. The first call runs on synthetic or sanitized evidence and ends with a verified record saved in your own environment. Restricted data enters scope only after that has worked.
Bring: the named technical owner, a place to store the returned record, and a reviewer from security, legal, or the workflow itself to read the first proof.
The first-call path takes four customer-supplied values: two local file paths plus the independently delivered onboarding authority key ID and public key. The SDK verifies the complete descriptor, reads the managed key without exposing it, confirms its active durable identity, derives every runtime and signer pin, sends one synthetic request, verifies the returned proof locally, and saves it before an adapter is written. The SDK derives a stable non-PII idempotency key for this exact first call.
The standalone enterprise API exposes one compact-v1 response contract. There is no response
profile header to configure and no legacy diagnostic envelope in the buyer runtime. Every retry under the
same Idempotency-Key returns the same committed compact response.
request_id, a domain-separated client_request_sha256, and an exact signed
forge_client_request_binding. A missing or mismatched binding fails closed. Execution safety still
requires an exclusive customer-owned action path and atomic downstream idempotency.
The signed descriptor supplies the complete action menu, safe fallback, exact control profile, allowed
operation, tenant, API origin, and record-signing trust anchor. The issued decision:write key can
evaluate the described decision but cannot reach tenant administration, calibration, or unrelated routes.
The protected AI-agent operation is POST /v1/decision-records/pre-action. Forge returns a
disposition and proof trail; only the customer's separately qualified boundary decides whether an action may
execute.
export FORGE_VERIFIER_PY="$PWD/.forge-verifier/bin/python" test -x "$FORGE_VERIFIER_PY" export FORGE_ONBOARDING_DESCRIPTOR_PATH="/secure/forge-onboarding.json" export FORGE_BOUNDARY_API_KEY_FILE="/secure/forge-managed-key.json" export FORGE_ONBOARDING_AUTHORITY_KEY_ID="ed25519:<64-hex-key-id>" export FORGE_ONBOARDING_AUTHORITY_PUBLIC_KEY_B64="<base64-32-byte-key>" export FORGE_FIRST_CALL_RECORD_PATH="/customer-vault/forge-first-call.json" PYTHONPATH=sdk/python "$FORGE_VERIFIER_PY" sdk/python/examples/quickstart.py
Run that command from the root of the verified Forge integration kit. The kit contains the SDK, verifier,
examples, and an offline golden proof; no Forge source checkout is required. The example saves
forge-first-call.json only after complete-record, request-binding, action-binding, and
profile-v2 control verification succeeds.
Record schema is forge-decision-record/v2; the complete-record proof scheme is v3. The two version
independently. Authenticated responses include a complete v2 record Ed25519 signature. Offline attribution
requires the verifier to use a full signing-key ID provisioned through a separate trusted channel; integrity and
replay do not prove the supplied evidence or the business judgment.
The response includes the complete signed record. The compact fields below are non-authoritative convenience projections and must match that record when the full envelope is verified:
{
"decision": {
"action": "block",
"abstained": false,
"abstention_reason": null
},
"record_reference": {
"record_id": "FDR-<32-hex-issued-id>",
"replay_key": "<64-hex-semantic-basis-id>",
"verification_required": true,
"complete_record_signature": {
"algorithm": "ed25519",
"key_id": "ed25519:<derived-64-hex-key-id>",
"signed_field": "complete_decision_record"
}
},
"record": {
"schema_version": "forge-decision-record/v2",
"selected_action": "block",
"complete_record_signature": {"...": "complete signature block"}
}
}
This sample is designed to exercise the fail-closed policy path: the submitted hard constraint fails, so the
engine selects the in-menu block action with abstained=false. Treat that disposition as
a refusal to send the trade. A separate low-confidence or incomplete-evidence request can select the
configured hold abstention action, but that is not the result of this sample.
Do not branch on decision.action before verification. After the complete envelope verifies, those
fields may be used for display because the verifier has proved they exactly match the signed record. Use
record_reference.record_id as the issued-record handle and
record_reference.replay_key as the semantic replay handle. Before relying on the result, verify
record.complete_record_signature against the full Forge key ID provisioned through
your separate trusted onboarding/configuration channel. The verifier must derive the key ID from the public-key
bytes; a declared or embedded key ID, or same-API identity readback, is not a trust anchor.
"$FORGE_VERIFIER_PY" scripts/forge_verify_record.py "$FORGE_FIRST_CALL_RECORD_PATH" \ --expect-key-id "$FORGE_SIGNING_KEY_ID" \ --expect-control-environment "$FORGE_CONTROL_ENVIRONMENT" \ --expect-control-deployment-id "$FORGE_CONTROL_DEPLOYMENT_ID" # Continue only when the verifier reports all three: # verified=true, full_record_integrity=true, production_attributable=true
The scoped handoff supplies the versioned forge_verify_record.py verifier with its reviewed runtime
requirements. Obtain the full expected key ID separately; do not copy it from the response or identity-readback
endpoint.
For an online execution boundary, use the reviewed SDK supplied in the managed handoff or implement
the published forge-client-request-binding/v1 tagged-JSON contract exactly. The client must reject
an old but otherwise valid signed record when the operation, request ID, question, evidence, action menu, or
tenant differs from the request just sent. Only then may it read record.selected_action, and only a
separately configured allow-family action may proceed.
Persist the complete record in the customer system of record. The v3 complete-record proof binds
every delivered decision-record field, including signer and format metadata. Only its self-referential
signature bytes and signed-message digest are omitted and independently checked. Deterministic replay is a separate
reproducibility check; neither mechanism proves that customer-supplied evidence is true.
verification_required not equal to true means stop.hold, escalate, any abstention, or any value other than an explicitly permitted allow routes to the human boundary.| 400 / 422 | Malformed or contract-invalid request, including an idempotency key reused with a different payload. Fix the request; do not execute. |
|---|---|
| 401 / 403 | Missing, invalid, under-scoped, or tenant-mismatched credential. Stop and correct access through the named technical owner. |
| 402 | The deployment license or scoped commercial entitlement is unavailable. Stop and resolve the account or deployment state with Forge. |
| 409 | The same operation is still in progress or its replay window expired. Honor the response guidance; do not mint retries until the operation state is understood. |
| 429 | Rate limited. Honor Retry-After with the same idempotency key and identical body. |
| 500 / 503 | Service, signing, readiness, idempotency, or durable-state dependency unavailable. The request has no execution authority; retry only after recovery. |
The customer keeps the workflow, data custody, policy authority, and final business decision. The API records the supplied evidence and encoded policy result for selected actions. It becomes a pre-action control point only after the customer deploys and validates an exclusive protected boundary.
Forge accepts bounded JSON evidence summaries, source references or hashes, evaluated control results, approvals, and missing-item signals produced by the customer's existing workflow. Raw files, questionnaires, inboxes, and system-of-record data stay upstream unless a separately scoped adapter converts them into that contract.
The customer defines the action menu. Forge does not invent business outcomes. It determines which allowed action the supplied evidence supports, such as proceed, hold, escalate, reject, or a customer-defined equivalent.
The result carries the evidence path, controlling rule, confidence, uncertainty, and human-review boundary. The proof is created when the action is evaluated, not after a problem forces someone to reconstruct what happened.
With the full expected key ID provisioned separately, a reviewer can check complete-record integrity without relying only on the model, agent, workflow, or email trail that produced the original action.
No language model sits in the checked path. Complete-record Ed25519 verification checks integrity; deterministic replay separately compares the governed action and replay key under the pinned engine and configuration.
The public contract endpoints define the common request, response, verification, and deployment surfaces. Tenant-specific field mapping, adapters, scoring configuration, and operating runbooks are scoped after workflow fit and security review.
Pick the action that would be painful to defend later if the proof trail is scattered across tools.
Set the allowed actions, required approvals, hard constraints, and when a human must remain in control.
Use synthetic, sanitized, or non-sensitive examples first. Production data waits for the right agreement and path.
Forge returns the supported action, why it was supported, what stayed uncertain, and what must be reviewed.
Later outcome tags let Forge show whether that workflow is calibrated, over-confident, or still too early to call.
The handoff is practical. Forge issues a scoped API key to the buyer's technical owner, sends a synthetic workflow, and walks the team from first call to first proof trail before any sensitive production data is in scope.
The buyer receives a scoped credential, the first workflow name, the data boundary, and the rule for where human authority stays.
The technical owner runs a synthetic AI-agent or workflow example, then stores the returned proof trail in the buyer's own environment.
Engineering, security, legal, or the workflow owner reviews the action, evidence path, uncertainty, human-review boundary, replay key, and signature.
When the customer later tags what happened, Forge measures calibration for that workflow. It keeps score through feedback, not silent training.
The common contracts are public; the internal scoring implementation is not. Customer-specific mappings and operating details stay inside the scoped handoff.
Forge can measure calibration on a customer's workflow without training on customer data. The customer tags what actually happened after an evaluated action. Forge compares the earlier confidence to the later outcome and shows whether the workflow is calibrated, over-confident, under-confident, or too early to call.
The customer's understanding of whether the workflow can be trusted, where confidence is strong, and where review boundaries need to stay tight.
The default is no_training: no calibration row is retained. Metrics-only calibration requires an explicit retention opt-in and authorization reference. The standalone Forge product does not perform predictive training on customer data.
Leadership does not just need a decision. They need to know whether the system understands when it is right, when it is uncertain, and when a person must step in.
The proof trail shows the evidence and rule behind one action. Calibration shows whether that workflow is earning trust over time.
The open page is not a key handoff. Live access is scoped to a named buyer, named workflow, and agreed integration path. The customer keeps custody and authority.
no_training, which retains no calibration row. Metrics-only retention is a separate explicit opt-in. The standalone Forge product does not perform predictive training on customer data.Your handoff covers the agreed workflow, test access, data boundary, verification instructions and acceptance criteria. Engineering and security reviewers get the details they need for that integration.