SKILLEMALL.ai

DA ios-qa

Тестирование iOS в реальном времени для SwiftUI приложений. (gstack)

машинный переводПоказать оригиналСкрыть оригинал«Live-device iOS QA for SwiftUI apps. (gstack)…»

Live-device iOS QA for SwiftUI apps. (gstack)

garrytan/gstack Agent Skills автор: garrytan MIT 31 файл · 27 скриптов тело ≈ 10 996 токенов Открыть источникgithub.com↗ проанализирован 3 дн назад

Тестирование iOS в реальном времени для SwiftUI приложений.

Как процесс A 82/100 · Дойдёт до конца — слабые места: стоимость исполнения, повторный запуск

ПроцедураИИ и агентыРазработкатип и темы размечены автоматически по тексту скилла
JSON
Технический рейтинг
D
73/100
безопасность, качество, тесты
Безопасность 60%
86
Качество 40%
54
Прогон на моделях
не было
Процессный рейтинг
A
82/100
Дойдёт до конца
Повторный запуск вес 4
30
Стоимость исполнения вес 6
40
Когда включается вес 12
50
три самых слабых из десяти параметров · все десять

Чем это грозит

Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.

Широкие права средняя серьёзность

Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.

Если установить

Скилл просит больше прав, чем нужно для задачи: широкий доступ к инструментам, секретные переменные окружения, бинарные файлы. Каждое лишнее право расширяет ущерб при ошибке или взломе.

Автору

Сузьте allowed-tools и список переменных до минимума, замените бинарники на исходники или скрипты, которые можно прочитать.

Как улучшить

  1. Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
  2. Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
Для прогона на моделях — необязательно
  • Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
  • spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.

Находки guard · 10

✓ Критических и высоких находок нет

Средние и низкие: 10
  • средняя Широкие права meta-broad-allowed-tools SKILL.md:1
    Заранее разрешены широкие инструменты: Bash
    allowed-tools: Bash Read Write Edit Grep Glob AskUserQuestion
  • низкая Секреты в коде secret-high-entropy-token daemon/src/devicectl.ts:117
    Строка, похожая на токен (может быть id, хеш или секрет)
    export function getD…ctl(
  • низкая Секреты в коде secret-high-entropy-token daemon/src/devicectl.ts:238
    Строка, похожая на токен (может быть id, хеш или секрет)
    const fromDevicectl = getD…ctl(opts.udid, spawn);
  • низкая Секреты в коде secret-high-entropy-token daemon/src/tunnel-bootstrap.ts:30
    Строка, похожая на токен (может быть id, хеш или секрет)
    getD…ctl,
  • низкая Секреты в коде secret-high-entropy-token daemon/src/tunnel-bootstrap.ts:424
    Строка, похожая на токен (может быть id, хеш или секрет)
    let address = getD…ctl(device.identifier, spawn);
  • низкая Секреты в коде secret-high-entropy-token daemon/test/tunnel-bootstrap.test.ts:8
    Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)
    getD…ctl,
    тестовый файл
  • низкая Секреты в коде secret-high-entropy-token daemon/test/tunnel-bootstrap.test.ts:903
    Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример; в кавычках — упоминание, а не команда)
    describe('getD…ctl', () => {
    тестовый файлв кавычках
  • низкая Секреты в коде secret-high-entropy-token daemon/test/tunnel-bootstrap.test.ts:911
    Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)
    expect(getD…ctl('TEST-UDID', spawn)).toBe('fde4…::1');
    тестовый файл
  • низкая Секреты в коде secret-high-entropy-token daemon/test/tunnel-bootstrap.test.ts:921
    Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)
    expect(getD…ctl('UDID', spawn)).toBe('fd00…eef');
    тестовый файл
  • низкая Секреты в коде secret-high-entropy-token daemon/test/tunnel-bootstrap.test.ts:928
    Строка, похожая на токен (может быть id, хеш или секрет) (тестовый файл / пример)
    expect(getD…ctl('UDID', spawn)).toBeNull();
    тестовый файл

Просканировано файлов: 29. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.

По спецификации Agent Skills

  • предупреждение description-no-when description не говорит, КОГДА применять скилл (нет "use when / используй когда")
  • предупреждение body-long тело SKILL.md ≈ 10996 токенов (рекомендуется < 5000); вынесите детали в references/
  • заметка frontmatter-key неизвестное поле фронтматтера "preamble-tier"
  • заметка frontmatter-key неизвестное поле фронтматтера "triggers"
  • заметка edit-residue в тексте есть пометки об устаревшем (строки 480): проверьте, не остались ли старые правила рядом с новыми — полная проверка читает текст на противоречия

Процессный рейтинг: все десять параметров 82/100

  • 30Повторный запуск. Изменяющих операций: 15, без проверки текущего состояния
  • 40Стоимость исполнения. Тело инструкции 10996 токенов: вытесняет саму задачу из окна
  • 50Когда включается. Не сказано, при каком запросе скилл включается
  • 60Результат и критерий готовности. Формат результата описан, критерия завершения нет
  • 100Инструменты и файлы. Инструменты объявлены во frontmatter
  • 100Шаги. Шагов: 94
  • 100Входы и предусловия. Входные данные и предусловия перечислены
  • 100Ошибки и развилки. Развилок: 9, есть раздел про ошибки
  • 100Согласованность. Имя и обязательные поля на месте
  • 100Отчётность по ходу. Скилл сообщает о ходе работы
  • medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
  • low Разделов верхнего уровня: 32. Похоже на несколько доменов в одном скилле
  • low Ответ описан самодельной разметкой (17 тегов): типизированный вызов надёжнее

Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.

Сигналы качества

  • +5В description нет примеров фраз, по которым скилл должен срабатывать
  • +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
  • +3Длина description 45: рекомендуется 120–800 символов
  • -5В тексте остались TODO / заглушки
  • -2Ссылки на localhost: у другого пользователя не заработает
  • -32 из 2 скриптов не упомянуты в SKILL.md
  • +1Лицензия не указана
  • +2Инструкции на одном языке
  • +4Структура: 38 заголовков
  • +3Пошаговые инструкции: 94 пунктов
  • +3Формат ответа описан явно
  • +4Есть примеры (12 блоков кода)
  • +4Справочные файлы упоминаются в инструкциях (1 из 1)

База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 54.

В песочнице Скрипты вели себя тихо

Скрипты скилла запущены в одноразовой машине: без сети, с подложными ключами в домашнем каталоге, под наблюдением. Мы записали, что они делали. Попытка выйти в сеть или прочитать чужие секреты ограничивает техническую оценку буквой C; тихий запуск баллов не добавляет.

Запущено 12 скриптов, ещё 2 не поместились в лимит; каждому дали двадцать секунд, поддельный домашний каталог с ключами и сеть, в которой ничего нет.

scripts/gen-accessors.test.tsничего за пределами своей папки
scripts/gen-accessors.tsничего за пределами своей папки
daemon/src/allowlist.tsничего за пределами своей папки
daemon/src/audit.tsничего за пределами своей папки
daemon/src/auth-mint.tsничего за пределами своей папки
daemon/src/cli-mint.tsничего за пределами своей папки
daemon/src/devicectl.tsничего за пределами своей папки
daemon/src/index.tsничего за пределами своей папки
daemon/src/proxy.tsничего за пределами своей папки
daemon/src/session-tokens.tsничего за пределами своей папки
daemon/src/single-instance.tsничего за пределами своей папки
daemon/src/tailscale-localapi.tsничего за пределами своей папки

16 окт. 2026 г.