Files
knowledge-base/scripts
dttb d4433bd0a8 Phase 4: обогатить frontmatter проектов + 6 новых stub'ов
Существующие проекты получили 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>
2026-05-06 16:25:44 +03:00
..

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)