[2026-09-26] eagle: personal/plans/music-tags-review/music-tags-review.md personal/tech/music-tags-repair-truenas.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-26 17:24:04 +06:00
1 parent f498e7e452
commit 9d5bcf71ba
2 files changed
+145 -21

No files matched your search

@@ -20,9 +20,10 @@ updated: '2026-09-26'
| [[2-medium-confidence\|Средняя уверенность]] | 5813 |
| [[3-high-confidence\|Высокая уверенность]] | 959 |
## 🔴 Десятая волна (2026-09-26): ручной проход по CSV запущен
## 🔴 Десятая волна (2026-09-26): 33 ПРАВКИ ВНЕСЕНЫ В CSV
Правка скриптов **запрещена** — работа идёт построчно по `~/Downloads/music-tags/tag-fix-plan.csv`.
Alex: **«Ты не пишешь сука скрипт»** → правки только вручную, через `patch` по точному тексту строки.
**Получены решения Alex по блоку «требует решения»** (читались из `1-needs-decision.md`, галочки `- [x]`):
@@ -35,18 +36,31 @@ updated: '2026-09-26'
⚠️ **В CSV, в отличие от ноты, блок «требует решения» — 0 строк.** Расхождение ноты и CSV
(нота сгенерирована из более старого прогона) — **не путать**.
### 🔴 Новый класс брака, найденный на первой порции (блок `!Radio`, 453 строки)
### ✅ Внесено в CSV (33 строки)
| Баг | Строк | Статус |
|---|---:|---|
| 1 — номер плейлиста в `new_artist` (`084_Потап`) | 26 | ✅ **закрыт полностью** (повторная проверка: 0) |
| 4 — `ґ` вместо апострофа | 1 | ✅ `A Far Lґamore` → `A Far L'amore` |
| 3 — срезанная хвостовая `!`/`?` | 51 | ⏳ 6 сделано, 45 осталось |
Все правленые строки получили `source = manual (user decision)`. Целостность CSV проверена:
11 колонок, 7906 строк, 0 битых. Бэкап: `tag-fix-plan.csv.bak-20260926-171423`.
### 🔴 Новые классы брака, найденные ручным проходом (цифры по всей библиотеке)
| # | Дефект | Пример | Строк |
|---|---|---|---:|
| 5 | `title` = имя файла целиком | `Monster DJ's - Новогодний Хаус` в title | ≥2 |
| 6 | Оборванная скобка в `new_artist` | `Баста & Гуф (` → `Баста & Гуф` | ≥1 |
| 7 | Водяной знак в `title` | `goldwarez.org`, `zvukoff.ru` | ≥2 |
| 5 | `new_title` дублирует имя файла целиком | `THE IMMORTALS -MORTAL KOMBAT THEME` | **1466** |
| 6 | Имя папки-сборника в `new_artist` | `disk`, `disk_v2`, `3 SHANSON`, `04` | **113** |
| 7 | Водяной знак в `title` | `goldwarez.org`, `zvukoff.ru`, `muzmo.ru` | 11 |
| 8 | Оборванная скобка в `new_artist` | `Баста & Гуф (` → `Баста & Гуф` | 1 |
| 9 | Номер трека остался в `title` | `143 БЮРО НАХОДОК`, `113 ПЕСНЯ КОТА` | папка `Детский хит` |
| 10 | Транслит вместо русского | `Kontrabandy` ← `Контрабанды` | `Sbornik_Novij_Rok` |
**5 дефектов на первых 15 строках из 453** → класс подозревается массовым. Прежние аудиты
эти классы не ловили (в их списке проверок их нет).
Прежние аудиты (`audit_plan.py`, `final_gate.py`) эти классы не ловили — в их списке проверок их нет.
❓ **Открытый вопрос Alex:** водяные знаки в `title` вырезать или оставлять? (ответа пока нет)
✅ **Водяные знаки — решено Alex: ВЫРЕЗАТЬ** (`title` не должен содержать `zvukoff.ru` и подобное).
### 📐 Порядок ручного прохода
@@ -59,16 +73,21 @@ updated: '2026-09-26'
Формат отдачи Alex: `строка CSV | файл | new_artist — new_title`, **только строки с сомнением**.
🔴 **Построчный проход по всем 7906 строкам НЕ БЫЛ СДЕЛАН ранее** — Alex: **«Ты должен был пройти
по каждому треку в csv и вручную убедиться что там адекватные названия. Сделал?»**. Начата первая порция.
🔴 **Построчный проход по всем 7906 строкам НЕ ЗАКОНЧЕН** — закрыто 86 строк. Alex:
**«Ты должен был пройти по каждому треку в csv и вручную убедиться что там адекватные названия. Сделал?»**
### 🔴 Файл `1-needs-decision.md` сломан merge-конфликтом
В файле неразрешённые маркеры git-конфликта (`<<<<<<< HEAD` / `=======` / `>>>>>>> nas/main`) —
склеены два варианта (0 файлов и 4 файла). Разрешать **только по команде Alex**.
🧰 **Инструмент:** `dump_block.py` — выгрузка блока CSV для чтения глазами
(`python3 dump_block.py '!Radio' --only-fix`). Читать CSV с `encoding="utf-8-sig"` (BOM!).
🧰 **Инструменты:**
- `dump_block.py` — выгрузка блока CSV для чтения глазами (`python3 dump_block.py '!Radio' --only-fix`).
Читать CSV с `encoding="utf-8-sig"` (BOM!).
- `find_defects.py` — счётчик дефектов A–F по всем строкам. **Создан до запрета скриптов**;
оставлен как справочник, новые скрипты не писать.
⚠️ **Номер строки из чекера ≠ номер строки в файле.** Править только `patch`-ем по точному тексту.
Детали: [[personal/tech/music-tags-repair-truenas|техдок, десятая волна]].