An AI agent proposes a refund. Here is the proof-trail shape.
An autonomous customer-operations agent proposed a high-consequence action: release a 4,200 USD goodwill
refund to a flagged account. This page walks through how a Forge workflow records the supplied
evidence, encoded policy result, uncertainty, and human boundary.
Human keeps the decision
CONCEPTUAL WALKTHROUGH, NOT AN API ARTIFACT. This browser page did not call the Forge API or return a decision record. It is not a serialized API response and contains none of those returned values. No live engine ran here, and the page performs no cryptographic operation. Synthetic values, real v2 record shape. Beyond illustrating the record shape, this page makes no production-readiness or pilot-readiness claim on behalf of the engine.
Synthetic values, real v2 record shape. No live call is made from this page.
The scenario.
A subscription retailer runs an autonomous customer-operations agent that resolves
billing complaints end to end. On a ticket about a service outage, the agent proposes a goodwill gesture:
refund 4,200 USD to keep a long-tenured account happy. The catch is that the risk service has flagged the
account, and the amount is far above the level a policy would ever let an agent release on its own.
This is the moment that hurts to defend later. If the refund is fraud, someone has to explain why it went out.
If the refund is legitimate and it is blocked, a good customer is punished. The honest reviewer of that call,
a chargeback and dispute reviewer, an internal auditor, and a regulator, all sit outside the team that built
the agent. Forge is built for exactly that moment: the customer integration supplies bounded evidence and
evaluated policy controls, Forge deterministically applies its policy-gate precedence and evidence fusion, and
the customer keeps execution authority over the returned disposition.
The messy evidence in.
Before a Forge request is submitted, the customer's agent, adapter, or extraction service turns source material
into bounded evidence fields. Two facts pull toward approval, two risk signals pull the other way, one is the
hard policy limit, and one is context. That tension is the point.
Input 1Account tenure4 years, 2 months as a paying account.declared source: customer CRM account record
Risk input 1Fraud signal, velocity3 refund requests in 14 days.Elevated against this account's baseline.declared source: customer risk service
Risk input 2Fraud signal, deviceDevice fingerprint mismatch on last login.Single signal, unresolved.declared source: customer risk service
Input 6Prior ticket history2 goodwill credits in 90 days, both approved.declared source: customer support system
Nothing here is missing. The problem is that the evidence disagrees, and the account has been flagged. An agent
that just averaged this and acted would leave nobody able to prove, later, why the money moved.
The integration pattern this walkthrough illustrates.
The values below explain how a bounded action menu, supplied evidence, executable approval controls,
uncertainty, and customer-owned action boundary fit together. Labels in this panel are explanatory, not a copy
of the current JSON schema. The real request and response JSON is in the API docs.
Goodwill refund authorization
Action under review: release a 4,200 USD goodwill refund. The amount is 8.4x the encoded 500 USD
auto-approve ceiling, on an account the risk service has flagged.
The selected action must be one of the caller's submitted decision options. The refund action itself is not selected in this illustration.
Current contract concept: confidence
0.62
Score explanation
legitimate_goodwill 0.71 / fraud_pattern 0.29
How the conflicting evidence splits across the two competing explanations.
Current contract concepts: assessment_mode and abstained
shown only after a real response
A real record states whether Forge completed the assessment or abstained.
Source map
INPUTaccount tenure
4 years, 2 months
declared source: customer CRM | supplied by customer integration
INPUTlifetime value
18,420.00 USD
declared source: customer billing ledger | supplied by customer integration
POLICYauto-approve ceiling
500.00 USD
declared source: customer refund policy
The requested 4,200 USD is 8.4x this ceiling, so no auto-release is possible under the policy.
RISKrefund velocity
3 refund requests in 14 days
declared source: customer risk service | supplied risk signal
Unresolved. Elevated against the account baseline; caps confidence rather than being silently averaged away.
RISKdevice mismatch
device fingerprint mismatch on last login
declared source: customer risk service | supplied risk signal
Unresolved single signal. A device mismatch has innocent explanations and fraudulent ones; the record keeps it in view.
INPUTprior ticket history
2 goodwill credits in 90 days, both approved
declared source: customer support system | supplied by customer integration
Disposition explanation
release_refund not selected: 4,200 USD is 8.4x the customer ceiling.
deny_refund not selected: the supplied tenure and account-value facts do not resolve the conflicting risk signals.
request_evidence available: the customer may choose to collect stronger risk evidence before a later decision.
escalate_to_supervisor selected: a safe, in-menu action that does not release money.
Uncertainty review
Two customer-supplied fraud signals are unresolved: velocity and device mismatch.
The requested amount is 8.4x the encoded auto-approve ceiling.
Refund velocity is elevated versus the account baseline.
Sensitivity: a later decision could change if the customer confirms or clears either risk signal.
Customer-owned human authority
Executable request controls
required_approvals / completed_approvals
The current API uses these controls when an approval is meant to affect the policy gate. A descriptive human-review note is not an approval.
Execution control
customer protected action boundary
The customer decides which verified, current-request-bound actions may invoke its downstream code.
Forge returns a disposition and proof trail. It does not acquire authority over the customer's refund
system. In this illustration, the selected action is escalation, so the protected boundary does not call
the refund operation.
What a real current API response adds
record.schema_version: identifies the current signed-record contract record.selected_action: exact action from the submitted decision menu record.assessment_mode and record.abstained: completion or safe-abstention state record.normalized_request: data-minimized signed request view record.complete_record_signature: complete-record integrity block
A real current response uses the v3 complete-record proof to bind every delivered field, including signer
and format metadata. Only the self-referential signature bytes and signed-message digest are omitted. The
caller must verify it against a full signing-key ID provisioned independently from the response.
The human-review boundary.
This example uses a customer rule that sends an over-ceiling request to a supervisor. In the current
API, human_review_boundary is signed descriptive governance metadata. It does not execute the rule.
An executable integration sends named hard_constraints with explicit
constraint_results, and names required and completed approvals separately. Forge records those
customer assertions and applies its fail-closed policy-gate precedence; it does not independently inspect the
source policy system that produced them.
customer policy sketch: escalate if amount > 500.00 USD OR confidence < 0.75
Amount
4,200.00 USD is over the 500.00 USD ceiling. This condition trips.
Confidence
0.62 is the score shown above. A customer adapter would have to turn any confidence rule into an explicit evaluated control if it is meant to gate the action.
Result
The in-menu disposition is escalate_to_supervisor. No refund action is selected.
Authority
In the protected pattern shown here, the customer configures its boundary to accept only a pinned, verified, current-request-bound response and an explicitly allowed action.
A qualified customer integration can resolve the device-mismatch signal and submit a new decision request, or
let a supervisor decide under the customer's own authority. Forge does not become the refund-system authority.
How a real exported v2 record is verified offline.
For a real authenticated API response, the reviewer saves the complete record, obtains the full Forge key ID
through an independent authenticated onboarding/configuration channel, and verifies offline. The public
signing-identity route is readback only; it cannot bootstrap its own trust.
Actual verifier command for a saved authenticated response
export FORGE_SIGNING_KEY_ID='ed25519:<64 lowercase hex provisioned independently>'
python3 scripts/forge_verify_record.py record.json \
--expect-key-id "$FORGE_SIGNING_KEY_ID"
Required checks:
derive key ID from the 32-byte Ed25519 public key
compare it with the independently provisioned full pin
validate the v3 complete-record signature and contract
reject malformed, unsigned, mismatched, or altered records
The standalone verifier does not rerun Forge, rescore evidence, or derive the
selected action. It also does not establish that customer-supplied evidence
was true.
Required behavior after altering any delivered record field
python3 scripts/forge_verify_record.py edited-record.json \
--expect-key-id "$FORGE_SIGNING_KEY_ID"
Expected result: non-zero exit and VERIFIED = false.
The v3 complete-record signature binds every delivered decision-record field,
including its signature metadata. Only the self-referential signature bytes and
message digest are omitted and checked independently. Release evidence must
capture this negative test against a real response.
Offline verification
Record integrity and signer pin
A valid v3 complete-record signature detects changes to the delivered record for its embedded public key.
Forge attribution requires the derived full key ID to match a trust anchor provisioned independently from
the record and API response. The embedded public key alone proves no Forge identity.
Separate operational test
Engine reproducibility qualification
Re-running a version-pinned engine is a different test performed with the exact qualified engine,
configuration, and request inputs. The offline verifier supplied with a record does not perform that test
and the saved artifact cannot, by itself, re-derive the decision.
What a real green verification establishes
Integrity and pinned signer attribution
The complete v2 record matches its signature and the independently provisioned Forge key pin.
No delivered decision-record field covered by the signature was changed after signing.
When given the complete facade response, the verifier also checks supported response projections against the signed record.
What it does not prove
Not the business judgment
That releasing or holding the refund was the right business call.
That the 500 USD ceiling or the 0.75 confidence floor are the right thresholds.
That the risk service scored the fraud signals correctly. That judgment stays with the customer.
A green result establishes record integrity and attribution to the independently pinned signer. It does not by
itself prove that the policy was wise, the evidence was true, the engine calculation was independently
reproduced, or the business action was correct.
What the current v2 record exposes for review.
selected_action and submitted menu The returned action can be checked against the exact decision options in the signed normalized request.
assessment_mode, abstained, abstention_reason, and confidence The record says whether Forge completed the assessment or fell back safely, and why.
normalized_request and evidence commitments A data-minimized signed view preserves source labels, evidence confidence, claim-support level, and normalized evidence hashes. It does not prove the supplied facts were true.
policy-gate results The record exposes the evaluated gate state and customer-supplied control assertions. Forge does not silently treat unevaluated safeguards as passed.
governance metadata Customer-declared provenance, versions, intended use, and human-review description can be carried in the signed record. Descriptive metadata is not an executable approval.
record_id and SDK request binding The current SDK includes a signed client-request binding so the protected helper can reject a valid but stale or wrong-request response. A raw API integration must implement the published binding contract explicitly.
complete-record Ed25519 signature and full key ID The integrity check. Forge attribution additionally requires a full key ID provisioned independently from the record and API response.
Start with the agent action that would hurt to defend later.
You do not need to boil the ocean. Bring one agent action, the messy evidence that feeds it, and the rule you
already apply. Forge integrates through the API, encodes the policy, and returns the proof trail so your
chargeback reviewer, internal auditor, or regulator can inspect the recorded basis and independently verify
record integrity without relying on the agent's own logs. That first bounded run starts as a scoped Artifact
Discovery.