Skip to main content
shipi18n logo|Documentation

semantic-addition: translation adds claims the source doesn't make

warning — advisory, exit 0

The LLM judge found the translation asserting something the source never says. The favourite failure mode: fluent, natural, correctly conjugated — and promising your users a feature that does not exist.

What triggers it

// en.json
{ "uploaded": "Your file has been uploaded." }

// es.json
{ "uploaded": "Tu archivo se ha subido y se compartirá con todo tu equipo." }

Fixed

{ "uploaded": "Tu archivo se ha subido." }

Why it matters

Additions are the category no human reviewer catches by skimming, because there is nothing wrong with the sentence — only with the facts.

How to fix it

Remove the invented content from the translation.

How to silence it

Advisory by default; --semantic-fail escalates, --ignore-keys silences a key.

Check for this in CI

npx @shipi18n/cli check ./locales -s en
# SARIF for inline PR annotations:
npx @shipi18n/cli check ./locales -s en -r sarif -o shipi18n.sarif

The structural checks need no API key. Findings of this rule link back to this page from the SARIF helpUri.

Related rules