
AI-рецензирование для результатов пентестов или отчетов Bug Bounty — проверяет серьезность, доказательства и качество отчетов перед отправкой, используя несколько независимых ИИ-рецензентов (Claude, GPT, Gemini), которые критикуют друг друга перед вынесением вердикта.
Слепой рецензируемый пайплайн, который проверяет находку пентеста до того, как она попадёт к клиенту. Независимые эксперты-линзы оценивают находку, проводят слепое рецензирование друг друга, а Председатель синтезирует одно проверенное заключение — стоит ли её сообщать и корректно ли выставлена степень серьёзности?
Два способа запуска:
| Режим | Где | Что происходит |
|---|---|---|
| Ручной председатель | claude.ai / чат приложения Claude | Один Claude рассматривает каждую линзу изолированно, затем синтезирует. Нулевая стоимость, не нужны ключи. |
| Параллельный (кросс-вендорный) | Claude Code на вашей машине | council_direct.py распределяет линзы между Claude + ChatGPT + Gemini как реальные параллельные вызовы. Расходует токены провайдера. Выявляет слепые зоны, общие для одного вендора. |
Этот репозиторий является источником истины. Править здесь, коммитить через git. База знаний проекта Claude — это зеркало только для чтения — перезагружайте изменённые файлы, когда они существенно меняются. Не синхронизируйте в обе стороны.
llm-council-vapt/
├── README.md # этот файл
├── requirements.txt # зависимости Python
├── .env.template # имена ключей, без значений
├── .gitignore # игнорирует .env (ключи никогда не коммитятся)
├── skills/
│ └── llm-council/
│ └── SKILL.md # навык (8 участников, протоколы, режимы)
├── scripts/
│ └── council_direct.py # параллельный кросс-вендорный движок
└── docs/
└── project_system_prompt.md # вставьте в настройки проекта Claude
# 1. клонировать / разместить репозиторий
git clone <ваш-url-репозитория> llm-council-vapt
cd llm-council-vapt
# 2. сделать навык обнаруживаемым для Claude Code (симлинк, чтобы правки оставались актуальными)
mkdir -p ~/.claude/skills
ln -s ~/llm-council-vapt/skills/llm-council ~/.claude/skills/llm-council
# 3. ключи
cp .env.template .env
nano .env # вставьте три ключа, сохраните
Отредактируйте .env и добавьте свои ключи API Anthropic, OpenAI и Google.
Изолирует зависимости от системного Python.
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -r requirements.txt
Примечание (Kali / системы на базе Debian): PEP 668 по умолчанию блокирует
pip installв систему. Если вы получите ошибкуexternally-managed-environment, используйте вариант A или принудительно выполните:pip install -r requirements.txt --break-system-packages
python scripts/council_direct.py --help
ls -l ~/.claude/skills/llm-council/SKILL.md # должно разрешаться через симлинк
Если обе команды выполняются чисто, всё настроено.
Полный справочник команд (все флаги, все режимы, все примеры) см. в docs/USAGE.md.
Просто введите команду — никаких ключей, никаких скриптов:
/llm-council -q -u # быстро, загрузить файл
/llm-council medium validation -p # среднее, вставить содержимое
/llm-council -f -u -v2 -s high # полное, загрузить, версия 2, проверить High
Флаги: режим -q|-m|-f (или quick|medium|full validation), ввод -u (загрузить) / -p (вставить), версия -vN, серьёзность -s low|medium|high|critical.
python3 scripts/council_direct.py \
--mode full \
--finding ./finding.md \
--severity high \
--version 2 \
--finding-id <YOUR-FINDING-ID> \
--project <PREFIX> > council_run.json
--finding принимает путь к файлу или необработанный текст. Скрипт выводит JSON (оценки + слепые рейтинги + агрегированные данные + любые ошибки). Затем попросите Claude Code прочитать council_run.json и выполнить Этап 3 совета (синтез Председателя) для получения окончательного вердикта.
quick (-q) → Red-teamer · CVSS Auditor · Evidence Auditor (3)
medium (-m) → + Attack Chain Analyst · Remediation Critic (5)
full (-f) → + Threat Intel Analyst · False Negative Hunter ·
Business Impact Translator (8)
Quick = быстрая проверка достоверности во время тестирования. Medium = находки, которые вы намерены сообщить. Full = шлюз перед сдачей отчёта; по умолчанию для любых High/Critical.
Проверены по официальным документам провайдеров (июнь 2026). Не вечнозелёные — обновляйте MODELS в начале scripts/council_direct.py, когда провайдеры выпускают новые флагманы.
.env игнорируется git. Настоящие ключи никогда не попадают в коммит. Проверьте с помощью git status перед первым git add — .env не должно появляться.python-dotenv. Они никогда не записываются в логи или выходной JSON.Скрипт читает текстовые находки напрямую: .md, .txt, .json, .csv, .yaml или необработанный текст, переданный встроенно. Бинарные/документные форматы (.pdf, .docx, .xlsx и т.д.) не поддерживаются — скрипт обнаруживает их и завершается с сообщением, предлагая преобразовать в .md/.txt. Поскольку находки пишутся в Markdown, это обычно не проблема.
В полном/среднем режиме Аналитик цепочки атак может учитывать родственные находки:
--findings-dir <путь> — каталог для сканирования (по умолчанию каталог самого файла находки).--project <префикс> — необязательный тег для фильтрации по префиксу имени файла, чтобы определить, какие родственники считаются связанными. Если опущен, учитываются все читаемые текстовые родственники. Тег указывается при запуске; ни имена клиентов, ни префиксы не зашиты в код.Храните реальные файлы находок вне этого репозитория (где угодно на вашей машине). Указывайте --findings-dir на это расположение при каждом запуске.
Создано Holiday
| Роль | Провайдер | ID модели | Ключ |
|---|
| Claude | Anthropic | claude-opus-4-8 | ANTHROPIC_API_KEY |
| ChatGPT | OpenAI | gpt-5.5 | OPENAI_API_KEY |
| Gemini | gemini-3.1-pro-preview | GEMINI_API_KEY |