AGENTS.md: Workflow v3 — Phase 1.5 (batch catalog sweep до карточек): кросс-свип по обработанным секциям (PRIORITY 1), rutitles по всем item, каталоги издательств, EN-свип batch; каноническое RU имя (rulabel) — первый вариант всех запросов

This commit is contained in:
Dmitry Kokorin 2026-09-24 23:09:25 +03:00
parent f08930fd7d
commit 57b88fe39e

View file

@ -555,7 +555,7 @@ Examples: `cogito-yungianskaya-series-2026-07-17.md` (30 pp. CRW crawl, 518 titl
5. **Homonym rejection:** different first name / field / era → reject or mark ambiguous
(trap found: Верена Каст ≠ Вернер Каст; «Каст» search returns Verena Kast books).
## Workflow (per section) — v2 (2026-07-09)
## Workflow (per section) — v3 (2026-09-24: +Phase 1.5 batch catalog sweep, +канон. RU имя)
**Phase 0 — Full names + identity** (`authors/`):
1. Resolve every initial-only author to a full EN name: `tools/ol.py 'title:"EN Title"'`
@ -565,12 +565,36 @@ Examples: `cogito-yungianskaya-series-2026-07-17.md` (30 pp. CRW crawl, 518 titl
index `sections/<n>/AUTHORS-EN.md` linking to it. If the dossier already exists from
another section, just append the new list item + link it.
2. For big names: `wd.py` gives life dates + the OFFICIAL RU label (best RSL spelling).
**`tools/rulabel.py <QID>` = каноническая кириллица (ru label + aliases)** — всегда брать
до свипов: Циммер ≠ Зиммер, Корбен ≠ Корбин, Шолем ≠ Шулем, Клюгер ≠ КлуGER.
3. Build the transliteration matrix per author (2–3 variants: Нойманн/Нойман, Кох/Коч,
Калфф/Кальфф, Ферс/Фёрт) — run every query with ALL variants.
Калфф/Кальфф, Ферс/Фёрт) — run every query with ALL variants. **Каноническое RU имя
(rulabel/досье) — ПЕРВЫЙ вариант матрицы; стандартная транслитерация — только запасная.**
**Phase 1 — Author sweep (EN→RU):** per author: `rsl.py "<First> <Last>"` → `lg.py "<Last>"`
→ `cogito q=<Last>` → `flibusta ?ask=<Last>` → livelib/chitai-gorod author page. Apply identity
check. Fill author dossier.
**Phase 1 — Author sweep (EN→RU):** per author: `rsl.py "<RU First> <RU Last>"` (ВСЕГДА с
каноническим RU именем из досье/rulabel, не с транслитерацией наугад) → `lg.py "<RU Last>"`
→ `cogito q=<RU Last>` → `flibusta authors "<RU name>"` → livelib/chitai-gorod author page.
Apply identity check. Fill author dossier.
**Phase 1.5 — Batch catalog sweep (2026-09-24, после Phase 0–1, ПЕРЕД карточками):**
один проход по ВСЕМ item секции — до написания карточек. Определяет «карту покрытия»:
какие книги точно в RU/EN каталогах (✅-кандидаты), какие нет. (Опыт sec06: #08 Никлаус
из Флюэ пойман именно здесь, а не per-card.) Шаги:
1. **Кросс-свип по обработанным секциям (PRIORITY 1):** grep всех карточек `sections/0N-*/
*.md` (H1 + filename) по каждому item — книги из прошлых секций не ищем заново, а делаем
cross-ref-карточку (механика: python-скрипт по списку ключевых слов item; пример sec06:
6 кросс-рефов 01/02/03/05/06/11 за один проход). Досье авторов тоже: «Verified RU works»
может уже содержать ответ.
2. **`tools/rutitles.py both "<EN title>"` по каждому item** (DB = Касталия-1285 + Когито-518
+ ЛитРес + ОПП/МИСП + flib-авторские списки); подозрительные ✅-кандидаты — открыть продукт
(castalia/esxatos/cogito) и взять изд/год/ISBN.
3. **Каталоги издательств:** castalia-full-catalog (rule выше) + flib **authorall** по авторам
с >5 RU-книгами (фон Франц a/57639, Элиаде a/2943, …).
4. **EN-свип:** `oa.py` по EN-названиям (OpenAlex/Crossref — ISBN/полные имена; фаза 0,5);
soft libgen queries (`<author> <1–2 title words>`, см. «EN original sweep» ниже) +
`ia.py search` — batch, до даунлоуд-фазы, не после.
Результат фиксируется в INDEX.md (статусы до Phase 2). Затем Phase 2 добирает конкретные
книги, gate v3 — только финальная галочка.
**Phase 2 — Title-gap sweep** for still-unmatched books: `rsl.py "<RU title words>"` (check
author field!), `lg.py` 2–3 whole-word title combos, cogito, flibusta by RU title, GBS SPb via