Files
knowledge-base/scripts/kb-audit-propose.sh

72 lines
2.7 KiB
Bash
Executable File
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.
#!/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