Claude Info
Безопасность

LegalCheck

jeongsuho-lawyer/legalcheck

Статический анализатор кода для проверки нарушений 14 корейских законов о профессиональных лицензиях (юридические, медицинские, налоговые услуги). 32 правила, детерминированные результаты, поддержка Claude Code и Codex CLI.

Установка

terminal
bash
git clone https://github.com/jeongsuho-lawyer/legalcheck.git

README

LegalCheck

Можно ли выпускать моё AI-приложение?

Линтер для автоматической проверки исходного кода на предмет нарушений 14 корейских законов о профессиональных лицензиях. Юридические чат-боты, приложения для диагностики здоровья, сервисы налоговой автоматизации — обязательно проверьте перед выпуском.

License

Предоставлено: Lawfirm Renaissance, адвокат Чон Су Хо — shj@lawren.co.kr | https://lawren.co.kr

/legalcheck

Зачем это нужно

  • Число AI-приложений с юридическими консультациями, диагностикой здоровья и налоговой автоматизацией стремительно растёт
  • «Добавлю дисклеймер — и всё будет нормально» — опасное заблуждение: законы о медицине, ветеринарии и фармацевтике предусматривают уголовную ответственность даже за бесплатные сервисы (до 5 лет лишения свободы)
  • «AI сказал, что всё в порядке» — не является защитой: LLM пропускают отдельные профессиональные области (страховые оценщики, административные агенты) и неверно цитируют судебную практику
  • Как ESLint автоматически проверяет качество кода, LegalCheck автоматически проверяет правовые риски

«AI сказал, что всё в порядке» — можно ли доверять этому ответу?

Если спросить Claude или GPT «есть ли нарушения закона?», они дадут ответ. По ключевым законам — о юридической деятельности, медицине — ответ нередко точный.

Но можно ли на основе этого ответа принимать решение о выпуске?

Результаты прямого тестирования на 30 проектах с Claude Opus 4.6 / Sonnet 4.6:

Некоторые профессиональные области пропускаются

ОбластьLegalCheckOpus 4.6Sonnet 4.6
Закон об адвокатуре
Закон о медицине
Закон о налоговых консультантах⚠️ частичный пропуск
Закон о риелторах
Закон о патентных поверенных
Закон о сертифицированных бухгалтерах
Закон о судебных исполнителях
Закон об оценщиках имущества
Закон о ветеринарии⚠️ частичный пропуск
Закон об административных агентах❌ пропуск
Закон о таможенных брокерах (A-спецрежим)✅ SAFE❌ не распознаётся❌ не распознаётся
Закон о трудовых консультантах (A-спецрежим)✅ SAFE❌ не распознаётся❌ не распознаётся
Страховые оценщики (Закон о страховании)❌ пропуск❌ пропуск
Закон о фармацевтике

Ни Opus, ни Sonnet не знают о страховых оценщиках (Закон о страховании). Закон об административных агентах Sonnet также пропускает. A-спецрежим («только консультация — законно») оба не распознают.

Судебная практика цитируется неверно

При трёхкратном повторении одного и того же запроса LLM каждый раз приводил разные номера дел. Упомянутые номера существуют, но относятся к не связанным делам. Дело «Верховный суд 2012до14360» было процитировано как прецедент по незаконной медицинской практике, тогда как в действительности это решение касалось нарушения требований к открытию медицинского учреждения.

На один и тот же вопрос каждый раз даётся разный ответ

При трёхкратном запросе по одному проекту нарушенные законы в целом совпадают, однако приводимые основания, уровень риска и рекомендации каждый раз различаются.

LegalCheck работает иначе

LegalCheckПрямой запрос к LLM
Проверка 14 областейВсе 32 правилами10–11 (3–4 пропускаются)
Вынесение вердикта SAFE по A-спецрежиму«Только консультация — законно»Не распознаётся
Правовые основанияПроверенные адвокатом нормы и судебная практикаВозможны контекстные ошибки и галлюцинации
Воспроизводимость результатовОдинаковый код = одинаковый результатКаждый раз разный ответ
Сканирование всех файловВсе файлы проектаТолько файлы в контексте диалога
Чеклист состава правонарушенияТаблица выполнения условийНеструктурированное описание
Актуальность законодательстваОбновление YAML сразу отражаетсяЗависит от обучающих данных

Принцип работы

Этап 1: Статический анализ (scan.py) Сканирование всего проекта на основе Regex + AST для сбора доказательств по каждому составу → Генерация детерминированного JSON-отчёта Этап 2: Проверка кода (хост-LLM) Claude/Codex читает JSON-результат + реальный код и фильтрует ложные срабатывания → Предоставление итогового отчёта пользователю

14 законов о профессиональных лицензиях

#ЗаконОсновные объекты обнаруженияТипКол-во правил
1Закон об адвокатуреПлатные юридические консультации, автоматическое составление документов, посредничествоA3
2Закон о медицинеАвтоматизация диагностики, назначений, лечения (независимо от платности)B3
3Закон о налоговых консультантахСоставление деклараций, определение налогов, налоговое представительствоA3
4Закон о сертифицированных бухгалтерахАвтоматическая генерация аудиторских заключений и справокA2
5Закон о патентных поверенныхСоставление и подача заявок на патенты и товарные знакиA2
6Закон о риелторахПлатное посредничество при купле-продаже и аренде недвижимостиA2
7Закон об административных агентахСоставление и подача документов в государственные органыA2
8Закон о трудовых консультантахСоставление трудовых документов, представительство при жалобахA-спецрежим2
9Закон о таможенных брокерахПредставительство при таможенном оформленииA-спецрежим2
10Закон об оценщиках имуществаПлатная оценка недвижимости и движимого имуществаA2
11Закон о ветеринарииАвтоматизация диагностики, назначений, лечения животныхB2
12Закон о фармацевтикеАвтоматизация приготовления и рекомендации лекарствB2
13Закон о судебных исполнителяхСоставление документов и представительство при регистрации и депозитеA2
14Страховые оценщики (Закон о страховании)Автоматическая генерация актов оценки ущербаA2

Типы:

  • Тип A: Ответственность наступает при наличии признаков возмездности и систематичности. Безвозмездное предоставление общей информации не подпадает.
  • Тип A-спецрежим: Тип A + закон прямо выводит консультации и советы из-под ответственности. Приложения только для консультаций — SAFE.
  • Тип B: Возмездность не требуется. Сам факт действия запрещён. Ответственность наступает даже для бесплатных и open-source проектов.

Установка

Claude Code

bash
git clone https://github.com/jeongsuho-lawyer/legalcheck.git
cp -r legalcheck/ ~/.claude/skills/legalcheck/
pip install pyyaml jsonschema tree-sitter tree-sitter-typescript tree-sitter-javascript

Codex CLI

bash
git clone https://github.com/jeongsuho-lawyer/legalcheck.git
cp -r legalcheck/ ~/.agents/skills/legalcheck/
pip install pyyaml jsonschema tree-sitter tree-sitter-typescript tree-sitter-javascript

Использование

/legalcheck

Указание пути к проекту:

/legalcheck ./my-app

Прямой запуск через CLI:

python scripts/scan.py <project_path> --output-format json

.legalcheckrc (опционально)

Файл .legalcheckrc в корне проекта позволяет объявить наличие лицензированного специалиста:

yaml
operator:
  type: 법무법인
  name: 법무법인 XX
skip_domains:
  - lawyer-act

Параметры CLI

ПараметрОписаниеЗначение по умолчанию
--output-format {json,markdown}Формат выводаjson
--output-file PATHФайл выводаstdout
--rules-dir PATHДиректория с правилами./rules
--domain DOMAINРучное указание доменаавтоопределение
--include-lowВключить вердикты LOWMEDIUM и выше
--exclude GLOBИсключить пути
--verboseОтладочные логи

Уровни вердиктов

ВердиктЗначениеКод завершения
HIGHВозможно выполнение состава правонарушения — требуется немедленная проверка2
MEDIUMЧасть условий выполнена, рекомендуется консервативная проверка1
LOWПотенциальный риск, справочный уровень0
SAFEБезопасная зона подтверждена (A-спецрежим и др.)0

Результаты валидации

Валидация на 70 проектах (20 публичных проектов GitHub + 50 синтетических тестов):

| Этап | Precision | Recall | F1 | |------|-----------|--------|----|| | Этап 1: только статический анализ | 92.7% | 94.4% | 93.6% | | Этапы 1+2: с проверкой кода LLM | ~100% | ~98% | ~99% |

Участие и обратная связь

Данный проект не принимает Issues. Обратная связь подаётся через Pull Request.

  • Исправление ложных срабатываний / пропусков: PR с добавлением fixture и исправлением правила
  • Предложение нового правила: PR с черновиком файла правила и fixture
  • Улучшение документации: PR с прямыми правками

Запросы на правовую оценку конкретных ситуаций не принимаются. По вопросам, требующим официальной юридической консультации, обращайтесь в Lawfirm Renaissance.

Подробное руководство по участию — в CONTRIBUTING.md.

Лицензия

Apache License 2.0

Отказ от ответственности

Вывод данного инструмента является уведомлением о результатах сопоставления с образцами и не является юридической консультацией. Для оценки правомерности конкретной ситуации необходима консультация адвоката. Вердикт «HIGH» не означает подтверждённой ответственности, а вердикт «SAFE» не гарантирует полной правомерности.

Контакты

Lawfirm Renaissance

Похожие скиллы