Split out of #10658 at triage: that card fixes the GATE (the ||-fallback recognizer blindness in scripts/check-error-code-casing.mjs); this card fixes the two CODES it could not see. Different lane (plugin-auth = services), different risk (wire-visible rename), must not ride a tooling PR.
What
packages/plugins/plugin-auth/src/register-sso-provider.ts emits ObjectStack-authored default error codes in lowercase, as the fallback arm of an || chain:
| line | code |
|---|
| 411 | request_domain_verification_failed |
| 465 | verify_domain_failed |
e.g. line 465: code: parsed?.code || 'verify_domain_failed'. The parsed?.code path is the vendor pass-through; the literal is ours. ADR-0112 / Prime Directive #3 require SCREAMING_SNAKE for our error codes. Measured at 47aff0938 (see #10658 for the positive control proving the gate misses this spelling).
Constraints for the fix
Filed by the triage seat; queue-ready (concrete lines, measured, mechanical edit + pin update).
Split out of #10658 at triage: that card fixes the GATE (the
||-fallback recognizer blindness inscripts/check-error-code-casing.mjs); this card fixes the two CODES it could not see. Different lane (plugin-auth = services), different risk (wire-visible rename), must not ride a tooling PR.What
packages/plugins/plugin-auth/src/register-sso-provider.tsemits ObjectStack-authored default error codes in lowercase, as the fallback arm of an||chain:request_domain_verification_failedverify_domain_failede.g. line 465:
code: parsed?.code || 'verify_domain_failed'. Theparsed?.codepath is the vendor pass-through; the literal is ours. ADR-0112 / Prime Directive #3 requireSCREAMING_SNAKEfor our error codes. Measured at47aff0938(see #10658 for the positive control proving the gate misses this spelling).Constraints for the fix
packages/qa/dogfood/test/admin-route-nonadmin-refusal.dogfood.test.ts:252pinsverify_domain_failedby name — update it in the same PR.Clause-②: yes; contract-review tier at dispatch.codein an||fallback matches none of its four recognizers, and two live ones ship today #10658's gate PR: whichever lands second removes the other's temporary expected-finding/allowlist entry so the gate ends up green with zero exceptions.add-memberwas not the only one — 6 of 17 ObjectStack auth mounts are undocumented and 9 of 17 are in no ledger, and nothing catches a mount that lands without either #10534 (SSO mount documentation card, where the codes were found) — this card deliberately does not touch mounts or docs.Filed by the triage seat; queue-ready (concrete lines, measured, mechanical edit + pin update).