Blocked-by: #68
(PM state, repo:objectos seat 2026-08-19: the #74 Blocked-by line above was exhausted — #74 merged — and is replaced by the live upstream. The measurements below were taken at a132376 and have moved; re-measured numbers and the re-priced scope are in the dispatch-review comment, residue listed in #135. Body otherwise unchanged from the filer.)
Surfaced by the output validator added in #74. Filed rather than fixed: the fix
is a translation pass, not a code PR. Every one of these files is a generated
artifact, AGENTS.md forbids hand-editing them, and
check-translation-ownership.mjs rejects a PR that mixes translations with
anything else.
What was measured
On a132376, node .github/scripts/check-translation-output.mjs --report
reports 91 findings across 84 files:
| Rule | Findings | What it means |
|---|
fence | 73 | a fenced code block differs from the English source |
length | 12 | prose length outside ±40% of what that locale runs at |
url | 6 | links to a page the English page never references |
unsafe is 0 — the corpus is clean of markup that must never render.
Why this is not the stale backlog
83 of the 84 files are not stale. They carry a current source_sha, so
check-translations.mjs passes them and the worklist does not include them.
Provenance was never fidelity: these were derived from the current English and
edited during derivation.
Two representative findings:
content/docs/resources/support.de.mdx — the support-ticket template inside a
code fence reports ObjectOS version: 10.2.0. English says 14.7.0. A German
reader following this page files a ticket claiming a version that is four
majors old.content/docs/resources/license.{de,es,fr,ja,ko}.mdx — five locales added the
same sentence linking to /docs/reference/security#data-residency. The
English license page makes no such cross-reference. Five separate locale files
agreeing on content the source does not have is one pass inventing it once.
The length extremes are truncation, not language: positions.de.mdx is 0.30x its
English source and is missing the entire closing migration table — a reader of
the German page never learns the legacy role vocabulary was renamed.
What closing this looks like
Re-derive the affected pages. The list is the check's own output:
node .github/scripts/check-translation-output.mjs --report
One decision for whoever runs it: bumping GUIDE_REV in
check-translations.mjs marks all 256 translations for retranslation and would
clear this debt as a side effect. #74 deliberately did not bump it — that PR
changed how the guide is enforced, not what to translate — but a pass large
enough to fix 84 files may be the moment to.
Until then the debt is reported, not blocking: #74 gates the locale files a PR
changes, so this shrinks as pages are re-derived instead of demanding a
flag-day cleanup.
Blocked-by: #68
(PM state, repo:objectos seat 2026-08-19: the
#74Blocked-by line above was exhausted — #74 merged — and is replaced by the live upstream. The measurements below were taken ata132376and have moved; re-measured numbers and the re-priced scope are in the dispatch-review comment, residue listed in #135. Body otherwise unchanged from the filer.)Surfaced by the output validator added in #74. Filed rather than fixed: the fix
is a translation pass, not a code PR. Every one of these files is a generated
artifact, AGENTS.md forbids hand-editing them, and
check-translation-ownership.mjsrejects a PR that mixes translations withanything else.
What was measured
On
a132376,node .github/scripts/check-translation-output.mjs --reportreports 91 findings across 84 files:
fencelengthurlunsafeis 0 — the corpus is clean of markup that must never render.Why this is not the stale backlog
83 of the 84 files are not stale. They carry a current
source_sha, socheck-translations.mjspasses them and the worklist does not include them.Provenance was never fidelity: these were derived from the current English and
edited during derivation.
Two representative findings:
content/docs/resources/support.de.mdx— the support-ticket template inside acode fence reports
ObjectOS version: 10.2.0. English says14.7.0. A Germanreader following this page files a ticket claiming a version that is four
majors old.
content/docs/resources/license.{de,es,fr,ja,ko}.mdx— five locales added thesame sentence linking to
/docs/reference/security#data-residency. TheEnglish license page makes no such cross-reference. Five separate locale files
agreeing on content the source does not have is one pass inventing it once.
The length extremes are truncation, not language:
positions.de.mdxis 0.30x itsEnglish source and is missing the entire closing migration table — a reader of
the German page never learns the legacy role vocabulary was renamed.
What closing this looks like
Re-derive the affected pages. The list is the check's own output:
One decision for whoever runs it: bumping
GUIDE_REVincheck-translations.mjsmarks all 256 translations for retranslation and wouldclear this debt as a side effect. #74 deliberately did not bump it — that PR
changed how the guide is enforced, not what to translate — but a pass large
enough to fix 84 files may be the moment to.
Until then the debt is reported, not blocking: #74 gates the locale files a PR
changes, so this shrinks as pages are re-derived instead of demanding a
flag-day cleanup.