{
  "schemaVersion": 1,
  "verdictId": "stage-d-canonical-approval-boundary-fresh-hostile-verdict-2026-08-03-v1",
  "reviewedAtUtc": "2026-08-03",
  "reviewerType": "fresh-hostile-independent-code-and-trust-boundary-critic",
  "reviewMode": "read-only-hostile-code-review",
  "approvalScope": "Approves only the exact receipt-bound Stage D canonical approval boundary as the sole production authority entry point for passing the canonical Stage D ontology into Stage E.",
  "grade": "A",
  "confidence": 0.995,
  "boundaryApproved": true,
  "decisiveBlockers": [],
  "conclusion": "No decisive trust-boundary blocker was found. The public API accepts only projectRoot, exact-replays the single-link R2 scaffold, canonical proposal, synthesis report and both independent A-grade verdicts, preserves the failed R1 C/B verdicts as non-authority, rejects report or proposal self-approval, and returns a deep-frozen digest-bound approval limited to Stage E canonical ontology authority.",
  "verifiedProperties": [
    "The public canonical approval module exports only its protocol version and validateReviewedStageDCanonicalApproval.",
    "The production validation function accepts exactly an object with projectRoot and rejects caller-supplied verdicts, receipts, paths, proposals and authority overrides.",
    "The exact synthesis-r2 input packet, canonical proposal assignment, canonical synthesis assignment, canonical proposal and synthesis report are replayed against code-owned path, byte and raw SHA-256 receipts.",
    "All receipt-shaped bindings in the exact R2 structural and semantic verdicts are reread through the production single-link, no-symlink, project-root-contained reader.",
    "Both R2 verdicts are exact-receipt-bound and closed over their verdict ID, reviewer policy, approval scope, A grade, approval flag, empty blocker field and required next gate.",
    "The exact synthesis-r1 structural C verdict and semantic B verdict remain non-approving evidence and cannot become canonical authority.",
    "A synthesis report or proposal that claims canonical approval is rejected before approval creation.",
    "The approval and receipt are deeply frozen, and the canonical digest detects later authority or scope mutation.",
    "The in-digest authority boundary grants only Stage E canonical ontology authority."
  ],
  "operatingBoundary": {
    "requiredEntryPoint": "scripts/reviewed-stage-d-canonical-approval.mjs#validateReviewedStageDCanonicalApproval",
    "requiredCallShape": "validateReviewedStageDCanonicalApproval({ projectRoot })",
    "internalCoreIsAuthentication": false,
    "digestHelperIsAuthentication": false,
    "downstreamRule": "Stage E must call the public projectRoot validator and must never treat an internal trusted-injection core or digest helper as approval authentication."
  },
  "exclusions": {
    "stageECanonicalOntologyAuthority": false,
    "appContentApproved": false,
    "appInventoryApproved": false,
    "rankingApproved": false,
    "storefrontCopyApproved": false,
    "publicPublicationApproved": false,
    "deploymentApproved": false,
    "domainChangeApproved": false
  },
  "scopeClarification": "This verdict approves the canonical approval boundary implementation only. It does not itself grant or replace the boundary's Stage E ontology approval, and it grants no authority over app content, inventory, ranks, storefront copy, public publication, deployment or domain changes.",
  "bindings": {
    "reviewedFiles": {
      "canonicalApprovalCore": {
        "path": "scripts/internal/reviewed-stage-d-canonical-approval-core.mjs",
        "bytes": 8304,
        "sha256": "17c5c62d3dd145db05c05b99fb441b0d0f7b0597b8d391ac082f90c079cf8c88",
        "nlink": 1
      },
      "canonicalApprovalEntryPoint": {
        "path": "scripts/reviewed-stage-d-canonical-approval.mjs",
        "bytes": 10278,
        "sha256": "0e9e204fbe53ca1867e858a264819203871fd95c9661c0852dff48bc8f0d34d6",
        "nlink": 1
      },
      "canonicalApprovalTests": {
        "path": "tests/reviewed-stage-d-canonical-approval.test.mjs",
        "bytes": 8179,
        "sha256": "bd88861dc25b1363965c5dc1d844b0096dbcd1635dbc063d854043440ea3c05c",
        "nlink": 1
      }
    },
    "productionWrapperAndContractEvidence": {
      "productionSynthesisEntryPoint": {
        "path": "scripts/stage-d-synthesis-contract.mjs",
        "bytes": 9273,
        "sha256": "07cb485a5579d8846375c52487d448bbc72b65ecee5a64151c3f370abae6e973",
        "nlink": 1
      },
      "productionSynthesisWrapperCore": {
        "path": "scripts/internal/production-stage-d-synthesis-wrapper-core.mjs",
        "bytes": 19391,
        "sha256": "4b2eae09dd6bc6a4b7d953872f034ec5fc90b589cccd8c9255c50ef4c6961c3c",
        "nlink": 1
      },
      "synthesisContractCore": {
        "path": "scripts/internal/stage-d-synthesis-contract-core.mjs",
        "bytes": 42365,
        "sha256": "bebddc815d5e257716aa730eaa3595536232d6bb5588f95f26d2c9dd8ee69e34",
        "nlink": 1
      },
      "productionSynthesisWrapperTests": {
        "path": "tests/stage-d-synthesis-production-wrapper.test.mjs",
        "bytes": 9278,
        "sha256": "b294cdd7c4206495c3c4a26899211569d347c627f7404d5672f1ffb35d7f1e60",
        "nlink": 1
      }
    },
    "synthesisR2Artifacts": {
      "inputPacket": {
        "path": "research/rebuild/discontinuity-r2/stage-d-fresh/v3/synthesis-r2/input-packet.json",
        "bytes": 17880,
        "sha256": "c89b5b6238e63a3e90f76b94da511e278348fbb8071cfdae826bfdd5c8a63c7f",
        "nlink": 1
      },
      "canonicalProposalAssignment": {
        "path": "research/rebuild/discontinuity-r2/stage-d-fresh/v3/synthesis-r2/canonical-proposal-assignment.json",
        "bytes": 2831,
        "sha256": "8856acb6ef57912332ce73b82364501f7e8a75832beb2152fd50c639d3943186",
        "nlink": 1
      },
      "canonicalSynthesisAssignment": {
        "path": "research/rebuild/discontinuity-r2/stage-d-fresh/v3/synthesis-r2/canonical-synthesis-assignment.json",
        "bytes": 3084,
        "sha256": "9b5e75db1bebe91db0c2730882d579d6511a129689d6a413c124bd35ecc88f0f",
        "nlink": 1
      },
      "canonicalProposal": {
        "path": "research/rebuild/discontinuity-r2/stage-d-fresh/v3/synthesis-r2/canonical-proposal.json",
        "bytes": 1173660,
        "sha256": "c39154c2104e86ed33966b2eccd89f04645ac60d0ad082ea3298e2a730408de6",
        "canonicalSha256": "935896bb294a6b1b032bb1c16d991fa48158f1751a2c8b2145903af135d229f3",
        "nlink": 1
      },
      "synthesisReport": {
        "path": "research/rebuild/discontinuity-r2/stage-d-fresh/v3/synthesis-r2/synthesis-report.json",
        "bytes": 95929,
        "sha256": "d1d92c67abe1435fa018b21f03b3e61dbedea8132391093dee1ac1513bec5fdd",
        "nlink": 1
      },
      "structuralVerdict": {
        "path": "research/rebuild/discontinuity-r2/stage-d-fresh/v3/synthesis-r2/structural-verdict.json",
        "bytes": 18940,
        "sha256": "3f768625892ffc19118bef732e42edc945bedf95184ee6c9fd8fde5cc7866814",
        "grade": "A",
        "publicationApproved": true,
        "nlink": 1
      },
      "semanticVerdict": {
        "path": "research/rebuild/discontinuity-r2/stage-d-fresh/v3/synthesis-r2/semantic-verdict.json",
        "bytes": 23946,
        "sha256": "6267e7eb33aca4bd9cfc334328be2fe8bf4ebc70cd75aafcab28cfcdbf64713f",
        "grade": "A",
        "publicationApproved": true,
        "nlink": 1
      }
    }
  },
  "independentVerification": {
    "command": "npm run typecheck && node --test tests/reviewed-stage-d-canonical-approval.test.mjs tests/stage-d-synthesis-production-wrapper.test.mjs tests/internal-stage-d-synthesis-contract-core.test.mjs",
    "typecheck": {
      "status": "passed",
      "command": "tsc --noEmit --pretty false"
    },
    "tests": {
      "status": "passed",
      "total": 28,
      "passed": 28,
      "failed": 0,
      "cancelled": 0,
      "skipped": 0,
      "todo": 0
    }
  }
}
