{
  "topic": "YAML parser behaviour differences (YAML 1.1 vs 1.2 ambiguous scalars)",
  "measuredAt": "2026-07-10",
  "environment": {
    "machine": "Apple M5 Pro (macOS, Darwin 25.5.0)",
    "node": "v26.3.1",
    "python": "3.14.6"
  },
  "cases": [
    {
      "id": "norway-NO",
      "yaml": "value: NO",
      "question": "YAML 1.1 boolean (Norway problem) or string?"
    },
    {
      "id": "on-keyword",
      "yaml": "value: on",
      "question": "YAML 1.1 on/off boolean or string?"
    },
    {
      "id": "yes-keyword",
      "yaml": "value: yes",
      "question": "YAML 1.1 yes/no boolean or string?"
    },
    {
      "id": "single-y",
      "yaml": "value: y",
      "question": "YAML 1.1 spec lists y/n as boolean — do parsers follow?"
    },
    {
      "id": "octal-legacy",
      "yaml": "value: 010",
      "question": "YAML 1.1 octal (8) or decimal 10 or string?"
    },
    {
      "id": "octal-12",
      "yaml": "value: 0o10",
      "question": "YAML 1.2 octal notation (8) or string?"
    },
    {
      "id": "sexagesimal",
      "yaml": "value: 1:30",
      "question": "YAML 1.1 sexagesimal (90) or string?"
    },
    {
      "id": "bare-date",
      "yaml": "value: 2026-07-10",
      "question": "timestamp/date object or string?"
    },
    {
      "id": "dot-inf",
      "yaml": "value: .inf",
      "question": "Infinity or string?"
    },
    {
      "id": "duplicate-keys",
      "yaml": "a: 1\na: 2",
      "question": "error, last-wins, or first-wins?"
    },
    {
      "id": "merge-key",
      "yaml": "base: &b\n  x: 1\nchild:\n  <<: *b\n  y: 2",
      "question": "merge key << supported?"
    },
    {
      "id": "tilde-null",
      "yaml": "value: ~",
      "question": "null or string?"
    }
  ],
  "parsers": [
    {
      "parser": "js-yaml 4.1.1 load (DEFAULT_SCHEMA)",
      "results": {
        "norway-NO": {
          "type": "string",
          "repr": "\"NO\""
        },
        "on-keyword": {
          "type": "string",
          "repr": "\"on\""
        },
        "yes-keyword": {
          "type": "string",
          "repr": "\"yes\""
        },
        "single-y": {
          "type": "string",
          "repr": "\"y\""
        },
        "octal-legacy": {
          "type": "number",
          "repr": "10"
        },
        "octal-12": {
          "type": "number",
          "repr": "8"
        },
        "sexagesimal": {
          "type": "string",
          "repr": "\"1:30\""
        },
        "bare-date": {
          "type": "Date",
          "repr": "2026-07-10T00:00:00.000Z"
        },
        "dot-inf": {
          "type": "number",
          "repr": "Infinity"
        },
        "duplicate-keys": {
          "type": "error",
          "repr": "duplicated mapping key (2:1)"
        },
        "merge-key": {
          "type": "object",
          "repr": "{\"base\":{\"x\":1},\"child\":{\"x\":1,\"y\":2}}"
        },
        "tilde-null": {
          "type": "null",
          "repr": "null"
        }
      }
    },
    {
      "parser": "yaml (eemeli) 2.8.3 parse (defaults)",
      "results": {
        "norway-NO": {
          "type": "string",
          "repr": "\"NO\""
        },
        "on-keyword": {
          "type": "string",
          "repr": "\"on\""
        },
        "yes-keyword": {
          "type": "string",
          "repr": "\"yes\""
        },
        "single-y": {
          "type": "string",
          "repr": "\"y\""
        },
        "octal-legacy": {
          "type": "number",
          "repr": "10"
        },
        "octal-12": {
          "type": "number",
          "repr": "8"
        },
        "sexagesimal": {
          "type": "string",
          "repr": "\"1:30\""
        },
        "bare-date": {
          "type": "string",
          "repr": "\"2026-07-10\""
        },
        "dot-inf": {
          "type": "number",
          "repr": "Infinity"
        },
        "duplicate-keys": {
          "type": "error",
          "repr": "Map keys must be unique at line 2, column 1:"
        },
        "merge-key": {
          "type": "object",
          "repr": "{\"base\":{\"x\":1},\"child\":{\"<<\":{\"x\":1},\"y\":2}}"
        },
        "tilde-null": {
          "type": "null",
          "repr": "null"
        }
      }
    },
    {
      "parser": "PyYAML 6.0.3 safe_load",
      "results": {
        "norway-NO": {
          "type": "boolean",
          "repr": "false"
        },
        "on-keyword": {
          "type": "boolean",
          "repr": "true"
        },
        "yes-keyword": {
          "type": "boolean",
          "repr": "true"
        },
        "single-y": {
          "type": "string",
          "repr": "\"y\""
        },
        "octal-legacy": {
          "type": "number",
          "repr": "8"
        },
        "octal-12": {
          "type": "string",
          "repr": "\"0o10\""
        },
        "sexagesimal": {
          "type": "number",
          "repr": "90"
        },
        "bare-date": {
          "type": "date",
          "repr": "2026-07-10"
        },
        "dot-inf": {
          "type": "number",
          "repr": "inf"
        },
        "duplicate-keys": {
          "type": "object",
          "repr": "{\"a\": \"2\"}"
        },
        "merge-key": {
          "type": "object",
          "repr": "{\"base\": \"{'x': 1}\", \"child\": \"{'x': 1, 'y': 2}\"}"
        },
        "tilde-null": {
          "type": "null",
          "repr": "null"
        }
      }
    },
    {
      "parser": "ruamel.yaml 0.19.1 typ=safe",
      "results": {
        "norway-NO": {
          "type": "string",
          "repr": "\"NO\""
        },
        "on-keyword": {
          "type": "string",
          "repr": "\"on\""
        },
        "yes-keyword": {
          "type": "string",
          "repr": "\"yes\""
        },
        "single-y": {
          "type": "string",
          "repr": "\"y\""
        },
        "octal-legacy": {
          "type": "number",
          "repr": "10"
        },
        "octal-12": {
          "type": "number",
          "repr": "8"
        },
        "sexagesimal": {
          "type": "string",
          "repr": "\"1:30\""
        },
        "bare-date": {
          "type": "date",
          "repr": "2026-07-10"
        },
        "dot-inf": {
          "type": "number",
          "repr": "inf"
        },
        "duplicate-keys": {
          "type": "error",
          "repr": "while constructing a mapping"
        },
        "merge-key": {
          "type": "object",
          "repr": "{\"base\": \"{'x': 1}\", \"child\": \"{'x': 1, 'y': 2}\"}"
        },
        "tilde-null": {
          "type": "null",
          "repr": "null"
        }
      }
    }
  ]
}
