# Спайк: проверка диакритик-фолдинга в открытых клавиатурах

**Цель спайка (1–3 дня):** выяснить ОДНО — складывает ли движок открытой клавиатуры диакритику при
сопоставлении ВВОДА со словарём. То есть: загрузили наш словарь орфографических форм (с ä š ľ ń …),
набираем ПЛОСКИЙ скелет (`melse`) — всплывает ли в подсказках `meľsë`?

От ответа зависит срок Android-клавиатуры:
- **ДА (фолдинг есть)** → путь «упаковка»: раскладка + этот словарь, ~1–2 недели до v1.
- **НЕТ/частично** → нужен СВОЙ провайдер подсказок поверх `data/kbd_dict.json` (скелет->кандидаты),
  ~3–4 недели. Алгоритм уже есть в `kbd_restore.py` — порт на Kotlin.

## Что в этой папке
- `erzya_wordlist.tsv` — `word<TAB>frequency`. Универсальный вход для построителей словарей
  (FlorisBoard flictionary, ASK dictionary, свой движок). Частота — ПРОКСИ от приоритета источника
  (нет корпусной частоты; для ранжирования сгодится, потом заменить реальной).
- `erzya_wordlist.txt` — по слову в строке (если построителю нужен голый список).
- `spike_testset.tsv` — `plain_ввод -> ожидаемая орфография`. По нему и проверяешь глазами.

## FlorisBoard (github.com/florisboard/florisboard, Apache-2.0)
1. Собери словарь (`.flict`/extension) из `erzya_wordlist.tsv` инструментом сборки словарей твоей
   версии FlorisBoard (формат менялся между версиями — сверься с актуальным `nlpcore`/flictionary).
2. Подключи как активный словарь, включи подсказки.
3. Набирай слова из `spike_testset.tsv` (`melse`, `sumbra`, `vir`, `kus`, `car` …) и смотри строку
   подсказок. Критерий успеха: для большинства plain-вводов вверху подсказок стоит `expected_top`.

## AnySoftKeyboard (github.com/AnySoftKeyboard, Apache-2.0)
1. Вариант быстрый: добавь слова из `erzya_wordlist.txt` в пользовательский словарь (или собери
   dictionary-addon APK по их доке).
2. Включи подсказки/исправление, набери тест-слова, проверь фолдинг так же.

## Что зафиксировать по итогу
- Доля тест-слов, где `expected_top` всплыл (и где — в топ-1 vs в ленте).
- Складывается ли диакритика вообще (да/частично/нет) у каждого движка.
- Решение: «упаковка» или «свой провайдер» — и обновить срок в `MOBILE-PLAN.md`.
