## Purpose Canonical specification for article-translations-ml-tm requirements synced from OpenSpec change deltas. ## Requirements ### Requirement: System generates Tamil and Malayalam translations at article creation time The system SHALL generate Tamil (`ta`) and Malayalam (`ml`) translations for each newly created article during ingestion and validate translation quality before persistence. #### Scenario: Translation generation for new article - **WHEN** a new source article is accepted for storage - **THEN** the system requests Tamil and Malayalam translations for headline and summary - **AND** translation generation occurs in the same ingestion flow for that article #### Scenario: Translation failure fallback - **WHEN** translation generation fails for one or both target languages - **THEN** the system stores the base article in English - **AND** marks missing translations as unavailable without failing the whole ingestion cycle #### Scenario: Translation quality validation failure - **WHEN** generated translation fails language/script sanity or gibberish validation checks - **THEN** the system does not persist invalid translation content for that article-language pair - **AND** records validation failure outcome for diagnostics ### Requirement: System stores translation variants linked to the same article The system SHALL persist language-specific translated content as translation items associated with the base article. #### Scenario: Persist linked translations - **WHEN** Tamil and Malayalam translations are generated successfully - **THEN** the system stores them as language-specific content variants linked to the base article identifier - **AND** translation records remain queryable by language code #### Scenario: No duplicate translation variants per language - **WHEN** translation storage is attempted for an article-language pair that already exists - **THEN** the system avoids creating duplicate translation items for the same language - **AND** preserves one authoritative translation variant per article per language in this phase