You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The translation dashboard (status-translations) carried a "Human review" column that counted open issues labelled translation-review in each edition repo. We removed it on 2026-07-18 because it measured whether anyone had seeded labels, not whether review was happening: programming.fa rendered "—" (no labelled issues) while still needing widespread native review, and programming.zh-cn's "24 open" was a fixed April backlog with no burn-down signal. This issue is the design discussion for collecting a metric worth showing, and it lands here because the mechanisms below live in the engine.
Today's flow: sync opens a PR → review-translations.yml posts a PASS/WARN/FAIL quality report as a comment → a human merges. The verdict is purely advisory, and nothing in the pipeline records whether a human ever looked at the content.
Proposal A — route sync PRs by review verdict
Make the reviewer a gatekeeper instead of a commentator. On each auto-sync PR, the review classifies quality and the workflow acts on it:
High quality → auto-merge (or auto-approve, leaving merge to branch protection), with the verdict recorded in the PR.
Below threshold → apply an editor label and request human review.
The dashboard then counts open/closed editor-labelled PRs per edition — a live measure of human-review demand and burn-down exactly where the pipeline judged a human necessary, rather than a hand-seeded issue count.
Threshold policy: is PASS + zero syntax errors sufficient, or should auto-merge require a stricter bar (e.g. score ≥ 9 and no suggestions touching changed lines)?
Interaction with required checks and with the rebase workflow when several syncs queue on one file (we hit exactly this across zh-cn/fa/fr this week — sequential source PRs touching the same lines, where the newer sync superseded the older).
Provenance: auto-merged PRs should carry a clear marker (label such as auto-merged, plus the verdict in the merge commit or PR body) so a human can always audit what the machine merged.
Proposal B — labelled human audits of the existing corpus
Verdict routing only measures review of incoming changes. For the standing corpus, track deliberate human audits as issues with a dedicated label (one issue per lecture per campaign — the shape zh-cn's #25–#48 already have, formalised): a human-audit (or the existing translation-review) label that dashboards can filter on for coverage and burn-down per edition. Audit outcomes (error classes found: terminology drift, meaning inversion as in lecture-python-programming.fa#106, typography) feed back into glossary and prompt improvements — the audit label becomes the collection point for pipeline-quality data, not just a progress bar.
How they compose
A measures flow (are humans reviewing what the machine flags?); B measures stock (how much of the corpus has a human actually audited?). Both produce label-based signals a collector can read cheaply, and both should be specified in the public metadata/reporting contract (#66) rather than scraped ad hoc.
Origin: program discussion in QuantEcon/project-translation, 2026-07-18, following the sync-PR review pass across the three programming editions.
Context
The translation dashboard (status-translations) carried a "Human review" column that counted open issues labelled
translation-reviewin each edition repo. We removed it on 2026-07-18 because it measured whether anyone had seeded labels, not whether review was happening: programming.fa rendered "—" (no labelled issues) while still needing widespread native review, and programming.zh-cn's "24 open" was a fixed April backlog with no burn-down signal. This issue is the design discussion for collecting a metric worth showing, and it lands here because the mechanisms below live in the engine.Today's flow: sync opens a PR →
review-translations.ymlposts a PASS/WARN/FAIL quality report as a comment → a human merges. The verdict is purely advisory, and nothing in the pipeline records whether a human ever looked at the content.Proposal A — route sync PRs by review verdict
Make the reviewer a gatekeeper instead of a commentator. On each auto-sync PR, the review classifies quality and the workflow acts on it:
editorlabel and request human review.The dashboard then counts open/closed
editor-labelled PRs per edition — a live measure of human-review demand and burn-down exactly where the pipeline judged a human necessary, rather than a hand-seeded issue count.Prerequisites and open questions:
auto-merged, plus the verdict in the merge commit or PR body) so a human can always audit what the machine merged.Proposal B — labelled human audits of the existing corpus
Verdict routing only measures review of incoming changes. For the standing corpus, track deliberate human audits as issues with a dedicated label (one issue per lecture per campaign — the shape zh-cn's #25–#48 already have, formalised): a
human-audit(or the existingtranslation-review) label that dashboards can filter on for coverage and burn-down per edition. Audit outcomes (error classes found: terminology drift, meaning inversion as in lecture-python-programming.fa#106, typography) feed back into glossary and prompt improvements — the audit label becomes the collection point for pipeline-quality data, not just a progress bar.How they compose
A measures flow (are humans reviewing what the machine flags?); B measures stock (how much of the corpus has a human actually audited?). Both produce label-based signals a collector can read cheaply, and both should be specified in the public metadata/reporting contract (#66) rather than scraped ad hoc.
Origin: program discussion in QuantEcon/project-translation, 2026-07-18, following the sync-PR review pass across the three programming editions.