diff --git a/AGENTS.md b/AGENTS.md index bb3b5b4..d195c30 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -17,9 +17,10 @@ We work **section by section**. Status (детали — в SUMMARY.md/MANIFEST. | 05 | ethnology | 29 | 17/0/12 | 38 | FINAL 2026-09-25 | | 06 | religion | 28 | 19/1/8 | 38 | FINAL 2026-09-25 | | 07 | complexes | 27 | 4/0/23 | 20 (EN only) | FINAL 2026-09-26 | +| 08 | developmental | 48 | 20/1/27 | 44 (333 MB) | FINAL 2026-09-26 | -**Next:** scope decision for sections 08–12 (RAW в data/isap-raw/; MASTER-LIST просчитал: -08=47 NEW/5 xref, 09=25/12, 10=38/4, 11=9/14, 12=35/5). +**Next:** sections 09–12 (RAW в data/isap-raw/; MASTER-LIST: 09=25 NEW/12 xref, +10=38/4, 11=9/14, 12=35/5). ## Repository layout @@ -788,3 +789,27 @@ The validated approach for closing the EN download gap of a section: - Per language, format priority: ALL pdfs if any pdf exists; else all fb2; else all epub; else all doc. - File naming `NN---.`; **downloads в git LFS** (.gitattributes per sec), MANIFEST.md — обычный текст. + +## Lessons from sec08 (2026-09-26) + +1. **pkill -f self-match (расширение ловушки 2026-09-20):** `pkill -f "en-queue.sh"` убил СОБСТВЕННУЮ + оболочку — паттерн оказался в command line bash'а, исполнявшего heredoc с этим же текстом. + Правило: pkill -f только по паттернам, которых НЕТ в текущей команде (или kill по pid из + `ps -eo pid,comm,args | awk '$2=="python3" && /lgdl/'`). +2. **EN-кью против ads.php-троттлинга:** паттерн, выживший в sec08: `en-queue.sh` (per-file + skip-if-exists + `timeout 1500` + tries=3 через `python3 -c "...lgdl.download(..., tries=3)"`) + + `en-rounds.sh` (раунд → 25-min cooldown → раунд, до remaining=0). Один раунд = 10–20 файлов + до троттлинга; с tries=16 проклятый файл жрал 45 мин вместо 2. +3. **`ls a*.pdf b*.epub` возвращает non-zero, если ХОТЯ БЫ ОДИН паттерн не матчит** (даже если + другой сматчился) — счётчики «remaining» в таких if'ах завышаются. Проверять через + `ls pattern 2>/dev/null | grep -q .` или по каждому расширению отдельно. +4. **Libgen-файлы-«книги», которые на деле не книги (6 отклонений за секцию):** 2–3-стр. BOOK + REVIEWS (08, 14, 18, 38), 1-стр. «Book Reviews» фрагмент (30), 24–26-стр. JAPA presentation/ + article вместо книги (33). Precheck не ловит (locator совпадает по теме!) — ТОЛЬКО + post-download: pdfinfo Pages (<10 pp = подозрительно) + first-page text. +5. **ia-ресурсы секции:** CarlJungCollectedWorks (CW4) и freud-complete-works (SE 24 тома, 5109 pp, + оба эссе 19/20 верифицированы в djvu.txt) — оба OPEN, прямые /download/ работают. +6. **DJVU на этой машине:** ddjvu = GUI (текстовый вывод = мусор), djvu2txt/djvu2png не установлены, + python djvutxt нет. Content-verify djvu = precheck (reverse-map + locator) — приемлемо при + MATCHES; при SUSPECT — поставить djvulibre-utils. +7. **Linter (check-md.py) fname_re** в tools/migrate_cards_v3.py — расширенный: +rtf (2026-09-26).