#!/bin/bash # kb-audit-propose — прогоняет последний drift-отчёт через Claude Opus, # получает предложенные правки в inventory-файл. # Запускать ПОСЛЕ kb-audit.py. # Работает на code-server (где есть claude CLI с Max подпиской). set -u VAULT="$(cd "$(dirname "$0")/.." && pwd)" DATE=$(date +%Y-%m-%d) DRIFT="$VAULT/audit/${DATE}-drift.md" OUT="$VAULT/audit/${DATE}-proposed.md" if [ ! -f "$DRIFT" ]; then echo "drift-отчёт не найден: $DRIFT. Запусти сначала kb-audit.py" >&2 exit 1 fi # если уже есть сегодняшний proposed — skip (не дёргаем Opus попусту) if [ -f "$OUT" ] && [ "$OUT" -nt "$DRIFT" ]; then echo "proposed уже свежее drift: $OUT" >&2 exit 0 fi cd "$VAULT" || exit 1 PROMPT="Ниже: а) отчёт drift-аудита инфраструктуры Proxmox, б) актуальный файл inventory. Задача: предложи конкретные правки в projects/dttb/proxmox-inventory.md чтобы устранить drift. НЕ правь файл сам. Выдай: 1. Краткое резюме (1-3 предложения) что изменилось 2. Список конкретных блоков для добавления/удаления/изменения (формат markdown diff блоков с пояснением) 3. Предупреждения если что-то неоднозначное Не выдумывай данных которых нет в drift-отчёте. Используй factual IP/hostname только из отчёта." { echo "$PROMPT" echo "" echo "---" echo "## DRIFT-ОТЧЁТ" echo "" cat "$DRIFT" echo "" echo "---" echo "## ТЕКУЩИЙ INVENTORY" echo "" cat "$VAULT/projects/dttb/proxmox-inventory.md" } | claude -p --permission-mode plan > "$OUT.tmp" 2>&1 if [ -s "$OUT.tmp" ]; then { echo "---" echo "date: $DATE" echo "type: audit-proposed" echo "source: kb-audit-propose.sh (Opus 4.7)" echo "tags: [audit, proposed, inventory]" echo "---" echo "" echo "# Предложенные правки inventory — $DATE" echo "" echo "Сгенерировано Claude Opus на основе [[${DATE}-drift|drift-отчёта]]." echo "**Правки НЕ применены.** Ревью — ты. Apply — вручную." echo "" cat "$OUT.tmp" } > "$OUT" rm "$OUT.tmp" echo "proposed saved: $OUT" else echo "Claude вернул пустой ответ" >&2 rm -f "$OUT.tmp" exit 2 fi