{
  "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": "Em dash",
      "stage": "direct string",
      "mode": "keep",
      "input": "left—right",
      "output": "left—right",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2014 U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+2014 U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "No selected invisible characters found",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      }
    },
    {
      "label": "Em dash",
      "stage": "direct string",
      "mode": "replace",
      "input": "left—right",
      "output": "left-right",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2014 U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+002D U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "Replaced 1 dash",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 1,
        "asciiSpaces": 0
      }
    },
    {
      "label": "Em dash",
      "stage": "direct string",
      "mode": "remove",
      "input": "left—right",
      "output": "leftright",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2014 U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "Removed 1 dash",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      }
    },
    {
      "label": "Two-em dash",
      "stage": "direct string",
      "mode": "keep",
      "input": "left⸺right",
      "output": "left⸺right",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2E3A U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+2E3A U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "No selected invisible characters found",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      }
    },
    {
      "label": "Two-em dash",
      "stage": "direct string",
      "mode": "replace",
      "input": "left⸺right",
      "output": "left-right",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2E3A U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+002D U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "Replaced 1 dash",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 1,
        "asciiSpaces": 0
      }
    },
    {
      "label": "Two-em dash",
      "stage": "direct string",
      "mode": "remove",
      "input": "left⸺right",
      "output": "leftright",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2E3A U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "Removed 1 dash",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      }
    },
    {
      "label": "Three-em dash",
      "stage": "direct string",
      "mode": "keep",
      "input": "left⸻right",
      "output": "left⸻right",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2E3B U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+2E3B U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "No selected invisible characters found",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      }
    },
    {
      "label": "Three-em dash",
      "stage": "direct string",
      "mode": "replace",
      "input": "left⸻right",
      "output": "left-right",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2E3B U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+002D U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "Replaced 1 dash",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 1,
        "asciiSpaces": 0
      }
    },
    {
      "label": "Three-em dash",
      "stage": "direct string",
      "mode": "remove",
      "input": "left⸻right",
      "output": "leftright",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2E3B U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "Removed 1 dash",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      }
    },
    {
      "label": "En dash",
      "stage": "direct string",
      "mode": "keep",
      "input": "left–right",
      "output": "left–right",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2013 U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+2013 U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "No selected invisible characters found",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      }
    },
    {
      "label": "En dash",
      "stage": "direct string",
      "mode": "replace",
      "input": "left–right",
      "output": "left–right",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2013 U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+2013 U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "No selected invisible characters found",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      }
    },
    {
      "label": "En dash",
      "stage": "direct string",
      "mode": "remove",
      "input": "left–right",
      "output": "left–right",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2013 U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+2013 U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "No selected invisible characters found",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      }
    },
    {
      "label": "Minus sign",
      "stage": "direct string",
      "mode": "keep",
      "input": "left−right",
      "output": "left−right",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2212 U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+2212 U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "No selected invisible characters found",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      }
    },
    {
      "label": "Minus sign",
      "stage": "direct string",
      "mode": "replace",
      "input": "left−right",
      "output": "left−right",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2212 U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+2212 U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "No selected invisible characters found",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      }
    },
    {
      "label": "Minus sign",
      "stage": "direct string",
      "mode": "remove",
      "input": "left−right",
      "output": "left−right",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2212 U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+2212 U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "No selected invisible characters found",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      }
    },
    {
      "label": "Non-breaking hyphen",
      "stage": "direct string",
      "mode": "keep",
      "input": "left‑right",
      "output": "left‑right",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2011 U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+2011 U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "No selected invisible characters found",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      }
    },
    {
      "label": "Non-breaking hyphen",
      "stage": "direct string",
      "mode": "replace",
      "input": "left‑right",
      "output": "left‑right",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2011 U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+2011 U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "No selected invisible characters found",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      }
    },
    {
      "label": "Non-breaking hyphen",
      "stage": "direct string",
      "mode": "remove",
      "input": "left‑right",
      "output": "left‑right",
      "input_codepoints": "U+006C U+0065 U+0066 U+0074 U+2011 U+0072 U+0069 U+0067 U+0068 U+0074",
      "output_codepoints": "U+006C U+0065 U+0066 U+0074 U+2011 U+0072 U+0069 U+0067 U+0068 U+0074",
      "status": "No selected invisible characters found",
      "before": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      },
      "after": {
        "asciiHyphens": 0,
        "asciiSpaces": 0
      }
    }
  ]
}