{
  "date": "2026-10-16",
  "assessment": "Internal engineering verification; not an independent audit",
  "baseRevision": "e92f6a2da81046b16357c4952aa945763af3f8a2",
  "workingTree": "Included pre-existing uncommitted changes. Source hashes below identify reviewed files; the base revision alone does not reproduce this checkout.",
  "versions": {
    "website": "0.2.2",
    "standardExtension": "0.4.4"
  },
  "checks": [
    {
      "command": "npm test",
      "result": "181 passed, 1 skipped; 14 test files passed, 1 skipped",
      "note": "The optional GLINER category audit is gated by GLINER_CATEGORY_AUDIT=1 and was skipped."
    },
    {
      "command": "npm run test:egress --workspace @legiscomply/chrome-extension",
      "result": "23 passed",
      "scope": "Controlled browser fixtures; prompt/file payloads, supported platform adapters, packaged PDF/DOCX extraction and original-image approval/settings."
    },
    {
      "cwd": "apps/chrome-extension",
      "command": "npx playwright test e2e/consent.spec.ts e2e/recovery.spec.ts --workers=1",
      "result": "2 passed",
      "scope": "Packaged standard extension: consent enable/revoke and encrypted recovery restart/lock/origin isolation/deletion."
    },
    {
      "command": "node scripts/verify-security-page.mjs http://127.0.0.1:3147",
      "result": "passed",
      "scope": "Local production build: fictional text protection/restoration, no fixture values in observed request URLs/bodies, no Clarity request before consent or after declining, review masking attribute, security page at 1440px and 390px."
    }
  ],
  "sourceReview": [
    "Website extraction/detection/transform/restore flow",
    "Website model worker uses local inference with downloaded Hugging Face and jsDelivr assets",
    "Clarity consent gate and fixed event names",
    "Standard extension content-script domains and storage permission",
    "Recovery AES-GCM encryption, PBKDF2 SHA-256 with 600000 iterations, trusted extension storage access",
    "Host-page DOM visibility of composer and restored originals",
    "Original images may pass through after approval; a saved per-site preference can bypass subsequent prompts"
  ],
  "limitations": [
    "Not a production-deployment audit",
    "No fresh live AI-provider testing",
    "No experimental local-model extension browser run",
    "No website enhanced-model runtime or analytics-enabled network capture",
    "No independent penetration test or cryptographic audit",
    "Passing fixtures do not prove complete detection or absence of all disclosures",
    "AI-site scripts may access original composer/restored text",
    "Dependency and operational security are not exhaustively assessed"
  ],
  "sourceSha256": {
    "apps/chrome-extension/e2e/consent.spec.ts": "ae1a6832853bad2df53c8a808cb096aa8dd6551419dc76f3a82e9d115236e274",
    "apps/chrome-extension/e2e/gliner.spec.ts": "99d9902f3c110e571054253c4635db85fae2f3b52492f769677ac7d3163bf2ab",
    "apps/chrome-extension/e2e/outbound-payload.spec.ts": "eeb0b3e950bbfd433eb5b6bbb5d69a48c3d2aad292479c041a84b08bdb785908",
    "apps/chrome-extension/e2e/recovery-action.spec.ts": "824da381c90e59480102f123942092931c001c2ae51258016a6d764f25a4819d",
    "apps/chrome-extension/e2e/recovery.spec.ts": "6ccd8a5106c90d1c53019a1d44d5b601440f38e50437f74979d59fc354ff0647",
    "apps/chrome-extension/e2e/send-original.spec.ts": "e0b9cc976dc23db217c95941c6ea25ad85ea596381d8c0a68f9365ce4d08cd84",
    "apps/chrome-extension/package.json": "3237b8e9273e32e92a52db502da6b76edebdc805cec1456f4320634b152c8a8a",
    "apps/chrome-extension/public/background.js": "922ae8096b04dc066ad1101388e48829731d07aee81cf33b585e34321a103442",
    "apps/chrome-extension/public/manifest.json": "48366124975cc393e8c13c6cb23474e0c359421d84a3f7bf5b93bfa43c8af811",
    "apps/chrome-extension/public/popup.css": "edf6fb2a2f72cd72643ceb52b64d5073ae4ff9951693e1241eb5573f2bbfbaef",
    "apps/chrome-extension/public/popup.html": "d93bec8758edcf6f8e7b236fe560ab71863be2619a9b1a00a7b986dcafb2eae4",
    "apps/chrome-extension/public/popup.js": "0de02aa8705937bbde637a7a46b3883cd51af97c4e9cb09c502c4e8453c7a795",
    "apps/chrome-extension/public/vault.js": "aff245913ef9de92c8fc54b5e96a7af490cbd328474186d6054fba0dfd44ed05",
    "apps/chrome-extension/src/assets.d.ts": "6d268f23cc5a87019779ecce8affebb8501c82721ce99fa677c056765fb99aec",
    "apps/chrome-extension/src/content.ts": "ea02aa84c956eb0cadd44d3de4e453ae0943a7b8b83263153524ed7f47b30046",
    "apps/chrome-extension/src/fileProtection.test.ts": "70eb5f42c6390ca939f130b1e8316ef26ebfe309baa5afd12027a0f76c70f58c",
    "apps/chrome-extension/src/fileProtection.ts": "fda424131ac8f1b8127535049023852f48a09914ddf62830ec3ce8fe743876a4",
    "apps/chrome-extension/src/gliner/assets.json": "4bd5b11517885283c4aba1b5d9bfd2aca9a4e8e627a183f97fa313bb578379a7",
    "apps/chrome-extension/src/gliner/background.js": "e32946c15e2c12ad4bb4a336e3d47570ea0981542377aaa189b04436fbaa321f",
    "apps/chrome-extension/src/gliner/merge.ts": "1c17bebd5293e04ed481d19f344c715f6b36fea646154f790d4d496fb1db9077",
    "apps/chrome-extension/src/gliner/model.test.ts": "3fe9deb87875fce2bb908356444cd49f8e2e1701692660bc8d5a2671bb99e58b",
    "apps/chrome-extension/src/gliner/model.ts": "1230972dc308cc3aa0637e67158d7e9332b2b57231833a429684bb79385a9b7b",
    "apps/chrome-extension/src/gliner/offscreen.html": "37db57f8b780d315c06102d8ecb5cfa4d634518397e03269a391bdeb02d68c0b",
    "apps/chrome-extension/src/gliner/offscreen.ts": "841c5692951e8cbaad2fbcf7d9fb1a7b4e25dcb439e8d6581158d8471636bd72",
    "apps/chrome-extension/src/gliner/popup.js": "e2e6e7bdeeb63fce35cf2d82ef6e58c85e6f4f4a53aee4882ebcbbb648756736",
    "apps/chrome-extension/src/gliner/validate.test.ts": "852fa7520dfba81cbd3a1bde0a988bc1b541c3790107686795f27f7ef87b5850",
    "apps/chrome-extension/src/gliner/validate.ts": "7c6322dd8f6eb00f1b17367568862889dccbe4d530a0cececfc9f0feeead74c7",
    "apps/chrome-extension/src/gliner/worker.ts": "a8ab267617ed3ccf2135267a5f2be8f613b2882843d9586affe97c984a62d1b8",
    "apps/chrome-extension/src/imageSettings.test.js": "da953a0b401574f3b973ab39f91313df235f1d595a98a5038b1640ebb2dfd1f0",
    "apps/chrome-extension/src/platforms.test.ts": "fbeb30cfc86af3fde308c62bbe4a2bd7c77a7e8bc908432902a1dfcd5ffdc0fd",
    "apps/chrome-extension/src/platforms.ts": "1b15bfc0d8ecca5945f2ac949bcf1ff244b4aa14a49c641c51c151db0e6c780e",
    "apps/chrome-extension/src/review.test.ts": "ddb19e33c62fbcb1534ea00eee616acc7dbb88f11c2bd6eb74f4c3682da80898",
    "apps/chrome-extension/src/review.ts": "9ab7e05157b7646750eff4451723db0d632565d317a9a756d8e65d4b46f133ea",
    "apps/chrome-extension/src/vault.test.js": "34d9746626eaa70a5092e7a5205d3091ea348d196d6736d7290697469f51e191",
    "apps/chrome-extension/vite.config.ts": "3f46d2c6d3b8b6d76b9586879249f51e594173360dfa4eb65648a2bced14f2da",
    "package-lock.json": "46c644d0a2f07028317abb873574e1314b0b404be71d20a18c67a30131d437c2",
    "package.json": "b624c0325a3c6e058acd701a671520571ba1f4a60337f66052d928e6400473b1",
    "packages/core/src/detection.test.ts": "c0ed88b6ddfcbcdbac704e28138765001bd669ca4894f792a1ad0b72d9e3fd41",
    "packages/core/src/detection.ts": "4795b90eb0e58d196eceef3b9305b38e092a798436dbcc45501f273f66c18099",
    "packages/core/src/detectionBenchmark.ts": "eb8c73d060fa47f1d63ec4915c664817e7da0b9c703d7bf4ff3e1d1a4dbded1a",
    "packages/core/src/detectionEvaluation.ts": "97aff29a2a98a43f6a3493aaf63adfe53d29a33fe478ec06c56392e25da7b71f",
    "packages/core/src/detectionQuality.test.ts": "b5ce77ccff53cb6b7d48af043971d59d2922eeea58c2a974d0b4ae555a0a4353",
    "packages/core/src/engine.test.ts": "873d4fc9f618c0e2d667e41fb2ea09ebf98774b873c3851952da6b4b35c9480a",
    "packages/core/src/engine.ts": "43fe9c48e716883ef261eaa684c0fdc70041995ccb6dbae90e2767aba2c8fde6",
    "packages/core/src/index.ts": "b48c76a80f80c2df11e70252384817971eecd5d8404df3798fd3436fbad8b57a",
    "packages/core/src/integrity.ts": "e8420613c551b9d04521c7139aecf15600d48f6e1e87991121ea12cb7ef8ee7e",
    "packages/core/src/policy.test.ts": "be77dee5bea065171b19a4ac07f126415f8af899cc8402dca3935d5a76b64c72",
    "packages/core/src/policy.ts": "1870d2ca0d613118bfd220b1c485cc233d0c3616662cabfbf7c94720ec1b3926",
    "packages/core/src/protectionProfiles.ts": "bc9a1506832a16c945b0ea1e72d4c4cdffaf79e589b329f265229f48ccccd293",
    "packages/core/src/protectionReceipt.ts": "4a8734b7c1bf535b364717f352f0ac224776facd92513d2b2a2f6970f86d1d2a",
    "packages/core/src/secret-context.test.ts": "8487ce533a5a8bfa539f03d60af5bf4b2d6a75b9177cd8adb9c8de5648650334",
    "scripts/verify-security-page.mjs": "cd304abc93136ac3b07fcda257df5b17f195c350f9434927b7bf896b3355bbc1",
    "src/app/about/page.tsx": "94f6c6c603a16c2ac3621165f9387469efd1cd69532caed6cfbb85a8f13988bf",
    "src/app/contact/page.tsx": "b28f8f090ee364a4c4232ff57cf5741f374fc4894a838d72d2da2cd50889bf31",
    "src/app/demo/opengraph-image.tsx": "75e4c22bb37e390fb64a87124c9201534ebb33cecb8fd8831316a59efdbefaae",
    "src/app/demo/page.tsx": "4078697619102be5f5d38eb47fea48c2e47df011a2173889f7b6d034c3d337e2",
    "src/app/demo/twitter-image.tsx": "fd96b2acb8f5acde6a1f221417dbb64729db617efc8e0dcca30f011ceac2505d",
    "src/app/for-law-firms/page.tsx": "541163496c227954581393f83054093559c154abac298cb41e8cddbb268381c6",
    "src/app/globals.css": "b794423409bc1665000d29080f8448038b813c4b0f0b7f250b81e618e279e73a",
    "src/app/guides/contracts-are-becoming-apis/opengraph-image.tsx": "6b8c8e5e732983258757a5033727dfbb36c594ccce5da77a9d29ba8418a49455",
    "src/app/guides/contracts-are-becoming-apis/page.tsx": "433eedc1cbb76eb1effbcd4160f104513316963a74280b68e15d183c02ee2a9b",
    "src/app/guides/contracts-are-becoming-apis/twitter-image.tsx": "fd96b2acb8f5acde6a1f221417dbb64729db617efc8e0dcca30f011ceac2505d",
    "src/app/guides/page.tsx": "da022a01ccaaf01b764a5fc82cd97109e83096d75e8b44f1b716298b1025e78d",
    "src/app/guides/prepare-confidential-contract-for-ai-review/opengraph-image.tsx": "836526f55bfea69c8fe1c6e2c5c2625148681811558dcc3300b181d4798a0382",
    "src/app/guides/prepare-confidential-contract-for-ai-review/page.tsx": "988d012116ed4b11c65d9e3915310b0971bd3064673efce1048745b27fb9e753",
    "src/app/guides/prepare-confidential-contract-for-ai-review/twitter-image.tsx": "fd96b2acb8f5acde6a1f221417dbb64729db617efc8e0dcca30f011ceac2505d",
    "src/app/guides/removing-client-names-is-not-anonymization/opengraph-image.tsx": "60ab2141abde3df5feac15d218b4de75b6b30b1300a8edffac80b8bcf1b9fce1",
    "src/app/guides/removing-client-names-is-not-anonymization/page.tsx": "b40515325a58a3f58e7056511dfd1ff727b2ef8adef3b0a088d241efb42c2b8c",
    "src/app/guides/removing-client-names-is-not-anonymization/twitter-image.tsx": "fd96b2acb8f5acde6a1f221417dbb64729db617efc8e0dcca30f011ceac2505d",
    "src/app/guides/use-ai-with-confidential-legal-documents/opengraph-image.tsx": "e1cb4be622e82654252c2118c451f261723c0c9a6c29c36d4b2fe8ebb4549bfb",
    "src/app/guides/use-ai-with-confidential-legal-documents/page.tsx": "c47de00b8e0358b556a90b204f9ac2f4b294767753d3abd95ca29f7f985e0773",
    "src/app/guides/use-ai-with-confidential-legal-documents/twitter-image.tsx": "fd96b2acb8f5acde6a1f221417dbb64729db617efc8e0dcca30f011ceac2505d",
    "src/app/layout.tsx": "3a0684f787e67745635e8b36e21a11c92158e4cf4bc2307368efdb78edf88f65",
    "src/app/opengraph-image.tsx": "686132639764a814b2d295cabdbdb1f40416e693c3b7ce3a316d70c4e53a77d2",
    "src/app/page.tsx": "c40e531a33c8e8e1b82b5a7e0efab8ad10737ab1452d0609473bc930aa710a9f",
    "src/app/privacy/page.tsx": "9494a6f547320ad2d9cb12e35a75d6b38b57c7d5f2e78655857670ad8bebd175",
    "src/app/robots.ts": "131ac5ee344a2ef1c7c427d0fa98689e5eb33543dc93dc0c5cc20c7ecbd4219e",
    "src/app/security/page.tsx": "873b52c9b0a769ff722b4062300c3a9b1acacfa1e0955fe82fe3d14f62204fb1",
    "src/app/sitemap.ts": "95fe5633b430041f13769ce1e42b4d11723274e566ad2e795c3a42602660a571",
    "src/app/twitter-image.tsx": "fd96b2acb8f5acde6a1f221417dbb64729db617efc8e0dcca30f011ceac2505d",
    "src/app/use-cases/anonymize-legal-documents/page.tsx": "aaa0d2048607aac36921cf3a92bbbd16e99ef3fff2a112df28dd3eafaf401d80",
    "src/app/use-cases/confidential-document-summary/page.tsx": "c8155c2bcf3447488c67078789b8afb421c4ffeccf53563d50fb603c36d216b5",
    "src/app/use-cases/contract-review-ai/page.tsx": "02d4858ab90016c97957c05b40d102b8baecbeb7e72dd1fc30c9b99bfd426e5c",
    "src/app/use-cases/page.tsx": "010128918f2c473f9e56cf9318c74867485516686e9835a1912f634013c9c02b",
    "src/components/ClassicLanding.tsx": "95169900617641e69b9fe4ba542bd426ec34212b8c9fb57ba7d7a793a7f6b76f",
    "src/components/CookieConsentBridge.tsx": "dca160e4821448d6135981536c98d4c84127d7b5285fb179a865c46d407cfd7f",
    "src/components/DesignPreview.tsx": "9a05a9cb415dee904fbcba3b79b1484377d664d1d07be783b096fb6b69266a64",
    "src/components/GuideSocialPreview.tsx": "f5ebc8d0285e1deef2bd6b4cf5f4e6b1c86e7b7fa46fbe732ad649f347bea6e6",
    "src/components/GuidedDemoCursor.tsx": "6f541f52444ee65dea4c9e7d141e83218eb03372ebd15fb421ff4c953d0c1ab6",
    "src/components/LandingExample.tsx": "f7b30cd2708f51b33d9324ef2bf7087ff17ce27f5f21ed716ba98ec4afbe1361",
    "src/components/LegisComply.tsx": "9e89534cf0d411a4ffe859b7321198d2c98d6da6325c3f97b4f3f96ff40682d2",
    "src/components/MarketingShell.tsx": "f532b6c35afc8f6b2698654a3244e8f19d875956bf94a4c39aa0c299b12c26b2",
    "src/components/PromoDemo.module.css": "0b121fa8920a251820d1b09f5a0cd0a3e2f4fa07409784a95acdefcc0917d519",
    "src/components/PromoDemo.tsx": "ff47503653d543dbf82bcfd1d353d29713ab1206f4cd50b895091f2a72e9435f",
    "src/components/SecurityReview.tsx": "5a16d05e05a89831e48e2f78dd79028c6241101fa9a190066c25cba0e11c6bd9",
    "src/components/SocialPreview.tsx": "38a1a50361d42b3e692e92594e1b57390eadaae206434048383708cee297e63f",
    "src/components/StructuredData.tsx": "0687ebe9df29f832fdad0dae2a8d92e79cb0eb670dc2b96cd2f8155973056b2b",
    "src/components/TrackPageView.tsx": "59f569b79191e218a6c94a930daea3f3186f3a4613f2abe125148a315ff91da5",
    "src/components/TrackedLink.tsx": "b84e39e96f64ff60a3c623d3037bbb835416d2ffa728d5a1ca11b94226b219b1",
    "src/components/UseCaseDetail.tsx": "612b315be6b822fa433bf5f0128317cbda183949eabc9d1cb42b3bbb91155d8c",
    "src/components/design-preview.css": "0d834f45fece66a361ef8f8b1ba3ba0e087d1ae34cd774635b80f8bbc5a08e88",
    "src/components/landing.css": "d38c66ca6e0885304434f64ba0b645381e59225c8cebf344ebad4e90c8e2c715",
    "src/components/landingContent.ts": "76d934d40b167518087546d1c8957a0e9416d26d56eb2da153f862a1a2a28b6f",
    "src/lib/clarity.ts": "8e98c0b4d1238765a3a30849725ab0e3d84f93842d6a966173cd7826654672b2",
    "src/lib/docxProtection.test.ts": "2a953d052c4c560bee25014a68aee3f99fafc1c77e9b0d5c8e8156b73e38773a",
    "src/lib/docxProtection.ts": "b401b1060f8a9812073417713723ccfe95a3196f387dccae57e1b8b867d239c2",
    "src/lib/enhancedDetection.ts": "3122a6c3b64cda3ffcbef8ce7b2cdb471da24a01adfef817b7bdb081f95a5740",
    "src/lib/files.ts": "78f62112ba3d05c5c8a0222bd4eca38f400e6b454aadb105db1b1fa7fb84b1cb",
    "src/lib/pdfProtection.test.ts": "b415147e3b7bc4c2a04e45189aa1f9fc2a789b9199b533abef9e820c1fb98609",
    "src/lib/pdfProtection.ts": "8e00ac81b5c280b93f3907428e1e51b19fa34531ffa48d72f8fc54526c0d00d2",
    "src/lib/site.ts": "bc4eddc8edf0ce563c9e130607b35e1ae137d8ae4b39543885232687dfee0928",
    "src/lib/useCases.ts": "a86f6ccd62d355c202234275e68be3b04fd0540fcd0d6fcc06fa464e5b6c9c5b",
    "src/types/mammoth.d.ts": "fb4af8fb207c891a2716ab176fc4fcadcc1de70da4ae3d76801e572f75812b78",
    "src/workers/ner.worker.ts": "2ab89bfca07a082c96676c952b8e85f47e03b24c797b0d27efc3a3371cd47d81"
  }
}
