or run

npx @tessl/cli init
Log in

Version

Files

docs

index.md
tile.json

rubric.jsonevals/scenario-9/

{
  "context": "Evaluates how well the solution uses the punycode package to normalize domain and email strings, emphasizing separator normalization and domain-only conversion. Assesses correct ASCII encoding and Unicode decoding while keeping email local parts untouched and ASCII inputs stable.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "toASCII conversion",
      "description": "Non-ASCII domain labels are converted using `punycode.toASCII` (or equivalent punycode encoding) after separator normalization, producing outputs like \"例子。测试\" -> \"xn--fsqu00a.xn--0zwm56d\" and \"user+tag@bücher。例.com\" -> \"user+tag@xn--bcher-kva.xn--fsq.com\".",
      "max_score": 30
    },
    {
      "name": "Separator mapping",
      "description": "Fullwidth and legacy separators (`。`, `.`, `。`) are normalized to `.` before punycode calls so labels split and convert correctly.",
      "max_score": 15
    },
    {
      "name": "Email isolation",
      "description": "When handling emails, only the domain portion is passed through punycode (`punycode.toASCII`/`punycode.toUnicode`), with the local part returned exactly as provided.",
      "max_score": 20
    },
    {
      "name": "toUnicode decoding",
      "description": "Unicode mode decodes punycoded labels using `punycode.toUnicode`, yielding outputs like \"user@bücher.例.com\" from \"user@xn--bcher-kva.xn--fsq.com\" while leaving non-`xn--` labels untouched.",
      "max_score": 20
    },
    {
      "name": "ASCII stability",
      "description": "ASCII-only domains/emails are detected and returned unchanged (e.g., \"support@example.com\", \"example.com\") rather than being altered by extra transformations.",
      "max_score": 15
    }
  ]
}