CB codeql-local-triage
Ответы на вопросы «Почему CodeQL отметил это, и какая строка должна быть изменена, чтобы это прекратилось» — воспроизводимая причинно-следственная сортировка ОДНОГО конкретного предупреждения с помощью бисекции вариантов. Активируется по запросам «подтвердить источник загрязнения / воспроизвести это предупреждение CodeQL / почему CodeQL сообщает об этом / ложное срабатывание CodeQL / является ли это предупреждение ложным срабатыванием / запустить CodeQL локально / проверить, исправлено ли предупреждение безопасности / confirm the taint source / why does CodeQL flag this / is this alert a false positive / reproduce this CodeQL alert / verify a security-alert fix» или при передаче файла .sarif с вопросом, где начинается загрязнение. НЕ для аудита предупреждений всего репозитория или массового отклонения — никогда не закрывает предупреждения за вас и никогда не заменяет набор Code Scanning. НЕ для Java/JS/Go (только Python сегодня). Предварительный фильтр перечисляет потенциальные конфиденциальные ИМЕНА в указанных файлах/каталогах; он не делает выводов и не создает отчет об аудите. Ключевые слова — CodeQL, Code Scanning, taint source, data flow, SARIF, codeFlows, false positive, py/clear-text-storage-sensitive-data, CWE-312.
машинный переводПоказать оригиналСкрыть оригинал«Answers "why did CodeQL flag this, and which line must change for it t…»
Answers "why did CodeQL flag this, and which line must change for it to stop" — reproducible causal triage of ONE specific alert via variant bisection. Triggers on "确认 taint 源 / 复现这个 CodeQL 告警 / 为什么 CodeQL 报这个 / CodeQL 误报 / 这个告警是不是误报 / 本地跑 CodeQL / 验证安全告警是否修好 / confirm the taint source / why does CodeQL flag this / is this alert a false positive / reproduce this CodeQL alert / verify a security-alert fix", or when handed a .sarif file and asked where the taint starts. NOT for whole-repo alert audits or bulk dismissal — it never closes alerts for you and never replaces the Code Scanning suite. NOT for Java/JS/Go (Python only today). The prefilter lists candidate sensitive NAMES in files/dirs you point at; it draws no conclusion and produces no audit report. Keywords — CodeQL, Code Scanning, taint source, data flow, SARIF, codeFlows, false positive, py/clear-text-storage-sensitive-data, CWE-312.
Ответы на вопросы «Почему CodeQL отметил это, и какая строка должна быть изменена, чтобы это прекратилось» — воспроизводимая причинно-следственная сортировка…
Как процесс B 74/100 · Почти готов — слабые места: результат и критерий готовности, входы и предусловия, отчётность по ходу
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Скилл просит больше прав, чем нужно для задачи: широкий доступ к инструментам, секретные переменные окружения, бинарные файлы. Каждое лишнее право расширяет ущерб при ошибке или взломе.
Сузьте allowed-tools и список переменных до минимума, замените бинарники на исходники или скрипты, которые можно прочитать.
Как улучшить
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 1
✓ Критических и высоких находок нет
Средние и низкие: 1
-
средняя Широкие права
meta-broad-allowed-toolsSKILL.md:1Заранее разрешены широкие инструменты: Bashallowed-tools: Read Grep Glob Bash
Просканировано файлов: 13. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- заметка
frontmatter-keyнеизвестное поле фронтматтера "slug" - заметка
frontmatter-keyнеизвестное поле фронтматтера "displayName" - заметка
frontmatter-keyнеизвестное поле фронтматтера "summary" - заметка
frontmatter-keyнеизвестное поле фронтматтера "homepage" - заметка
frontmatter-keyнеизвестное поле фронтматтера "agent_created" - заметка
frontmatter-keyнеизвестное поле фронтматтера "permissions"
Процессный рейтинг: все десять параметров 74/100
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 40Результат и критерий готовности. Не сказано, что считать результатом
- 50Ошибки и развилки. Развилок: 0, есть раздел про ошибки
- 100Инструменты и файлы. Инструменты объявлены во frontmatter
- 100Шаги. Шагов: 33
- 100Когда включается. Сказано, когда применять и когда не применять
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 3566 токенов
- 100Повторный запуск. Изменяющие операции проверяют текущее состояние
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
- low Ответ описан самодельной разметкой (5 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +3Длина description 906: рекомендуется 120–800 символов
- +3Формат ответа не описан: модель каждый раз решает сама
- +4Нет примеров входа/выхода
- -31 из 4 скриптов не упомянуты в SKILL.md
- +1Лицензия не указана
- +2Инструкции на одном языке
- +4Описание говорит, когда скилл НЕ применять
- +4Структура: 16 заголовков
- +3Пошаговые инструкции: 33 пунктов
- +4Справочные файлы упоминаются в инструкциях (5 из 5)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 79.