Files
knowledge-base/scripts/README.md
dttb a379b626af kb-audit: уровень 3 — auto-apply safe drift fixes (karpathy-style)
- kb_audit_helpers.py — общие функции parse_live/inventory/deleted
- kb-audit-apply.py — применяет только structural факт-правки:
  * new VMID → добавить в "🔴 Остановленные" (только для stopped)
  * missing VMID → переместить в "🗑️ Удалённые" с датой
- Коммитит как kb-audit-bot <kb-audit@dttb.ru> — фильтруемо в git log
- Safety: live<5 хостов → abort
- Не трогает описания/IP/назначения — только структурные поля из pct list

Cron обновлён: audit → apply → propose (остаток для ручного ревью)
2026-04-18 00:42:49 +03:00

62 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# scripts/ — инфра-скрипты vault
## kb-audit.py
Факт-детектор drift-а: сравнивает живой `pct list`/`qm list` с `projects/dttb/proxmox-inventory.md`.
Пишет отчёт в `audit/YYYY-MM-DD-drift.md`.
**Без LLM** — только факты. Галлюцинаций быть не может.
Запуск:
```bash
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
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`, никогда описания/назначения
Запуск:
```bash
python3 scripts/kb-audit-apply.py
```
## Еженедельный cron (code-server LXC 132)
```cron
# воскресенье 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)
```