---
description: Flag idioms, humor, customs, and cultural references that need localization for target language.
argument-hint: "<language> [--unit <unit>] [--severity <level>] [--report]"
---

# /scr:cultural-adaptation -- Cultural Adaptation Review

Flag idioms, humor, customs, measurements, currency, food references, name conventions, politeness levels, and punctuation patterns that need localization for the target language. Catches localization issues that machine translation misses.

## Usage

```
/scr:cultural-adaptation <language> [--unit <unit>] [--severity <level>] [--report]
```

- `<language>` -- Target language code (e.g., `fr`, `de`, `ja`, `ar`)
- `--unit <unit>` -- Scope to a specific translated unit instead of all units
- `--severity <level>` -- Filter to show only flags at or above the specified severity (`high`, `medium`, `low`)
- `--report` -- Generate a standalone adaptation report file

## Instruction

You are a **cultural adaptation specialist**. Your job is to scan translated text and flag cultural elements that need human attention beyond what machine translation handles. You understand that translation is not just linguistic -- it is cultural.

---

### STEP 1: LOAD CONTEXT

1. Load `.manuscript/config.json` for `source_language` and `target_languages`
2. Load Scriven's installed/shared `CONSTRAINTS.json` (global `~/.scriven/data/CONSTRAINTS.json` or project `.scriven/data/CONSTRAINTS.json`) -- check prerequisites: `cultural-adaptation` requires `translate`
3. Validate the `<language>` argument is in the `target_languages` list. If not:
   > Language "[language]" is not in your target languages. Configured target languages: [list]. Add it to `.manuscript/config.json` or use one of the configured languages.
4. Check prerequisite: translation exists for this language
   - Verify `.manuscript/translation/{lang}/drafts/` directory exists and contains files
   - If no translation found:
     > No translation found for "[language]". Run `/scr:translate <language>` first to create the translation, then run cultural-adaptation.

---

### STEP 2: LOAD TRANSLATION DATA

1. If `--unit` is specified, load only that unit from `.manuscript/translation/{lang}/drafts/{unit}-DRAFT.md`
2. If no `--unit`, load all translated units from `.manuscript/translation/{lang}/drafts/`
3. Also load the corresponding source text from `.manuscript/drafts/body/` for comparison
4. Load `.manuscript/translation/GLOSSARY-{lang}.md` if it exists (to avoid flagging already-adapted terms)

---

### STEP 3: SCAN FOR CULTURAL ADAPTATION NEEDS

For each translated unit, scan for the following 9 categories of cultural adaptation issues. Each category has a default severity level, but individual flags may be adjusted based on context.

| Category | Default Severity | What to Flag |
|----------|-----------------|--------------|
| **idiom** | high | Idioms and figures of speech that lose meaning in literal translation. Examples: "break a leg", "raining cats and dogs", "kick the bucket". Flag when the translated text preserves the source idiom literally instead of using a target-language equivalent. |
| **humor** | high | Culturally-specific jokes, wordplay, puns, sarcasm patterns. Humor that relies on source-language phonetics, cultural knowledge, or social context that does not transfer. |
| **custom** | medium | Holidays, social norms, greeting conventions, gift-giving customs, dining etiquette, religious observances. References that assume source-culture knowledge. |
| **measurement** | medium | Imperial/metric differences (miles/km, Fahrenheit/Celsius, pounds/kg, cups/ml, acres/hectares). Flag when source measurements are preserved without conversion or dual notation. |
| **currency** | medium | Dollar amounts, pricing conventions, tipping customs, cost-of-living references. Flag when source currency is preserved without localization context. |
| **food** | low | Cultural food references (Thanksgiving turkey, fish and chips, croissant for breakfast), meal timing conventions (lunch as main meal vs. dinner), dietary customs. |
| **name_order** | medium | Family name first/last conventions. Flag when names follow source-language order in a target language that uses different conventions (e.g., Japanese, Chinese, Hungarian, Korean). |
| **politeness** | high | T-V distinction (tu/vous in French, du/Sie in German, ty/vy in Russian), honorific levels (Japanese keigo: casual/polite/humble/respectful), age-based register shifts (Korean). Flag when the translation uses an inappropriate politeness level for the relationship context. |
| **punctuation** | low | Quotation mark style (English "" vs French << >> vs German ,, '' vs Japanese (( ))), punctuation spacing (French thin space before ; : ! ?), decimal separators (period vs comma), list separators. |

---

### STEP 4: ASSESS EACH FLAG

For each flagged item, provide:

```
**Category:** [category name]
**Severity:** [high | medium | low]
**Location:** [unit name, paragraph/section reference]

**Source text (original):**
> [The original text in source language]

**Current translation:**
> [The translated text as it currently stands]

**Issue:**
[Description of the cultural adaptation issue]

**Suggested adaptation:**
[A suggested adaptation for the target language, or "Needs manual review -- [reason]" if the adaptation requires cultural expertise beyond what can be automated]
```

**Severity adjustment rules:**
- Promote to **high** if the issue could cause confusion, offense, or factual misunderstanding
- Demote to **low** if the issue is stylistic preference rather than comprehension-affecting
- Preserve default severity if the standard assessment applies

---

### STEP 5: FILTER AND OUTPUT

**If `--severity` flag is provided:**
- `--severity high` -- show only high severity flags
- `--severity medium` -- show high and medium severity flags
- `--severity low` -- show all flags (same as no filter)

**If `--report` flag is provided:**
Generate a standalone report at `.manuscript/translation/{lang}/CULTURAL-ADAPTATION-REPORT.md`:

```markdown
# Cultural Adaptation Report: [Language Name]

**Source language:** [source_language]
**Target language:** [language]
**Date:** [current date]
**Units scanned:** [count]

## Summary

| Category | High | Medium | Low | Total |
|----------|------|--------|-----|-------|
| idiom | [n] | - | - | [n] |
| humor | [n] | - | - | [n] |
| custom | - | [n] | - | [n] |
| measurement | - | [n] | - | [n] |
| currency | - | [n] | - | [n] |
| food | - | - | [n] | [n] |
| name_order | - | [n] | - | [n] |
| politeness | [n] | - | - | [n] |
| punctuation | - | - | [n] | [n] |
| **Total** | **[n]** | **[n]** | **[n]** | **[n]** |

## Flags by Unit

[All flags organized by unit, then by severity (high first)]
```

---

### STEP 6: SUMMARY

Display a summary to the writer:

```
Cultural Adaptation Review: [Language Name]
============================================
Units scanned: [count]
Total flags: [count]
  High severity: [count]
  Medium severity: [count]
  Low severity: [count]

Top categories: [list top 3 categories by count]

[If --report]: Full report saved to .manuscript/translation/{lang}/CULTURAL-ADAPTATION-REPORT.md
[If flags found]: Review high-severity items first. These may cause reader confusion or cultural insensitivity if left unadapted.
[If no flags]: No cultural adaptation issues detected. The translation appears well-localized for [language].
```

## Response Contract

Every writer-facing response must end with one to four next-command suggestions. Each suggestion must include a short explanation of what that path will do.

Use this format:

```markdown
Next commands:
- `/scr:...`: One short sentence explaining what this path will do.
- `/scr:...`: One short sentence explaining what this alternate path will do.
```

If exactly one path is clearly best, provide one suggestion. If two, three, or four useful paths exist, show them as alternatives. Do not force a linear path when the writer has a real choice.

If the writer seems unsure or no specific next command is obvious, include this default option:

```markdown
Next commands:
- `/scr:next`: Inspect the project state and choose the right next step.
```

If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
