Существующие проекты получили frontmatter с aliases для FTS / objects-map:
niikn — Cloud-NIIKN New niikn.com, pve-niikn, Kripto-ARM, M.Maul
dttb — Work Server dttb, code-server, rustdeskserver, MacBook-Pro, ...
glavtorg, krasnogorsk, zelenograd — добавлен frontmatter с aliases
Создано 6 новых README:
projects/znamenskoye/README.md — был отсутствующий index 3-х объектов
projects/mmfb/README.md — был отсутствующий index ММФБ + LionART
projects/sergey/README.md — stub OpenWrt_Sergey (Одинцово)
projects/benilux/README.md — stub OpenWrt Benilux (Истра)
projects/vishnevyy-sad/README.md — stub Константин (Москва)
projects/openwrt-4/README.md — stub анонимный OpenWrt_4
Обновлён scripts/kb-objects-map.py: exact-match вместо substring (избегает FP
вроде alias 'cloud' ⊂ 'Cloud-NIIKN New niikn.com'). Aliases теперь должны
содержать полные имена пиров как в netbird-inventory.
Метрика: с 38 orphan-пиров до 14. Остаток — реально неклассифицированные
клиентские машины без явной привязки к проекту (Денис Тихая, DESKTOP-2IOQS54
и др.) — задача для отдельного шага обогащения.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Авто-генератор реестра: парсит netbird-inventory + frontmatter каждого проекта,
выводит JSON для бота и человекочитаемый index с wiki-ссылками.
Пока 16 проектов / 38 orphan-пиров без своих карточек — выявленные дыры станут
input для Фазы 4 (stub-генератора). Скрипт идемпотентный, без deps (pure stdlib),
запуск: cd ~/knowledge-base && python3 scripts/kb-objects-map.py
Парсер обрабатывает offline-таблицу netbird (другой порядок колонок), normalize
ye→e уравнивает Знаменское/Znamenskoe. Source of truth — frontmatter каждого
проекта; добавление aliases/owner/region там сразу подхватится при следующем run.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>