Level 3 — Full Contract
Define the complete contract outside JSX. Agents get the full picture — preconditions, consequences, error states, and reversibility. The live manifest updates whenever contracts change.
Button with full contract — 3 preconditions, 2 permissions, 2 error states
FULL — complete contract
- 3 preconditions (auth, cart items, payment method)
- 2 permissions (write:orders, read:payment)
- reversible within 300 seconds
- 2 error states with recovery paths
- nextExpected components defined
Live manifest — updates as contracts register
Contracts registered: 0 · Has contracts: false
Full contract definition
{
"safetyLevel": "high",
"reversible": true,
"requiresConfirmation": true,
"destructive": false,
"id": "checkout-submit-btn",
"type": "action",
"intent": "place-order",
"description": "Submits the current cart as a purchase order",
"requires": [
{
"field": "user.authenticated",
"operator": "===",
"value": true,
"description": "User must be logged in"
},
{
"field": "cart.hasItems",
"operator": "===",
"value": true,
"description": "Cart must have at least one item"
},
{
"field": "user.hasPaymentMethod",
"operator": "===",
"value": true,
"description": "Payment method must be saved"
}
],
"requiredPermissions": [
"write:orders",
"read:payment"
],
"consequence": "Creates order record, charges payment method, triggers fulfillment",
"affects": [
"cart",
"orders",
"payment",
"inventory"
],
"reversibleWindow": 300,
"alternatives": [
"save-for-later-btn"
],
"nextExpected": [
"order-confirmation-display",
"payment-error-display"
],
"errorStates": [
{
"trigger": "payment declined",
"display": "red banner with message payment failed",
"recovery": "navigate to update-payment-method input"
},
{
"trigger": "item out of stock",
"display": "modal listing unavailable items",
"recovery": "remove unavailable items then retry"
}
],
"contractVersion": "1.0.0",
"fingerprint": "vhyxs_219e4fad",
"lastVerified": "2026-10-04T17:10:36.025Z",
"verifiedBy": "auto"
}Live manifest snapshot
{
"vhyxseal": "1.0.0",
"domain": "play.vhyxseal.com",
"generatedAt": "2026-10-04T17:10:36.028Z",
"componentCount": 0,
"components": []
}