[2026-09-27] eagle: personal/plans/music-artist-albumartist-repair.md personal/tech/id3-tag-repair.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-27 15:45:17 +06:00
1 parent e93f875e9b
commit 392cbc22db
2 files changed
+90 -1

No files matched your search

+39
View File
@@ -50,6 +50,10 @@ related:
> номер из имени файла, иначе пусто), **D20** (🔴 **мой баг**: `data[i][14]` — это `new_track`,
> а `changed` = **15**; всегда `assert` индексы).
>
> ⚠️ **Обновлён до v2.1.0 (сессия 17):** **D23** — детектор по ФОРМЕ значения даёт тысячи
> ложных (3422 «кандидата» → 101 реальный дефект; `album == title` в основном ЛЕГИТИМНО).
> Прежде чем называть класс дефектом — сверять с `cur_*` и по соседним файлам папки.
>
> ⚠️ **Обновлён до v2.0.0 (сессия 15):** **D21** — 🔴 **КОРЕНЬ АРТИСТА = ОДИН АЛЬБОМ**:
> файлы ПРЯМО в `<категория>/<артист>/` (без подпапки) считаются одним альбомом → `album` =
> имя корня, `albumartist` = титульный исполнитель (= имя корня), **`cur_*` НЕ ЧИТАТЬ**.
@@ -968,6 +972,41 @@ Alex дал ответы на все четыре вопроса аудита с
«Как муравей домой добирался» — найден как **Виталий Бианки**, потому что источник
в файле отсутствовал).
### 🔴 D23 — детектор по ФОРМЕ значения даёт тысячи ложных (сессия 17)
Повторный ручной проход по диффу: 6 детекторов дали **3422 «кандидата», реальных дефектов — 101**.
| Детектор | Срабатываний | Реальных |
|---|---:|---:|
| «`new_album` входит в `folder`» | 3051 | 101 (только значения-СКЛЕЙКИ) |
| «дефис с пробелами в `album`» | 222 | 101 |
| «`album == title`» | 149 | **0** |
Причины ложных:
1. **`album == title` в основном ЛЕГИТИМНО** — одноимённые альбомы (`Enigma/Sleep`,
`Любэ/Атас`, `Сектор Газа/Колхозный панк`, `Любэ/Комбат`). Признак нормы: у **большинства**
файлов папки `title` совпадает с `album` и `cur_album == new_album` (план не выдумывал).
2. **Вложенность пути ≠ имя папки в album.** `!Radio/t 2009-10 Oktoberfest` содержит
`new_album='2009-10 Oktoberfest'` — это подпапка-подборка, верно. Дефект только когда
значение — **склейка** двух сегментов.
3. **Тире в названии.** `'Лето - это маленькая жизнь'` (Митяев) — тире внутри названия, не склейка.
**Обязательная проверка перед словом «дефект»:** (а) сверить с `cur_album`/`cur_artist` — план
не выдумывал значение?; (б) посмотреть **соседние файлы папки** — правило применимо ко всем?
(в) отсеять по доле файлов папки (монотонный признак защищает от выхваченных строк).
Это повтор правила **A2/D22** на новом слое: детектор по regex даёт счётчик, а не список дефектов.
Объявить 3422 дефекта при 101 реальном = потеря доверия (ср. W15: 628 → 20).
### 🔴 D22 — не изобретать дефект: проверять правило на СОСЕДНИХ файлах папки
(сессия 15) `check_root_files.py` дал 420 «нарушений» корней, из них **413 — ложные** (обычные
сборники `Various Artists` с разными артистами). Реальных — 7.
**Следствие:** перед «исправлением» класса — проверить его на соседних файлах папки И на
отсутствие лучшего источника данных. «Нашёл дефект» без проверки фактов = ложная тревога,
которая стоит сессию времени.
## ⚪ Что НЕ является багом
- **Рукописная транслитерация:** `КняZz`, `EMINЭM`, `Flёur`, `изBESTняк`, `Скаzки`, `Глюкоzа`,