DC review
Предварительный обзор PR. (gstack)
машинный переводПоказать оригиналСкрыть оригинал«Pre-landing PR review. (gstack)…»
Pre-landing PR review. (gstack)
Предварительный обзор PR.
Как процесс C 67/100 · Есть пробелы — Скилл ссылается на файлы, которых нет в архиве: templates/..., templates/functional-report-template.md, templates/qa-report-template.md
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Скилл просит больше прав, чем нужно для задачи: широкий доступ к инструментам, секретные переменные окружения, бинарные файлы. Каждое лишнее право расширяет ущерб при ошибке или взломе.
Сузьте allowed-tools и список переменных до минимума, замените бинарники на исходники или скрипты, которые можно прочитать.
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
- В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 9
✓ Критических и высоких находок нет
Средние и низкие: 9
-
средняя Широкие права
meta-broad-allowed-toolsSKILL.md:1Заранее разрешены широкие инструменты: Bashallowed-tools: Bash Read Edit Write Grep Glob Agent AskUserQuestion WebSearch
-
низкая Опасные команды
cmd-eval-dynamicchecklist.md:59Динамическое выполнение кода из декодированного/недоверенного ввода (определение детектора / чёрного списка)- `subprocess.run()` / `subprocess.call()` / `subprocess.Popen()` with `shell=True` AND f-string/`.format()` interpolation in the command string — use argument arrays instead
детектор -
низкая Рискованное назначение
intent-offensive-securitychecklist.md:169Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)├─ View/Frontend └─ Red Team (conditional)
-
низкая Рискованное назначение
intent-offensive-securitysections/review-army.md:92Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)4. **Defensive framing (Security specialist and the Red Team below only).** Begin the prompt with:
-
низкая Рискованное назначение
intent-offensive-securitysections/review-army.md:240Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)### Red Team dispatch (conditional)
-
низкая Рискованное назначение
intent-offensive-securitysections/review-army.md:246Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)The Red Team subagent receives:
-
низкая Рискованное назначение
intent-offensive-securitysections/review-army.md:251Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение) (в кавычках — упоминание, а не команда)Prompt, after the defensive framing and fixture handling from item 4 of the specialist dispatch: "You are a red team reviewer. The code has already been reviewed by N specialists
в кавычках -
низкая Рискованное назначение
intent-offensive-securitysections/review-army.md:258Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)If the Red Team finds additional issues, tag them `"specialist":"red-team"`.
-
низкая Рискованное назначение
intent-offensive-securityspecialists/red-team.md:1Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)# Red Team Review
Просканировано файлов: 20. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
description-shortdescription короче 40 символов: модели не хватит сигнала для срабатывания - предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда") - предупреждение
body-longтело SKILL.md ≈ 20075 токенов (рекомендуется < 5000); вынесите детали в references/ - предупреждение
missing-refссылка на отсутствующий файл: templates/... - предупреждение
missing-refссылка на отсутствующий файл: templates/functional-report-template.md - предупреждение
missing-refссылка на отсутствующий файл: templates/qa-report-template.md - заметка
frontmatter-keyнеизвестное поле фронтматтера "preamble-tier" - заметка
frontmatter-keyнеизвестное поле фронтматтера "triggers" - заметка
edit-residueв тексте есть пометки об устаревшем (строки 918): проверьте, не остались ли старые правила рядом с новыми — полная проверка читает текст на противоречия
Процессный рейтинг: все десять параметров 67/100
- 0Инструменты и файлы. Не хватает 3 файла(ов): templates/..., templates/functional-report-template.md, templates/qa-report-template.md
- 10Стоимость исполнения. Тело инструкции 20075 токенов: вытесняет саму задачу из окна
- 30Входы и предусловия. Не сказано, что нужно иметь на входе
- 80Когда включается. Сказано, когда применять и когда не применять
- 100Шаги. Шагов: 169
- 100Результат и критерий готовности. Формат результата и критерий готовности описаны
- 100Ошибки и развилки. Развилок: 16, есть раздел про ошибки
- 100Согласованность. Имя и обязательные поля на месте
- 100Повторный запуск. Изменяющие операции проверяют текущее состояние
- 100Отчётность по ходу. Скилл сообщает о ходе работы
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
- low Разделов верхнего уровня: 39. Похоже на несколько доменов в одном скилле
- low Скилл сам сортирует и ранжирует выдачу: это работа системы на той стороне, а не модели
- low Ответ описан самодельной разметкой (26 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Длина description 31: рекомендуется 120–800 символов
- -5В тексте остались TODO / заглушки
- +1Лицензия не указана
- +2Инструкции на одном языке
- +4Структура: 64 заголовков
- +3Пошаговые инструкции: 169 пунктов
- +3Формат ответа описан явно
- +4Есть примеры (22 блоков кода)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 35.