Существующие проекты получили 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>
scripts/ — инфра-скрипты vault
kb-audit.py
Факт-детектор drift-а: сравнивает живой pct list/qm list с projects/dttb/proxmox-inventory.md.
Пишет отчёт в audit/YYYY-MM-DD-drift.md.
Без LLM — только факты. Галлюцинаций быть не может.
Запуск:
python3 scripts/kb-audit.py
kb-audit-propose.sh
Запускается после kb-audit.py. Берёт свежий drift + текущий inventory → отправляет в claude -p (Opus 4.7 через Max).
Получает предложенные правки → audit/YYYY-MM-DD-proposed.md.
Правки не применяются автоматом. Ревью — ты, git apply — вручную.
Запуск:
bash scripts/kb-audit-propose.sh
kb-audit-apply.py (karpathy-style уровень 3)
Автоматически применяет безопасные правки в proxmox-inventory.md:
- Новый LXC/VM в Proxmox → добавляется строка в таблицу «Остановленные» (только для stopped — running требует ручной секции с деталями)
- VMID отсутствует в pct/qm list → перемещается в секцию «🗑️ Удалённые» с сегодняшней датой
Гарды:
- Live-list < 5 хостов → abort (Proxmox возможно недоступен, не искалечим inventory)
- Коммит с автором
kb-audit-bot <kb-audit@dttb.ru>— легко фильтровать в git log - Трогает только
proxmox-inventory.md, никогда описания/назначения
Запуск:
python3 scripts/kb-audit-apply.py
Еженедельный cron (code-server LXC 132)
# воскресенье 06:00 — drift audit → safe auto-apply → Opus предложения оставшегося
0 6 * * 0 /usr/bin/python3 /root/knowledge-base/scripts/kb-audit.py && /usr/bin/python3 /root/knowledge-base/scripts/kb-audit-apply.py; /bin/bash /root/knowledge-base/scripts/kb-audit-propose.sh
Архитектура
pct list / qm list (Proxmox)
↓
kb-audit.py — фактовый diff → audit/YYYY-MM-DD-drift.md
↓
kb-audit-apply.py — автоматически применяет safe-правки (новые VMID, missing → 🗑️)
↓ коммитит как kb-audit-bot
↓
kb-audit-propose.sh — Opus читает drift + свежий inventory, предлагает что осталось
↓ → audit/YYYY-MM-DD-proposed.md
↓
ты ревьюишь оставшееся (описания, IP, назначения), применяешь руками
↓
коммит → sync везде (через kb-autosync + File Provider + Nextcloud)