CD sm-ocr-scanner
Локальная OCR для растровых изображений (jpg, png, bmp, gif, tiff, webp) и PDF-файлов с использованием системного tesseract. Страницы PDF растрируются локально с помощью pdftoppm, существующие текстовые слои PDF считываются с помощью pdftotext. Вывод в виде обычного текста, TSV с показателями достоверности или в виде PDF с возможностью поиска. OCR работает без подключения к сети, без облачных сервисов и без API-ключа. Только опциональный установщик, запускаемый пользователем, загружает зависимости через менеджер пакетов дистрибутива (опционально PyPI с --allow-pip); системные пакеты устанавливаются только если пользователь сам запускает его от имени root, и только после подтверждения в менеджере пакетов. Пакет содержит только текст.
машинный переводПоказать оригиналСкрыть оригинал«Lokale OCR für Rasterbilder (jpg, png, bmp, gif, tiff, webp) und PDF-D…»
Lokale OCR für Rasterbilder (jpg, png, bmp, gif, tiff, webp) und PDF-Dateien mit dem systemeigenen tesseract-Binary. PDF-Seiten werden lokal mit pdftoppm gerastert, vorhandene PDF-Textlayer mit pdftotext gelesen. Ausgabe als Klartext, TSV mit Konfidenzwerten oder durchsuchbares PDF. Die OCR läuft ohne Netzwerkverbindung, ohne Cloud-Dienst und ohne API-Key. Nur der optionale, vom Nutzer gestartete Installer lädt Abhängigkeiten über den Paketmanager der Distribution (optional PyPI mit --allow-pip); Systempakete installiert er nur, wenn der Nutzer ihn selbst als root startet, und erst nach Bestätigung am Paketmanager. Das Paket enthält nur Text.
Локальная OCR для растровых изображений (jpg, png, bmp, gif, tiff, webp) и PDF-файлов с использованием системного tesseract.
Как процесс D 36/100 · Процесс не доведён — Скилл ссылается на файлы, которых нет в архиве: assets/tessdata/
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Скилл содержит команды, которые удаляют файлы, переписывают диски или исполняют код, скачанный из сети. Агент может выполнить их без вопроса, если считает, что так требует инструкция.
Замените разрушительные команды на безопасные аналоги с подтверждением, ограничьте область действия конкретной папкой и не тяните код через curl | bash: укажите версию и контрольную сумму.
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 4
✓ Критических и высоких находок нет
Средние и низкие: 4
-
средняя Опасные команды
cmd-privilegescripts/install.sh:81Повышение привилегий / права на запись для всехsudo bash scripts/install.sh # Systeminstallation (fragt nach)
-
средняя Опасные команды
cmd-privilegescripts/install.sh:253Повышение привилегий / права на запись для всехSysteminstallation bewusst als root starten: sudo bash scripts/install.sh" 2
-
низкая Опасные команды
cmd-privilegeSKILL.md:140Повышение привилегий / права на запись для всех (документация security-скилла)sudo bash scripts/install.sh
security-скилл -
низкая Опасные команды
cmd-privilegeSKILL.md:152Повышение привилегий / права на запись для всех (документация security-скилла)sudo bash scripts/install.sh --lang "deu eng fra ita"
security-скилл
Просканировано файлов: 8. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда") - предупреждение
missing-refссылка на отсутствующий файл: assets/tessdata/
Процессный рейтинг: все десять параметров 36/100
- 0Инструменты и файлы. Не хватает 1 файла(ов): assets/tessdata/
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 50Ошибки и развилки. Развилок: 0, есть раздел про ошибки
- 70Стоимость исполнения. Тело инструкции 4772 токенов
- 85Шаги. Шагов: 57, расплывчатых формулировок: 1
- 100Согласованность. Имя и обязательные поля на месте
- 100Повторный запуск. Изменяющие операции проверяют текущее состояние
- low Разделов верхнего уровня: 13. Похоже на несколько доменов в одном скилле
- low Ответ описан самодельной разметкой (5 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Формат ответа не описан: модель каждый раз решает сама
- -41 справочных файлов, но SKILL.md на них не ссылается: модель их не откроет
- +2Инструкции на одном языке
- +3Длина description 650 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 17 заголовков
- +3Пошаговые инструкции: 57 пунктов
- +4Есть примеры (4 блоков кода)
- +3Все 3 скриптов описаны в инструкциях
- +1Лицензия указана
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 66.