BD GraphQL Schema Audit
Статический аудитор GraphQL-схем. Читает любой файл .graphql SDL или JSON-интроспекцию для обнаружения зон риска утечки N+1 (вложенные списки в списках запросов без подсказки dataloader), уязвимостей неограниченной глубины запросов (отсутствие настройки максимальной глубины), устаревших полей, все еще используемых в операциях, нарушений соглашений об именовании (типы не PascalCase, поля не camelCase, перечисления не UPPER_SNAKE_CASE), циклических ссылок типов, отсутствия пагинации в полях коллекций и слишком широких скаляров (поля String, которые должны быть типизированы как ID, Email или URL). Выводит приоритетный список проблем с предложениями по исправлению на уровне резолвера и рекомендацией по бюджету сложности запроса. Нет внешних API — чистый локальный анализ файлов. Активируется по запросам «graphql schema», «graphql audit», «schema review», «N+1 graphql», «query depth», «graphql lint», «/graphql-schema-audit».
машинный переводПоказать оригиналСкрыть оригинал«GraphQL schema static auditor. Reads any .graphql SDL file or introspe…»
GraphQL schema static auditor. Reads any .graphql SDL file or introspection JSON to detect N+1 exposure hotspots (nested list-within-list queries with no dataloader hint), unbounded query depth vulnerabilities (no max depth limit configured), deprecated fields still used in operations, naming convention violations (types not PascalCase, fields not camelCase, enums not UPPER_SNAKE_CASE), circular type references, missing pagination on collection fields, and overly broad scalars (String fields that should be typed as ID, Email, or URL). Outputs a prioritized issue list with resolver-level fix suggestions and a query complexity budget recommendation. Zero external API — pure local file analysis. Triggers on "graphql schema", "graphql audit", "schema review", "N+1 graphql", "query depth", "graphql lint", "/graphql-schema-audit".
Статический аудитор GraphQL-схем.
Как процесс D 43/100 · Процесс не доведён — слабые места: результат и критерий готовности, входы и предусловия, ошибки и развилки
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 0
✓ Критических и высоких находок нет
Просканировано файлов: 2. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
name-formatname должен быть в kebab-case (строчные буквы, цифры, дефисы) - предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда") - предупреждение
body-longтело SKILL.md ≈ 5728 токенов (рекомендуется < 5000); вынесите детали в references/ - заметка
frontmatter-keyнеизвестное поле фронтматтера "homepage"
Процессный рейтинг: все десять параметров 43/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 30Повторный запуск. Изменяющих операций: 5, без проверки текущего состояния
- 40Согласованность. Имя во frontmatter (GraphQL Schema Audit) не совпадает с папкой (phy-graphql-schema-audit)
- 60Инструменты и файлы. Используются инструменты (node), но во frontmatter они не объявлены
- 70Когда включается. Сказано, когда применять, но не сказано, когда не стоит
- 70Стоимость исполнения. Тело инструкции 5728 токенов
- 100Шаги. Шагов: 8
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Длина description 836: рекомендуется 120–800 символов
- +3Формат ответа не описан: модель каждый раз решает сама
- -2Ссылки на localhost: у другого пользователя не заработает
- +2Инструкции на одном языке
- +5В description 7 примера фраз-триггеров в кавычках
- +4Структура: 17 заголовков
- +3Пошаговые инструкции: 8 пунктов
- +4Есть примеры (17 блоков кода)
- +1Лицензия указана
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 57.