DC programming
Применяет строгие современные практики языка (типизированные ошибки, исчерпывающий поиск совпадений, тесты, которые могут завершиться ошибкой) для Python, Rust, TypeScript, JavaScript и Go. Используйте при работе с файлами .py, .rs, .ts, .js или .go, а также всякий раз, когда файл теста или спецификации пишется, изменяется, проверяется или удаляется: здесь находятся "четырехвопросные" ворота для написания тестов и классы "мусорных" тестов.
машинный переводПоказать оригиналСкрыть оригинал«Applies strict, modern language practice (typed errors, exhaustive mat…»
Applies strict, modern language practice (typed errors, exhaustive match, tests that can fail) for Python, Rust, TypeScript, JavaScript, and Go. Use for work on .py, .rs, .ts, .js, or .go files, and whenever a test or spec file is written, reshaped, reviewed, or deleted: the four-question test authoring gate and the junk-test classes live here.
Применяет строгие современные практики языка (типизированные ошибки, исчерпывающий поиск совпадений, тесты, которые могут завершиться ошибкой) для Python…
Как процесс C 58/100 · Есть пробелы — слабые места: результат и критерий готовности, входы и предусловия, стоимость исполнения
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Скилл содержит команды, которые удаляют файлы, переписывают диски или исполняют код, скачанный из сети. Агент может выполнить их без вопроса, если считает, что так требует инструкция.
Замените разрушительные команды на безопасные аналоги с подтверждением, ограничьте область действия конкретной папкой и не тяните код через curl | bash: укажите версию и контрольную сумму.
Как улучшить
- Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 14
✓ Критических и высоких находок нет
Средние и низкие: 14
-
средняя Опасные команды
cmd-pipe-to-shell-known-hostreferences/python/one-liners.md:37Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код)# curl -LsSf https://astral.sh/uv/install.sh | sh
-
средняя Опасные команды
cmd-pipe-to-shell-known-hostreferences/python/one-liners.md:76Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код)# curl -LsSf https://astral.sh/uv/install.sh | sh
-
средняя Опасные команды
cmd-pipe-to-shell-known-hostreferences/python/one-liners.md:130Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код)# 1. Install uv: curl -LsSf https://astral.sh/uv/install.sh | sh
-
средняя Опасные команды
cmd-pipe-to-shell-known-hostreferences/python/one-liners.md:168Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код)# 1. Install uv: curl -LsSf https://astral.sh/uv/install.sh | sh
-
средняя Опасные команды
cmd-pipe-to-shell-known-hostreferences/python/one-liners.md:207Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код)# 1. Install uv: curl -LsSf https://astral.sh/uv/install.sh | sh
-
низкая Секреты в коде
secret-high-entropy-tokenreferences/go/backend-stack.md:609Строка, похожая на токен (может быть id, хеш или секрет)func Test…put(t *testing.T) { -
низкая Секреты в коде
secret-high-entropy-tokenreferences/go/testing.md:175Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)func Test…gin(t *testing.T) {тестовый файл -
низкая Опасные команды
cmd-pipe-to-shell-known-hostscripts/go/new-project.ts:8Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код) (комментарий в коде)* 1. Install Bun: curl -fsSL https://bun.sh/install | bash
комментарий -
низкая Опасные команды
cmd-pipe-to-shell-known-hostscripts/python/new-project.ts:6Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код) (комментарий в коде)* 1. Install Bun: curl -fsSL https://bun.sh/install | bash
комментарий -
низкая Опасные команды
cmd-pipe-to-shell-known-hostscripts/python/new-project.ts:7Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код) (комментарий в коде)* 2. Install uv: curl -LsSf https://astral.sh/uv/install.sh | sh
комментарий -
низкая Опасные команды
cmd-pipe-to-shell-known-hostscripts/python/new-project.ts:160Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код) (строковый литерал в коде, не выполняется)`uv could not be started (${init.reason}); install it: curl -LsSf https://astral.sh/uv/install.sh | sh`,строка в коде -
низкая Опасные команды
cmd-pipe-to-shell-known-hostscripts/python/new-script.ts:8Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код) (комментарий в коде)* 1. Install Bun: curl -fsSL https://bun.sh/install | bash
комментарий -
низкая Опасные команды
cmd-pipe-to-shell-known-hostscripts/python/new-script.ts:87Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код) (строковый литерал в коде, не выполняется; комментарий в коде)# curl -LsSf https://astral.sh/uv/install.sh | sh
строка в кодекомментарий -
низкая Опасные команды
cmd-pipe-to-shell-known-hostscripts/rust/new-project.ts:8Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код) (комментарий в коде)* 1. Install Bun: curl -fsSL https://bun.sh/install | bash
комментарий
Просканировано файлов: 80. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
body-longтело SKILL.md ≈ 8311 токенов (рекомендуется < 5000); вынесите детали в references/ - заметка
edit-residueв тексте есть пометки об устаревшем (строки 172): проверьте, не остались ли старые правила рядом с новыми — полная проверка читает текст на противоречия
Процессный рейтинг: все десять параметров 58/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 30Повторный запуск. Изменяющих операций: 21, без проверки текущего состояния
- 40Стоимость исполнения. Тело инструкции 8311 токенов: вытесняет саму задачу из окна
- 60Инструменты и файлы. Используются инструменты (web, python, node), но во frontmatter они не объявлены
- 70Когда включается. Сказано, когда применять, но не сказано, когда не стоит
- 100Шаги. Шагов: 30
- 100Ошибки и развилки. Развилок: 4, есть раздел про ошибки
- 100Согласованность. Имя и обязательные поля на месте
- 100Отчётность по ходу. Скилл сообщает о ходе работы
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
- low Разделов верхнего уровня: 13. Похоже на несколько доменов в одном скилле
- low Ответ описан самодельной разметкой (3 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- -31 из 1 скриптов не упомянуты в SKILL.md
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 346 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 26 заголовков
- +3Пошаговые инструкции: 30 пунктов
- +4Есть примеры (2 блоков кода)
- +4Справочные файлы упоминаются в инструкциях (2 из 2)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 75.
В песочнице Скрипты вели себя тихо
Скрипты скилла запущены в одноразовой машине: без сети, с подложными ключами в домашнем каталоге, под наблюдением. Мы записали, что они делали. Попытка выйти в сеть или прочитать чужие секреты ограничивает техническую оценку буквой C; тихий запуск баллов не добавляет.
Запущено 11 скриптов; каждому дали двадцать секунд, поддельный домашний каталог с ключами и сеть, в которой ничего нет.
Из них 7 не дошли до работы, и об их поведении мы ничего не узнали.
scripts/go/check-no-excuse-rules.sh | не запустился: Usage: scripts/go/check-no-excuse-rules.sh <file.go> [file.go ...] |
scripts/go/new-project.py | не запустился: ModuleNotFoundError: No module named 'typer' |
scripts/python/check-no-excuse-rules.py | не запустился: usage: check-no-excuse-rules.py <file-or-dir>... |
scripts/python/new-project.py | не запустился: ModuleNotFoundError: No module named 'typer' |
scripts/python/new-script.py | не запустился: ModuleNotFoundError: No module named 'typer' |
scripts/rust/check-no-excuse-rules.sh | не запустился: Usage: scripts/rust/check-no-excuse-rules.sh <file.rs> [file.rs ...] |
scripts/rust/check-no-excuse-rules.test.ts | ничего за пределами своей папки |
scripts/rust/new-project.py | не запустился: ModuleNotFoundError: No module named 'typer' |
scripts/typescript/check-no-excuse-rules.test.ts | ничего за пределами своей папки |
scripts/typescript/check-no-excuse-rules.ts | ничего за пределами своей папки |
scripts/typescript/new-project.ts | ничего за пределами своей папки |
26 сент. 2026 г.