Review
The Review surface is where translations are checked block by block. It is a sibling of the Translation Editor, scoped to the same file and reached from the surface switcher in the header.
Review is deliberately separate from editing: the Translate editor stays focused on producing translations, while Review is focused on accepting them.
Review is also the promote step of catching content up: what a run of
kapi up — or a server-side convergence run — parks because a machine
cannot decide it lands here as pending work. Approving it moves the unit past
what the loop can do unaided; the next run reads the decision and moves on.
The Review surface steps through a file block by block — source, target, and the draft→translated→reviewed status — with approvals recorded against the workspace. Review status is tracked per locale: a block's status is a property of each target variant, so reviewing the French target never changes the German one, and the status you see is for the locale you are reviewing.
Source review: the phase-1 worklist
Target review is the second gate. The loop settles the source before it
translates (the loop is source-first), so a run has a first, upstream
worklist: source review. When a convergence run finds source that has not
cleared the project's source_gate, it does not fan out — it holds the
fan-out for that content and routes it to a person instead of paying to translate
an unsettled source into every language.
Concretely, when a run holds on source:
- The run parks with the reason
source_not_readyand records how many blocks are blocked on source. In the Runs view this reads as parked — N blocks need source review; the run still exits without error. - The loop opens a source-review task (
source_review, AD-014) for a member with source-edit permission. It is the same task queue astranslate,review, and the fix-up tasks — no new surface, just a new task type — and appears on the Task Board and in My Tasks.
A source reviewer works the same content as this Review surface, but on the source rather than a target: they check terminology consistency, do-not-translate identification, placeholder correctness, and context before the language fan-out. Settling the source once here prevents fixing the same source issue once per locale downstream.
Clearing the task lifts the affected source units to the gate and lets the loop
proceed: completing it emits source.review.completed, which fans out the
per-locale translate/review tasks the run was holding
(AD-013). A reviewer can also
lower the bar — a project may set source_gate: none to opt out of the gate
entirely — but the governed default is to settle first. The next run reads the
cleared source and translates the now-approved content, memory-first.
Block list
Review lists every translatable block with its source, target, and current status. Filter the list by status — Not Started, Draft, Translated, or Reviewed — to work through one stage at a time. Each filter shows a count so you can see how much of the file remains.
Approve and reject
Each block has Approve and Reject actions. Approving marks the block Reviewed; rejecting sends it back to Draft for further work. The status badge updates in place.
Bulk actions
Select blocks individually or use Select all to act on the whole filtered list at once:
- Mark reviewed — approve every selected block.
- Apply exact Memory — fill selected blocks from exact (100%) content-memory matches.
QA findings
Click Run QA to check the file. Findings appear both inline under each affected block and in a problems panel; clicking a finding scrolls to its block. Each finding carries a severity (error or warning), a type, and a message.
Brand review
Block-level translation review is separate from brand-rule review. Promoting or rejecting suggested brand rules happens on the brand review page — see Brand voice.