Skip to content

docs: document UTS #39 confusables/homograph as explicit non-goal (PUNY-mjdrwxne)#20

Merged
bart-turczynski merged 1 commit into
mainfrom
docs/puny-mjdrwxne-uts39-nongoal
Jun 16, 2026
Merged

docs: document UTS #39 confusables/homograph as explicit non-goal (PUNY-mjdrwxne)#20
bart-turczynski merged 1 commit into
mainfrom
docs/puny-mjdrwxne-uts39-nongoal

Conversation

@bart-turczynski

Copy link
Copy Markdown
Owner

What

Item D of the standards-compliance audit (PUNY-emjvtzlr). Documentation only — no behaviour change.

host_normalize() is not a safety gate. This makes that explicit so nobody assumes normalization gives spoof protection:

  • Normalization contract (docs/normalization-contract.md): new normative Non-goals: spoofing and display safety subsection — confusable / homograph / mixed-script / display-safety detection (UTS #39 / UTR #36) is explicitly outside the acceptance criteria. A non-NA result asserts validity + normalization under the pinned UTS #46 profile, nothing about visual safety.
  • README: new Non-goals section (no spoof/homograph detection, no URL canonicalization, no DNS resolvability / PSL classification).

Both cross-reference UTS #46's own recommendation to apply UTR #36 / UTS #39 checks as application/UI-layer steps upstack — the argument for placing them in rurl or a dedicated policy layer, not in the normalization primitive. Phrased as "not part of the acceptance criteria", not "never relevant".

🤖 Generated with Claude Code

…NY-mjdrwxne)

host_normalize() is not a safety gate. Add a normative Non-goals section to
the normalization contract and a Non-goals section to the README stating that
spoof / homograph / mixed-script / display-safety detection (UTS #39 / UTR #36)
is explicitly not part of punycoder's acceptance criteria — "not part of the
criteria", not "never relevant". Cross-reference UTS #46's own recommendation
to apply those checks as application/UI-layer steps upstack.

No behaviour change.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@bart-turczynski bart-turczynski merged commit 5ed7c69 into main Jun 16, 2026
1 check passed
@bart-turczynski bart-turczynski deleted the docs/puny-mjdrwxne-uts39-nongoal branch June 16, 2026 19:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant