docs(teams): use the correct presentation of the project name, and match both forms #152
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/teams-name-presentation"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What & why
Follow-up to #151, which merged while this fix was being written — so it landed with the wrong
presentation of the project name in three places, one of them the upload warning text an operator will
actually read.
"Runic Gateway" (two words) is the correct presentation. "RunicGateway" is accepted only where
the name has to condense to a single token — the Gitea org, a package name, a URL segment. The three
prose uses in
website/TEAMS.mdhad the condensed form for no reason:The
RunicGateway/<repo>slugs throughoutandroid/PLAN.mdare condensed by necessity and aredeliberately untouched.
This turned out to be more than presentation
The reserved-name matcher (§2.8) exists to stop a player naming a guild something that impersonates
staff or the project. It specified whole-word matching over a normalisation that case-folds, strips
punctuation and collapses whitespace.
Under exactly that rule,
RunicGatewayis a single word and would never have matched the two-wordterm
Runic Gateway— so the check would have missed the form an impersonator is most likely totype, precisely because it is what the org and every URL already use. The check would have looked
correct, passed review, and had a hole in the one input it was written for.
Fix: a term containing whitespace is additionally compared with whitespace removed on both sides,
so
Runic GatewaymatchesRunicGateway,runic-gateway,Runic_GatewayandRUNIC GATEWAYalike.The widening applies only to terms that contain whitespace, which keeps it clear of the single-word
terms where whole-word matching is doing the false-positive work —
adminis still compared as a wordand still does not fire on "Badminton". A two-word term is specific enough that running its letters
together cannot collide with ordinary vocabulary.
Listing the condensed form as a second reserved term was the alternative and was rejected: it is another
thing to keep in sync, and it would still miss the hyphenated and underscored variants.
The same reasoning is noted for a deployment's own
BRAND_NAME, which is free text and may well bespaced — an operator's condensed brand is just as impersonable.
How it was tested
Documentation only — no code, no schema, no routes.
RunicGatewayoccurrence in both files enumerated and classified as prose (fixed) or arequired single-token slug (left alone); re-grepped after, and the only remaining occurrences in
TEAMS.mdare the three that are discussing the condensed form.account" is one character longer, so the trailing padding was reduced to match.
Checklist
AI-assisted contributions (required)
Claude Code (Opus 5). I have reviewed and understandevery change, and take responsibility for it. AI-authored commits are
marked with a
Co-Authored-By/Assisted-Bytrailer.License
(GNU GPL v3.0 or later), and I have the right to contribute it.
🤖 Generated with Claude Code
https://claude.ai/code/session_01WnDSWzpUjw8t8C2hghysNz