{
  "date": "2026-10-04",
  "runtime": "v24.19.0",
  "app_sha256": "b5b23e8c7028a1ee6ede9b41b459f5213af44661fc42f3d8c07b4a45f99c0644",
  "method": "Synthetic fixtures, not Claude samples. Actual homepage script in minimal DOM. Invisible checkbox on; dash Keep unless matrix says otherwise. Observations are fixture-specific, not general application tests.",
  "rows": [
    {
      "label": "Leading UTF-8 BOM",
      "stage": "default decoder",
      "mode": "keep",
      "input": "name",
      "output": "name",
      "input_codepoints": "U+006E U+0061 U+006D U+0065",
      "output_codepoints": "U+006E U+0061 U+006D U+0065",
      "status": "No selected invisible characters found",
      "before": {
        "hasLeadingBOM": false,
        "hasInternalBOM": false,
        "codePointCount": 4
      },
      "after": {
        "hasLeadingBOM": false,
        "hasInternalBOM": false,
        "codePointCount": 4
      },
      "original_utf8_hex": "efbbbf6e616d65"
    },
    {
      "label": "Leading UTF-8 BOM",
      "stage": "ignoreBOM true",
      "mode": "keep",
      "input": "﻿name",
      "output": "name",
      "input_codepoints": "U+FEFF U+006E U+0061 U+006D U+0065",
      "output_codepoints": "U+006E U+0061 U+006D U+0065",
      "status": "Removed 1 invisible character",
      "before": {
        "hasLeadingBOM": true,
        "hasInternalBOM": false,
        "codePointCount": 5
      },
      "after": {
        "hasLeadingBOM": false,
        "hasInternalBOM": false,
        "codePointCount": 4
      },
      "original_utf8_hex": "efbbbf6e616d65"
    },
    {
      "label": "Internal BOM",
      "stage": "default decoder",
      "mode": "keep",
      "input": "na﻿me",
      "output": "name",
      "input_codepoints": "U+006E U+0061 U+FEFF U+006D U+0065",
      "output_codepoints": "U+006E U+0061 U+006D U+0065",
      "status": "Removed 1 invisible character",
      "before": {
        "hasLeadingBOM": false,
        "hasInternalBOM": true,
        "codePointCount": 5
      },
      "after": {
        "hasLeadingBOM": false,
        "hasInternalBOM": false,
        "codePointCount": 4
      },
      "original_utf8_hex": "6e61efbbbf6d65"
    },
    {
      "label": "Internal BOM",
      "stage": "ignoreBOM true",
      "mode": "keep",
      "input": "na﻿me",
      "output": "name",
      "input_codepoints": "U+006E U+0061 U+FEFF U+006D U+0065",
      "output_codepoints": "U+006E U+0061 U+006D U+0065",
      "status": "Removed 1 invisible character",
      "before": {
        "hasLeadingBOM": false,
        "hasInternalBOM": true,
        "codePointCount": 5
      },
      "after": {
        "hasLeadingBOM": false,
        "hasInternalBOM": false,
        "codePointCount": 4
      },
      "original_utf8_hex": "6e61efbbbf6d65"
    },
    {
      "label": "No BOM",
      "stage": "default decoder",
      "mode": "keep",
      "input": "name",
      "output": "name",
      "input_codepoints": "U+006E U+0061 U+006D U+0065",
      "output_codepoints": "U+006E U+0061 U+006D U+0065",
      "status": "No selected invisible characters found",
      "before": {
        "hasLeadingBOM": false,
        "hasInternalBOM": false,
        "codePointCount": 4
      },
      "after": {
        "hasLeadingBOM": false,
        "hasInternalBOM": false,
        "codePointCount": 4
      },
      "original_utf8_hex": "6e616d65"
    },
    {
      "label": "No BOM",
      "stage": "ignoreBOM true",
      "mode": "keep",
      "input": "name",
      "output": "name",
      "input_codepoints": "U+006E U+0061 U+006D U+0065",
      "output_codepoints": "U+006E U+0061 U+006D U+0065",
      "status": "No selected invisible characters found",
      "before": {
        "hasLeadingBOM": false,
        "hasInternalBOM": false,
        "codePointCount": 4
      },
      "after": {
        "hasLeadingBOM": false,
        "hasInternalBOM": false,
        "codePointCount": 4
      },
      "original_utf8_hex": "6e616d65"
    }
  ]
}