BD feishu-calendar
Навык управления календарем Lark. Используется для запроса расписания, создания событий, запроса статуса занятости. Используется, когда пользователь задает вопросы, связанные с расписанием, встречами, календарем. Условия срабатывания: (1) Пользователь спрашивает о сегодняшнем/завтрашнем/каком-либо дне. (2) Пользователь просит создать расписание/добавить встречу/создать событие. (3) Пользователь спрашивает о календаре/расписании. (4) Пользователь упоминает связанные с календарем Lark потребности.
машинный переводПоказать оригиналСкрыть оригинал«飞书日历管理技能。用于查询日程、创建事件、查询忙闲状态。当用户询问日程、会议、日历相关问题时使用此技能。触发条件:(1) 用户询问今天的日程…»
飞书日历管理技能。用于查询日程、创建事件、查询忙闲状态。当用户询问日程、会议、日历相关问题时使用此技能。触发条件:(1) 用户询问今天的日程/明天的日程/某天的日程 (2) 用户要求创建日程/添加会议/新建事件 (3) 用户询问日历/日程安排 (4) 用户提到飞书日历相关需求。
Навык управления календарем Lark.
Как процесс D 45/100 · Процесс не доведён — слабые места: результат и критерий готовности, когда включается, входы и предусловия
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
В файлах лежит чужой ключ или токен. Если он живой, ваш агент начнёт ходить в чужие сервисы от чужого имени; если ключ уже отозван, скрипты скилла просто сломаются. Такой ключ мог попасть в скилл вместе с целым рабочим пространством автора, включая личные данные.
Ключ виден всем, кто скачал скилл, и уже мог быть скопирован ботами, которые сканируют каталоги. Отзовите его сейчас, проверьте счета и логи доступа, а потом перевыпустите.
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 9
✓ Критических и высоких находок нет
Средние и низкие: 9
-
средняя Секреты в коде
secret-labelled-tokenreferences/oauth-setup.md:47Токен / ключ рядом с меткой (формат неизвестен — проверьте, что это не живой секрет)$appSecret = "9QGw…8eF"
-
средняя Секреты в коде
secret-labelled-tokenSKILL.md:82Токен / ключ рядом с меткой (формат неизвестен — проверьте, что это не живой секрет)$appBody = @{ app_id = "cli_…cc2"; app_secret = "9QGw…8eF" } | ConvertTo-Json -
низкая Секреты в коде
secret-high-entropy-tokenreferences/oauth-setup.md:47Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)$appSecret = "9QGw…8eF"
в кавычках -
низкая Утечка данных
net-credential-usereferences/oauth-setup.md:52Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (хост вендора самого скилла)$appToken = (Invoke-RestMethod -Uri "https://open.feishu.cn/open-apis/auth/v3/app_access_token/internal" -Method Post -Body $body1 -ContentType "application/json").app_access_token
vendor-host -
низкая Утечка данных
net-credential-usereferences/oauth-setup.md:56Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (хост вендора самого скилла)$userToken = Invoke-RestMethod -Uri "https://open.feishu.cn/open-apis/authen/v1/oidc/access_token" -Method Post -Body $body2 -ContentType "application/json" -Headers @{ Authorization = "Bearer $appTokvendor-host -
низкая Утечка данных
net-credential-usereferences/oauth-setup.md:59Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (хост вендора самого скилла)$calendar = Invoke-RestMethod -Uri "https://open.feishu.cn/open-apis/calendar/v4/calendars/primary" -Method Post -Headers @{ Authorization = "Bearer $($userToken.data.access_token)" }vendor-host -
низкая Секреты в коде
secret-high-entropy-tokenSKILL.md:82Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)$appBody = @{ app_id = "cli_…cc2"; app_secret = "9QGw…8eF" } | ConvertTo-Jsonв кавычках -
низкая Утечка данных
net-credential-useSKILL.md:83Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (хост вендора самого скилла)$appToken = (Invoke-RestMethod -Uri "https://open.feishu.cn/open-apis/auth/v3/app_access_token/internal" -Method Post -Body $appBody -ContentType "application/json").app_access_token
vendor-host -
низкая Утечка данных
net-credential-useSKILL.md:87Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (хост вендора самого скилла)$newToken = Invoke-RestMethod -Uri "https://open.feishu.cn/open-apis/authen/v1/oidc/refresh_access_token" -Method Post -Body $refreshBody -ContentType "application/json" -Headers @{ Authorization = "Bvendor-host
Просканировано файлов: 7. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда")
Процессный рейтинг: все десять параметров 45/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 40Согласованность. Имя во frontmatter (feishu-calendar) не совпадает с папкой (feishu-calendar-cn)
- 75Шаги. Шагов: 3
- 100Инструменты и файлы. Внешние инструменты не нужны
- 100Стоимость исполнения. Тело инструкции 847 токенов
- 100Повторный запуск. Изменяющих операций нет
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- -34 из 4 скриптов не упомянуты в SKILL.md
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 139 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 9 заголовков
- +3Пошаговые инструкции: 3 пунктов
- +4Есть примеры (5 блоков кода)
- +4Справочные файлы упоминаются в инструкциях (1 из 1)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 73.