DMR contributor system: new-request form, review pages, docs
Contributor-facing surface for raising and reviewing Data Maintenance Requests, running entirely client-side against the static site.
New request form (src/components/dmr/):
- Split into explicit steps. Step 1 locates the place via Nominatim and sets coordinates, country and subdivision; the search query is separate from the entry name, so a contributor can pin "Faro" and still submit "Faro Pt". Not-found falls back to placing the pin on the map directly.
- Step 2 takes the name. "Name without diacritics" (Rec 16 col 5) is now derived and read-only; asciiFold handles letters that do not decompose under NFD (O-slash, ae, eszett, l-stroke) so the field always yields valid ASCII.
- Suggested code (Rec 16 col 7) gains a generator implementing Rec 16 6.2.2.1.2: mnemonic link to the name, never duplicating a code already allocated in that country, letters only. Numerals 2-9 unlock solely once all 17,576 letter combinations for the country are taken; 0 and 1 are never emitted. Auto-fills once the location is found, regenerates against the current name, and never overwrites a code the contributor typed themselves.
- Request summary shows the full spaced LOCODE (PT FAR) driven by the country selection, not the bare location code.
CLAUDE.md hard rule 1 is amended to carry a narrow, explicitly scoped exception for that one field, citing Rec 16 6.3.2, which permits a requester to propose a code the secretariat may override. The rule otherwise stands, and status has no exception anywhere.
Also: review/browse/publish pages, maintenance team guide and access docs, design-system primitives (src/components/ds/), and design tokens. User-facing copy no longer names GitLab -- requests are described as going to the maintenance team, with sign-in documented separately.
The design-tool handoff bundle is gitignored; components/dmr and components/ds are the implementation of record.
#49 (closed) #48 (closed) #47 #44 (closed) #42
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com