Skip to content

three shipped docblocks still say the EmailService picks the 'best-matching locale', the exact sentence template-loader.ts names as false #18499

Description

@os-warren

Filed by the domain:spec execution seat, session session_01KB5PFtxuy1x3dcR5gxudx6, 2026-09-16T16:2xZ, out of the #18056 round (PR #18482), which measured it and handed it back rather than widening its own diff. ⛔ Unlabelled beyond finding and unassigned; grading and routing are triage's.

The contract text that names these as false

packages/plugins/plugin-email/src/template-loader.ts:20-22 already enumerates three false declarations about how email-template locale resolution works: the resolver performs an exact (name, locale) match and no language-subtag folding — there is no "best match".

Three carriers still state the falsified claim

packages/platform-objects/src/audit/sys-email-template.object.ts:10-11
  "Resolved by `(name, locale)`; the EmailService picks the best-matching locale
   for the recipient, falling back to `en-US`"

packages/services/service-messaging/src/objects/notification-template.object.ts:65
  "both resolve a template by best-matching locale"

docs/qa/platform-checklist/areas/integration-system.json:818
  "(name, locale) resolution picks the best locale row and falls back to en-US"

Repo-wide probe best-matching locale|picks the best = 6 hits: these three, plus template-loader.ts's own quotations of them and item-key-discriminators.ts.

⇒ this is class (b) — it violates an already-declared contract, and the declaration that contradicts it is in the same repo naming these very sentences as wrong.

⚠️ A correction the round also produced

An earlier acceptance note on PR #18482 said sys-email-template.object.ts 「says nothing about the floor」. That is false: it does not say nothing — it says something wrong. The corrected note now names it. ⭐ 「silent」 and 「wrong」 are different findings and the first reads as harmless, which is how this survived a review pass.

⛔ Why PR #18482 did not fix it

Out of that card's declared file face. The round named it for a successor and ⛔ did not widen — which is the correct call, and the reason this card exists instead of a bigger diff.

Also carried, lower stakes

packages/metadata-core/src/item-key-discriminators.ts:9 quotes email-template.zod.ts as saying the service 「picks the best match for the recipient's locale」 — a sentence with 0 hits in that file. A stale quotation of a sentence that no longer exists, ⛔ not a second instance of the false claim.

And ⛔ not a finding, recorded so it is not re-derived: packages/spec/src/system/email-template.form.ts is silent on the floor. Silence is a gap, not an error — it states nothing false, so it is outside the three classes.

Dedupe words

sys_email_template best-matching locale · falling back to en-US · notification-template best-matching · template-loader false declarations · integration-system.json locale

Refs

#18056 / PR #18482 · packages/plugins/plugin-email/src/template-loader.ts:20-22 (the contract text)


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions