"Optional work deserves durable identity, not authority over the original."
Name the protected result
A translation is useful, a blind review can improve it, and audio can accompany reading. None is the original. Calling them adornments is not contempt; it is an ordering rule that prevents optional value from becoming a gate.
Put the promise in state
Translation and review get durable jobs with kind, language, status, error, and timestamps; every worker claim gets an immutable attempt row. Translation output lives in the translation record, author revision follows review notes, and read-along voice stays on demand in the serial Bellows lane.
The quiet failure
A single giant enrichment task hides partial success and makes retry expensive. Inline calls hide work inside an HTTP request. Independent rows let the UI say exactly what exists and retry only the failed edge.
Trace five moments
To test “Adornments Are Jobs,” inspect the moment before creation, after commit, when a worker claims the job, when output returns, and on the next-day reload. At each point record entry state, job status, attempt history, and visible copy. A promise that survives only the successful request is conditional sovereignty.
Do the work
Model translation and review as durable jobs, author revision as the review's author phase, and voice as a separate on-demand boundary. Add source editing, entry deletion, worker restart, and external-service failure to the same table. Mark when dropping an output is integrity preservation rather than data loss.
The final question
Does the screen keep the original visible while telling the truth about work around it? Then adornment serves. If a spinner hides failure or a late result overwrites current text, the adornment has stolen the throne.
Landing condition
Current Inkwell gives durable rows to translation and review work, with each actual claim recorded in job_attempts. Revision is the author phase of review, while voice is requested on demand through the one-at-a-time Bellows lane. Separate those states so partial success stays visible.
Speed and correctness are not opposites here. Commit the original first, then make later work re-read current state before it lands.