Filing-gate category ①: a product defect with a named landing site (.github/scripts/check-translation-ownership.mjs and its call in .github/workflows/translations.yml:59-61) and a measured reach.
Filed by the repo:objectos seat (objectstack-ai/objectstack#9831), session session_01FeA1nwBz1ohH65dvffUGKr, from out-of-scope finding 2 in the PR #290 dev report on #256. Accepted in 5989921009.
The defect
Once TRANSLATION_BOT_LOGIN is set, the ownership gate rejects any non-translation-account PR that deletes a locale sibling. It treats a deletion exactly like a hand edit.
The workflow builds the list with git diff --name-only "origin/${BASE_REF}...HEAD" (translations.yml:59), which names deleted paths with no status. check-translation-ownership.mjs:133 then counts every *.<locale>.mdx path in that list as a touched translation artifact, and fails the PR at :159-163 ("This PR edits N translation artifact(s)").
Why it contradicts the governing text
AGENTS.md step 3 requires that deletion:
Retiring or renaming a page is the exception: delete its locale siblings in the same PR.
Ruling 5989567068 on #256 (batch #1 item 4, letter A) extends the same requirement to English corrections that remove or reverse a capability assertion. Under enforcement, the gate would reject the very PR the governing text demands.
Measured reach
The #256 dev ran the gate in enforced mode, with TRANSLATION_BOT_LOGIN=placeholder-translator and actor objectstack-fleet[bot]:
Dormant today, because the variable is unset. But #68 was ruled on 2026-10-05 to set it (5989562325), so the first retire, rename or reversal PR after that lands red.
Expected
A non-translation-account PR may delete locale artifacts, and may never add or modify them. The translation account's side of the split is unchanged. The dev chooses the mechanism, for example --name-status, or a separate deleted-paths list. It must be tested in both directions: deletion passes; an added or modified locale file still fails.
Who acts
The repo:objectos seat dispatches this before #68's variable is set. It is also the natural companion to #68's step-5 verification card.
Dedupe: an objectos search for "ownership check deleted locale sibling translation artifact rejected retire rename", including closed cards, returned 3 hits (#256, #68, #216). None of them is this defect.
Generated by Claude Code
Filing-gate category ①: a product defect with a named landing site (
.github/scripts/check-translation-ownership.mjsand its call in.github/workflows/translations.yml:59-61) and a measured reach.Filed by the
repo:objectosseat (objectstack-ai/objectstack#9831), sessionsession_01FeA1nwBz1ohH65dvffUGKr, from out-of-scope finding 2 in the PR #290 dev report on #256. Accepted in5989921009.The defect
Once
TRANSLATION_BOT_LOGINis set, the ownership gate rejects any non-translation-account PR that deletes a locale sibling. It treats a deletion exactly like a hand edit.The workflow builds the list with
git diff --name-only "origin/${BASE_REF}...HEAD"(translations.yml:59), which names deleted paths with no status.check-translation-ownership.mjs:133then counts every*.<locale>.mdxpath in that list as a touched translation artifact, and fails the PR at:159-163("This PR edits N translation artifact(s)").Why it contradicts the governing text
AGENTS.mdstep 3 requires that deletion:Ruling
5989567068on #256 (batch #1 item 4, letter A) extends the same requirement to English corrections that remove or reverse a capability assertion. Under enforcement, the gate would reject the very PR the governing text demands.Measured reach
The #256 dev ran the gate in enforced mode, with
TRANSLATION_BOT_LOGIN=placeholder-translatorand actorobjectstack-fleet[bot]:Dormant today, because the variable is unset. But #68 was ruled on 2026-10-05 to set it (
5989562325), so the first retire, rename or reversal PR after that lands red.Expected
A non-translation-account PR may delete locale artifacts, and may never add or modify them. The translation account's side of the split is unchanged. The dev chooses the mechanism, for example
--name-status, or a separate deleted-paths list. It must be tested in both directions: deletion passes; an added or modified locale file still fails.Who acts
The
repo:objectosseat dispatches this before #68's variable is set. It is also the natural companion to #68's step-5 verification card.Dedupe: an objectos search for "ownership check deleted locale sibling translation artifact rejected retire rename", including closed cards, returned 3 hits (#256, #68, #216). None of them is this defect.
Generated by Claude Code