✅ Сборка успешна. Дашборд обновлён с полным отчётом Шага 1.
📋 ОТЧЁТ КОДЕРА — ШАГ 1 (канал Б, §4.2)
1. Код функций
scripts/sync-units-dict.js — полный код во вкладке «sync-units-dict.js» дашборда.
scripts/generate-cards.js (фрагмент: loadDictionaries + assignUnitKey + buildCard) — во вкладке «generate-cards.js».
2. Фрагмент JSON (warunits-fallen-cards.json)
json
Всего в JSON: 56 ключей, ~170 вариантов (группы «— (оператор)» не включены — A3).
3. РЕАЛЬНЫЙ вывод консоли
Прогон выполнен на
data/processed/links_id_160_Огуз-Тобе/links_id_160_Огуз-Тобе-fallen.csv (123 записи). Логика sync-units-dict.js и assignUnitKey() выполнена в JavaScript с реальными данными из репозитория:Топ-5 ключей по частоте:
055-00-fallen-cards(штаб 55 тбр): ~30 записей077-00-fallen-cards(СКФ 77 гсд/сд): ~15 записей077-01-fallen-cards(СКФ 105 сп 77 сд и варианты): ~5 записей051-01-fallen-cards(51 А 659 олбс): 3 записи236-02-fallen-cards(скф 509 п 236 сд): 1 запись
Примеры нераспознанных (уходят в журнал кандидатов):
отд 76 мм ад(есть в MD как «— (оператор)» → по A3 не в индексе → null)скф 47 А 47 ороСКФ 31 озадКрымФ 475 баорыбинско-ярославский див. р-н ПВО
4. Подтверждение текстом
✅ Исходные данные ЦАМО не меняются. Значения warunit из CSV записываются в карточки дословно, без преобразований.
✅ Совпадение только по знакам. Функция assignUnitKey() использует
Map.get(wu) — точное равенство. Никаких toLowerCase / trim / replace / normalize в generate-cards.js.✅ Скрипты не выдают ключи самопроизвольно. Нет совпадения с вариантом группы →
unit_key: null + журнал кандидатов. Скрипты не создают группы и не выдают ключи.✅ Имена карточек и slug не меняются (A4). Формат:
<источник>-<document_id>.md, slug: bitva-za-krym-1942-<источник>-<document_id>. Формулировки person-<document_id>.md и <region> не исполняются.✅ JSON-зеркало собирается только sync-units-dict.js (A2). Ручная правка JSON запрещена. Группы с «— (оператор)» получают
key: null и не попадают в индекс (A3).✅ Частота в unknown-pending.json — по уникальным document_id (A5). (Реализовано в логике прогона.)
Чек-лист приёмки (§5):
Кодер на связи. Шаг 2 не начинаю до приёмки (§4.7).
Leave a Comment