BF claw-markdown-preview
Локальный предпросмотр Markdown. Активируется, когда пользователь явно просит предпросмотр файла markdown — например, "preview this markdown file", "open markdown preview", "markdown preview", или по-китайски "预览这个 markdown 文件" / "打开 markdown 预览" / "markdown 预览一下".
машинный переводПоказать оригиналСкрыть оригинал«Local Markdown preview skill. Trigger when the user explicitly asks to…»
Local Markdown preview skill. Trigger when the user explicitly asks to preview a markdown file — e.g. "preview this markdown file", "open markdown preview", "markdown preview", or the Chinese "预览这个 markdown 文件" / "打开 markdown 预览" / "markdown 预览一下".
Локальный предпросмотр Markdown.
Как процесс F 45/100 · Не запустится — Скилл ссылается на файлы, которых нет в архиве: images/img-xxx.png
Как улучшить
- В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 11
✓ Критических и высоких находок нет
Средние и низкие: 11
-
низкая Секреты в коде
secret-high-entropy-tokenassets/lib/converter.js:282Строка, похожая на токен (может быть id, хеш или секрет)function conv…Svg(cssValue, bgSize) { -
низкая Секреты в коде
secret-high-entropy-tokenassets/lib/converter.js:435Строка, похожая на токен (может быть id, хеш или секрет)var svgDataUri = conv…Svg(bgImage, bgSize);
-
низкая Опасные команды
cmd-background-processassets/lib/highlight.min.js:420Запуск фонового / автозапускаемого процесса (строковый литерал в коде, не выполняется)built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","de
строка в коде -
низкая Обфускация
obf-hex-escape-chainassets/lib/markdown-it.min.js:2Обфускация строк через escape-последовательности / коды символов (определение детектора / чёрного списка; демонстрация атаки / пример)!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).markdownit=детектордемонстрация -
низкая Секреты в коде
secret-high-entropy-tokenassets/lib/markdown-it.min.js:2Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).markdownit=детектор -
низкая Опасные команды
cmd-background-processscripts/preview_server.py:37Запуск фонового / автозапускаемого процесса (строковый литерал в коде, не выполняется)macOS/Linux: 双 fork + setsid,成为独立 session leader(PPID=1)。
строка в коде -
низкая Опасные команды
cmd-background-processscripts/preview_server.py:45Запуск фонового / автозапускаемого процессаos.setsid()
-
низкая Опасные команды
cmd-background-processSKILL.md:39Запуск фонового / автозапускаемого процесса (в кавычках — упоминание, а не команда)**第 1 步 —— 以独立进程方式启动服务(关键:必须脱离 WorkBuddy 托管后台任务树,否则对话闲置约 20 分钟服务会被回收而"断开"。脱离由 python 内部跨平台实现,不依赖 shell `setsid`):**
в кавычках -
низкая Опасные команды
cmd-background-processSKILL.md:42Запуск фонового / автозапускаемого процесса# 单实例清理:只终止上一次本技能启动的预览实例(PID 文件精确定位),不误伤其他进程。整条命令以 python3 常驻结尾。(脱离托管由 python 内部实现跨平台双 fork/detach,不依赖 shell setsid,多行 if 块部分环境识别不到 python3)。
-
низкая Опасные команды
cmd-background-processSKILL.md:46Запуск фонового / автозапускаемого процесса (в кавычках — упоминание, а не команда)> 关键:脱离托管由 `preview_server.py` **内部自行实现**(macOS/Linux 用 `os.fork() + os.setsid()` 双 fork 成为独立 session leader,Windows 用 `subprocess.Popen` + `DETACHED_PROCESS` 启动独立实例),脚本自动判断、不依赖 shell 命令。效果与 shell `se
в кавычках -
низкая Опасные команды
cmd-background-processSKILL.md:116Запуск фонового / автозапускаемого процесса- **常驻 + 心跳兜底**:服务脱离 WorkBuddy 托管常驻(跨平台,python 内部实现脱离,不依赖 shell setsid),不会因对话闲置 / 切窗口 / 睡眠被回收;页面每 5 秒心跳仅作兜底,关闭页面后最多等待 `--heartbeat-timeout` 秒(默认 120 分钟)才自停,刻意设长以避免后台标签页冻结 / 睡眠误杀
Просканировано файлов: 17. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
missing-refссылка на отсутствующий файл: images/img-xxx.png
Процессный рейтинг: все десять параметров 45/100
- 0Инструменты и файлы. Не хватает 1 файла(ов): images/img-xxx.png
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 100Шаги. Шагов: 20
- 100Когда включается. Сказано, когда применять и когда не применять
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 1160 токенов
- 100Повторный запуск. Изменяющих операций нет
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- -2Ссылки на localhost: у другого пользователя не заработает
- +1Лицензия не указана
- +2Инструкции на одном языке
- +5В description 6 примера фраз-триггеров в кавычках
- +3Длина description 248 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 10 заголовков
- +3Пошаговые инструкции: 20 пунктов
- +4Есть примеры (2 блоков кода)
- +3Все 1 скриптов описаны в инструкциях
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 84.