Skip to content

Align verify-l10n-pr skill with the language parity workflow - #15309

Merged
cderv merged 1 commit into
mainfrom
task/verify-l10n-pr-workflow
Nov 5, 2026
Merged

cderv merged 1 commit into
mainfrom
task/verify-l10n-pr-workflow

Conversation

@cderv

@cderv cderv commented Nov 5, 2026

Copy link
Copy Markdown
Member

The verify-l10n-pr skill (#14880) predates the language parity test from #15265 and the per-key reviewed machine translation done for #14822. Using it to land the Arabic localization (#14389) showed three gaps:

  • It compared the file against the _language.yml of the PR's base, so the 11 keys added on main while the PR waited were not reported, although the parity test fails on them.
  • It did not look for other open PRs on the same file. Create _language-ar.yml #14203 added the same Arabic file five weeks before feat: add built-in Arabic localization #14389.
  • It had no procedure for filling keys a contributor never saw, or for finishing a community PR that stayed open for months.

The skill now runs in five steps: duplicates and open questions on the thread, structure against main with the parity test as the merge gate, review of the contributor's values, filling missing keys, and finishing the PR.

The fill procedure is a new reference, references/fill-missing-keys.md. Each key is machine translated with its translator note from _language.yml as context, two reviewers check the values without seeing each other's output, and only values both accept are committed. Anything else goes on the known-gaps list for a native speaker. The finishing steps are the ones used on #15225 and #14389: maintainer fixup with the changelog entry, native-speaker suggestions applied with a Co-authored-by trailer, and machine-translated values listed in the PR with an AI-generated disclosure.

A reference to the landmark-label rule by line number in _language.yml had drifted, it now names the translator note instead.

Related to #14822

Checklist

I have (if applicable):

  • referenced the GitHub issue this PR closes
  • updated the appropriate changelog in the PR
  • ensured the present test suite passes
  • added new tests
  • created a separate documentation PR in Quarto's website repo and linked it to this PR
AI-assisted PR
  • AI tool used: Claude Code
  • Codebase grounding: local clone
  • Human review: I have reviewed, tested, and verified the AI-generated content before submitting.

Note: autonomous AI agents submitting PRs without human oversight are not permitted — see the Code of Conduct.

The skill predates the language parity test and the per-key reviewed
machine translation procedure of #14822. Landing the Arabic PR showed
what it missed: it checked against the PR's base, so keys added to
_language.yml while the PR waited went unnoticed until CI; it never
looked for a second open PR on the same file; and it had no procedure
for filling those keys or finishing a stale community PR.

It now checks against main and names the parity test as the gate,
starts with a duplicate and open-question pass, adds the fill
procedure as a reference (translator note as context, two blind
reviewers, commit only agreed values, otherwise a known gap), and
lists the finishing steps maintainers used for recent language PRs.
The stale line reference to the landmark-label note now names the
note instead.
@posit-snyk-bot

posit-snyk-bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Collaborator

✅ Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
✅ Open Source Security 0 0 0 0 0 issues
✅ Licenses 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@cderv
cderv merged commit aa8c287 into main Nov 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants