repo create: suggest a name the server would accept
Commit

The parenthetical was the typed string minus four bytes, which is only
advice by coincidence. "WEB.git" was answered with (use "WEB"), and the
server then refused "WEB" for carrying uppercase -- a second refusal,
naming a rule the first message had not mentioned. A raw ULID, a name with
consecutive dots, a 65-character name and an underscored one were all
proposed the same way.
Lowercase the remainder and check its shape before offering it. Create is the one path that does not fold case: lookups fold, which is why nativeRepoRe accepts uppercase, but an uppercase name is refused outright at create time. So the answer to "WEB.git" is "web".
The shape checks reuse what is already here -- nativeRepoRe, which carries the server's accepted name shape, plus the two rules a regexp cannot. No second copy of that shape was needed.
This gates whether the CLI speaks, never whether it refuses, and that is
what makes a local check safe here. nativeRepoRe drifts one way: if the
accepted shape loosens, a local check refuses names that would work. A ref
survives that -- a ULID or a full entire:// URL gets past it -- but a
refused create has no escape hatch, so the name itself stays the
server's to judge. Going quiet costs a hint; guessing wrong costs a name
the user cannot create.
Refs COR-1892
Entire-Checkpoint: 01M3SM88R8R1H0NEAC1AHWHRJG