DD reading-widget
На рабочем столе macOS появится виджет для WeChat Reading, который автоматически отображает количество дней непрерывного чтения, время чтения сегодня/в этом месяце (с возможностью просмотра сравнения с неделей/годом), прогресс по месячной цели, текущую читаемую книгу, количество прочитанных книг за год и актуальную цитату. После установки откройте его в режиме `--app` Chrome как окно без рамки и прикрепите к углу экрана. Триггеры: пользователь говорит «установи виджет для чтения», «сделай виджет для чтения на рабочем столе», «reading widget», «поставь виджет WeChat Reading на рабочий стол», «хочу отслеживать свое чтение».
машинный переводПоказать оригиналСкрыть оригинал«在 macOS 桌面上放一个微信读书数据小卡片,自动显示连续阅读天数、今日/本月阅读时长(可点开看本周/今年对比)、本月目标进度、当前在读、…»
在 macOS 桌面上放一个微信读书数据小卡片,自动显示连续阅读天数、今日/本月阅读时长(可点开看本周/今年对比)、本月目标进度、当前在读、年度读完本数和当下金句。安装后通过 Chrome --app 模式打开成无边框窗口贴在屏幕角落。触发:用户说"装阅读 widget"、"做个读书桌面小卡片"、"reading widget"、"放个微信读书的桌面 widget"、"我想 track 我的阅读"。
На рабочем столе macOS появится виджет для WeChat Reading, который автоматически отображает количество дней непрерывного чтения, время чтения сегодня/в этом…
Как процесс D 48/100 · Процесс не доведён — слабые места: результат и критерий готовности, когда включается, входы и предусловия
Чем это грозит
Скилл содержит фрагменты, которые в чужих руках стоят денег или данных. Ниже, что рискует потерять тот, кто установит, и что должен сделать автор.
Скилл содержит команды, которые удаляют файлы, переписывают диски или исполняют код, скачанный из сети. Агент может выполнить их без вопроса, если считает, что так требует инструкция.
Замените разрушительные команды на безопасные аналоги с подтверждением, ограничьте область действия конкретной папкой и не тяните код через curl | bash: укажите версию и контрольную сумму.
Как улучшить
- Разберите находки высокой серьёзности: каждая стоит 18 баллов безопасности. Если это ложное срабатывание, добавьте код правила в guard.allow в spec.yaml.
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 5
-
высокая Опасные команды
cmd-persistenceREADME.md:49Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре)cp com.user.reading-widget.plist ~/Library/LaunchAgents/
-
высокая Опасные команды
cmd-persistenceREADME.md:51Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре)launchctl load ~/Library/LaunchAgents/com.user.reading-widget.plist
Средние и низкие: 3
-
средняя Опасные команды
cmd-persistenceSKILL.md:58Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре) (в кавычках — упоминание, а не команда)1. 把 skill 目录里的 `com.user.reading-widget.plist` 复制到 `~/Library/LaunchAgents/`,并把里面的 `USERNAME` 换成真实用户名、`/usr/bin/python3` 换成 `which python3` 实际路径。
в кавычках -
средняя Опасные команды
cmd-persistenceSKILL.md:59Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре) (в кавычках — упоминание, а не команда)2. 加载:`launchctl load ~/Library/LaunchAgents/com.user.reading-widget.plist`
в кавычках -
средняя Опасные команды
cmd-persistenceSKILL.md:90Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре) (в кавычках — упоминание, а не команда)- 卸载:`launchctl unload ~/Library/LaunchAgents/com.user.reading-widget.plist` 并删该 plist;删 `~/Desktop/reading-widget/`;从 `settings.json` 拿掉 key
в кавычках
Просканировано файлов: 9. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда")
Процессный рейтинг: все десять параметров 48/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 60Инструменты и файлы. Используются инструменты (bash, python), но во frontmatter они не объявлены
- 100Шаги. Шагов: 29
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 869 токенов
- 100Повторный запуск. Изменяющих операций нет
- 100Отчётность по ходу. Скилл сообщает о ходе работы
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- -2Ссылки на localhost: у другого пользователя не заработает
- +1Лицензия не указана
- +2Инструкции на одном языке
- +5В description 5 примера фраз-триггеров в кавычках
- +3Длина description 201 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 9 заголовков
- +3Пошаговые инструкции: 29 пунктов
- +4Есть примеры (2 блоков кода)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 75.