{"_id":"@emilia-protocol/crash-test","_rev":"7-4659963a7ccff73eac5fd8d2ad7dd816","name":"@emilia-protocol/crash-test","dist-tags":{"latest":"0.4.2"},"versions":{"0.1.0":{"name":"@emilia-protocol/crash-test","version":"0.1.0","keywords":["emilia-protocol","authorization-receipts","dual-control","two-person-rule","quorum","offline-verification","audit-evidence","demo"],"license":"Apache-2.0","_id":"@emilia-protocol/crash-test@0.1.0","maintainers":[{"name":"emiliaprotocol","email":"iman.schrock@gmail.com"}],"homepage":"https://www.emiliaprotocol.ai/quorum","bugs":{"url":"https://github.com/emiliaprotocol/emilia-protocol/issues"},"bin":{"crash-test":"crash-test.mjs","ep-crash-test":"crash-test.mjs","emilia-crash-test":"crash-test.mjs"},"dist":{"shasum":"dbafd7d2b83f457867b3cfa22305b1c1b8960b2b","tarball":"https://registry.npmjs.org/@emilia-protocol/crash-test/-/crash-test-0.1.0.tgz","fileCount":4,"integrity":"sha512-serlTEZrm04g2pvzWdCPyuhX/QEvbSfdvDkH/nNKZXzZU2D4X/3LT8IpGnEiR67dsdehmhmJJkrmG9hhC97Jiw==","signatures":[{"sig":"MEUCIQC2kXGKFUuPckGwuUA8gk4/9mqreaa/9AhZ201TOzp/LgIgEhTKY3ShlnOIXk2Xc1x7MTb7q8cL4DsY34/kkRSFYas=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33291},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"4185f3cbd8e5ce07f98d32d931ffeaf55d11bc70","_npmUser":{"name":"emiliaprotocol","email":"iman.schrock@gmail.com"},"repository":{"url":"git+https://github.com/emiliaprotocol/emilia-protocol.git","type":"git","directory":"packages/crash-test"},"_npmVersion":"11.11.0","description":"The EMILIA crash test: one command shows a high-value disbursement blocked, dual-approved by two named humans on their own devices, issued as an authorization receipt, then verified OFFLINE six months later with EMILIA gone — and a forged copy rejected. P","directories":{},"_nodeVersion":"25.8.0","dependencies":{"@emilia-protocol/verify":"^1.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/crash-test_0.1.0_1782139008726_0.39148564619579074","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@emilia-protocol/crash-test","version":"0.2.0","keywords":["emilia-protocol","authorization-receipts","dual-control","two-person-rule","quorum","offline-verification","audit-evidence","demo"],"license":"Apache-2.0","_id":"@emilia-protocol/crash-test@0.2.0","maintainers":[{"name":"emiliaprotocol","email":"iman.schrock@gmail.com"}],"homepage":"https://www.emiliaprotocol.ai/quorum","bugs":{"url":"https://github.com/emiliaprotocol/emilia-protocol/issues"},"bin":{"crash-test":"crash-test.mjs","ep-crash-test":"crash-test.mjs","emilia-crash-test":"crash-test.mjs"},"dist":{"shasum":"56cfd2ff50b143e6be8095838a028750272a6dab","tarball":"https://registry.npmjs.org/@emilia-protocol/crash-test/-/crash-test-0.2.0.tgz","fileCount":4,"integrity":"sha512-tkuL0lBSj6OTbaT++83vw5bGr0LI7k/Hea4TfblfPzQzVGiWBv50W8rTPCG0QkJ5HCiqPjogGrAGwZcdorGlhA==","signatures":[{"sig":"MEQCIDqP3Ihu8p29+VRHddzVXRmFWgmX03fT0Ff4V6aBz2twAiBTyrvnWdnnmKFSf25/jWB3l2BOplXWSuVH0wcr6sQGqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44384},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"601262187376b0e2754c7be2770c1c9a0470d88e","_npmUser":{"name":"emiliaprotocol","email":"iman.schrock@gmail.com"},"repository":{"url":"git+https://github.com/emiliaprotocol/emilia-protocol.git","type":"git","directory":"packages/crash-test"},"_npmVersion":"11.11.0","description":"The EMILIA crash test: one command shows a high-risk action blocked, dual-approved by two named humans on their own devices, issued as an authorization receipt, then verified OFFLINE with EMILIA gone — and a forged copy rejected. Produces an audit-grade W","directories":{},"_nodeVersion":"25.8.0","dependencies":{"@emilia-protocol/verify":"^1.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/crash-test_0.2.0_1782140925269_0.205096615035107","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@emilia-protocol/crash-test","version":"0.3.0","keywords":["emilia-protocol","authorization-receipts","dual-control","two-person-rule","quorum","offline-verification","audit-evidence","demo"],"license":"Apache-2.0","_id":"@emilia-protocol/crash-test@0.3.0","maintainers":[{"name":"emiliaprotocol","email":"iman.schrock@gmail.com"}],"homepage":"https://www.emiliaprotocol.ai/quorum","bugs":{"url":"https://github.com/emiliaprotocol/emilia-protocol/issues"},"bin":{"crash-test":"crash-test.mjs","ep-crash-test":"crash-test.mjs","emilia-crash-test":"crash-test.mjs"},"dist":{"shasum":"5209dd9a256d9e8582eadcf1ce3095c14d892e36","tarball":"https://registry.npmjs.org/@emilia-protocol/crash-test/-/crash-test-0.3.0.tgz","fileCount":4,"integrity":"sha512-jnooV08xnKoIhJKjthDS3tyuXRESQjTl8GXywXpoUreuRZe/s412M0fjcClCSP7IVuN9gD53yEBw5llgr8Bn6A==","signatures":[{"sig":"MEUCIQCFt73YdnHX6bvbrI0K7IFJbiccti9jEm+AihGpRO1kiwIgEdTBxLNCIy6BZIwn6mXuFfSZ7/CDV+kgzVbrqHUVmCY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49549},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"3e70fe8cdb6c49eaab07f1de099b2b9ce3d3ef20","_npmUser":{"name":"emiliaprotocol","email":"iman.schrock@gmail.com"},"repository":{"url":"git+https://github.com/emiliaprotocol/emilia-protocol.git","type":"git","directory":"packages/crash-test"},"_npmVersion":"11.11.0","description":"The EMILIA crash test: one command shows a high-risk action blocked, dual-approved by two named humans on their own devices, issued as an authorization receipt, then verified OFFLINE with EMILIA gone — and a forged copy rejected. Produces an audit-grade W","directories":{},"_nodeVersion":"25.8.0","dependencies":{"@emilia-protocol/verify":"^1.5.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/crash-test_0.3.0_1782875922566_0.5222447385501705","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@emilia-protocol/crash-test","version":"0.3.1","keywords":["emilia-protocol","authorization-receipts","dual-control","two-person-rule","quorum","offline-verification","audit-evidence","demo"],"license":"Apache-2.0","_id":"@emilia-protocol/crash-test@0.3.1","maintainers":[{"name":"emiliaprotocol","email":"iman.schrock@gmail.com"}],"homepage":"https://www.emiliaprotocol.ai/quorum","bugs":{"url":"https://github.com/emiliaprotocol/emilia-protocol/issues"},"bin":{"crash-test":"crash-test.mjs","ep-crash-test":"crash-test.mjs","emilia-crash-test":"crash-test.mjs"},"dist":{"shasum":"d01294117546687755c9b8a8d76b098a6e57403a","tarball":"https://registry.npmjs.org/@emilia-protocol/crash-test/-/crash-test-0.3.1.tgz","fileCount":4,"integrity":"sha512-6F8Ck39cidNHFPO6g4KzUxc0fyc66xgF2zwP+fJbCBUM509CT7pwUTmb3KOm+w62ZRqyHSqPd09Pc/JzxmPvDw==","signatures":[{"sig":"MEUCIQCqKmwWPoiljLR2O+pDSwMghrOZiiFEbyfpT+JU4JbZOQIgQ/TobrUJX5ETvV0xhzIEwKKMbB20145FBFubpyLizYA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49552},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"784432c9fadb7d00cad2e2f21925c76867c9f9eb","_npmUser":{"name":"emiliaprotocol","email":"iman.schrock@gmail.com"},"repository":{"url":"git+https://github.com/emiliaprotocol/emilia-protocol.git","type":"git","directory":"packages/crash-test"},"_npmVersion":"11.11.0","description":"The EMILIA crash test: one command shows a high-risk action blocked, dual-approved by two named humans on their own devices, issued as an authorization receipt, then verified OFFLINE with EMILIA gone — and a forged copy rejected. Produces an audit-grade W","directories":{},"_nodeVersion":"25.8.0","dependencies":{"@emilia-protocol/verify":"^3.8.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/crash-test_0.3.1_1783927990651_0.7916107872639255","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@emilia-protocol/crash-test","version":"0.4.0","keywords":["emilia-protocol","authorization-receipts","dual-control","two-person-rule","quorum","offline-verification","audit-evidence","demo"],"license":"Apache-2.0","_id":"@emilia-protocol/crash-test@0.4.0","maintainers":[{"name":"emiliaprotocol","email":"team@emiliaprotocol.ai"}],"homepage":"https://www.emiliaprotocol.ai/quorum","bugs":{"url":"https://github.com/emiliaprotocol/emilia-protocol/issues"},"bin":{"crash-test":"crash-test.mjs","ep-crash-test":"crash-test.mjs","emilia-crash-test":"crash-test.mjs"},"dist":{"shasum":"e023e0ddb276471543a7651768f1bbb3368043af","tarball":"https://registry.npmjs.org/@emilia-protocol/crash-test/-/crash-test-0.4.0.tgz","fileCount":4,"integrity":"sha512-/9Bfi4hxb7X/Ty/qDUCoBmD2RXiVUUshOc1V74jjzG/quVzNMprtOAPRCw5heZ88QVHx35sZicI+YpiXXw2D6Q==","signatures":[{"sig":"MEUCIQCx9eKcWozKNERqAflh88fw/sb9tiqNKdFgBDWXhgQWKwIgeTgAy+1pdCMuqTwVljm/rvR8k7w6vfSviQzy2vpOaj0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@emilia-protocol%2fcrash-test@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56456},"type":"module","_from":"file:release-artifacts/crash-test/emilia-protocol-crash-test-0.4.0.tgz","engines":{"node":">=18.0.0"},"scripts":{"test":"node --test crash-test.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6074dd0b-36d6-47dc-8bda-c59e500ba3f6"}},"_resolved":"/home/runner/work/emilia-protocol/emilia-protocol/release-artifacts/crash-test/emilia-protocol-crash-test-0.4.0.tgz","_integrity":"sha512-/9Bfi4hxb7X/Ty/qDUCoBmD2RXiVUUshOc1V74jjzG/quVzNMprtOAPRCw5heZ88QVHx35sZicI+YpiXXw2D6Q==","repository":{"url":"git+https://github.com/emiliaprotocol/emilia-protocol.git","type":"git","directory":"packages/crash-test"},"_npmVersion":"11.18.0","description":"Offline authorization-evidence demonstration: verify an exact-action quorum under relying-party-pinned policy, approver keys, WebAuthn scope, and operator key, then refuse tampering and self-anchored trust.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@emilia-protocol/verify":"^3.10.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/crash-test_0.4.0_1784276137752_0.723936952070152","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@emilia-protocol/crash-test","version":"0.4.1","keywords":["emilia-protocol","authorization-receipts","dual-control","two-person-rule","quorum","offline-verification","audit-evidence","demo"],"license":"Apache-2.0","_id":"@emilia-protocol/crash-test@0.4.1","maintainers":[{"name":"emiliaprotocol","email":"team@emiliaprotocol.ai"}],"homepage":"https://www.emiliaprotocol.ai/quorum","bugs":{"url":"https://github.com/emiliaprotocol/emilia-protocol/issues"},"bin":{"crash-test":"crash-test.mjs","ep-crash-test":"crash-test.mjs","emilia-crash-test":"crash-test.mjs"},"dist":{"shasum":"7ac53e334acae20c91d0efff1eab2bc31a748a7e","tarball":"https://registry.npmjs.org/@emilia-protocol/crash-test/-/crash-test-0.4.1.tgz","fileCount":4,"integrity":"sha512-f3MTR6RWVBdiso5soITbxZPJ5GxlTabMHBNrZ2vYyOb5qOSVVnoZyl9pfMZRXkBwRCDbEIJJniFWtjUGuI1epg==","signatures":[{"sig":"MEUCIQCdRIAsLxEBP7YoA1mz9kYNxo4HNtusERNmBhwYBtnplwIgC2H0wrV8WnGAdAX/csn5HliwTClFogOQPqSvfp79NwY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@emilia-protocol%2fcrash-test@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56672},"type":"module","_from":"file:release-artifacts/crash-test/emilia-protocol-crash-test-0.4.1.tgz","engines":{"node":">=18.0.0"},"scripts":{"test":"node --test crash-test.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6074dd0b-36d6-47dc-8bda-c59e500ba3f6"}},"_resolved":"/home/runner/work/emilia-protocol/emilia-protocol/release-artifacts/crash-test/emilia-protocol-crash-test-0.4.1.tgz","_integrity":"sha512-f3MTR6RWVBdiso5soITbxZPJ5GxlTabMHBNrZ2vYyOb5qOSVVnoZyl9pfMZRXkBwRCDbEIJJniFWtjUGuI1epg==","repository":{"url":"git+https://github.com/emiliaprotocol/emilia-protocol.git","type":"git","directory":"packages/crash-test"},"_npmVersion":"11.18.0","description":"Offline authorization-evidence demonstration: verify an exact-action quorum under relying-party-pinned policy, approver keys, WebAuthn scope, and operator key, then refuse tampering and self-anchored trust.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@emilia-protocol/verify":"^3.10.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/crash-test_0.4.1_1784698526719_0.7050755530370285","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"_id":"@emilia-protocol/crash-test@0.4.2","bin":{"crash-test":"crash-test.mjs","ep-crash-test":"crash-test.mjs","emilia-crash-test":"crash-test.mjs"},"bugs":{"url":"https://github.com/emiliaprotocol/emilia-protocol/issues"},"dist":{"shasum":"c3362c83485ef974c57c8b07793adc3d4f8aa84b","tarball":"https://registry.npmjs.org/@emilia-protocol/crash-test/-/crash-test-0.4.2.tgz","fileCount":5,"integrity":"sha512-i4AdBZKA+dRCQ4jitnXN64fjOpqP7KCpz0TzuPZ/zqTHzIdv9l0pjRd0L0aRBlDqZQwUYN7cZIzXLl8bQMKUOQ==","signatures":[{"sig":"MEYCIQCx+HC09d0IFG7VXg0Axidc7n59TTJ3IUYX5qY8NA/wqgIhAPrt6ED5QUxgaoWVXmo6k1NAfrP75IU2gSyA+qRjvsaj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEfwX/pCcXDhGdh+UN9pVCIHH9C5YLzeAc7UGypJiLc3AiBHrz77kw1IeXsx29xSJDoE0V02SGdSiLAzAIi7wFZ8Rg=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@emilia-protocol%2fcrash-test@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56847},"name":"@emilia-protocol/crash-test","type":"module","_from":"file:publisher-input/emilia-protocol-crash-test-0.4.2.tgz","engines":{"node":">=18.0.0"},"license":"Apache-2.0","scripts":{"test":"node --test crash-test.test.js"},"version":"0.4.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6074dd0b-36d6-47dc-8bda-c59e500ba3f6"}},"homepage":"https://www.emiliaprotocol.ai/quorum","keywords":["emilia-protocol","authorization-receipts","dual-control","two-person-rule","quorum","offline-verification","audit-evidence","demo"],"_resolved":"/home/runner/work/emilia-protocol/emilia-protocol/publisher-input/emilia-protocol-crash-test-0.4.2.tgz","_integrity":"sha512-i4AdBZKA+dRCQ4jitnXN64fjOpqP7KCpz0TzuPZ/zqTHzIdv9l0pjRd0L0aRBlDqZQwUYN7cZIzXLl8bQMKUOQ==","repository":{"url":"git+https://github.com/emiliaprotocol/emilia-protocol.git","type":"git","directory":"packages/crash-test"},"_npmVersion":"11.19.0","description":"Offline authorization-evidence demonstration: verify an exact-action quorum under relying-party-pinned policy, approver keys, WebAuthn scope, and operator key, then refuse tampering and self-anchored trust.","directories":{},"maintainers":[{"name":"emiliaprotocol","email":"team@emiliaprotocol.ai"}],"_nodeVersion":"24.20.0","dependencies":{"@emilia-protocol/verify":"^3.21.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/crash-test_0.4.2_1789285463662_0.6086708851284286"}}},"time":{"created":"2026-06-22T14:36:48.451Z","modified":"2026-09-13T07:44:24.077Z","0.1.0":"2026-06-22T14:36:48.873Z","0.2.0":"2026-06-22T15:08:45.402Z","0.3.0":"2026-07-01T03:18:42.709Z","0.3.1":"2026-07-13T07:33:10.782Z","0.4.0":"2026-07-17T08:15:37.922Z","0.4.1":"2026-07-22T05:35:26.874Z","0.4.2":"2026-09-13T07:44:23.743Z"},"bugs":{"url":"https://github.com/emiliaprotocol/emilia-protocol/issues"},"license":"Apache-2.0","homepage":"https://www.emiliaprotocol.ai/quorum","keywords":["emilia-protocol","authorization-receipts","dual-control","two-person-rule","quorum","offline-verification","audit-evidence","demo"],"repository":{"url":"git+https://github.com/emiliaprotocol/emilia-protocol.git","type":"git","directory":"packages/crash-test"},"description":"Offline authorization-evidence demonstration: verify an exact-action quorum under relying-party-pinned policy, approver keys, WebAuthn scope, and operator key, then refuse tampering and self-anchored trust.","maintainers":[{"name":"emiliaprotocol","email":"team@emiliaprotocol.ai"}],"readme":"# @emilia-protocol/crash-test\n\n**One command. Two acts. The whole protocol becomes obvious.**\n\n```\nnpx -y @emilia-protocol/crash-test\n```\n\n### Act 1 — Authorization (at the county, today)\nAn AI finance agent proposes a **$2,400,000** grant disbursement to a **new** vendor\nbank account. Self-approval is rejected. Synthetic Finance Director and Controller\nidentifiers sign the exact action with two separately generated WebAuthn-shaped\nkeys. The pinned two-person quorum holds and an authorization receipt is issued.\n\n### Act 2 — Reliance (the auditor's desk, six months later)\nThe network is down. The EMILIA service is deleted. The database is gone. The\nauditor has the receipt and a **relying-party-owned trust profile** established\nout of band. The receipt verifies offline under that profile, while a forged copy\nand presenter-supplied trust material are refused. The auditor gets a workpaper.\n\n> Act 2 is the product. Act 1 is the setup.\n\n## Scenarios — same engine, different high-risk action\n\nThe default tells the county-finance story. Two more show the same EP-QUORUM-v1\npredicate gating high-risk actions in healthcare:\n\n```\nnpx -y @emilia-protocol/crash-test --scenario clinical\n```\nA **high-alert IV medication** (heparin infusion). The agent proposes administration;\nan **independent double-check** by a second qualified clinician is required (the\nISMP / Joint Commission control); the order is signed, then a forged copy with the\ninfusion **rate altered 10×** is rejected. The demonstration uses synthetic patient\nand encounter references. Hashing real identifiers is not, by itself, HIPAA\nde-identification and does not make disclosure permissible.\n\n```\nnpx -y @emilia-protocol/crash-test --scenario procurement\n```\nA **hospital capital purchase** (a $1.85M 3T MRI from a new, off-contract vendor).\nDual control — **Department Director, then CFO** — and a forged copy with the **vendor\nbank account swapped after approval** (textbook payment-redirect / BEC fraud) is\nrejected, because the payee account is inside the signed action.\n\n```\nnpx -y @emilia-protocol/crash-test --scenario release-authorization\n```\nAn **autonomous effector release** in a contested, disconnected environment. An ordered\n**two-person authorization** — Mission Commander, then Weapons Safety Officer — gates the\naction (a requester cannot self-approve); the receipt is verified **offline, at the edge,\nwith EMILIA deleted**; and a forged copy with the **designated track re-pointed to a\ndifferent target after authorization** is rejected, because the exact designated track is\ninside the signed action. Maps to **DoD Directive 3000.09** (\"appropriate levels of human\njudgment over the use of force\"). Necessary, not sufficient: the demonstration\ntests exact-action signature and pinned-policy enforcement. It does not establish\nreal-world identity, human perception, lawfulness, safety, execution, or effects.\n\n## What you get\n\nThe run writes an **Auditor Workpaper Package** to `./emilia-workpaper/`:\n\n- `authorization-receipt.json` — the evidence the auditor keeps.\n- `relying-party-trust-profile.json` — the policy, enrolled approver keys,\n  WebAuthn scope, and operator key the relying party pins independently.\n- `verification-report.md` — an audit-grade determination with a single bolded\n  verdict: **PRESENT AND INDEPENDENTLY VERIFIED** or **ABSENT / UNVERIFIABLE — DO\n  NOT RELY** — the absence made visible, not a silent gap.\n\n## Verify a receipt yourself (the auditor's path)\n\n```\nnpx -y @emilia-protocol/crash-test verify \\\n  ./emilia-workpaper/authorization-receipt.json \\\n  --trust ./emilia-workpaper/relying-party-trust-profile.json\n```\n\nExit code `0` = verified, `1` = do not rely, `2` = malformed or missing input.\nNo network, account, or API key is needed. The check rejects duplicate JSON\nmembers, recomputes the action hash, replaces all presented policy/key material\nwith the relying party's pins, checks WebAuthn RP ID and origin, runs the real\n**EP-QUORUM-v1** predicate, and verifies the commit under the pinned operator key.\n\n## What it proves, and does not prove\n\n**Proves under the supplied trust profile:** the keys enrolled for the listed\napprover identifiers signed *this exact action* under the pinned policy and\nWebAuthn scope; the signed timestamps satisfy the order/window rule; and the\npinned operator key signed the commit record. Altering signed fields is detected.\n\n**Does not prove:** correct enrollment or key custody; absence of collusion or\ncoercion; what a person saw, understood, or intended; trusted time or current\nrevocation unless separately supplied; legality, safety, or wisdom; that execution\noccurred; or that an effect matched or followed the authorization.\n\n## Honesty note\n\nThe demonstration uses real ES256 WebAuthn-shaped signatures minted locally, not\nhardware-backed passkeys or verified people. A production deployment must enroll\nauthenticators, validate attestation as policy requires, protect trust-profile\ndistribution, check revocation/freshness, and use separate execution/effect\nevidence for execution claims. The crash test makes no network calls.\n\nSpec: [draft-schrock-ep-quorum](https://datatracker.ietf.org/doc/draft-schrock-ep-quorum/) ·\n[draft-schrock-ep-authorization-receipts](https://datatracker.ietf.org/doc/draft-schrock-ep-authorization-receipts/)\n\nApache-2.0\n","readmeFilename":"README.md"}