DC feishu-doc-scraper
Извлекает документы Feishu/Lark Docs, Wiki, Sheets и транскрипты Minutes (妙记) в точный локальный Markdown через API lark-cli — без перефразирования LLM, с резервным копированием DOM браузера, когда lark-cli не может получить доступ к контенту. Используйте всякий раз, когда источником является URL Feishu/Lark и важна точность — 导出飞书文档/合集/妙记转写, 把飞书 wiki 转 markdown, или архивирование коллекции — даже если пользователь просто говорит "сохранить это". Также охватывает экспорт владельцем .docx → Markdown.
машинный переводПоказать оригиналСкрыть оригинал«Extracts Feishu/Lark Docs, Wiki, Sheets, and Minutes (妙记) transcripts…»
Extracts Feishu/Lark Docs, Wiki, Sheets, and Minutes (妙记) transcripts into faithful local Markdown via the lark-cli API — no LLM paraphrasing, browser-DOM fallback when lark-cli can't reach content. Use whenever the source is a Feishu/Lark URL and fidelity matters — 导出飞书文档/合集/妙记转写, 把飞书 wiki 转 markdown, or archiving a collection — even if the user just says "save this". Also covers owner-exported .docx → Markdown.
Извлекает документы Feishu/Lark Docs, Wiki, Sheets и транскрипты Minutes (妙记) в точный локальный Markdown через API lark-cli — без перефразирования LLM, с…
Как процесс C 58/100 · Есть пробелы — слабые места: результат и критерий готовности, входы и предусловия, повторный запуск
Чем это грозит
Скилл содержит фрагменты, которые в чужих руках стоят денег или данных. Ниже, что рискует потерять тот, кто установит, и что должен сделать автор.
Инструкции или скрипты отправляют данные наружу: переменные окружения, ключи, содержимое файлов, историю чата. Вы можете не заметить этого в диалоге, потому что агент выполнит отправку как «часть задачи».
Если отправка не нужна для задачи, уберите её: каталоги помечают такие скиллы как подозрительные и снимают с выдачи. Если нужна, назовите адрес явно, объясните, что именно уходит, и дайте пользователю выключатель.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
В файлах есть невидимые символы, закодированные команды или спрятанные комментарии для модели. То, что вы читаете, отличается от того, что видит агент.
Уберите невидимые символы (часто они попадают из копипаста) и закодированные строки: их не пропустит ни один каталог. Инструкции для модели должны быть видны и человеку.
Как улучшить
- Разберите находки высокой серьёзности: каждая стоит 18 баллов безопасности. Если это ложное срабатывание, добавьте код правила в guard.allow в spec.yaml.
- Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 4
-
высокая Утечка данных
intent-browser-credential-storescripts/download_feishu_images.py:200Доступ к хранилищу паролей / cookies браузераcookies = brow…ome()
Средние и низкие: 3
-
средняя Обфускация
uni-zero-widthscripts/feishu_dom_capture.js:53Невидимые символы нулевой ширины (возможен скрытый текст) (6 шт.)return result.replace(/[␀␀]/g, '');
-
средняя Обфускация
uni-zero-widthscripts/restore_docx_headings.py:54Невидимые символы нулевой ширины (возможен скрытый текст) (4 шт.)_ZERO_WIDTH = "␀␀␀␀"
-
низкая Секреты в коде
secret-high-entropy-tokenscripts/archive_attachments.py:120Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)'token': 'Synt…345'}, 'source')
детектор
Просканировано файлов: 26. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
body-longтело SKILL.md ≈ 7516 токенов (рекомендуется < 5000); вынесите детали в references/ - заметка
edit-residueв тексте есть пометки об устаревшем (строки 118, 172): проверьте, не остались ли старые правила рядом с новыми — полная проверка читает текст на противоречия
Процессный рейтинг: все десять параметров 58/100
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 30Повторный запуск. Изменяющих операций: 7, без проверки текущего состояния
- 40Результат и критерий готовности. Не сказано, что считать результатом
- 50Ошибки и развилки. Развилок: 0, есть раздел про ошибки
- 60Инструменты и файлы. Используются инструменты (bash, web, python, node), но во frontmatter они не объявлены
- 70Когда включается. Сказано, когда применять, но не сказано, когда не стоит
- 70Стоимость исполнения. Тело инструкции 7516 токенов
- 100Шаги. Шагов: 55
- 100Согласованность. Имя и обязательные поля на месте
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
- low Разделов верхнего уровня: 11. Похоже на несколько доменов в одном скилле
- low Ответ описан самодельной разметкой (27 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- -32 из 13 скриптов не упомянуты в SKILL.md
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 416 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 12 заголовков
- +3Пошаговые инструкции: 55 пунктов
- +4Есть примеры (7 блоков кода)
- +4Справочные файлы упоминаются в инструкциях (12 из 12)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 75.