FC microsoft-365-graph-openclaw
Microsoft 365 Graph для OpenClaw с сигналами пробуждения на основе веб-хуков. Сократите повторяющиеся расходы LLM от опроса почты, управляя почтой Outlook, календарем, OneDrive и контактами через Microsoft Graph.
машинный переводПоказать оригиналСкрыть оригинал«Microsoft 365 Graph for OpenClaw with webhook-based wake signals. Redu…»
Microsoft 365 Graph for OpenClaw with webhook-based wake signals. Reduce recurring LLM cost from inbox polling while managing Outlook mail, calendar, OneDrive, and contacts via Microsoft Graph.
Microsoft 365 Graph для OpenClaw с сигналами пробуждения на основе веб-хуков.
Как процесс C 63/100 · Есть пробелы — слабые места: результат и критерий готовности, когда включается, повторный запуск
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Скилл содержит команды, которые удаляют файлы, переписывают диски или исполняют код, скачанный из сети. Агент может выполнить их без вопроса, если считает, что так требует инструкция.
Замените разрушительные команды на безопасные аналоги с подтверждением, ограничьте область действия конкретной папкой и не тяните код через curl | bash: укажите версию и контрольную сумму.
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 30
✓ Критических и высоких находок нет
Средние и низкие: 30
-
средняя Опасные команды
cmd-privilegedocs/minimal-setup.md:64Повышение привилегий / права на запись для всехsudo bash scripts/run_mail_webhook_e2e_setup.sh \
-
средняя Опасные команды
cmd-privilegedocs/minimal-setup.md:77Повышение привилегий / права на запись для всехsudo bash scripts/diagnose_mail_webhook_e2e.sh \
-
средняя Опасные команды
cmd-privilegedocs/minimal-setup.md:87Повышение привилегий / права на запись для всехsudo bash scripts/run_mail_webhook_smoke_tests.sh \
-
средняя Опасные команды
cmd-privilegeREADME.md:115Повышение привилегий / права на запись для всехsudo bash scripts/run_mail_webhook_e2e_setup.sh \
-
средняя Опасные команды
cmd-privilegeREADME.md:124Повышение привилегий / права на запись для всехsudo bash scripts/diagnose_mail_webhook_e2e.sh \
-
средняя Опасные команды
cmd-privilegeREADME.md:131Повышение привилегий / права на запись для всехsudo bash scripts/run_mail_webhook_smoke_tests.sh \
-
средняя Опасные команды
cmd-privilegereferences/mail_webhook_adapter.md:55Повышение привилегий / права на запись для всехsudo bash scripts/setup_mail_webhook_ec2.sh \
-
средняя Опасные команды
cmd-privilegereferences/mail_webhook_adapter.md:75Повышение привилегий / права на запись для всехsudo bash scripts/run_mail_webhook_e2e_setup.sh \
-
средняя Опасные команды
cmd-privilegereferences/mail_webhook_adapter.md:86Повышение привилегий / права на запись для всехsudo bash scripts/run_mail_webhook_e2e_setup.sh \
-
средняя Опасные команды
cmd-privilegereferences/mail_webhook_adapter.md:102Повышение привилегий / права на запись для всехsudo bash scripts/run_mail_webhook_smoke_tests.sh \
-
средняя Опасные команды
cmd-privilegescripts/run_mail_webhook_e2e_setup.sh:15Повышение привилегий / права на запись для всехsudo bash scripts/run_mail_webhook_e2e_setup.sh \
-
средняя Опасные команды
cmd-privilegeSKILL.md:129Повышение привилегий / права на запись для всехsudo bash scripts/setup_mail_webhook_ec2.sh \
-
средняя Опасные команды
cmd-privilegeSKILL.md:140Повышение привилегий / права на запись для всехsudo bash scripts/run_mail_webhook_e2e_setup.sh \
-
средняя Опасные команды
cmd-privilegeSKILL.md:151Повышение привилегий / права на запись для всехsudo bash scripts/run_mail_webhook_e2e_setup.sh \
-
средняя Опасные команды
cmd-privilegeSKILL.md:163Повышение привилегий / права на запись для всехsudo bash scripts/run_mail_webhook_smoke_tests.sh \
-
низкая Опасные команды
cmd-privilegedocs/troubleshooting.md:13Повышение привилегий / права на запись для всех (в кавычках — упоминание, а не команда)4) Run `sudo bash scripts/diagnose_mail_webhook_e2e.sh --domain <your-domain> --repo-root "$(pwd)"` for full pipeline checks.
в кавычках -
низкая Опасные команды
cmd-privilegereferences/mail_webhook_adapter.md:123Повышение привилегий / права на запись для всех (в кавычках — упоминание, а не команда)- `sudo bash scripts/run_mail_webhook_smoke_tests.sh --domain ... --create-subscription --test-email ...`
в кавычках -
низкая Опасные команды
cmd-privilegescripts/run_mail_webhook_e2e_setup.sh:167Повышение привилегий / права на запись для всех (строковый литерал в коде, не выполняется)echo " sudo sh -lc 'ls -la /etc/openclaw /opt/openclaw ~/.openclaw ~/.config/openclaw 2>/dev/null'" >&2
строка в коде -
низкая Утечка данных
exfil-secret-in-urlscripts/run_mail_webhook_e2e_setup.sh:410Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (значение-заглушка)info "[DRY-RUN] GET https://$DOMAIN$ADAPTER_PATH?validationToken=…"
заглушка -
низкая Утечка данных
exfil-secret-in-urlscripts/run_mail_webhook_e2e_setup.sh:412Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (значение-заглушка)VALIDATION_URL="https://$DOMAIN$ADAPTER_PATH?validationToken=…"
заглушка -
низкая Утечка данных
exfil-secret-in-urlscripts/run_mail_webhook_smoke_tests.sh:111Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (значение-заглушка)LOCAL_RESULT="$(curl -fsS "http://127.0.0.1:${ADAPTER_PORT}${ADAPTER_PATH}?validationToken=…")"заглушка -
низкая Утечка данных
net-credential-usescripts/run_mail_webhook_smoke_tests.sh:111Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (тестовый файл / пример; в кавычках — упоминание, а не команда)LOCAL_RESULT="$(curl -fsS "http://127.0.0.1:${ADAPTER_PORT}${ADAPTER_PATH}?validationToken=…")"тестовый файлв кавычках -
низкая Утечка данных
exfil-secret-in-urlscripts/run_mail_webhook_smoke_tests.sh:120Учётные данные в строке запроса URL (для части API это норма — проверьте, что хост нужный) (значение-заглушка)PUBLIC_RESULT="$(curl -fsS "https://${DOMAIN}${ADAPTER_PATH}?validationToken=…")"заглушка -
низкая Утечка данных
net-credential-usescripts/run_mail_webhook_smoke_tests.sh:120Учётные данные используются в сетевом вызове (проверьте, что адрес — нужный сервис) (адрес назначения — переменная конфигурации; тестовый файл / пример; в кавычках — упоминание, а не команда)PUBLIC_RESULT="$(curl -fsS "https://${DOMAIN}${ADAPTER_PATH}?validationToken=…")"переменный хосттестовый файлв кавычках -
низкая Опасные команды
cmd-background-processscripts/setup_mail_webhook_ec2.sh:251Запуск фонового / автозапускаемого процессаrun_cmd systemctl enable caddy
-
низкая Опасные команды
cmd-background-processscripts/setup_mail_webhook_ec2.sh:252Запуск фонового / автозапускаемого процессаrun_cmd systemctl enable --now graph-mail-webhook-adapter
-
низкая Опасные команды
cmd-background-processscripts/setup_mail_webhook_ec2.sh:253Запуск фонового / автозапускаемого процессаrun_cmd systemctl enable --now graph-mail-webhook-worker
-
низкая Опасные команды
cmd-background-processscripts/setup_mail_webhook_ec2.sh:254Запуск фонового / автозапускаемого процессаrun_cmd systemctl enable --now graph-mail-subscription-renew.timer
-
низкая Рискованное назначение
intent-offensive-securitySKILL.md:123Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)- Default mode is `wake` (`/hooks/wake`, `mode=now`). Use `--hook-action agent` only when you explicitly need per-message rich payload delivery.
Ещё 1 совпадений отнесены к цитатам в документации скилла по безопасности и не считаются находками.
Просканировано файлов: 36. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда") - заметка
frontmatter-keyнеизвестное поле фронтматтера "homepage" - заметка
frontmatter-keyнеизвестное поле фронтматтера "repository" - заметка
frontmatter-keyнеизвестное поле фронтматтера "security"
Процессный рейтинг: все десять параметров 63/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 30Повторный запуск. Изменяющих операций: 18, без проверки текущего состояния
- 60Инструменты и файлы. Используются инструменты (bash, web, python), но во frontmatter они не объявлены
- 70Входы и предусловия. Входные данные и предусловия перечислены
- 100Шаги. Шагов: 72
- 100Ошибки и развилки. Развилок: 1, есть раздел про ошибки
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 2210 токенов
- 100Отчётность по ходу. Скилл сообщает о ходе работы
- low Разделов верхнего уровня: 10. Похоже на несколько доменов в одном скилле
- low Ответ описан самодельной разметкой (4 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- -4Абсолютные локальные пути (C:\Users, /home/…): скилл не переносим
- -2Ссылки на localhost: у другого пользователя не заработает
- -32 из 14 скриптов не упомянуты в SKILL.md
- +2Инструкции на одном языке
- +3Длина description 193 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 11 заголовков
- +3Пошаговые инструкции: 72 пунктов
- +4Есть примеры (10 блоков кода)
- +4Справочные файлы упоминаются в инструкциях (7 из 15)
- +1Лицензия указана
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 65.