{
  "formatVersion": 1,
  "testedAt": "2026-10-31T01:48:55.885Z",
  "testDate": "2026-10-30",
  "productVersion": "1.0.0",
  "sourceCommit": "596618a92d1f3885a05e090aed02c799a1eba1fd",
  "sourceNote": "Processor source at sourceCommit; local changes only add evidence and editorial/schema surfaces. No processor edits in this run.",
  "browser": "Chromium / Chrome 156.0.8078.74",
  "node": "v26.8.1",
  "platform": "darwin/arm64",
  "scope": "First-party synthetic local browser processor tests. English report. Not a benchmark, independent review or production run.",
  "license": "CC0-1.0 for these synthetic inputs, outputs and report.",
  "reproduction": [
    "Start the local site with npm ci and npm run dev, or open the matching release of pdfsk.com.",
    "Download each listed input. Select the corresponding tool and the options recorded in runs[].options. Redact coordinates are normalized top-left page coordinates; use page 1, X 10%, Y 20%, width 80%, height 20%.",
    "Merge digital-input.pdf followed by merge-second-input.pdf with no rotation. OCR language: English, searchable PDF enabled. Compression: Balanced (recommended).",
    "Compare page counts, extracted text, visible mask and form flattening. Inspect DOCX word/document.xml for editable text. Compare the recorded file hashes for this run; new exports can differ because of timestamps and browser rendering.",
    "For the negative case, convert invalid-input.pdf to Word and confirm it is rejected. For the OCR limit, inspect the faint small-print line against extracted text."
  ],
  "rerun": "npm run evidence:publish (explicitly regenerates the dated public bundle after real checks pass)",
  "negativeCases": [
    {
      "tool": "pdf-to-word",
      "input": "invalid-input.pdf",
      "rejected": true,
      "error": "Invalid PDF structure."
    }
  ],
  "files": {
    "digital-input.pdf": {
      "url": "/evidence/2026-10-30/2026-10-31T01-48-53-013Z/digital-input.pdf",
      "bytes": 2298,
      "sha256": "1df2efb58eebc0b63d416f6dec6c0bc10caed358564d394ddc3677d50dd07e79"
    },
    "merge-second-input.pdf": {
      "url": "/evidence/2026-10-30/2026-10-31T01-48-53-013Z/merge-second-input.pdf",
      "bytes": 861,
      "sha256": "08f51fcde5ac46cfb870a5040771f30828518307eec2bb936880a30802767e6b"
    },
    "ocr-image-input.pdf": {
      "url": "/evidence/2026-10-30/2026-10-31T01-48-53-013Z/ocr-image-input.pdf",
      "bytes": 21697,
      "sha256": "7a3594ded77a18985fe7f1ad23105eb093c347bd182037d38426c1d3e5d4cafd"
    },
    "invalid-input.pdf": {
      "url": "/evidence/2026-10-30/2026-10-31T01-48-53-013Z/invalid-input.pdf",
      "bytes": 42,
      "sha256": "aa5cb070600d543b7b9b804b767f4be37c51e4ded9270ba84e1061b8eac14412"
    },
    "merged-output.pdf": {
      "url": "/evidence/2026-10-30/2026-10-31T01-48-53-013Z/merged-output.pdf",
      "bytes": 2124,
      "sha256": "2b58e3330be064eeb5bd6364f69554e733ee25a332670c378e94e31e6077176c"
    },
    "word-output.docx": {
      "url": "/evidence/2026-10-30/2026-10-31T01-48-53-013Z/word-output.docx",
      "bytes": 30609,
      "sha256": "44b3fe20721b58cf2b5f8a277918247012cac569d1f7a47de550f7d68cb8f780"
    },
    "compressed-output.pdf": {
      "url": "/evidence/2026-10-30/2026-10-31T01-48-53-013Z/compressed-output.pdf",
      "bytes": 28310,
      "sha256": "d614c8fca313ef48c29c5aec52cb6b5c123ce8cf4d45cfc4c02991cbfb0191ba"
    },
    "redacted-output.pdf": {
      "url": "/evidence/2026-10-30/2026-10-31T01-48-53-013Z/redacted-output.pdf",
      "bytes": 40697,
      "sha256": "8258d431372e217e8d531c815e4d3ea88288c0dff58ccc8eac44c9ab57a6d3b7"
    },
    "ocr-output.pdf": {
      "url": "/evidence/2026-10-30/2026-10-31T01-48-53-013Z/ocr-output.pdf",
      "bytes": 22281,
      "sha256": "cc5d8d3b32be446569ec4937d87b45fcc023c033324689504821b0680378b9d9"
    },
    "archive-output.pdf": {
      "url": "/evidence/2026-10-30/2026-10-31T01-48-53-013Z/archive-output.pdf",
      "bytes": 103278,
      "sha256": "d892402205fb34eed194d1e8aa46c43499aa1762e747883fb86f49f7b85f648e"
    }
  },
  "runs": [
    {
      "slug": "merge-pdf",
      "inputs": [
        "digital-input.pdf",
        "merge-second-input.pdf"
      ],
      "output": "merged-output.pdf",
      "options": {},
      "metrics": {
        "pages": 3,
        "text": [
          "SYNTHETIC PAGE 1 PRIVATE DEMO 123456 PUBLIC KEEP 2468",
          "SYNTHETIC PAGE 2 PUBLIC SECOND PAGE PUBLIC KEEP 2468",
          "APPENDED PAGE 3"
        ],
        "dimensions": [
          [
            420,
            560
          ],
          [
            420,
            560
          ],
          [
            420,
            560
          ]
        ],
        "formFields": 0
      },
      "checks": [
        {
          "name": "PDF parses with expected page count",
          "passed": true
        },
        {
          "name": "Page dimensions preserved",
          "passed": true
        },
        {
          "name": "Input order retained in extracted text",
          "passed": true
        }
      ],
      "limitations": [
        "The source has one form field; the merged output exposes no interactive fields in this sample. Review required form behaviour separately."
      ]
    },
    {
      "slug": "pdf-to-word",
      "inputs": [
        "digital-input.pdf"
      ],
      "output": "word-output.docx",
      "options": {},
      "metrics": {
        "sections": 2,
        "editableTextFrames": 6
      },
      "checks": [
        {
          "name": "Two page sections in DOCX",
          "passed": true
        },
        {
          "name": "Page labels retained as editable Word text",
          "passed": true
        }
      ],
      "limitations": [
        "This is positioned text, not a reconstruction of the source authoring structure. No Word desktop visual comparison was run."
      ]
    },
    {
      "slug": "compress-pdf",
      "inputs": [
        "digital-input.pdf"
      ],
      "output": "compressed-output.pdf",
      "options": {
        "level": "recommended"
      },
      "metrics": {
        "pages": 2,
        "text": [
          "",
          ""
        ],
        "dimensions": [
          [
            420,
            560
          ],
          [
            420,
            560
          ]
        ],
        "formFields": 0,
        "inputBytes": 2298,
        "outputBytes": 28310,
        "sizeChangePercent": 1131.94
      },
      "checks": [
        {
          "name": "PDF parses with expected page count",
          "passed": true
        },
        {
          "name": "Page dimensions preserved",
          "passed": true
        },
        {
          "name": "Raster output has no extracted source text",
          "passed": true
        },
        {
          "name": "Interactive source form is flattened",
          "passed": true
        }
      ],
      "limitations": [
        "This sample loses its original text layer and interactive form. Inspect the exported pages; a PDF opening successfully does not prove fidelity.",
        "File size changed by 1131.94%. Small vector inputs may grow after rasterization."
      ]
    },
    {
      "slug": "redact-pdf",
      "inputs": [
        "digital-input.pdf"
      ],
      "output": "redacted-output.pdf",
      "options": {
        "redactions": [
          {
            "page": 1,
            "x": 0.1,
            "y": 0.2,
            "width": 0.8,
            "height": 0.2
          }
        ]
      },
      "metrics": {
        "pages": 2,
        "text": [
          "",
          ""
        ],
        "dimensions": [
          [
            420,
            560
          ],
          [
            420,
            560
          ]
        ],
        "formFields": 0,
        "maskPixel": [
          17,
          17,
          17,
          255
        ]
      },
      "checks": [
        {
          "name": "PDF parses with expected page count",
          "passed": true
        },
        {
          "name": "Page dimensions preserved",
          "passed": true
        },
        {
          "name": "Raster output has no extracted source text",
          "passed": true
        },
        {
          "name": "Interactive source form is flattened",
          "passed": true
        },
        {
          "name": "Selected mask interior renders dark",
          "passed": true
        }
      ],
      "limitations": [
        "This sample loses its original text layer and interactive form. Inspect the exported pages; a PDF opening successfully does not prove fidelity.",
        "Only one rectangle on page 1 was exercised, using the normalized coordinates recorded below. Multi-region UI behaviour was not evaluated. This is not an independent security certification."
      ]
    },
    {
      "slug": "ocr-pdf",
      "inputs": [
        "ocr-image-input.pdf"
      ],
      "output": "ocr-output.pdf",
      "options": {
        "ocrLanguage": "eng",
        "searchablePdf": true
      },
      "metrics": {
        "pages": 1,
        "text": [
          "SAMPLE OCR 2468 Printed synthetic document"
        ],
        "dimensions": [
          [
            420,
            560
          ]
        ],
        "formFields": 0,
        "smallPrintRecognized": false
      },
      "checks": [
        {
          "name": "PDF parses with expected page count",
          "passed": true
        },
        {
          "name": "Page dimensions preserved",
          "passed": true
        },
        {
          "name": "Clear printed line is searchable",
          "passed": true
        }
      ],
      "limitations": [
        "Faint 8-pixel source line recognized exactly: false. The scan artwork still contains the line; use manual review. No handwriting or non-English accuracy claim is made."
      ]
    },
    {
      "slug": "pdf-to-pdfa",
      "inputs": [
        "digital-input.pdf"
      ],
      "output": "archive-output.pdf",
      "options": {},
      "metrics": {
        "pages": 2,
        "text": [
          "",
          ""
        ],
        "dimensions": [
          [
            420,
            560
          ],
          [
            420,
            560
          ]
        ],
        "formFields": 0
      },
      "checks": [
        {
          "name": "PDF parses with expected page count",
          "passed": true
        },
        {
          "name": "Page dimensions preserved",
          "passed": true
        },
        {
          "name": "Raster output has no extracted source text",
          "passed": true
        },
        {
          "name": "Interactive source form is flattened",
          "passed": true
        }
      ],
      "limitations": [
        "This sample loses its original text layer and interactive form. Inspect the exported pages; a PDF opening successfully does not prove fidelity.",
        "Independent veraPDF conformance validation was not run for this public output; this record is not a PDF/A conformance certificate."
      ]
    }
  ]
}
