Прогон всех 5 сканеров: gitleaks 0 / Semgrep 0 / Ward 2(dev) / Nuclei 0(medium+) / ZAP 0(high). pg_anonymizer не установлен (факт). Три ложных P0 сняты проверкой кода (E9/E18/admin/SSRF закрыты). Вердикт NO-GO держат F-P1, pg_anonymizer, прод-.env. Трекер открытых вопросов + файл-баг (чтение под стеной, десинк F-J, зацикл наставника) для claude-brain. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.9 KiB
Спека — прогон Semgrep после установки
Цель
Прогнать статический анализатор Semgrep (npm run sast) после его установки в
окружение и занести результат в отчёт go-live security gate. Цель — ветка main,
локально; код/схема/git не правятся, правка только в файле отчёта.
S1 — прогон Semgrep
Контракт. Запустить npm run sast (Semgrep с конфигами p/php, p/javascript,
p/typescript, p/secrets + локальный .semgrep.yml). Результат разнести по severity.
Edge-case. Если вывод уезжает в фоновый запуск и недоступен на чтение — результат помечается «получить из вывода», не выдаётся за «чисто». Если Semgrep всё ещё не на PATH — фиксируется, что установка не завершилась.
Конвенция. critical/high = NO-GO; medium = предупреждение; low/info — справочно.
Критерий. Semgrep отработал, результат по severity готов для отчёта.
S2 — занести в отчёт
Контракт. В отчёте docs/security/2026-06-17-go-live-security-report.md строка
Semgrep обновляется с PENDING на фактический результат (severity-разбивка).
Критерий. Строка Semgrep в отчёте отражает реальный прогон.
[
{"id":"vc1","kind":"EXTRACTED","ref":"docs/security/2026-06-17-go-live-security-report.md","anchor":"SECURITY GO-LIVE REPORT"},
{"id":"vc2","kind":"EXTRACTED","ref":"docs/security/2026-06-17-open-items.md","anchor":"Открытые вопросы"}
]