jung/AUDIT.md

95 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Аудит репозитория (2026-10-03, запрос пользователя: «поиск завершён, проверь всё»)
**Правила аудита (user):**
1. Не править документы — только собирать данные об ошибках.
2. Проверять аккуратно, по одной карточке/файлу/досье.
3. Каждая ошибка — только с подтверждением фактом (команда + вывод, цитата из файла).
4. Прогресс фиксируется ниже + в `data/audit/progress.json` (машиночитаемый, для возобновления).
5. После аудита — обсуждение фиксов (НЕ во время аудита).
## Фазы
| фаза | объём | статус |
|------|-------|--------|
| **A** — структура/согласованность (linter, card↔MANIFEST↔disk parity, md5-дубли, статусы INDEX↔card↔at-a-glance, cross-ref резолвинг, ISBN checksum, xref.py stale) | 1 проход | в работе |
| **B** — контент-верификация ВСЕХ файлов (625): magic bytes + title/author первого листа против книги карточки; флаг SUSPECT → ручное разбирательство | 12 прогонов (по секциям) | очередь |
| **C** — контент карточек (483): факты против доказательств (статус vs evidence, RU/EN-таблицы vs Notes, ISBN, cross-refs, дате-пометки), по одной карточке | 12 прогонов | очередь |
| **D** — досье авторов (~120): Wiki-якоря (QID → даты/имена), RU-имена с источниками, гомоним-предупреждения, list-items таблица vs INDEX'ы всех секций | 1 проход | очередь |
## Прогресс фазы A (по чек-листам)
- [x] A1 linter `tools/check-md.py` — **0 issues** (2026-10-03)
- [x] A2 card↔disk — findings A-01, A-02
- [x] A3 disk↔MANIFEST — **0** сирот (все 668 файлов на диске присутствуют в MANIFEST)
- [x] A4 md5-дубли — finding A-03
- [x] A5 INDEX↔card — findings A-04 (+ linter-gap)
- [x] A6 cross-refs — **0** (все «cross-ref secNN #MM» и «see ../NN» резолвятся)
- [x] A7 xref.py — только 2 артефакта-парсера RAW (URL-строки Solms/Alcaro — книги уже закарточены #25/#26); stale ND-строк нет
- [x] A8 ISBN checksum — finding A-05 (9 шт., 2 из них обрезанные в тексте)
- [x] A9 имена файлов — finding A-06 (42 вне канона; сверка с CONTEXT-списком → Phase C)
- [x] A10 READING-LIST.md — **0** мёртвых ссылок (генератор сам резолвит реальные имена карточек — поэтому A-04 не видно в rootlist)
Итог фазы A: 6 групп findings (A-01…A-06), см. ниже. Машинные данные: `data/audit/phaseA-*.json`.
## Findings (ошибки)
Формат: `A-NN (секция/item, файл) — <ошибка> — ДОКАЗ: <команда/цитата> — severity: high|med|low`
### Фаза A
- **A-01 (high)** — 14 «файлов в карточке, которых нет на диске»: sec10 — 11 (карточки #18×2, #20×2, #25×2, #33×1, #36×4: перечислены по 2–4 издания, на диске меньше), sec11 #14 (14-golden-flower-en-1962.pdf, -en-2001.pdf), sec12 #16 (20-schwartz-salant-narcissizm-ru-2007.pdf — и с чужим номером 20-). ДОКАЗ: `phaseA-a2.json` (A2-missing). → разобрать в Phase C (удалены без апдейта карточки? не существовали?).
- **A-02 (med)** — 39 несовпадений «размер в карточке vs диск >25%», системный паттерн `.b.fb2` (карточка в 2–4 раза меньше файла) — гипотеза: flib «fb2+zip» (файл на диске = ZIP, размер в карточке = внутреннего fb2). Подтвердить magic bytes в Phase B. ДОКАЗ: `phaseA-a2.json` (A2-size), напр. `01-cw6-…-ru-psikh-tipy.b.fb2: card 712 KB vs disk 2.59 MB`.
- **A-03 (high, dedup-нарушение)** — 2 пары md5-идентичных файлов в РАЗНЫХ секциях: `01-fundamentals/25-handbook-jungian-en-routledge-2006.b.pdf` = `02-dreams/38-handbook-jungian-psychology-en-2006.pdf`; `08-developmental/07-fordham-modern-science-vol2-en-1973.pdf` = `12-practical-case/27-fordham-modern-science-en-1973.pdf`. Правило: файл хранится только в первой секции. ДОКАЗ: md5 1066baf0…, 549ff97e… (`phaseA-files.json`).
- **A-04 (med)** — sec07 INDEX: 10 устаревших значений File-колонки (указывают на несуществующие имена): 04-amer-histographic-challenges.md→04-amer-historiographic-challenges.md, 06-brewster-racial-complex.md→06-brewster-the-racial-complex.md, 10-jacobi-complex-archetype-symbol.md→10-jacobi-association-experiment-xref.md, 11-kast-dynamics-of-symbols.md→…-xref.md, 12/13 kast, 18, 23, 26, 27 — см. `phaseA-a569.json` (a5). Статусы при этом согласованы (❌/✅ совпадают). Linter-gap: check-md.py не проверяет существование файлов из INDEX.
- **A-05 (med)** — 9 ISBN с плохим checksum: `5-93866-044-1` (sec02 #17), `0-946439-19-5` ×2 (sec02 #18), `966-7219-51-2` (sec03 #26; префикс 966 = вероятно опечатка 965), `0-06-058331-4` (sec03 #50), `5-89613-003-6` ×2 (sec04 #28 — **известная** опечатка из sec04 sweep, data/isbn-validation.tsv); 2 обрезанных в тексте (978-5-88001-0 sec01 #19, 978-5-908110 sec03 #22) — не ISBN, а фрагменты. → сверить в Phase C с data/isbn-validation.tsv и фактом (Google Books/OL).
- **A-06 (low)** — 42 имени файлов вне канона `NN-slug-lang-edition.ext` (паттерны `.a./.b./.c.` и `…-ru.b.fb2`, `…-ru-2023.b.fb2`); почти все — документированный легаси (CONTEXT.md). Парсер CONTEXT-списка в аудите не сработал — точная сверка → Phase C.
### Фаза B (контент-свип всех 668 файлов, 2026-10-03)
Метод: авто-свип (magic + first-text + title-token score; данные `data/audit/phaseB-*.json`) → ручная триаж. Итог: **444 ok, 123 SUSPECT (триаж ниже), 17 manual (djvu/chm), 84 notitle (= B-02).**
- **B-01 (high)** — 4 файла = **ДРУГАЯ книга** ( RU-свип флибusty/libgen mislink, никогда не верифицировались по контенту):
1. `01-fundamentals/18-archetypal-psychology-ru-2006.fb2` — внутри: **Андрей Ильин «Мы из Конторы. Резидент могущественного государства»** (шпионский роман, fb2 title-info);
2. `01-fundamentals/28-critical-dictionary-ru-1994.epub` — внутри: **Виктория Токарева «Летающие качели (сборник)»**;
3. `01-fundamentals/22-transcendent-function-ru-2015.fb2` — внутри: **Александр Афанасьев** (sf_action, a54…);
4. `01-fundamentals/53-archetype-revisited-ru-2018.fb2` — внутри: **Дмитрий Стрешнев** (detective).
ДОКАЗ: title-info/OPF каждого файла (см. phaseB-suspect-diag.json). → удалить + re-source в Phase C.
- **B-02 (med)** — **76 файлов на диске (+ в MANIFEST) не перечислены в НИНОЙ карточке** (`## Downloads` отсутствует или строки нет): sec09 — 34, sec06 — 16, sec12 — 12, sec10 — 5, sec08/11/05 — по 1. Из них 19 — под ❌-карточками (EN-файлы легитимны, но по CANON должны быть в Downloads; в at-a-glance DL-колонка, возможно, занижена). Linter-gap: parity-проверка срабатывает только при наличии `## Downloads` в карточке. ДОКАЗ: `phaseB-notcards.json`.
- **B-03 (low)** — 4 EN-epub с битым OPF (title «test»/«[No data]»/«VISIT») — **контент настоящий, верифицирован** (page_*.xml): 11-redemption-motifs (✓ «Redemption Motifs in Fairytales»), 17-edinger-god-image (✓ «Transformation of the God-Image»), 10-jacoby-analytic-encounter (✓ «The Analytic Encounter»), 16-krieger-bridges (26 xhtml + 36 jpg — text-check в C). Остался 19-dreams-von-franz-en-shambhala-1998.epub («VISIT | soft») — проверка в C.
- **B-04 (info)** — ~20 image-сканов без OCR-слоя (red-book facsimile, great-mother, suzuki, kerenyi 235 MB, turner, carlat, edinger-ru, center, golden-flower, kandinsky-arhimed, dionis, zolotoy-osel, stevens, dream-psychology, way-of-all-women, myths-dreams-mysteries, gods-greeks, dream-underworld, skazki-grimm-1954, jacoby-1986, freud-a-normality 67B-watermark…). Контент не подтверждается текстом — метод верификации = рендер (pdftoppm) выборочно в C.
- **B-05 (info, false-positive)** — 4 fb2 в windows-1251 (26-taynye-obshestva ×2, 60-mat-ru ×2): контент на месте, title-info с пустыми полями (кириллица в encoding-зависимых тегох) — известная категория «encoding, не порча».
- **B-06 (med, → C)** — `05-ethnology/22-czaplicka-aboriginal-siberia-en.pdf`: внутри «**Shamanism in Siberia**» (Czaplicka 1926) — а в карточке «**Aboriginal Siberia**» (1914). Две РАЗНЫЕ книги. Вердикт: файл не та книга (или карточка ошибочна) — в C.
- **B-07 (med, → C)** — `03-myths/18-arabian-nights-en-vol{1,2,3}.epub`: внутри «**The Arabian Nights: Tales of 1,001 Nights**» (Irwin/Lyons ed.) — в карточке «**Entertainments** (Dover 1969)». Edition-mismatch — в C.
## Прогресс фаз B/C/D
Файл: `data/audit/progress.json` (status per object: pending | ok | flagged).
Findings фаз B/C/D — ниже в этом же файле, секциями.
## Журнал сессий аудита
- **2026-10-03**: старт. Свечной снимок: 483 позиции, 625 файлов, 12 секций FINAL, linter 0,
«без файлов» = 43 позиции. Фаза A запущена (A1 passed).
### Фаза C (покарточная детализация) — WORKLIST
- [ ] C1: B-01 — 4 «другие книги»: подтвердить identity (title-info уже есть), решить re-source
- [ ] C2: B-02 — 76 файлов без карточного покрытия (phaseB-notcards.json): проверить content по item'у + at-a-glance DL-колонки
- [ ] C3: A-01 — 14 «в карточке, нет на диске» (sec10 ×11, sec11 #14 ×2, sec12 #16 ×1)
- [ ] C4: A-03 — 2 md5-дубля (handbook sec01/sec02, fordham sec08/sec12)
- [ ] C5: A-04 — sec07 INDEX: 10 stale File-названий
- [ ] C6: A-05 — 7 реальных bad-checksum ISBN (5-93866-044-1, 0-946439-19-5 ×2, 966-7219-51-2, 0-06-058331-4, 5-89613-003-6 ×2) — сверить с isbn-validation.tsv и фактом
- [ ] C7: B-06 Czaplicka (Shamanism vs Aboriginal Siberia)
- [ ] C8: B-07 Arabian Nights (Irwin/Lyons vs Dover Entertainments)
- [ ] C9: формат-выжимка: .doc ×5 (11-motiv-iskupleniya, 17-dieckmann, 22-yungianskoe-tolkovanie, 27-jung-postjungians, 31-koch-tree-test), .rtf ×2 (16-erikson-ru, 37-bowlby-ru), .lit ×1 (20-durchslag), .chm ×1 (19-psychology-cg-jung)
- [ ] C10: 16 djvu — ручная верификация (precheck/ddjvu или рендер)
- [ ] C11: рендер-чек сканов с аномалиями: 10-edinger-anatomy (битый OCR), 18-freud-a-normality (Boxoft demo), 30-kandinsky buksmart ×2 (VeryPDF), 66-homeric-gods (stamps), 38-skazki-grimm-2013 (иллюстр. изд.), 10-kosmogonicheskie (плохой OCR), 16-carlat (63 MB скан), 33-center-en-2007 (61 MB скан)
- [ ] C12: 19-dreams-von-franz-en-shambhala-1998.epub («VISIT»), 16-krieger-bridges xhtml-text, 42-jacobs-irish azw3 + pdf (рус. учебное изд.), 51-folklore-OT (html-страница?), 41-dzhekobs-skazki (var. названия), 56-onians c/d (фрагменты Cambridge), 12-archetypal-patterns-bonus (другая книга von Franz?)
- [ ] C13: A-02 — 39 size-mismatch: подтвердить zip-гипотезу по `.b.fb2` (magic bytes)
- [ ] C14: A-06 — сверить 42 legacy-имени с CONTEXT-списком
### Фаза D (досье)
- [ ] D1: 278 досье — наличие Wiki anchor (QID) у всех, даты vs anchor
- [ ] D2: «Verified RU works» — RU-названия сверить с карточками (консистентность)
- [ ] D3: homonym warnings — актуальность