{
  "lock_id": "SSR-AGENTS-ANCHOR-LOCK-2026-10-27-V1",
  "schema_version": "ssr-agents-anchor-lock-v1",
  "published_date": "2026-10-27",
  "canonical_json_url": "https://simoneresearch.com/evidence/agents-anchor-lock.json",
  "verifier_script": "scripts/checks/verify-agents-anchor.mjs",
  "verifier_command": "node scripts/checks/verify-agents-anchor.mjs",
  "nanopublication_triad": {
    "assertion_subgraph": "Each anchor.assertion binds a human-readable engineering rule in AGENTS.md to its exact line span, required contract tokens, and LF-normalized SHA-256 digest.",
    "provenance_subgraph": "Each anchor.provenance_anchor binds the target implementation contract span (file path, line range, contract excerpt, and LF-normalized SHA-256 digest, analogous to a Kuhn & Dumontier Trusty URI).",
    "publication_info_subgraph": "Lock metadata (lock_id, schema_version, published_date, verification_oracle test commands, and scope limitations) separates provenance verification from held-out benchmark claims."
  },
  "purpose_and_scope": "Demonstrates how natural-language repository rules in AGENTS.md can be bound to content-addressed source spans and executable test oracles so breaking contract mutations are refused while cosmetic edits outside the contract span pass with zero false-stale alerts. This is a deterministic repository integrity verifier and micro-harness, not the planned multi-repository 5-arm sequential benchmark.",
  "anchors": [
    {
      "anchor_id": "SSR-ANCHOR-AGENTS-01-BALDIES-BUILD",
      "title": "Baldies desktop verification build & live browser-edition origin contract",
      "assertion": {
        "rule_summary": "Baldies remake facts are pinned to desktop build c37f1b5 (334 tests, 100 levels x 4 views, 3 x 3,000-action fuzz) and PLAY_LIVE_COMMITTED = true for play.simoneresearch.com.",
        "agents_md_span": {
          "file": "AGENTS.md",
          "start_line": 37,
          "end_line": 37,
          "required_tokens": [
            "Baldies remake",
            "Verified on build c37f1b5: 334 tests"
          ],
          "sha256": "c5c1542a7e317e064d06449c46c989a0ba1a0a86a2c73212ff299d14ac42a366"
        }
      },
      "provenance_anchor": {
        "target_symbol_or_invariant": "PLAY_LIVE_COMMITTED, PLAY_URL, playOrigin, playLive, embedUrl",
        "code_contract_span": {
          "file": "src/data/baldies.ts",
          "start_line": 15,
          "end_line": 21,
          "excerpt": "const PLAY_LIVE_COMMITTED = true;\nconst playOverride = resolvePlayOverride(import.meta.env[PLAY_URL_ENV]);\nexport const PLAY_URL = playOverride ?? PRODUCTION_PLAY_URL;\nexport const playOrigin = new URL(PLAY_URL).origin;\nexport const playLive = PLAY_LIVE_COMMITTED || playOverride !== null;\n// The game page loaded inside the homepage frame.\nexport const embedUrl = `${PLAY_URL}?embed=1`;",
          "sha256": "4f9e9def61d93a3de3afab5969551086c767e1efb8bc69d02d8c78fa408e519d"
        }
      },
      "verification_oracle": {
        "test_file": "test/unit/baldies-live.test.mjs",
        "command": "node --test test/unit/baldies-live.test.mjs",
        "breaking_mutation_probe": {
          "description": "Flip PLAY_LIVE_COMMITTED from true to false without updating AGENTS.md",
          "find": "const PLAY_LIVE_COMMITTED = true;",
          "replace_with": "const PLAY_LIVE_COMMITTED = false;"
        },
        "cosmetic_edit_probe": {
          "description": "Insert a non-behavioral comment at top of src/data/baldies.ts outside the contract span",
          "prepend_comment": "// Cosmetic formatting note outside anchored contract span.\n"
        }
      }
    },
    {
      "anchor_id": "SSR-ANCHOR-AGENTS-02-GLOBAL-CSP",
      "title": "Single global /* CSP frame-src contract",
      "assertion": {
        "rule_summary": "The global /* CSP rule carries the only frame-src naming the play origin; /dog/ and /umbrella/ replace the global CSP and frame nothing.",
        "agents_md_span": {
          "file": "AGENTS.md",
          "start_line": 44,
          "end_line": 44,
          "required_tokens": [
            "PLAY_LIVE_COMMITTED",
            "The global `/*` CSP carries the only `frame-src`",
            "scripts/checks/csp-policy.mjs"
          ],
          "sha256": "0c80c24a8903f6fd800c4a3eae2d077d74195b977aea615c2718ff2f57d6ac6b"
        }
      },
      "provenance_anchor": {
        "target_symbol_or_invariant": "globalApprovedFor(playOrigin) frame-src and frame-ancestors directives",
        "code_contract_span": {
          "file": "scripts/checks/csp-policy.mjs",
          "start_line": 25,
          "end_line": 36,
          "excerpt": "    // 'self' for Cloudflare's helper iframe; playOrigin for the Baldies embed.\n    ['frame-src', [\"'self'\", playOrigin]],\n    ['child-src', [\"'self'\", playOrigin]],\n    ['object-src', [\"'none'\"]],\n    ['base-uri', [\"'self'\"]],\n    ['form-action', [\"'self'\"]],\n    ['frame-ancestors', [\"'none'\"]],\n    ['upgrade-insecure-requests', []],\n  ]);\n}\n\nconst globalApproved = globalApprovedFor(PRODUCTION_PLAY_ORIGIN);",
          "sha256": "ecf6033feade4743ed7c40a1304d634e1234726e6c6a51b49c81cb76f95a8ed1"
        }
      },
      "verification_oracle": {
        "test_file": "test/unit/csp-policy.test.mjs",
        "command": "node --test test/unit/csp-policy.test.mjs",
        "breaking_mutation_probe": {
          "description": "Drop playOrigin from global frame-src directive in scripts/checks/csp-policy.mjs",
          "find": "['frame-src', [\"'self'\", playOrigin]],",
          "replace_with": "['frame-src', [\"'none'\"]],"
        },
        "cosmetic_edit_probe": {
          "description": "Insert a non-behavioral header comment in scripts/checks/csp-policy.mjs outside the contract span",
          "prepend_comment": "// Cosmetic comment shift test.\n"
        }
      }
    },
    {
      "anchor_id": "SSR-ANCHOR-AGENTS-03-DATES-ONLY",
      "title": "Dates-only public copy & metadata guard contract",
      "assertion": {
        "rule_summary": "Calendar time uses dates only; no clock times of day, time zones, or session lengths appear in public copy, metadata, or published files.",
        "agents_md_span": {
          "file": "AGENTS.md",
          "start_line": 39,
          "end_line": 39,
          "required_tokens": [
            "Calendar time uses dates only",
            "No clock times of day, time zones or session lengths in public copy"
          ],
          "sha256": "c94697c6d6d22b763a21521b47d6a3f8415feccd706150aa2c5ea361045996d9"
        }
      },
      "provenance_anchor": {
        "target_symbol_or_invariant": "CLOCK, MIDNIGHT, HEALTH_ISO, DATE_FIELDS in scripts/checks/public-date-policy.mjs",
        "code_contract_span": {
          "file": "scripts/checks/public-date-policy.mjs",
          "start_line": 7,
          "end_line": 11,
          "excerpt": "const CLOCK =\n  /\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(?::[\\d.]+)?(?:Z|[+-]\\d{2}:\\d{2})?|(?<![\\w/.:])(?:[01]?\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?![\\w:])|\\b(?:1[0-2]|0?[1-9])(?:\\s?[ap]\\.?m\\.?)(?!\\w)/gi;\nconst MIDNIGHT = /^\\d{4}-\\d{2}-\\d{2}T00:00:00(?:\\.000)?Z$/;\nconst HEALTH_ISO = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$/;\nconst DATE_FIELDS = new Set(['datePublished', 'dateModified']);",
          "sha256": "b57c3ef26729c2a628a07c1f634c46d7949a9e80b882c4f41a0f14a2fa281fa0"
        }
      },
      "verification_oracle": {
        "test_file": "test/unit/public-date-policy.test.mjs",
        "command": "node --test test/unit/public-date-policy.test.mjs",
        "breaking_mutation_probe": {
          "description": "Remove dateModified from DATE_FIELDS in scripts/checks/public-date-policy.mjs",
          "find": "const DATE_FIELDS = new Set(['datePublished', 'dateModified']);",
          "replace_with": "const DATE_FIELDS = new Set(['datePublished']);"
        },
        "cosmetic_edit_probe": {
          "description": "Insert a non-behavioral comment at top of scripts/checks/public-date-policy.mjs",
          "prepend_comment": "// Cosmetic comment shift outside CLOCK contract.\n"
        }
      }
    },
    {
      "anchor_id": "SSR-ANCHOR-AGENTS-04-COUNCIL-EVIDENCE",
      "title": "Council pinned source revision & shared-evidence record contract",
      "assertion": {
        "rule_summary": "Council evidence cites pinned commit af8643c6497fb10f83aca314da10fdea04e349bb in thisisntjon/thecouncil and labels fixture vs. recorded live examples accurately.",
        "agents_md_span": {
          "file": "AGENTS.md",
          "start_line": 51,
          "end_line": 52,
          "required_tokens": [
            "**Council**: Implemented multi-provider answers, critique, claim checking, and synthesis.",
            "https://github.com/thisisntjon/thecouncil"
          ],
          "sha256": "3685c5c113f5de82fd751f11e5ec37e22d886a54d2cdc459397451a065f308f7"
        }
      },
      "provenance_anchor": {
        "target_symbol_or_invariant": "source_repository pinned_commit af8643c6497fb10f83aca314da10fdea04e349bb",
        "code_contract_span": {
          "file": "src/data/council-claim-record.ts",
          "start_line": 64,
          "end_line": 71,
          "excerpt": "    license: 'MIT',\n    license_url:\n      'https://github.com/thisisntjon/thecouncil/blob/af8643c6497fb10f83aca314da10fdea04e349bb/LICENSE',\n    pinned_commit: 'af8643c6497fb10f83aca314da10fdea04e349bb',\n    pinned_commit_short: 'af8643c',\n    artifact_path: 'sample_outputs/live_runs/2026-06-30_writeup_run/q1_physics_photon_vs_electron.json',\n    pinned_blob_url:\n      'https://github.com/thisisntjon/thecouncil/blob/af8643c6497fb10f83aca314da10fdea04e349bb/sample_outputs/live_runs/2026-06-30_writeup_run/q1_physics_photon_vs_electron.json',",
          "sha256": "8291e37511e6142237b31a98dbef4a93ac30de6323f3289c63b4659fb4997665"
        }
      },
      "verification_oracle": {
        "test_file": "test/unit/council-shared-evidence.test.mjs",
        "command": "node --test test/unit/council-shared-evidence.test.mjs",
        "breaking_mutation_probe": {
          "description": "Replace immutable commit hash af8643c with moving branch ref main",
          "find": "pinned_commit_short: 'af8643c',",
          "replace_with": "pinned_commit_short: 'main',"
        },
        "cosmetic_edit_probe": {
          "description": "Insert a non-behavioral comment at top of src/data/council-claim-record.ts",
          "prepend_comment": "// Cosmetic header note outside pinned_commit contract.\n"
        }
      }
    },
    {
      "anchor_id": "SSR-ANCHOR-AGENTS-05-VOYNICH-RELEASE-GUARD",
      "title": "Voynich Evidence Atlas release guard & withheld-preview rejection contract",
      "assertion": {
        "rule_summary": "Default builds use only data/voynich-atlas/atlas-public-v1.0; private preview markup (atlas-withheld / Private preview) is rejected by the predeploy guard.",
        "agents_md_span": {
          "file": "AGENTS.md",
          "start_line": 74,
          "end_line": 74,
          "required_tokens": [
            "data/voynich-atlas/atlas-public-v1.0",
            "VOYNICH_ATLAS_PREVIEW=1",
            "cannot bypass release checks"
          ],
          "sha256": "f246de65ee1415802f58f5b328a9a7efee15e381ff2f56eecd650ab634e9ddf3"
        }
      },
      "provenance_anchor": {
        "target_symbol_or_invariant": "checkAtlasPreview(rel, html, released) in scripts/checks/predeploy-guard.mjs",
        "code_contract_span": {
          "file": "scripts/checks/predeploy-guard.mjs",
          "start_line": 81,
          "end_line": 91,
          "excerpt": "export function checkAtlasPreview(rel, html, released = false) {\n  const path = rel.split(String.fromCharCode(92)).join('/');\n  const failures = [];\n  if (released && html && /Private preview|atlas-withheld/.test(html))\n    failures.push(path + ': withheld preview in release');\n  if (!released && path.startsWith(ATLAS_DIR))\n    failures.push(`${path}: Voynich Evidence Atlas preview output`);\n  else if (!released && html && ATLAS_MARKUP.test(html))\n    failures.push(`${path}: carries Voynich Evidence Atlas preview markup`);\n  return failures;\n}",
          "sha256": "b06f1c7a057ace201463931b8bc38482768f6aee38b201410c9c764ff302c076"
        }
      },
      "verification_oracle": {
        "test_file": "test/unit/predeploy-guard.test.mjs",
        "command": "node --test test/unit/predeploy-guard.test.mjs",
        "breaking_mutation_probe": {
          "description": "Disable withheld-preview rejection in checkAtlasPreview",
          "find": "if (released && html && /Private preview|atlas-withheld/.test(html))",
          "replace_with": "if (false && released && html)"
        },
        "cosmetic_edit_probe": {
          "description": "Insert a non-behavioral comment at top of scripts/checks/predeploy-guard.mjs",
          "prepend_comment": "// Cosmetic comment shift outside checkAtlasPreview.\n"
        }
      }
    }
  ]
}
