Translated documentation strategy
What you'll find here
How Craik handles localized docs. Translations are presentation surfaces over the English source-of-truth pages. They never redefine policy, evidence, receipt, redaction, schema, or identifier semantics.
Presentation, not policy.
If a translation cannot preserve the meaning of a policy rule, schema field, receipt status, or redaction requirement, the translated page remains deferred and links back to the source page.
Source of truth
Canonical documentation lives under docs/ and is authored as the
source locale for each page. Translated pages may live in
locale-specific paths when reviewed and linked through metadata
described in
Locale i18n framework.
Source-of-truth pages define:
Stable language-neutral document ids
Canonical links
To contracts and guides.
Policy · evidence · receipt · redaction semantics
Public boundary requirements
Fallback path
When a translation is unavailable.
Translation metadata
Each translatable page records:
This metadata is represented by TranslatableDocMetadata and resolved
through resolve_doc_locale. The resolution result records the
requested locale, resolved locale, fallback chain, path, and
policy/evidence/receipt context.
Fallback links
Translated docs include a path back to the source page when a locale is incomplete, stale, community-maintained, or deferred.
- Exact locale.
- Language-only locale when configured.
- Configured fallback locales.
- Source locale.
Fallback links go to public pages only.
Never expose local filesystem paths, private planning labels, credentials, or private task names through fallback link resolution.
Review expectations
- Public boundary language is preserved.
- Redaction markers and secret references are not translated into secret values.
- Schema names, ids, receipt ids, policy ids, memory entities, and task ids are unchanged.
- Code blocks and CLI commands remain technically valid.
- Links resolve through docs tests or documented deferred status.
- Any machine-generated translation has human or policy review before being marked supported.
Review receipts record the source page, target locale, review evidence, reviewer or automation id, and whether policy/evidence/receipt/redaction semantics were preserved.
Deferred and community-maintained translations
Deferred
No reviewer · terminology unsettled · source docs changing too quickly. Deferred translations use fallback links rather than stale translated prose.
Community-maintained
Acceptable when following the same metadata, review, public-boundary, and receipt expectations. Community status must be visible in the metadata or review receipt. Source docs remain authoritative when conflicts appear.
Limits
Translations must NOT.
Translate runtime identifiers
Or schema names.
Weaken policy / approval / grant / receipt / evidence / redaction
Introduce examples
With real credentials, private paths, or private task names.
Imply unsupported behavior
Locale-specific behavior that does not exist in the runtime.
Bypass docs link validation
Except through explicitly documented deferred status.