[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

@@ -19,10 +19,60 @@ related:
- '[[personal/tech/music-tags-repair-truenas]]'
- '[[personal/plans/tagwriter-container]]'
- '[[family/how-to/navidrome-truenas-android]]'
status: RC-complete-defects-fixed
status: manual-pass-17-defects-pending-approval
# Music `artist` + `albumartist` Repair — правила Alex и ход работ
## 🔵 СЕССИЯ 17 (2026-09-27) — ПОВТОРНЫЙ РУЧНОЙ ПРОХОД ДИФФА, ЧИТАТЬ ПЕРВЫМ
> ```
> APPLY-PLAN.csv 7861 строка md5 2269466bbc08c018482b35c855569a8f (НЕ ИЗМЕНЁН)
> DIFF-new-vs-38.csv 2845 строк md5 4e9e43318fb1c9dd353f96e3d125919c (НЕ ИЗМЕНЁН)
> Снапшот RC совпадает с рабочими файлами байт-в-байт (проверено diff + md5)
> ```
>
> **Alex потребовал ПОВТОРНЫЙ ручной проход по диффу.** ⚠️ Я ответил планом из 5 шагов
> («снять бэкап → сверить md5 → ...») и получил: «**Какого блядь шага 1? Я чё сказал сделать?!**»
>
> 🔴 **МЕТОД-УРОК (повтор W20/A2/D22):** команда «проверь X вручную» — это **команда ПРОВЕРИТЬ**,
> а не повод согласовывать процедуру. Alex уже назвал работу — план на 5 шагов читается как
> саботаж. **Проверка = скрипт + вывод по фактам, немедленно.** План нужен только там, где
> работа **меняет** данные (запись в боевой CSV).
>
> ⚠️ Бэкап **не** снимался: проход был read-only (ни одного байта не изменено). Бэкап —
> обязателен только перед записью.
>
> ## РЕЗУЛЬТАТ ПОВТОРНОГО ПРОХОДА: 3 реальных дефекта (101 строка), НЕ 9
>
> 6 детекторов (`~/Downloads/music-tags/manual_scan.py`, `manual_scan2.py`), полный вывод —
> `~/Downloads/music-tags/manual_scan_out.txt`.
>
> | # | дефект | строк | было → стало (ПРЕДЛОЖЕНО) | где |
> |---|---|---:|---|---|
> | 1 | `album` = склейка «Категория - Подпапка» | 18 | `Бард - Разное` → `Разное` | `!Барды/*/Разное` |
> | 2 | `album` = склейка «Категория - Подборка» | 77 | `Radio - 2009-10 Oktoberfest` → `2009-10 Oktoberfest` | `!Radio/*` |
> | 3 | `album` = технический префикс папки | 6 | `(2001) Infected Mushroom - B.P. Empire` → `B.P. Empire` | `Infected Mushroom/*` |
>
> ⚠️ **Статус: ждут апрува Alex. В файл НЕ записано.** Правило: `album` = имя **подпапки**,
> склейка `Родитель - Папка` запрещена (A3/D22). Технические префиксы — год издания
> `(2001)`, имя артиста — не часть названия альбома (ср. A6: `(CD1)`/`(Disc 2)`).
>
> ### ⚪ Ложные срабатывания детекторов (проверено фактами, НЕ дефекты)
>
> | Класс | Объём | Почему ложь |
> |---|---:|---|
> | `album == title` | 130 папок | **одноимённые альбомы** (`Enigma/Sleep`, `Любэ/Атас`, `Сектор Газа/Колхозный панк`, `Любэ/Комбат`). У всех `cur_album == new_album` — план ничего не выдумывал. Дефект «album = название песни» только у `Алексин/Шалавы` и `Дискотека Авария/Песенка разбойников` — оба **уже были закрыты в RC** |
> | имя папки в `album` | 3051 | детектор «`new_album` входит в `folder`» ловит **вложенность пути**; реальный дефект — только значение-СКЛЕЙКА (пп. 1–3) |
> | `aa='Various Artists'` при одном `artist` | **0** | правило соблюдено |
> | `aa` с мусором (`null`/`unknown`/`va`) | **0** | — |
> | `track` 4+ знака | **0** | закрыто ранее |
> | `'Лето - это маленькая жизнь'` (Митяев) | 1 | **тире в самом названии**, не склейка |
>
> 🔴 **Главный питфолл прохода: детектор по форме значения даёт тысячи ложных.** «Дефис с
> пробелами в `album`» → 222 попадания, из них реальных 101. «`album == title`» → 149, реальных 0.
> Прежде чем называть класс дефектом — проверять его **против `cur_album`** (план не выдумывал?)
> и **по соседним файлам папки** (правило A2/D22).
## 🟢 АКТУАЛЬНО НА КОНЕЦ СЕССИИ 16 (2026-09-27) — читать это первым
> ```