Language And Style
Shared language-quality rules for learner-facing text. This page covers the logic
currently carried by the language_instructions and avoid_ai_language injections.
Why this exists
Fraya needs two things at the same time:
- prose that sounds natural, direct, and non-generic;
- language output that matches the target language and learner level.
These rules are shared because the same quality bar should apply across learner-facing section content, regardless of topic.
Language instructions
The runtime language layer defines:
- which target language the output must use;
- CEFR B1 readability as the default accessibility level;
- how acronyms should be explained.
This is the role of the language_instructions injection.
Avoid AI language
The prose-quality layer defines what Fraya should avoid when writing learner-facing text:
- stock e-learning phrases and obvious AI clichés;
- inflated, promotional, or editorialized wording;
- filler, repetition, and rhetorical padding;
- dead metaphors and other language that sounds machine-generated rather than native.
It also sets practical style rules such as brevity, formatting restraint, and forms of address.
This is the role of the avoid_ai_language injection.
How the layers work together
language_instructions is the language wrapper.
avoid_ai_language is the prose-quality core reused inside that wrapper.
Localization terminology is passed separately as runtime glossary context when a prompt needs it.
Together they ensure that learner-facing text is:
- in the right language;
- readable for the intended audience;
- terminologically consistent;
- natural enough for a native speaker;
- free from generic AI phrasing.
Related files
docs/localization/localization.mdprompts/injections/language_instructions.yaml- Naming conventions — title and naming rules applied alongside language
- Localization — language quality requirements for target languages
- Section content — language rules applied during the editing step
prompts/injections/language_instructions.yamlprompts/injections/avoid_ai_language.yaml