Repository navigation
Add merge-crowdin-translations skill - #8508
andrew-polk wants to merge 3 commits into
Conversation
Moves the Crowdin merge procedure out of the localization README into a skill an agent can run. Translations are committed directly on master and cherry-picked directly onto the release branches the developer picks each time, with every question asked through the decider skill. An audit script reports what each branch gains and always lists translations a pick would delete. Wrong translations are fixed on Crowdin as the bot, never only in the repo. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The null-merge guard now counts merge commits too, and the audit notices a translation whose state or surrounding spaces change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
[Medium impact] The workflow affects translation updates on master and developer-selected release branches. Fix the null-merge check and bind release pushes to approved audits before merging. Findings
|
Re-audit a release branch that moved after the developer approved its audit, and clear old report files on each audit run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
[Claude Opus 5.5] Consulted Devin on 2026-10-28 17:00 UTC up to commit 7156bce. First pass raised 3 bugs (threads above); all fixed, and Devin's re-review marks all 3 resolved. 1 informational note, no action needed. |
|
[Claude Opus 5.5] Squashed and pushed directly to master as 6af308a, at the developer's request, after re-running the audit on current master and on the pre-round commits. |
Problem
Bringing Crowdin's translations into Bloom followed a long hand procedure in
DistFiles/localization/README.mdthat had gone stale (an interactive rebase, a commit count "minus 4", two different URLs for the sync page, an old Linux/mono block). It left out steps we actually do every time: cherry-picking the translations onto release branches and null-merging those branches back up. It also never warned that a cherry-pick deletes a release branch's existing translations of strings master has dropped, which we found would have removed 2,231 translations from 6.4 and 6.5 in this batch (all of strings removed on purpose, as it turned out).What the PR does
merge-crowdin-translationsskill, which an agent runs end to end except pausing and resuming Crowdin's sync. It squashesl10n_masterinto one Crowdin Bot commit on master, cherry-picks it to the release branches the developer picks each time (default: one version back), and null-merges each release branch up the stack. No pull requests: the developer approves each push, and every question goes through one decider form.audit_translations.py, which reports per branch what a batch would actually change: translations that land on strings that branch uses, translations of different English wording, and always every translation a pick would delete, flagging ids the branch's code still names.Risk Evaluation
No significant risks. No product code changes; this is documentation plus a script only the skill runs.
Ecosystem Impact
None on Bloom's output or other repos. The skill does write to Crowdin and pushes directly to master and release branches, but only with the developer's approval of each push on a decider form.
Automated Tests
None added.
audit_translations.pywas run against master, Version6.5 and Version6.4 for the 2026-10-28 batch and its counts checked by hand.Test of the change: none — awaiting the developer's decision
E2E Coverage
Not relevant: no Bloom code changes.
Live checks:
57f11e62bc). The gaps it hit are fixed in this version.Notion Test Suite
None.
Preflight report: https://bloombooks.github.io/dev-process-artifacts/deciders/bloomdesktop-crowdin-sync.html
Devin review
This change is