# Feature Specification: Deterministic translation from approved memory

**Feature ID**: 004
**Status**: draft

## Overview

Every translation, including re-rendering text that was approved unchanged months earlier, is
authored by hand, so the approved memory of 1,059 segment pairs delivers no leverage.

## Functional Requirements

- **FR-001** When every changed segment has an exact approved translation, the system shall
produce the translated content without human authoring.
- **FR-002** If any segment has no approved translation and is not on the keep-in-source list,
then the system shall stop and report, and shall not emit partially translated output.
- **FR-003** The system shall never emit source-language text in place of a translation it could
not produce.
- **FR-004** When reassembling translated content, the system shall preserve structure, markup,
identifiers, sample code, and the numeric and date formats inside samples exactly as the source
presents them.
- **FR-005** When a translated heading changes the reference used to link to it, the system shall
update in-document references so they resolve.
- **FR-006** The system shall not record translated content as current unless that content was
updated in the same change.


## Acceptance Criteria

- **004-translation-from-memory-AC-1** A change whose segments are all previously approved produces translated output with
no authoring step.
- **004-translation-from-memory-AC-2** A change containing one novel segment produces no output and reports the segment.
- **004-translation-from-memory-AC-3** Output is byte-identical across repeated runs on identical input.
- **004-translation-from-memory-AC-4** A run that stops leaves the translated content exactly as it was before.
- **004-translation-from-memory-AC-5** Marking translations current without changing them is rejected.


## Deferred Edge Cases

- **DEF-1** Fuzzy matching below exact equality. Deferred: exact matching must be shown to work
and be measured before approximate matching is given authority.