AGENTICRAIL ENFORCEMENT SPECIFICATION v1.1 DATE: 2026-06-07 (amends v1.0, 2026-05-17) ENTITY: TUARA KURI LIMITED AMENDMENT: v1.1 records the activation of Ed25519 receipt signing and the publication of the verification public key. The receipt schema, canonicalization, pack_id derivation, and chain linkage are UNCHANGED from v1.0. Only the active signature algorithm and key_id change. Receipts issued before 2026-06-07 remain HMAC-SHA256 under k1_2026-02-22_01 and are unaffected; the verifier selects key and algorithm per receipt by key_id, so chains spanning the cutover verify intact. DECISIONS: ALLOW, DENY, HALT ENFORCEMENT RULES: 1. Unknown function -> DENY 2. action_type not permitted for function -> DENY 3. step !== function name -> DENY 4. Sequence already sealed -> DENY:SEALED_SEQUENCE 5. Nonce already used -> DENY:REPLAY_NONCE 6. Step out of order -> DENY:SEQUENCE_VIOLATION 7. Timestamp stale (|ts_ms - now| > 300s) -> DENY:STALE_TIMESTAMP 8. All pass -> ALLOW MSMD SPINE: intake,disruption,instability,state_read,internal_driver,execution,boundary,settle HOKIANGA SPINE: dialect_request,hapuu_identity,corpus_query,provenance_token,compression_check,kaitiaki_gate,output_authorised,settle ALLOW RECEIPT FIELDS: action,action_type,attestation,decision,function,key_id,nonce,pack_id,payload_hash,prev_receipt_id,schema_version,sequence_id,signature,step,ts_ms DENY RECEIPT FIELDS: decision,denial_code,expected_step,function,nonce,pack_id,sequence_id,signature,step,ts_ms DENIAL CODES: POLICY_VIOLATION,REPLAY_NONCE,SEALED_SEQUENCE,SEQUENCE_VIOLATION,STALE_TIMESTAMP PACK_ID: SHA-256 of canonical JSON (alphabetically sorted keys) PREV_RECEIPT_ID: SHA-256 of previous receipt (chain linkage) PAYLOAD_HASH: SHA-256 of raw request body SIGNATURE: Ed25519 over canonical JSON (receipt minus signature field), base64-encoded (legacy receipts before 2026-06-07: HMAC-SHA256, hex-encoded) KEY_ID: k2_2026-06-07_ed25519 (active, Ed25519); k1_2026-02-22_01 (legacy, HMAC) PUBLIC KEYS: agenticrail.nz/spec/receipt-public-keys.json (Ed25519 - offline-verifiable by anyone) VERIFICATION: report.agenticrail.nz (no login, no operator required)