Мост соединяет ваш собственный настольный ИИ — Claude Desktop (или
Claude Code), ChatGPT Desktop, Qwen Desktop или Kimi Desktop — с
работающим приложением IRONSTICK на том же компьютере. После этого ИИ
может читать материалы вашего дела через специально созданные инструменты —
хроники, полные тексты документов, электронные письма, сроки, мастер-данные — и
работать с ними на всю глубину: анализировать, перепроверять, составлять
проекты. Соединение строго локальное (127.0.0.1); никакой сервер
IRONSTICK в нём не участвует. Данные, которые читает ИИ, обрабатываются в рамках
вашей собственной подписки у этого поставщика и на его условиях —
полное описание содержится в декларации GDPR о потоках данных.
Потому что работа по подписке, как правило, во много раз дешевле, чем через API. Настольный ИИ работает по фиксированной подписке, которая у вас у поставщика и так есть; каждый диалог, каждое чтение полного текста, каждый раунд составления проекта ею покрываются. Та же работа через встроенный чат IRONSTICK идёт на вашем API-ключе и оплачивается за каждый токен — при длинных диалогах по большим делам это быстро складывается в крупные суммы.
Где мост блистает, так это в цене: он — мощный способ снизить расходы на диалоги с ИИ и оптимальное средство всякий раз, когда документы или крупные массивы данных ведутся через ИИ, — прочитать дело целиком, поддерживать в актуальном состоянии хроники, протоколы и память, проработать сотни приложений — работа, которая при оплате за каждый токен стоила бы непомерно дорого.
Только для Claude Desktop / Claude Code
Каждый доступ настольного ИИ — это отдельно лицензируемый дополнительный модуль:
| Мост | Подключает | Лицензия |
|---|---|---|
| Мост Claude Desktop | Claude Desktop / Claude Code (Anthropic) | отдельный модуль |
| Мост ChatGPT Desktop | ChatGPT Desktop (OpenAI) | отдельный модуль |
| Мост Qwen Desktop | Qwen Desktop | отдельный модуль |
| Мост Kimi Desktop | Kimi Desktop (Moonshot AI) | отдельный модуль |
| Пакет мостов | все четыре выше | четыре модуля вместе |
В IRONSTICK также встроен собственный ИИ-чат, и он работает на в точности том же рабочем уровне, что и мост — те же инструменты, те же шлюзы, та же привязка к источникам и то же составление готовых к подаче шаблонов. Что умеет мост, умеет и чат в приложении. Помимо четырёх поставщиков мостов, он дополнительно предлагает в качестве поставщика Gemini от Google.
Порядок действий одинаков для каждого настольного ИИ; различаются только источник загрузки и кнопка настройки.
| Настольный ИИ | Загрузка / вход | Кнопка настройки |
|---|---|---|
| Claude Desktop / Claude Code | claude.ai/download — учётная запись Anthropic | «Настроить Claude Desktop» (устанавливает также плагин-навык, который обучает Claude рабочим правилам) |
| ChatGPT Desktop | openai.com/chatgpt/download — учётная запись OpenAI | «Настроить ChatGPT Desktop» |
| Qwen Desktop | Qwen Desktop (Windows) — учётная запись Qwen | «Настроить Qwen Desktop» |
| Kimi Desktop | kimi.ai — учётная запись Kimi | «Настроить Kimi Desktop» |
Экран конфигурации содержит ссылки для загрузки, а также ссылки на условия использования и политику конфиденциальности каждого поставщика.
Говорите с настольным ИИ (или с чатом в приложении) обычным языком; он сам выбирает подходящие инструменты. Типичные запросы:
Далее следуют обзор шлюзов, полный каталог 175 инструментов, разделы о стражах добросовестности и проверочном прогоне, а также техническое описание. Имена инструментов — это английские идентификаторы, ровно в том виде, в каком их видит ИИ.
IRONSTICK не пытается воспитывать подключённый ИИ промптами — он обеспечивает правильность структурно. Шестнадцать детерминированных шлюзов (чистая логика, никакого ИИ) стоят между моделью и вашими записями. В приведённом ниже каталоге инструментов инструменты, защищённые шлюзом, отмечены значком ШЛЮЗ.
| Шлюз | Предотвращает | Как обеспечивает |
|---|---|---|
| 1. Шлюз даты | Неверные даты и отметки года из обучающих данных ИИ («его собственное сегодня»). | Каждый инструмент, записывающий в IRONSTICK, отклоняется, если ИИ не получил реальную, проверенную по NTP дату/время в течение последних 30 минут — отдельно для каждого ИИ, намеренно коротко. |
| 2. Шлюз норм | Выдуманный или неверно запомненный текст закона. | Доступ в интернет за нормами структурно отклоняется, пока не была использована проверенная локальная правовая библиотека; найденные в сети источники норм должны быть сообщены — и попадают в библиотеку только через ВАШ диалог согласия. |
| 3. Шлюз проверки процессуального документа | Выдуманные ссылки на документы, расходящиеся суммы, неверные имена сторон, непроверенные цитаты в процессуальном документе. | Детерминированное сканирование по 8 классам (раздел 8): выдача официального документа заблокирована без свежей аттестации OK для точного состояния файла; пять неудачных прогонов приводят к жёсткому прерыванию и уведомлению вас. |
| 4. Страж покрытия чтения | Утверждения «я прочитал всё» о наполовину прочитанных файлах. | Построчно точное отслеживание того, что было действительно прочитано, — сохраняется между перезапусками; непрочитанные диапазоны перечисляются в каждом ответе, выдача остаётся заблокированной, пока есть пробелы, а удаление или перезапись непрочитанных исходных файлов отклоняется. |
| 5. Жёсткая блокировка навигации | Потеря несохранённой работы пользователя из-за переключения экрана ИИ. | Пока открыта форма внесения или текстовый редактор, каждый вызов навигации и экспорта отклоняется на уровне обработчика. |
| 6. Шлюз «человек в контуре» | Незаметная запись ИИ в мастер-данные, хронику, календарь или инструкции. | Изменения ИИ поступают как предложения: Монитор согласованности данных, диалоги сравнения с красным/зелёным выделением, модальные окна подтверждения — ничего не применяется без вашего щелчка. |
| 7. Детектор официального содержания | Официальные письма или процессуальные документы, протащенные в обход форматирования и проверки путём объявления их «неофициальными». | Детерминированное сканирование содержания (формулы обращения/завершения на шести языках, блок адресата, правовые маркеры, блок идентификации) отклоняет заявление о неофициальности — у такого содержания нет неофициального пути выдачи, а попытка фиксируется в журнале. |
| 8. Страж серии версий | Сброс счётчика версий путём переименования основы имени файла («…_v05» тихо превращается в «NewName_v01»). | Первая выдача под новой основой имени отклоняется, пока существует серия версий с тем же номером дела; ИИ должен продолжить серию — или сознательно объявить действительно другой документ, что фиксируется в журнале. |
| 9. Происхождение прочтения норм | Содержание норм, взятое из статей в прессе, веб-резюме или памяти модели вместо подлинного текста закона. | Каждое чтение из библиотеки фиксируется за каждый запуск приложения (исходный файл + номера действительно возвращённых статей). Цитируемая статья без такой записи о прочтении не проходит проверку — знания из прессы, сети или памяти никогда не могут заполнить этот журнал; цитируемые подссылки (часть/пункт) также проверяются на существование. |
| 10. Якорь дела | Контекст дела, выдуманный по памяти о другом деле («перекрёстное загрязнение дел»). | Каждый ответ инструмента, затрагивающий дело, несёт подлинный номер, клиента и предмет дела прямо из записей — выдуманный контекст оказывается рядом с правдой записей в том же окне и сам себя опровергает. |
| 11. Блокировка доступа по инструкциям | ИИ, работающий, так ни разу и не прочитав рабочие правила. | Каждый инструмент — открыватели наборов инструментов, всё — отклоняется, пока ИИ не прочитал инструкции и не воспроизвёл дословно запрет галлюцинаций (правило 5). Подтверждение истекает через 60 минут после его получения, после 2 часов без вызова, в полночь и при каждом повторном подключении; после истечения ИИ должен заново прочитать инструкции и воспроизвести случайно выбранное правило — не то, которое он знает наизусть; раскрывающееся меню у символа ИИ показывает состояние зелёным или красным. |
| 12. Шлюз подготовки | Заметки, записи журнала или процессуальные документы по делу, которое ИИ так и не прочитал. | Два уровня, учитываемые для каждого ИИ и сохраняемые: для заметки нужны профиль, юрисдикция, дайджест каждого документа (дайджест И ЕСТЬ хроника) и 5 новейших прочитанных документов; для процессуального документа, передачи или экспорта — дополнительно каждый документ, который в нём цитируется или прилагается, прочитанный полностью. Прочтение остаётся действительным 3 дня — или до следующего ВХОДЯЩЕГО документа по делу. |
| 13. Происхождение, привязанное к документу | Приложения и ссылки, «прочитанные» несколько часов назад или для другого документа. | Прочтение полного текста засчитывается на 2 часа; каждая выдача того же документа (любой версии) продлевает его цитируемые документы на 2 часа; проверка или выдача ДРУГОГО документа сбрасывает прочтения приложений — ИИ начинает приложения этого документа с нуля. |
| 14. Шлюз чтения для анализа | Непрочитанные «факты», сваленные в описание или контактные поля лица. | Предложение, затрагивающее поля свободного текста лица, отклоняется, если ИИ не прочитал профиль этого лица в течение последних 30 минут. |
| 15. Шлюз дайджеста | Содержание дела, извлекаемое по кусочкам — поиски, хронологии, полные тексты, сроки — по делу, дайджест которого ИИ так и не прочитал. | Каждый инструмент содержания дела (хроника, хронология, поиски, полные тексты, противоречия, обязательства, сроки, корреспонденция, медиа, учреждения, метки, оценка, заметки-инструкции) отклоняется, пока дайджест дела не засчитан как прочитанный в журнале подготовки; отказ называет вызов подготовки. Третья отклонённая попытка по тому же делу учитывается как нарушение правил. |
| 16. Шлюз похожих сторон | Дубликаты лиц, компаний или учреждений, созданные потому, что вариант написания не был распознан. | На предложение новой записи приходит список похожих существующих записей — ничего не сохраняется, — и ИИ должен решить: оформить предложение по существующей записи или явно подтвердить параметром, что это действительно новая сторона. Каждая сохранённая новая сторона возвращает обязательное последующее поручение исследовать и оформить её связи, включая поиск в интернете. |
| Инструмент | Что он делает |
|---|---|
session_start_to_scratch | ВЕСЬ старт сессии за ОДИН вызов: якорь даты, язык системы, текущий контекст, ежедневная сводка, сроки, встречи и открытые задачи коллег-ИИ — собранные детерминированно и записанные в черновую область; ИИ читает один файл и полностью введён в курс дела вместо того, чтобы делать семь вызовов. |
read_current_context | Где пользователь находится прямо сейчас: экран, навигационная цепочка, открытый клиент/дело. |
read_system_language | Язык системы данной установки. |
get_datetime ШЛЮЗ ДАТЫ | Текущие дата/время (проверенные по NTP) — для расчёта сроков. |
read_instructions | В любой момент заново читает полные, актуальные инструкции коннектора в реальном времени. |
confirm_instructions БЛОКИРОВКА ДОСТУПА | Разблокирует коннектор: прочитав инструкции, ИИ дословно воспроизводит правило 5 (абсолютный запрет галлюцинаций). До этого каждый другой инструмент отклоняется; подтверждение истекает через 60 минут после его получения, после 2 часов бездействия, в полночь и при каждом повторном подключении — тогда ИИ заново читает инструкции и воспроизводит случайно выбранное правило. |
user_help_request | Руководство пользователя IRONSTICK как инструмент: на входе английские ключевые слова, на выходе подходящие разделы руководства — ИИ объясняет их на языке диалога. Руководство хранится зашифрованным и только для чтения в черновом хранилище (приложение закладывает его при каждом запуске, никогда не в виде открытого файла); ИИ может также искать в нём там напрямую. Каждый раздел содержит указания по работе, предложения для диалога и порядок действий. |
get_dailybriefing | Сегодняшняя структурированная утренняя сводка С EvidenceID, номерами дел и маркерами — сроки, судебные заседания, непрочитанная почта, внесённые документы, горячие дела. |
open_screen СТРАЖ НАВИГАЦИИ | Переводит приложение на экран (требуется переключатель навигации). |
open_case / open_client / open_person / open_institution / open_evidence | Открывает в приложении конкретное дело, клиента, лицо, учреждение или документ (переключатель навигации). |
open_dossier / open_search / open_emailmonitor / open_tagesprotokoll / open_backup | Открывает ассистента досье (по желанию полностью подготовленного), глобальный поиск, монитор электронной почты (входящие или отправленные, по желанию конкретное письмо), ежедневный протокол (модальное окно конкретного дня) или экран резервного копирования — запуск резервного копирования стоит за шлюзом подтверждения (переключатель навигации). |
open_deadline | Открывает экран сроков с показанной и выделенной конкретной записью (переключатель навигации). |
open_new_client / open_new_case / open_new_person / open_new_institution / open_assign / open_capture | Открывает формы внесения/редактирования (клиент, дело, лицо/субъект, учреждение), экран привязки к делу или входящие/форму внесения документов — ИИ открывает и предзаполняет, СОХРАНЯЕТ всегда пользователь (переключатель навигации). |
open_new_legal_source | Открывает экран законов с уже открытым диалогом регистрации нового источника и предзаполненным URL; пользователь подтверждает (переключатель навигации). |
fetch_mails | Немедленно получает и сортирует новые электронные письма — как нажатие кнопки получения почты. |
request_case_assessment ШЛЮЗ ПОДТВЕРЖДЕНИЯ | Запускает ИИ-оценку дела — за жёстким шлюзом подтверждения с уведомлением о расходах. |
send_server_chat ШЛЮЗ ПОДТВЕРЖДЕНИЯ | Отправляет сообщение в чат фирмы на офисном сервере от имени пользователя — за жёстким шлюзом подтверждения, повторяющим точный текст. |
manage_tag ШЛЮЗ ПОДТВЕРЖДЕНИЯ | Выводит, добавляет, изменяет или удаляет цветные метки записи — каждая запись за жёстким шлюзом подтверждения. |
recycle_desktop_ai ШЛЮЗ ПОДТВЕРЖДЕНИЯ | Перезапускает все настольные приложения ИИ для нового подключения коннектора — за жёстким шлюзом подтверждения, предупреждающим, что окно самого вызывающего ИИ тоже перезапустится. |
| Инструмент | Что он делает |
|---|---|
list_all_clients / list_all_cases | Полные списки клиентов и дел. |
resolve_case_by_number | Номер дела (также частичный) → дело. |
resolve_client_by_name / resolve_person_by_name / resolve_institution_by_name | Имя (нечёткий поиск, устойчивый к диакритике) → запись. |
find_case_by_party | В каком деле участвует данная сторона. |
find_party_by_keyword | Лица и учреждения, в имени, заметках или полях анализа которых встречается ключевое слово, — точка входа, когда известен лишь фрагмент. |
read_hot_cases | Горячие дела (повышенная температура) с клиентом и номером дела — тот же список, который выдаёт набор инструментов дела при открытии. |
get_all_fromtoday / get_all_fromyesterday | Всё, что внесено сегодня / вчера (по дате внесения) по ВСЕМ клиентам и делам, в виде списка EvidenceID со временем, клиентом, делом и заголовком. |
| Инструмент | Что он делает |
|---|---|
read_full_case ШЛЮЗ РАЗМЕРА | Полное дело — хроника с полными текстами, для больших дел выдаётся частями. |
dump_case_to_scratch ПОКРЫТИЕ ЧТЕНИЯ | Самое быстрое полное чтение большого дела: собирает ПОЛНЫЙ текст дела (без усечения — без ограничения на документ), нормализует артефакты OCR (пробелы, CRLF, мягкие переносы) и записывает его прямо в черновую область — содержимое никогда не проходит через контекст ИИ; ИИ получает только дескриптор файла и затем читает по частям. Охват all/in/out или отдельные документы через evidence_ids — способ прочитать документ в 300 000 символов полностью. |
prepare_case ШЛЮЗ ПОДГОТОВКИ | Подготавливает дело за ОДИН вызов: профиль и юрисдикция в качестве шапки и ДАЙДЖЕСТ каждого документа — ID, дата, тип, заголовок, резюме при внесении, перекрёстные ссылки, объём текста, — который И ЕСТЬ хроника. Ответ всегда начинается с примечания, где находятся шапка и дайджест (в самом ответе для небольших дел, иначе черновые файлы, которые нужно прочитать на 100 %), и 5 новейших документов, которые нужно прочитать полностью. Удовлетворяет шлюз подготовки; удалённые и секретные доказательства исключены. |
read_chronik | Быстрый взгляд на последние записи хроники дела — ничего не засчитывает для подготовки; хроника — это дайджест. |
read_case_links / read_case_cliques / read_top_connected_cases | Родительские/дочерние дела и дела той же группы; комплексы дел клиента (Sachverhalte) ровно так, как их группирует карта «Вселенная»; наиболее тесно связанные дела. |
short_case_briefing | Быстрая ориентация по делу за один вызов: все поля вкладки дела и вкладки клиента плюс последние 15 EvidenceID с датами записи. |
read_client_cases / read_related_cases | Все дела клиента; дела, связанные с текущим. |
list_sachverhalte | Все предметные группы (Sachverhalte) клиента за один вызов: каждая группа со своим GroupID и названием и каждое дело в ней с CaseID, номером дела, заголовком, статусом и родительским делом (древовидная вложенность); дела без группы перечислены отдельно. Самый быстрый способ охватить всю картину дел клиента. |
read_case_institutions | Суды/органы, участвующие в деле, с адресами. |
read_case_jurisdiction | Правовая юрисдикция дела (определяет язык документов). |
read_assessment | Сохранённая ИИ-оценка дела. |
build_case_timeline | Хронологическая шкала всех событий дела. |
evidence_anexelist | Список приложений процессуального документа: какие доказательства он физически содержит, каждое со своим детерминированным IS-штампом. |
briefnummer_chain | Прослеживает цепочку регистрационных/исходящих номеров писем по документам. |
evidence_usage | Где документ использовался/на него ссылались. |
list_submitted_evidence | Что было подано в суд, с номерами. |
list_correspondence | Все входящие ИЛИ исходящие документы дела (направление in/out, по желанию начиная с даты) в виде списка EvidenceID. |
evidenceidtoisstamp | EvidenceID → точный IS-штамп (штампы) собственных документов (никогда не выдумывать штамп). |
list_open_obligations | Открытые процессуальные обязательства по делу. |
| Инструмент | Что он делает |
|---|---|
evidence_readfull ПОКРЫТИЕ ЧТЕНИЯ | Полный текст одного документа (и, если имеется, полный текст его чата/расшифровки); читает до 12 документов за один вызов. Сверх лимита коннектора текст целиком попадает в черновое хранилище и засчитывается как прочитанный только после того, как файл прочитан на 100 %. |
read_media | Медиазаписи (фотографии, аудиозаписи): метаданные, геолокация, расшифровки. |
search_evidence_by_keyword / search_evidence_by_time ШЛЮЗ ПОИСКА | Поиск документов по ключевому слову или периоду. |
search_passages | Полнотекстовый поиск на уровне фрагментов по всему делу (устойчивый к ошибкам OCR). |
find_documents_from_party | Все документы, исходящие от данной стороны. |
find_contradictions | Кандидаты в противоречия между документами/показаниями. |
who_said_what | Высказывания каждого говорящего по теме. |
who_with_whom | Кто с кем общался и когда. |
Пять детерминированных инструментов (никакого ИИ) для одного вопроса: как решает отдельный судья или прокурор — что он воспринимает из поданных документов, что обходит стороной, насколько он предсказуем? Инструменты находят и измеряют; прочитать решения и оценить их остаётся работой ИИ — по полным текстам. Решениями считаются только входящие документы от суда или прокуратуры.
| Инструмент | Что он делает |
|---|---|
list_decisions_by_judge | Каждое судебное решение в записях, в котором ОДНО лицо заседало как судья (председательствующий / судья) или выступало как прокурор, — по всем делам. Решение засчитывается, только если лицо названо во вводной части (состав суда) или в блоке подписей; имя в основном тексте не засчитывается, а секретари судебного заседания никогда не перечисляются. По каждому решению: суд, заголовок, роль, состав и первое предложение резолютивной части, дословно. |
read_decision_structure | Разбирает ОДНО решение на части: суд и отделение, номер дела, вид/номер/дата, заседание, состав, предложение с указанием сторон и предмета, резолютивная часть дословно, ключевые слова исхода в ней, средство обжалования, оглашение, ссылки на нормы с их статусом в библиотеке и объём мотивировочной части — каждое со своей позицией символа в сохранённом тексте. То, чего нет в тексте, сообщается как NOT FOUND и никогда не угадывается. |
read_request_and_ruling ПОКРЫТИЕ ЧТЕНИЯ | Для ОДНОГО решения: каждый документ, поданный в этом деле до даты решения, записывается в два черновых файла — клиента (исходящие документы) и противной стороны (входящие документы). Учитываются только документы, адресованные суду или прокуратуре; письма в другие органы или от них, судебные документы, доказательства и записи хроники остаются за пределами. Каждый поданный документ — только с его ОСНОВНЫМ ДОКУМЕНТОМ: сопроводительное письмо впереди и приложения позади отсекаются. То, что нельзя классифицировать с уверенностью, перечисляется как нераспределённое и не попадает ни в один из файлов. |
compare_ruling_with_submissions | Измеряет, что мотивировочная часть ОДНОГО решения разделяет, как текст, с поданными документами каждой стороны: долю, совпадающую с документами клиента, с документами противной стороны, с обоими, с текстом норм из правовой библиотеки, и остаток — собственные формулировки суда; часть, лишь пересказывающая позиции сторон, измеряется отдельно. Совпадающие фрагменты перечисляются с их степенью совпадения (от 70 %), начиная с наибольшей, в исходной формулировке с позициями символов. Инструмент показывает, где судья копирует, — а не чьему доводу он следует своими словами. |
compare_documents | Сопоставляет ЛЮБЫЕ два документа — по всем клиентам и делам — для первого впечатления о том, работают ли адвокаты вместе: один и тот же блок текста в процессуальных документах разных производств. Фрагменты классифицируются как текст норм, как общий цитируемый источник (третий документ из двух дел) или как общие только для этих двух — собственно сигнал. Совпадение само по себе ничего не доказывает: ответ начинается с указания, что ИИ должен полностью прочитать оба документа, прежде чем что-либо утверждать о связи. |
Если сохранённый полный текст оказывается усечённым или испорченным старым прогоном OCR, ИИ не просто мирится с этим — он исцеляет базу данных, а окончательное слово остаётся за вами. Он запрашивает новое сканирование; вы выбираете страницы в IRONSTICK (тот же выбор страниц, что и при внесении документов); повторное сканирование детерминированно нормализуется (водяные знаки удаляются, шаблоны OCR исправляются, пробелы выравниваются) и помещается в черновую область РЯДОМ с текущим текстом из базы данных. Затем ИИ сравнивает обе версии фрагмент за фрагментом, оставляет правильный вариант, исправляет только механические повреждения OCR — никогда не перефразируя; цифры, имена и суммы остаются нетронутыми — и передаёт исцелённую версию обратно. IRONSTICK показывает её вам полностью, и только ВАШ щелчок сохраняет её как новый полный текст.
Следующий шаг: адвокат как точный инструмент. ИИ использует IRONSTICK не только как источник данных — там, где автоматическая обработка упирается в физические пределы, он целенаправленно привлекает вас как визуальный точный инструмент:
Традиционные системы знают ровно два состояния: «успех» (что бы ни выдал OCR, верно или нет) и «ошибка — пожалуйста, обработайте документ вручную». Здесь адвокат становится исполнителем микрозадач ровно для тех 0,1 % скана, которые ИИ не может распознать с уверенностью, — симбиоз скорости ИИ и человеческого зрения.
| Инструмент | Что он делает |
|---|---|
request_ocr_rescan | Только для экстренных случаев: запрашивает новое постраничное OCR-сканирование сохранённого исходного PDF (страницы выбираете вы; секретные документы исключены). |
ocr_rescan_status | Однократная проверка статуса с полным рабочим заданием, как только скан готов (оба текста в черновой области). |
request_pdf_handover | Самое последнее средство, когда непригодно даже повторное сканирование: открывает запись, чтобы ВЫ могли передать исходный PDF в чат через скрепку (жёсткие ограничения 10 MB / 90 страниц; сверх них ИИ переключается на резервный вариант с расшифровкой — не более 3 мест). |
submit_corrected_fulltext | Передаёт исцелённую версию в IRONSTICK — она показывается вам полностью; только ваше сохранение заменяет полный текст в базе данных. |
| Инструмент | Что он делает |
|---|---|
search_emails_mentioning | Электронные письма, упоминающие термин (отправитель, тема, фрагмент, вложения). |
read_email_body | Полный текст одного электронного письма. |
read_kalender / read_appointments | Календарь / предстоящие встречи (заседания, совещания). |
read_deadlines / read_fristen | Сроки по срочности или периоду. |
add_calendar_entry | Открывает форму календаря ПРЕДЗАПОЛНЕННОЙ (заголовок, дата, время, описание, привязка к делу) после обязательной проверки дубликатов в тот же день — ничего не сохраняется автоматически, вы проверяете и сохраняете сами. |
| Инструмент | Что он делает |
|---|---|
read_person / read_person_relations / read_institution_relations | Запись лица — все поля мастер-данных и анализа полностью и без усечения — и сеть связей лица или учреждения; каждый ответ начинается с блока ДЕЛ этой стороны. |
who_is_connected_with | Все, кто связан с ОДНОЙ стороной — лицом, компанией или учреждением — явными связями и общими делами, начиная с самых сильных, с делами этой стороны вверху. Обязательно для каждой стороны, названной в процессуальном документе. |
read_cliques / read_top_connected | Клики сети сторон (детерминированное выявление сообществ, в точности вид «Вселенная»; флаг SUSPICIOUS для необычно плотных групп; по желанию разделение на слои лица / учреждения) — тест на клики; и наиболее связанные стороны. |
send_case_note ШЛЮЗ ПОДГОТОВКИ | Размещает заметку на доске дела на офисном сервере (многопользовательский режим) — за шлюзом подготовки. |
read_institution | Запись учреждения с контактными данными. |
read_tagesprotokolle / search_tagesprotokolle | Ежедневные протоколы: чтение последних дней / поиск по ним. |
append_tagesprotokoll | Записывает работу за день в ежедневный журнал (отправленные письма, составленные процессуальные документы, выработанные теории, решения). К существующему дню делается дополнение, он никогда не перезаписывается; затронутые дела связываются. Для «tp update». |
add_daily_note | Краткая заметка как ОДНО событие в сегодняшнем протоколе («запиши …»). |
add_chronik_entry | Открывает форму внесения записи хроники в нужном деле, ПРЕДЗАПОЛНЕННУЮ ИИ (заголовок, описание, дата события, время, ключевые слова), — ничего не сохраняется автоматически: вы дополняете форму (при желании добавляете изображения) и сохраняете её сами. |
daily_briefing | Сводка на начало дня, отслеживаемая отдельно для каждого настольного ИИ: при первом вызове за день возвращает несколько последних ежедневных протоколов для ориентации и отмечает, что вы введены в курс дела; после этого сообщает об этом. |
read_time_tracking | Учтённое рабочее время по делу/клиенту. |
read_tags | Помеченные записи по всем делам. |
| Инструмент | Что он делает |
|---|---|
list_ki_instructions / read_ki_instruction | Привязанные к делу заметки-инструкции для ИИ; чтение всегда возвращает ПОЛНЫЙ текст (без усечения). |
read_all_ki_instructions | ВСЕ активные инструкции ИИ по делу, сведённые за один вызов (полные тексты). |
list_all_ki_instructions | Глобальная опись по всем клиентам/делам (ClientID, CaseID, ki_id, имя файла — без полных текстов). |
read_output_format | Обязательные спецификации формата вывода. Для документов ИИ должен назвать точный тип (процессуальный документ / простое письмо, каждый с представителем или без него) и получает ТОТ ЖЕ шаблон генерации, что использует чат в приложении, — один централизованно поддерживаемый источник. |
read_tagesprotokoll_format | Обязательный формат ежедневного протокола (схема файла, формат строки события). |
read_mailversand_format | Обязательный формат выдачи судебных писем / пакетов PDF (блоки копирования темы и текста, списки пакетов). |
memory_search / memory_store | Общая память ИИ: вспомнить прежние выводы; сохранить новые (с привязкой к клиенту, ≤1000 символов, проверка/очистка под контролем пользователя; записи активных дел никогда не истекают, и каждое использование продлевает срок жизни записи). |
memory_update / memory_delete | Ведение записей памяти: переформулировать или перенести/снять дату выполнения (с отчётом о заполнении — занято/свободно из 1000 символов) / окончательно удалить запись. |
export_ai_instruction | Запускает экспорт пакета инструкций ИИ (действует предупреждение на стороне пользователя). |
| Инструмент | Что он делает |
|---|---|
propose_master_data ШЛЮЗ ПРОВЕРКИ | Предлагает исправление мастер-данных — включая переименование (поле Name) и вид лица физическое/юридическое (поле PersonKind) — или новую запись, для которой сначала должен быть определён вид → попадает на утверждение в Монитор согласованности данных. На новую запись сначала приходит список похожих существующих записей — ничего не сохраняется, — пока ИИ не оформит предложение по одной из них или явно не подтвердит новую сторону; каждая сохранённая новая сторона возвращает обязательное последующее поручение исследовать и оформить её связи. |
propose_relation | Предлагает связь между лицами или изменение существующей связи → тот же путь проверки. |
propose_case_link ШЛЮЗ ПРОВЕРКИ | Предлагает привязать лицо, компанию или учреждение к делу (ровно одно из: субъект или учреждение; обоснование обязательно, ссылки на доказательства по желанию) → Монитор согласованности данных; после вашего принятия сторона становится участником дела и появляется в представлениях клик и связей. О существующей привязке или ожидающем дубликате сообщается вместо повторного предложения. |
propose_person_analysis ШЛЮЗ ЧТЕНИЯ ДЛЯ АНАЛИЗА | Предлагает текст анализа для лица — отклоняется, если ИИ не прочитал профиль в течение 30 минут. |
osint_entity | OSINT-проверка стороны (разведка по открытым источникам о лице или компании) — базовая функция проверки стороны: на вход подаются имя, город, район, страна и физическое/юридическое лицо; приложение каждый раз выполняет одну и ту же стандартную процедуру — полнотекстовый поиск имени по всей базе данных (по каждому делу 10 новейших доказательств с началом/концом абзаца, плюс сколько ещё их есть) и фиксированный список интернет-запросов на языке страны стороны в Google, DuckDuckGo и Qwant, с удалением дубликатов. Возвращает подготовленный профиль со всеми выполненными поисковыми запросами; ИИ проверяет каждую находку и ссылку и вносит данные через монитор данных. |
entity_scan_evidence | Детерминированная проверка списка: документ, содержащий список имён, — список друзей в Facebook, список участников или подписей, выходные данные, — за один вызов сопоставляется со ВСЕМИ лицами и компаниями в записях (порядок слов и двойные имена через дефис учитываются; одно лишь распространённое имя никогда не утверждается как совпадение, совпадения по одному слову помечаются как неоднозначные). Принимает EvidenceID или просто дело — тогда сканируется новейшая запись этого дела, которая называется в ответе. Без ИИ, без записи. |
propose_deletion / propose_duplicate ШЛЮЗ ПРОВЕРКИ | Предлагает удалить ошибочную запись, метку или выполненный срок (тип frist) — обоснование на языке системы обязательно; предлагает объединить две записи как дубликаты. Ничего не удаляется и не объединяется без вашего щелчка. |
update_ki_instruction ШЛЮЗ ПРОВЕРКИ | Предлагает изменённую версию инструкции ИИ (append / source_path / полное содержимое). IRONSTICK переходит к делу, показывает вам сравнение с красным/зелёным выделением и применяет изменение ТОЛЬКО после вашего принятия — решение сообщается ИИ. |
Локальная рабочая область. Любой вызов инструмента может нести
to_scratch: тогда полный результат записывается в черновой файл, а
ИИ получает только путь и размер — без предпросмотра; и каждый результат сверх
лимита коннектора (10 000 символов; 20 000 для Claude Desktop и ChatGPT Desktop)
автоматически попадает туда же — включая открыватели наборов инструментов.
Крупное содержимое не проходит через вывод ИИ НИ в одном направлении (быстрее,
дешевле, без ошибок перепечатки). Пути в черновом хранилище непосредственно
пригодны как source_path для deliver_file и
update_ki_instruction. Хранилище переживает перезапуски:
собственные заметки ИИ, его регистр состояния и учёт покрытия чтения
сохраняются; выгрузки инструментов за прошлые дни удаляются при каждом запуске,
нетронутые файлы — через 180 дней.
Черновое хранилище — это сейф. С сентября 2026 года каждый файл в нём хранится зашифрованным AES-256, с тем же выводом ключа, что и база данных дел и хранилище документов, — ничто из записанного ИИ не лежит на диске открытым текстом. Чтение и запись проходят только через шлюз IRONSTICK; файл с открытым текстом, помещённый в хранилище любым другим путём (файловым инструментом, ручным копированием), отклоняется, удаляется и сообщается ИИ как нарушение правил. Файлы покидают хранилище только через диалог экспорта IRONSTICK, никогда — в папку загрузок. Вместе с зашифрованными базой данных, хранилищем документов и конфигурацией это закрывает последний пробел: никакие данные дел не лежат на диске пользователя незашифрованными — даже рабочие файлы ИИ.
Ни один инструмент не сокращает собственный результат.
evidence_readfull, read_full_case,
read_email_body, open_url (целые законы и судебные
решения), read_tagesprotokolle, read_person и
read_chronik всегда выдают своё содержимое ПОЛНОСТЬЮ. Одно
центральное правило решает, куда оно поступает: ниже лимита коннектора — в
ответ, выше — целиком в черновой файл. ИИ никогда не приходится заранее
угадывать, насколько большим окажется результат.
Страж свежести: IRONSTICK следит за каждым черновым файлом. В тот момент, когда меняются исходные данные — новый документ или запись хроники в выгруженном деле, запись в календарь или протокол, — или файл просто устаревает, его содержимое заменяется уведомлением о недействительности, которое точно говорит ИИ, как получить его заново. ИИ никогда не может работать с незаметно устаревшими выгрузками.
| Инструмент | Что он делает |
|---|---|
scratch_write / scratch_read ПОКРЫТИЕ ЧТЕНИЯ | Запись (с возможностью дописывания, по частям) / чтение пронумерованных по строкам фрагментов. |
scratch_grep / scratch_edit | Поиск с номерами строк (в одном файле или во всех) / точная замена строки текста. |
scratch_insert / scratch_delete_lines / scratch_replace_lines | Вставка в строку или после маркера / удаление диапазона строк / атомарная замена диапазона строк — безопасная одношаговая операция перестройки. |
scratch_statetracking | Облегчённый регистр состояния сессии (ключ→значение) — прежде всего КАКОЙ черновой файл является текущим основным проектом; переживает перезапуски приложения. |
scratch_list_titles | Структура всех заголовков Markdown со строками начала/конца разделов. |
scratch_diff / scratch_copy | Сравнение двух файлов / создание рабочей копии. |
scratch_countwords / scratch_countletters / scratch_countlines | Подсчёт слов / букв / строк. |
scratch_correctspace / scratch_correctcrlf | Построчное выравнивание пробелов / CRLF→LF плюс удаление BOM и невидимых символов. |
scratch_asciskeleton | Выровненная копия в целевой файл (скелет для сравнения или свёртка диакритики). |
scratch_normalizemd | Обязательный защитный проход для выдачи .md: преобразует структурирующую разметку Markdown в обязательный жёстко заданный формат процессуального документа (таблицы → строки текста, списки → «(1)», маркеры → «•», ссылки → текст) — содержимое сохраняется, никогда не удаляется. |
scratch_dirlist / scratch_deletefile ЗАЩИТА ИСТОЧНИКОВ | Опись всех черновых файлов / удаление одного (идемпотентно) — ИИ обязан убирать свои черновые файлы после каждой завершённой задачи; нетронутые файлы удаляются через 180 дней (долговременным выводам место в памяти ИИ, а не здесь). |
| Инструмент | Что он делает |
|---|---|
web_search / open_url ШЛЮЗ НОРМ | Веб-поиск — каждый вызов одновременно опрашивает Google, DuckDuckGo и Qwant и возвращает один объединённый список результатов с удалёнными дубликатами; загрузка страницы в виде читаемого текста, полностью — основное содержимое извлекается (навигация, реклама и баннеры cookie удаляются; на страницах статей также нижний колонтитул), длинные строки переносятся по границам предложений. На страницах без тела статьи — страницах компаний и контактов — нижний колонтитул сохраняется, потому что именно там указаны адрес и контактные данные; а там, где после извлечения почти ничего не осталось бы, вместо этого выдаётся вся страница. Заблокированная или выдающая ошибку страница пробуется ещё раз через браузерный рендерер, а HTTP-статус сообщается в результате. Вызов отвечает в течение 45 секунд: большой или отсканированный документ обрабатывается дальше в фоне и при следующем вызове с тем же адресом выдаётся сразу. |
get_legal_article | ОДНА статья закона дословно, по L-номеру и номеру статьи, — предусмотренный и самый дешёвый способ обосновать цитату; регистрирует как прочитанную ровно эту статью. |
recheck_legal_source | Немедленно перепроверяет ОДИН закон по его источнику (без изменений / обновлён / дубликат); более свежая загрузка заменяет запись — также на уровне всей фирмы на офисном сервере, где побеждает последний проверивший. |
search_legal_source / get_legal_source / add_legal_source БИБЛИОТЕКА + СОГЛАСИЕ | Растущая база знаний правовых источников; ИИ может добавлять новые находки. Поиск нечёткий, а юрисдикция — обязательный параметр: правопорядки никогда не смешиваются. Get возвращает сохранённый текст закона дословно в виде Markdown: ИИ цитирует из проверенной библиотеки, никогда из памяти модели. Добавить релевантный источник, найденный в сети, — обязанность, а не опция — только ссылкой; приложение само загружает, преобразует и проверяет текст, а пользователь выпускает его через шлюз проверки монитора данных. Каждая запись содержит ссылку на источник и дату проверки; записи, не проверявшиеся больше месяца, помечаются. Закон, загруженный пользователем в виде файла без онлайн-источника, несёт в каждом ответе предупреждение об актуальности: IRONSTICK не может проверить, что это действующая редакция, и ИИ должен сообщать об этом везде, где он его цитирует. Отклонение закона в мониторе данных сначала запрашивает подтверждение и прямо называет последствие — закон покидает библиотеку, а отклонение обновления удаляет весь закон, в том числе на офисном сервере. С опциональным офисным сервером (IRONSTICK SERVER на Synology NAS) библиотека становится общей для всей фирмы: закон, однажды проверенный одним коллегой, цитируется ИИ за каждым рабочим местом — тот же текст, та же редакция, поддерживаемые при общей обязанности проверки. |
validate_vat_vies / validate_eori / validate_lei / validate_iban / validate_id_number | Проверка в реальном времени номеров НДС (VIES), EORI, LEI, IBAN, национальных идентификационных номеров. |
list_legal_sources / grep_legal / get_legal_by_lnumber | Постраничный просмотр описи библиотеки (id, юрисдикция, заголовок, дата проверки); извлечение ДОСЛОВНОГО отрывка закона по его внутреннему L-номеру и диапазону символов — результаты поиска дают ИИ готовый вызов с расширенным диапазоном; загрузка целого закона по L-номеру. |
check_handelsregister | Поиск компании в торговом реестре. |
get_my_location / get_weather | Приблизительное местоположение пользователя (страна, город) по последнему снимку входа; текущая погода для названного места. |
| Инструмент | Что он делает |
|---|---|
handoff_to_peer | Передаёт созданную работу (теорию, стратегию, процессуальный документ) другому настольному ИИ для критической проверки. Полный текст помещается в кратковременную большую память; на него указывает задача. Для «отдай это GPT/Claude на проверку». |
read_open_tasks | Читает ОТКРЫТЫЕ задачи передачи, адресованные вам другим ИИ (ваши собственные никогда не появляются), с полным содержимым. Для «проверь открытую задачу / проверь память». |
reply_to_task | Закрывает входящую передачу (её содержимое удаляется) и возвращает вашу оценку отправителю как новую задачу — полный цикл за один вызов. |
complete_task | Закрывает входящую передачу без ответа (завершает цикл); её кратковременное содержимое удаляется. |
| Инструмент | Что он делает |
|---|---|
export_pdf | Экспортирует документ дела в PDF в вашу папку «Документы». |
export_entity | Открывает диалог экспорта с листом лица (PDF) одной стороны: мастер-данные, участие в делах, анализ лица и связи — только заполненные поля. |
verify_pleading 8-КЛАССОВЫЙ ШЛЮЗ | Обязательная детерминированная проверка готового процессуального документа (раздел 8): ссылки на доказательства с привязанным к документу происхождением цитат, ссылки на нормы по проверенной библиотеке, цитаты, номера dosar, суммы с нулевой терпимостью, мастер-данные сторон, контрольные суммы CNP/IBAN, а также то, что каждая названная сторона прочитана и проверена на связи. Выдача официального документа заблокирована без свежей аттестации OK для точного состояния файла; проверка другого документа сбрасывает прочтения приложений. |
deliver_file ПРОВЕРКА + ТОЛЬКО ИЗ ХРАНИЛИЩА | Передаёт готовый файл через диалог экспорта IRONSTICK — никогда в папку загрузок; текстовый проект одним щелчком попадает в текстовый процессор как готовый к подаче шаблон. Принимает ТОЛЬКО source_path внутри рабочего хранилища приложения — встроенное содержимое и посторонние пути отклоняются, поэтому аттестация, управление версиями и отслеживание повторной выдачи остаются привязанными к каждой выдаче. |
redeliver_file ТОЛЬКО БЕЗ ИЗМЕНЕНИЙ | Снова открывает диалог IRONSTICK для файла, который уже был выдан и с тех пор не изменялся, — когда пользователь ещё раз просит тот же файл. Без шлюзов, без рецензента, без новой версии. Файл, который никогда не выдавался или был изменён после выдачи, отклоняется и засчитывается как нарушение правил: это новая выдача через deliver_file. |
Четыре детерминированных стража добросовестности следят за тем, насколько тщательно подключённый ИИ действительно работает. Это чистый учёт и строковая логика — никакого ИИ, — поэтому они не могут галлюцинировать, практически ничего не стоят, и их невозможно ни в чём переубедить:
С того же выпуска выполнение инструментов также происходит в изолированном рабочем потоке внутри приложения — даже многосекундные обращения ИИ к большим делам больше никогда не подвешивают пользовательский интерфейс IRONSTICK.
Процессуальные документы и письма пишутся в диалоге с настольным ИИ на живом деле — тот же рабочий уровень и те же шлюзы, что и в собственном чате IRONSTICK. Систему покидает готовый к подаче шаблон, но никогда не готовая подача в суд: вы проверяете, исправляете и подписываете. Перед каждой передачей стоят два шлюза: описанная ниже детерминированная проверка и — если вы включите её для активной модели API в конфигурации — Red/Blue Team: вторая модель читает проект как адвокат противной стороны; существенные замечания отправляют его на доработку, не более двух раундов, каждый пункт анализируется по существу и никогда не принимается вслепую. Если ИИ считает замечания необоснованными, он повторно представляет неизменённый файл с письменным ответом на каждое замечание — рецензент не запускается второй раз для неизменённого файла, а отчёт рецензента поступает к вам вместе с этими ответами. Сама передача идёт через диалог экспорта IRONSTICK, откуда проект одним щелчком попадает в текстовый процессор.
Официальный процессуальный документ не может
покинуть систему на доверии. verify_pleading, детерминированный
сканер (никакого ИИ), проверяет готовый проект по вашим живым записям и
проверенной правовой библиотеке по восьми классам утверждений:
who_is_connected_with); отказ называет оба вызова и
дополнительно рекомендует тест на клики (read_cliques).Каждое замечание получает статус VERIFIED, UNVERIFIED или CONTRADICTED. Выдача официального документа отклоняется без свежей аттестации OK для точного состояния файла — каждое изменение аннулирует аттестацию. После пяти неудачных прогонов проверки цикл жёстко прерывается, ИИ получает указание остановиться и сообщить, а вы уведомляетесь непосредственно в приложении. И выдача осуществляется исключительно через собственное рабочее хранилище приложения, поэтому аттестация, управление версиями и отслеживание повторной выдачи остаются привязанными к каждому файлу — встроенная выдача и посторонние пути отклоняются.
Состояние: 175 инструмента-члена · 20 наборов инструментов · ревизия протокола MCP 2024-11-05. Настоящий документ исчерпывающе описывает мост — архитектуру, каждый функциональный уровень, каждый шлюз, каждое ограничение и каждое перенаправление — исключительно в прозе.
Мост подключает коммерческие настольные приложения ИИ (Claude Desktop, ChatGPT Desktop, Qwen Desktop, Kimi Desktop) к работающему на том же компьютере приложению IRONSTICK для ведения юридических дел. Настольный ИИ получает контролируемый, самоописывающийся набор инструментов по протоколу Model Context Protocol (MCP); каждый вызов выполняется внутри приложения IRONSTICK по живой базе данных, и каждый результат проходит постобработку мостом, прежде чем попасть к модели. Цели проектирования: минимальная постоянная контекстная нагрузка на модель, структурное обеспечение рабочих правил, которое простой текст инструкций гарантировать не может, защита несохранённой работы пользователя, защита данных от чрезмерно больших или неверно направленных запросов и полное отсутствие читаемых конфигурационных материалов в установленном продукте.
Мост состоит из двух взаимодействующих процессов.
Приложение IRONSTICK содержит HTTP-сервер, привязанный исключительно к интерфейсу обратной петли (loopback). Его порт и 48-символьный шестнадцатеричный токен доступа определены в хранилище конфигурации приложения; каждый запрос должен предъявить этот токен. Этот сервер владеет реестром инструментов, выполняет все вызовы инструментов, применяет все шлюзы и постпроцессоры и является единственным источником истины о том, что подключённая модель может видеть и делать.
Перед каждым настольным ИИ стоит небольшой нативный исполняемый файл, заранее скомпилированный (ahead-of-time) из Dart. В сторону настольного ИИ он говорит на JSON-RPC через stdio (стандартный транспорт MCP) и передаёт работу HTTP-серверу приложения. У каждого настольного ИИ есть собственный каталог установки с копией этого исполняемого файла и собственным конфигурационным файлом, содержащим: порт обратной петли, токен доступа, строку идентификации вызывающей стороны (например, claudedesktop, chatgptdesktop, qwendesktop), путь к файлу инструкций, выдаваемому при старте сессии, и путь к скрипту выдачи. Идентификатор вызывающей стороны передаётся с каждым вызовом инструмента как внутренний аргумент и определяет всё описанное далее поведение для каждого ИИ в отдельности. Кроме того, фронтенд примерно каждые три секунды, пока настольный ИИ подключён, посылает приложению сигнал присутствия (heartbeat); приложение отображает его как индикатор присутствия «мост подключён» со временем жизни пятнадцать секунд, так что пользователь всегда видит, подключён ли в данный момент внешний ИИ.
При рукопожатии MCP initialize фронтенд возвращает идентификатор своего сервера и, встроенным в результат initialize, полный текст инструкций для старта сессии. Фронтенды версии 2.6.6 и новее ищут сопутствующий файл к настроенному пути инструкций, имя которого несёт суффикс core, и отдают ему предпочтение; так выдаётся сжатая основная инструкция объёмом примерно пятнадцать с половиной тысяч символов вместо полного свода правил объёмом примерно пятьдесят шесть тысяч, что снижает постоянную нагрузку инструкций примерно до четверти. Полный свод правил остаётся доступным модели в любой момент через специальный инструмент (см. раздел 5).
Весь трафик идёт только через обратную петлю и аутентифицирован токеном. Инструменты веб-доступа применяют фильтрацию запросов на стороне сервера: разрешены только публичные цели http и https; localhost, диапазоны обратной петли, частные сети и адреса link-local отклоняются, так что модель никогда не удастся направить через мост на сканирование компьютера или локальной сети.
Мост и интеграции с настольными приложениями отдельных поставщиков являются отдельно лицензируемыми дополнительными модулями. Их доступность закодирована битами в подписанном лицензионном ключе; фронтенд и набор инструментов нелицензированного модуля просто не возникают.
Для подключения Claude Desktop шлюз согласия защищает первый доступ к данным за каждый запуск приложения: первый вызов инструмента после запуска программы вызывает модальное окно предупреждения поверх текущего экрана. Если пользователь соглашается, доступ свободен до конца этого запуска; если пользователь отказывает, доступ блокируется на десять минут, и каждый заблокированный вызов возвращает настольному ИИ поясняющее сообщение с просьбой повторить попытку позже; по истечении десяти минут следующий доступ снова вызывает предупреждение. Состояние хранится только в памяти и никогда не сохраняется.
Независимо от согласия каждое настольное подключение охраняет блокировка доступа по инструкциям: ни один инструмент — открыватели наборов инструментов, инструмент выполнения членов, всё — не выполняется, пока вызывающая сторона не прочитала инструкции и не воспроизвела дословно через инструмент подтверждения запрет галлюцинаций (правило 5); открытыми остаются только средство чтения инструкций, инструмент подтверждения и инструмент языка системы. Подтверждение привязано к каждому настольному ИИ и истекает через шестьдесят минут после его получения, после двух часов без вызова, в полночь и при каждом новом рукопожатии подключения — после истечения вызывающая сторона должна заново прочитать инструкции и воспроизвести случайно выбранное правило вместо того, которое она знает наизусть. При подключении Claude каждый чат является отдельной вызывающей стороной (чаты различаются по структурированным событиям инструментов в локальном журнале сессий Claude, никогда не по тексту разговора), чат, контекст которого был сжат, немедленно блокируется, без штрафа, пока не прочитает инструкции заново, а чату, который обращается к папке данных собственными файловыми инструментами вместо коннектора, это фиксируется как нарушение правил; отказ называет два вызова, открывающие блокировку, а раскрывающееся меню у символа ИИ в приложении показывает состояние зелёной галочкой или красным крестом.
Каждая функция чтения и записи данных проверяется на принадлежность владельцу по идентификатору владельца, выведенному из лицензии. Записи доказательств, помеченные как секретные, без исключения исключаются из каждой функции чтения, поиска, выгрузки и штампования; записи, помеченные как удалённые, также невидимы.
Руководство для модели поступает на трёх уровнях со строго возрастающей конкретностью и строго убывающей постоянностью присутствия в контексте.
Основная инструкция выдаётся один раз, внутри результата initialize. Она содержит мандат (фактологическая юридическая работа на уровне старшего юриста), универсальные правила (язык диалога равен языку системы IRONSTICK; юрисдикция создаваемых документов берётся из дела, никогда из диалога; дисциплина дат; никакого цитирования по фрагментам поиска — каждая страница, на которую опирается ИИ, должна быть открыта и прочитана через open_url, каким бы поиском она ни была найдена; дисциплина цитат и ссылок; ограничение в три попытки на каждый неудачный вызов инструмента; дисциплина выдачи) и описание самого механизма наборов инструментов, включая пояснение поля «домашний набор инструментов», описанного в разделе 6.
Рабочие правила отдельных областей не находятся в контексте постоянно: они передаются модели дословно и в актуальном виде каждый раз, когда она открывает соответствующий набор инструментов, как часть ответа на открытие.
Полный свод правил — основная инструкция плюс все правила наборов инструментов плюс приложения (среди них формат файла ежедневного протокола) — можно в любой момент перечитать через инструмент чтения инструкций; фронтенд читает файл в реальном времени, так что изменения инструкций достигают работающей сессии без переподключения.
Три из этих правил дополнительно обеспечиваются не текстуально, а структурно — шлюзами, описанными в разделах 3 и 7: блокировка доступа, дисциплина дат и дисциплина источников норм. Само чтение инструкций является последним правилом универсального блока: способ разблокировать коннектор назван только после всех предшествующих правил, так что модель, дошедшая до него, их прочитала.
Плоский список из 175 инструментов измеримо ухудшает выбор инструментов у современных настольных моделей. Поэтому мост предоставляет сокращённый набор из двадцати восьми позиций: шесть основных инструментов (текущие дата и время; текущий контекст интерфейса; язык системы; юрисдикция дела; повторное чтение инструкций; подтверждение инструкций), внедряемый фронтендом инструмент выдачи, двадцать открывателей наборов инструментов, инструмент выполнения членов и инструмент полной описи. Всё остальное существует только как члены внутри наборов инструментов.
Открытие набора инструментов — это обычный вызов инструмента без аргументов. Ответ выдаёт за один раз: во-первых, если он у набора есть, детерминированно заранее сгенерированный блок контекста, вычисленный в момент открытия (у восьми наборов инструментов есть такие генераторы — сам протокол старта сессии; текущая опись черновых файлов; десять последних записей памяти в качестве предпросмотра; первые тридцать законов правовой библиотеки; список горячих дел; зарегистрированные сегодня документы и входящие электронные письма; сегодняшний ежедневный протокол; текущий снимок сроков и встреч); во-вторых, дословные рабочие правила области; в-третьих, полные определения инструментов-членов с их полными схемами параметров; в-четвёртых, резервную строку со ссылкой на полную опись. Сбой внутри генератора предварительного содержимого никогда не препятствует открытию.
Члены выполняются через инструмент выполнения членов, который принимает точное имя члена и объект аргументов. Перед выполнением проходит облегчённая проверка схемы: обязательные поля должны присутствовать и быть непустыми, а целочисленные, числовые и логические параметры должны разбираться как таковые; при нарушении вместо выполнения возвращается ожидаемая схема. Для неизвестного имени члена в качестве подсказки возвращается ближайшее существующее имя по редакционному расстоянию. Уровень инструкций ограничивает число попыток исправления тремя на каждый неудачный вызов, после чего модель должна остановиться и сообщить точную ошибку.
Наборы инструментов не являются модальными; все открыватели остаются доступными для вызова в любое время, инструмент может намеренно быть членом нескольких наборов, а ответы на открытие никогда не перенаправляются в черновое хранилище (схемы в файле были бы бесполезны). Функциональные шлюзы убирают целые группы: если навигация по интерфейсу не включена пользователем, открыватель набора инструментов навигации и все его члены отсутствуют в каждом списке и каждом ответе. Инструмент полной описи перечисляет каждого члена с однострочным описанием назначения и его набором-владельцем и существует лишь как запасной выход; главным маршрутизатором служат описания наборов инструментов. В сумме двадцать наборов инструментов содержат 280 записей членов для 175 различных инструментов.
Измеренная контекстная стоимость такой организации: исходная конфигурация (основная инструкция плюс сокращённый список инструментов) составляет примерно десять тысяч токенов; одно открытие набора инструментов добавляет, в зависимости от набора, примерно от девятисот до семи с половиной тысяч токенов — ещё до его переменного заранее сгенерированного содержимого.
Каждое определение инструмента состоит из четырёх частей. Описание несёт назначение инструмента, его поведенческие предписания и перекрёстные ссылки — и ничего больше. Схема ввода содержит каждый параметр с его собственным описанием, включая значения по умолчанию, форматы, указания на взаимоисключаемость и предписания для отдельных параметров; указания по использованию параметров находятся исключительно здесь. Поле вывода ещё до любого вызова точно описывает, что возвращает вызов, включая порядок, маркеры и формы ошибок, так что модель может судить о пригодности без пробных вызовов. Поле «домашний набор инструментов» называет набор, к которому инструмент относится в первую очередь, с зарезервированным значением для основных инструментов, всегда находящихся в списке верхнего уровня; член, встреченный внутри чужого набора, тем самым сообщает, где находятся другие инструменты его семейства, и каждое открытие набора инструментов содержит одну поясняющую строку о том, что модель никогда не заперта в открытом наборе.
Весь текст, обращённый к модели, без исключения написан по-английски. Цепочка производства ведёт от единственного канонического исходного документа через генераторы во встроенный при компиляции оверлей и в схему кластеров, документирующую топологию наборов инструментов; генератор жёстко прерывается, когда какое-либо описание или текст вывода — на любой глубине схемы — срабатывает на детектор немецкого языка, а страж дрейфа прерывает синхронизацию, если заявленный домашний набор инструментов указывает на набор, который на самом деле не перечисляет этот инструмент среди своих членов. Объявленные числовые ограничения в схемах инструментов обеспечиваются общей вспомогательной функцией ограничения в исполняющих функциях, так что заявленный максимум является реальным максимумом.
Следующие механизмы действуют для всего набора инструментов и реализованы централизованно, а не в каждом инструменте отдельно.
Перенаправление в черновое хранилище по запросу: каждый инструмент принимает дополнительный параметр с именем чернового файла; если он задан, полный результат записывается в этот файл, а модель получает только путь и размер — без предпросмотра. Тем самым крупное содержимое никогда не проходит через поток токенов модели ни в одном направлении, а путь можно непосредственно использовать везде, где принимается исходный путь.
Защита от переполнения: любой результат, превышающий лимит коннектора — десять тысяч символов, одна центральная константа, удвоенная до двадцати тысяч для Claude Desktop и ChatGPT Desktop, — автоматически записывается в сгенерированный черновой файл. Модель получает только примечание с указанием общего размера и числа строк, имени файла, явным заверением, что ничего не потеряно, двумя командами продолжения (чтение диапазона; поиск по шаблону в файле) и прямым запретом повторно запрашивать вызов — без предпросмотра, так что крупное содержимое читается там, где оно находится, и модель привыкает работать из чернового хранилища. Единственное исключение — средство чтения инструкций, пакет которого всегда поступает полностью; открыватели наборов инструментов перенаправляются, как и любой другой результат. Ни один инструмент не сокращает собственный результат — лимит коннектора является единственным местом, где решается вопрос размера. Результаты свыше десяти мегабайт не перенаправляются, а получают в ответ указание сузить запрос с перечислением применимых фильтров, поскольку даже черновое хранилище ограничивает там размер файла. От перенаправления освобождены сами инструменты чтения чернового хранилища (они ограничены внутренне; их перенаправление привело бы к рекурсии) и вызовы, которые уже запросили перенаправление в черновое хранилище.
Шлюз даты: каждый инструмент, записывающий в IRONSTICK, отклоняется для внешних вызывающих сторон, если данная вызывающая сторона не получила текущие дату и время в течение последних тридцати минут. Отказ называет средство исправления — получить время, затем повторить идентичный вызов. Окно привязано к каждому поставщику и намеренно короткое, чтобы новый разговор не мог унаследовать старое получение времени и чтобы улавливались переходы через полночь. На вызывающие стороны внутри приложения это не распространяется. Шлюз существует потому, что внешние модели в противном случае ставят на записи «сегодня» времён своего обучения.
Шлюз норм: веб-доступ за законами и нормами структурно отклоняется, пока не была использована внутренняя правовая библиотека; отказ указывает на процедуру работы с библиотекой. Любой источник норм, всё же полученный из интернета, должен быть сообщён в библиотеку через инструмент регистрации — уровень инструкций квалифицирует упущение как нарушение обязанности, а результаты, затрагивающие правовые источники, несут маркер для целей аудита.
Жёсткая блокировка навигации: восемь экранов объявлены защищёнными — четыре формы внесения (внесение документа, внесение документа с привязкой к делу, внесение записи хроники дела, внесение клиента), форма создания дела, форма привязки учреждения/лица и текстовый редактор. Пока главное окно пользователя показывает любой из них, каждая функция навигации по интерфейсу и экспорта отклоняется на уровне обработчика — обёртка одинаково перехватывает прямые вызовы и выполнение членов — с сообщением, которое называет защищённый экран, запрещает навигацию и предписывает модели отвечать теми данными, которые у неё есть, и предлагать открытие только после того, как пользователь закончит работу и сохранит её. Поэтому модель никогда не может уничтожить несохранённую работу пользователя переключением экрана. Инструмент открытия веб-страниц явно освобождён от этой обёртки, поскольку он разделяет префикс имени, но не выполняет навигацию в приложении.
Предложение навигации: результаты примерно сорока инструментов, вывод которых описывает объект, открываемый в интерфейсе, — дело, лицо, учреждение, клиента, конкретное доказательство, электронное письмо, записи календаря или сроки, — получают одну добавленную строку, предлагающую модели предложить пользователю открыть объект непосредственно в IRONSTICK, с указанием точного вызова навигации. Если аргументы вызова содержат идентификатор объекта, предложение конкретно; для результатов поиска и списков оно ссылается на идентификатор одного из результатов. Строка явно требует согласия пользователя перед навигацией, если только запрос пользователя уже не был командой показать/открыть. Предложение добавляется только после обработки переполнения и только если результат не является ошибкой, навигация включена и жёсткая блокировка навигации не активна — блокировка всегда побеждает предложение.
Передача идентичности вызывающей стороны: идентичность вызывающей стороны сопровождает каждое выполнение и определяет состояние для каждого ИИ — ежедневный рабочий брифинг отслеживается для каждого настольного ИИ отдельно, списки задач взаимной проверки исключают собственные задачи вызывающей стороны, а журнал вызовов приписывает каждую строку.
Журнал вызовов: переключаемый диагностический журнал записывает по одной строке на каждый вызов инструмента для всех подключённых ИИ — метку времени, вызывающую сторону, фактическое имя инструмента (при выполнении членов — внутренний член, а не обёртку), аргументы, усечённые до трёхсот символов, размер результата, измеренный до какого-либо перенаправления при переполнении, продолжительность выполнения и флаг ошибки. Переключатель находится в хранилище конфигурации приложения и перечитывается с десятисекундным кешем, так что журналирование можно включать и выключать без перезапуска. Журнал существует для анализа путей и оптимизации наборов инструментов и после этого должен выключаться.
Свёртка диакритики и письменностей: каждый поиск по ключевым словам, поиск по шаблону и сравнение во всём мосте сворачивают регистр и диакритику для всех одиннадцати языков системы, включая турецкие i с точкой и без точки (заменяются до приведения к нижнему регистру, поскольку иначе меняется длина), варианты кириллических букв и латинские лигатуры; там, где сообщаются позиции, свёртка сохраняет позиции.
Соглашения о результатах: сбои возвращаются как текст, начинающийся с префикса ошибки, и помечаются как ошибки в результате MCP; модели предписано исправить и повторить не более трёх раз, затем остановиться и сообщить. Встроенные в результаты структурированные самоописывающиеся маркеры (для операций с памятью, шлюзов и тому подобного) стабильны и документированы в соответствующих полях вывода.
Страж покрытия чтения: когда модель запрашивает выгрузку всего дела или выдачу средства чтения всего дела в черновое хранилище, мост построчно точно фиксирует, какие диапазоны файла выгрузки были действительно прочитаны. Пока остаются непрочитанные диапазоны, каждый успешный ответ инструмента — поиски, совпадения по шаблону, всё — несёт точные непрочитанные диапазоны строк вместе с процентом прочтения; поэтому заявить о полном прочтении невозможно. Как только файл прочитан полностью, напоминания прекращаются, и следующее чтение диапазона однократно подтверждает, что все строки прочитаны, давая модели доказуемое окончание её обязанности чтения. Отслеживаются выгрузки всего дела, файлы шапки и дайджеста инструмента подготовки дела и каждый полный текст документа, перенаправленный в черновое хранилище; частичное чтение других перенаправленных результатов остаётся законным и не вызывает напоминаний. Состояние покрытия сохраняется рядом с хранилищем и переживает перезапуски приложения, а полностью прочитанный файл заносится в журнал подготовки — прочтение остаётся действительным даже после того, как очистка при запуске удалила файл.
Страж повторной выдачи: после успешной выдачи файла, источник которого находится в черновом хранилище, файл-маркер рядом с хранилищем фиксирует выданное имя и время (выдачи, переданные как встроенное содержимое, также фиксируются под своим именем выдачи). На каждое последующее изменение, запись или нормализацию зафиксированного там файла приходит напоминание, что у пользователя на руках устаревшая выданная версия и что исправленный файл должен быть выдан снова под новым номером версии. Кроме того, сам ответ на выдачу получает текущее состояние покрытия чтения от приложения через внутреннюю конечную точку, не являющуюся инструментом, и делает выговор за выдачу, произведённую несмотря на непрочитанные диапазоны.
Страж невыданных проектов: дополнение ежедневного протокола — сигнал модели о завершении работы — поимённо перечисляет каждый версионированный рабочий файл, записанный моделью в ходе сессии и так и не выданный, с указанием выдать готовый артефакт сейчас; работа, существующая только в черновом хранилище, никогда не доходит до пользователя.
Страж формата электронных писем: каждый ответ инструментов чтения и получения электронной почты несёт фиксированное указание, что обязательная инструкция по форматированию и выдаче электронных писем — поле копирования темы, поле копирования текста, раздел получателей, обязательное содержание, языковые правила — берётся из инструмента спецификации формата писем, который нужно вызвать перед составлением любого письма и выполнять буква в букву.
Выполнение в рабочем изоляте: вычислительная часть инструментов данных и анализа выполняется в выделенном рабочем изоляте внутри приложения, со своим реестром и своими подключениями к базе данных; изолят интерфейса приложения только маршрутизирует, применяет шлюзы и выполняет постобработку. Поэтому даже многосекундные обращения к большим делам никогда не подвешивают пользовательский интерфейс приложения; если рабочий изолят гибнет, выполнение незаметно переходит на изолят интерфейса, а рабочий изолят при следующей возможности создаётся заново. Инструменты, которым по своей природе нужен изолят интерфейса, — навигация, диалоги подтверждения, встроенный браузер, получение почты и записывающие инструменты за шлюзом проверки — по замыслу освобождены от маршрутизации в рабочий изолят.
Три инструмента намеренно отвечают на свой первый вызов вопросом вместо результата; во всех них буквальный ответ «unknown» всегда допустим и никогда не наказывается.
Шлюз выдачи: инструмент выдачи файлов, вызванный без декларации официальности, ничего не выдаёт и спрашивает, относится ли выдача к одному из четырёх видов официальных артефактов — процессуальный документ, судебное электронное письмо, запись хроники, ежедневный протокол — или ни к одному из них. Ответ «no» приводит к немедленной выдаче — но это заявление проверяется по содержанию: детерминированный детектор исследует файл, и содержание, оформленное как письмо или процессуальный документ (формулы обращения и завершения на шести языках, блок адресата, правовые маркеры, блок идентификации), отклоняет заявление о неофициальности и фиксирует попытку в журнале; у такого содержания нет неофициального пути. Ответ с указанием официального вида возвращает, по-прежнему без выдачи, обязательную инструкцию по форматированию именно для этого вида, встроенную в ответ шлюза; действительно выдаёт только повторный вызов с флагом подтверждения того, что файл проверен по этой инструкции. Страж серии версий дополнительно отклоняет первую выдачу под новой основой имени файла, пока в папке выдачи уже существует версионированная серия с тем же номером дела, — переименовать документ, чтобы сбросить его счётчик версий, структурно невозможно; действительно другой документ требует сознательной, фиксируемой в журнале декларации. Этот шлюз реализован внутри самого исполняемого файла фронтенда, который получает актуальную инструкцию по форматированию из приложения в реальном времени. Документы и письма никогда не попадают к пользователю как текст чата или поля копирования — каждое обращение на запись к текстовому рабочему файлу несёт это напоминание, а единственным законным артефактом в поле копирования остаётся электронное письмо согласно его инструменту формата.
Шлюз поиска: центральный поиск доказательств при своём первом вызове ничего не ищет и задаёт три вопроса — какой вид элемента ищется (входящий документ, исходящий документ, доказательство с приложенным документом, показание/расшифровка, заметка хроники или unknown), охват, если присутствует идентификатор клиента (только это дело, все дела клиента или unknown — со списком дел клиента, включённым в вопрос), и желаемая форма ответа. Формы ответа: чистый список идентификаторов (рекомендуемый вариант по умолчанию; результаты затем открываются по отдельности через средство чтения доказательств), компактные результаты с контекстом совпадения или полный результат, записанный в один черновой файл.
Шлюз всего дела: средство чтения всего дела при своём первом вызове ничего не загружает и сообщает, насколько велико дело на самом деле, — число доказательств и приблизительный накопленный объём содержимого по заголовкам, описаниям, полным текстам документов и расшифровкам, — а затем просит модель выбрать между целевыми инструментами поиска и повторным вызовом с аргументом выдачи в черновое хранилище, который записывает полное, нормализованное по OCR содержимое дела в черновое хранилище и возвращает только дескриптор файла.
Шлюз проверки: для официальных процессуальных документов инструмент выдачи дополнительно требует свежую аттестацию от детерминированного средства проверки процессуальных документов. Это средство проверки сканирует готовый черновой файл по восьми классам утверждений — ссылки на доказательства в списке приложений и в основном тексте (штампы и номера, включая привязанное к документу происхождение цитат: каждый цитируемый или приложенный элемент должен засчитываться как прочитанный для этого документа — загруженный полностью или с черновым файлом, прочитанным до конца; прочтение засчитывается на два часа, каждая выдача того же документа продлевает его цитируемые элементы на два часа, а проверка или выдача документа с другой основой имени сбрасывает прочтения приложений; строка приложения может указывать диапазон страниц, обязанность чтения по-прежнему распространяется на весь документ), ссылки на нормы по проверенной библиотеке (статья, отсутствующая в проверенном тексте закона, является опровергнутым замечанием; цитата дополнительно требует происхождения прочтения — каждое чтение из библиотеки фиксируется за каждый запуск приложения с номерами действительно возвращённых статей, и цитируемая статья без такой записи о прочтении является опровергнутым замечанием, так что статьи в прессе, веб-резюме и память модели никогда не могут обосновать норму; цитируемые подссылки, такие как часть и пункт, проверяются на существование в области текста статьи; источник, отсутствующий в библиотеке, блокирует до его включения или отклонения), дословные цитаты — каждая должна быть найдена полностью в полных текстах дела или в правовой библиотеке; цитата, не найденная ни в одном источнике, опровергнута и блокирует выдачу, цитата, у которой лишь убраны кавычки или слегка изменена формулировка, остаётся заблокированной, а о полностью вычеркнутых цитатах пользователю сообщается при выдаче, —, номера dosar, суммы по правилу нулевой терпимости (точная записанная форма), мастер-данные сторон буква в букву, включая диакритические знаки, персональные/банковские идентификаторы через валидаторы контрольных сумм и названные стороны — каждое лицо или каждая компания из реестра субъектов, названные в документе, должны быть прочитаны (профиль) и проверены на связи для этого документа, причём отказ называет оба вызова и рекомендует тест на клики. Замечания оцениваются как verified, unverified или contradicted; любое опровергнутое замечание или неразрешённый отсутствующий закон ведёт к блокирующему вердикту. Аттестация привязана к точному состоянию файла — любое изменение её аннулирует, — и после пяти неудачных прогонов проверки цикл жёстко прерывается, предписывает модели остановиться и сообщить и уведомляет пользователя непосредственно в приложении.
Шлюз согласия для источников норм: источник норм, сообщённый моделью, больше не включается незаметно. Запросы собираются в едином диалоге согласия в приложении — источник, юрисдикция, запрашивающий ИИ, — где отмеченные записи загружаются, проверяются и сохраняются (с немедленным запуском рабочего процесса), а неотмеченные отклоняются; отклонённый источник превращает последующие цитаты из него в видимые пометки «не проверено по решению пользователя» вместо незаметных блокировок. После этого монитор данных содержит законы только для периодического цикла проверки.
Правило выдачи только из хранилища: инструмент выдачи принимает исключительно исходный путь внутри рабочего хранилища приложения; встроенное содержимое и пути за пределами хранилища отклоняются для всех типов файлов. Это сохраняет аттестацию проверки, отслеживание повторной выдачи, управление версиями и покрытие чтения привязанными к каждому выданному артефакту без исключения.
Открытие набора инструментов старта сессии выполняет весь протокол старта за один раз и записывает его в фиксированный именованный черновой файл; прямой ответ возвращает только якорь даты, язык системы и текущий контекст интерфейса, а остальное — наступившие записи памяти, ежедневную сводку, сроки, встречи, открытые задачи взаимной проверки и указатель последних десяти ежедневных протоколов — модель читает одним чтением чернового файла. Члены этого набора инструментов по запросу повторно выполняют отдельные части.
Инструмент даты и времени отвечает одной строкой (дата, время, часовой пояс, день недели, по возможности синхронизированные по NTP, иначе системные часы) и несёт постоянное предписание, что каждый ход диалога начинается с текущей даты и что даты никогда не угадываются. Инструмент контекста интерфейса сообщает, какой экран главного окна приложения открыт, с навигационной цепочкой и открытыми клиентом и делом. Инструмент языка системы возвращает идентификатор языка, определяющего диалог и списки по всем делам; инструмент юрисдикции возвращает для каждого дела юрисдикцию, определяющую создаваемые документы и терминологию, обязателен перед любой работой с документами и предписывает спросить пользователя, если юрисдикция не задана. Инструмент утренней сводки возвращает сегодняшнюю структурированную сводку с идентификаторами и маркерами, чтобы модель могла действовать по каждому пункту; инструмент рабочего брифинга отслеживает для каждого настольного ИИ, был ли этот ИИ уже введён в курс дела сегодня, и возвращает последние ежедневные протоколы только при первом контакте за день.
Черновое хранилище — это рабочая папка модели для всего крупного. Оно предлагает запись с возможностью дописывания для сборки по частям; чтение диапазонов с нумерацией строк, номера которых напрямую соответствуют построчным редакторам; точную замену текста с требованием уникальности, повторную попытку с допуском различий в пробелах и типографских кавычках, по-прежнему требующую уникальности, и предписанный резервный путь «найти и скопировать» при любом другом несовпадении; вставку по номеру строки или после маркера; удаление диапазона строк; атомарную замену диапазона строк как безопасную операцию перестройки; поиск по шаблону без учёта регистра и диакритики в одном или всех файлах с ограничением в пятьдесят результатов и необязательными строками контекста; структуру Markdown, сопоставляющую заголовки с диапазонами строк без чтения файла; список каталога; копирование; построчное сравнение двух файлов, скрывающее общие строки; ориентированную на выдачу нормализацию, которая сглаживает структурную разметку Markdown до соглашений процессуальных документов, защищает ссылки, дополняет короткие ссылки на доказательства до семи цифр и нормализует окончания строк; выравнивание пробелов; очистку окончаний строк и невидимых символов; деструктивные выровненные проекции (скелет для сравнения в нижнем регистре или только свёртка диакритики) всегда в отдельный целевой файл; счётчики слов, букв и строк; и удаление.
Облегчённый регистр состояния запоминает заметки «ключ — значение» для текущей сессии — прежде всего, какой файл является текущим основным проектом — с семантикой получения, установки и очистки и переживает перезапуски приложения.
Жизненный цикл: хранилище долговечно и переживает перезапуски; собственные заметки модели, регистр состояния, метаданные файлов и учёт покрытия чтения сохраняются, тогда как выгрузки инструментов за прошлые дни удаляются при каждом запуске, а файлы, не тронутые в течение ста восьмидесяти дней, удаляются. Каждое обращение через любой черновой инструмент — включая простое чтение — сбрасывает часы удаления этого файла; простое появление в списке каталога этого не делает. Уровень инструкций обязывает модель удалять файлы задачи по её завершении, а долговременные выводы вместо этого переносить в систему памяти.
Постоянная память ИИ — это общая для всех чатов записная книжка, разделяемая всеми подключёнными ИИ и ассистентом в приложении. Запись содержит не более одной тысячи символов — описания набора инструментов и инструментов требуют сжатия до абсолютно существенного и разбиения более объёмного материала — и привязана как минимум к клиенту или делу (при привязке к делу клиент выводится и исправляется автоматически) и необязательно к доказательству, электронному письму, субъекту или учреждению, причём все привязки проверяются. Записи должны писаться на языке системы IRONSTICK независимо от языка диалога, а модели запрещено использовать собственные частные файлы памяти для знаний о деле, поскольку они не доходят ни до ИИ-коллеги, ни до пользователя. Необязательная дата выполнения превращает запись в подобие срока: наступившие и просроченные записи первыми появляются в протоколе старта сессии и в представлениях сроков приложения.
Поиск можно фильтровать по любому из привязанных идентификаторов и по дате выполнения (всё, ровно сегодня или окно в десять дней вокруг заданной даты); он возвращает результаты начиная с новейших, по умолчанию двадцать и максимум пятьдесят, и помечает записи записной книжки, созданные пользователем, как строго доступные ИИ только для чтения. Обновление заменяет текст и/или переносит, устанавливает или снимает дату выполнения; всё, что не передано, остаётся без изменений. Обновление, текст которого превышает лимит, отклоняется с отчётом о заполнении, называющим переданную длину, лимит, текущую заполненность записи и свободный остаток; каждое успешное обновление текста также сообщает заполненность и остаток; в обоих случаях, как только свободными остаются менее трёхсот символов, ответ добавляет постоянную рекомендацию либо переработать всю запись, либо создать дополнительную запись и оставить в старой перекрёстную ссылку. Удаление необратимо и отказывает в удалении пользовательских записей записной книжки и записей задач. Обслуживание рассчитано на длительные производства: записи, привязанные к делу, освобождены от годичной очистки, пока это дело активно, — они удаляются только когда дело переводится в неактивное или архивное состояние (что немедленно очищает его записи) или когда удаляется клиент; годичная очистка применяется только к записям без привязки к делу. Кроме того, каждая запись, возвращённая поиском в памяти, и каждое обновление записи продлевают её срок жизни, а очистка измеряет возраст от самого позднего из моментов создания и последнего обращения — запись, которая действительно используется, никогда не истекает; устаревает только мёртвый материал. Пользовательские записи записной книжки никогда не истекают автоматически.
Мастер-данные, лица, связи и документы в памяти не место: описания направляют их к инструментам предложений и к внесению документов.
Инструменты сроков выдают активные сроки либо компактно (заголовок, дата наступления, оставшиеся дни, дело, с исключением записей, помеченных как секретные), либо с описаниями каждой записи и явными пометками о просрочке и срочности (срочно означает десять дней или меньше), а также в форме перечня, упорядоченного по срочности, с фильтрами периода (все, сгруппированные по критичности, только критические, скоро наступающие, сегодня, эта неделя, следующая неделя или конкретная дата). Инструмент встреч перечисляет день или период, ставя первыми судебные заседания — заседания, импортированные с портала, затем судебные заседания из календаря, затем остальные записи календаря. Средство чтения календаря перечисляет записи глобально или по делу с необязательным диапазоном дат.
Инструмент внесения в календарь никогда не пишет: он открывает форму календаря приложения, предзаполненную заголовком, датой, временем, описанием и необязательной привязкой к делу, а пользователь дополняет и сохраняет её. Его описание предписывает обязательную проверку на дубликаты перед каждым вызовом: сначала прочитать календарь того же дня, сравнивать только по дате, игнорируя время, и при любой похожей записи показать её пользователю и спросить, то же ли это событие, вызывая инструмент только после того, как пользователь подтвердит новую запись.
Система журнала записывает и читает общий для всех дел ежедневный протокол. Дополнение адресуется к дню (по умолчанию сегодня, с датой, полученной через инструмент времени), всегда дописывает к существующему дню с разделителем и никогда не перезаписывает, связывает затронутые дела через список дел и ожидает содержимое в виде чистого Markdown в стиле протокола, определённом в приложении к инструкциям. Инструмент заметок добавляет одну строку события в сегодняшний протокол с необязательной ссылкой на дело. Инструмент формата возвращает обязательный формат файла протокола. Чтение работает по дате, диапазону или начиная с новейших, с опцией полного текста и ограничением по делу; поиск — это поиск по ключевым словам без учёта диакритики по заголовкам и полным текстам с датой, заголовком и отрывком контекста для каждого результата. Обе формы списка по умолчанию выдают десять и максимум тридцать записей. Открытие набора инструментов уже выдаёт сегодняшний протокол полностью с примечанием, сколько ещё протоколов имеется за последние две недели.
Определение дела работает по номеру дела, по имени участвующей стороны (с допуском диакритики, охватывая противную сторону, истца, заголовок и клиента — обязательно всякий раз, когда пользователь называет сторону без номера, поскольку многие дела вообще не имеют номера) и через список дел клиента. Связанные производства берутся из иерархии дел как родительские, дочерние записи и записи той же группы.
Инструмент быстрого обзора возвращает за один вызов все поля вкладки дела, все поля вкладки клиента, необязательное связанное портальное дело и последние пятнадцать идентификаторов доказательств с датами записи — предназначен для ориентации перед любым доступом к полным текстам. Средство чтения хроники возвращает хронику дела начиная с новейших записей, компактно и без полных текстов, с фильтрами по дате и лимитом до пятидесяти записей и является предназначенным быстрым ответом на вопрос «что произошло последним» — для подготовки дела оно ничего не засчитывает.
Подготовка дела — это инструмент и шлюз. Инструмент подготовки выдаёт за один вызов шапку (профиль и юрисдикцию) и дайджест каждого документа — идентификатор, дату, тип, заголовок, резюме на момент внесения, перекрёстные ссылки и объём полного текста, — который и есть хроника; второй перечень тех же строк был исключён как чистая трата токенов. Ответ всегда начинается с примечания, где находятся шапка и дайджест (в самом ответе, если весь ответ остаётся ниже лимита коннектора, иначе в виде двух черновых файлов, которые нужно прочитать до конца), и с пяти новейших документов, которые нужно прочитать полностью. Затем шлюз подготовки отклоняет для внешних вызывающих сторон два уровня вывода по делу: заметку или запись по делу (журнал, ежедневная заметка, запись хроники, заметка по делу) — пока полностью не прочитаны профиль, юрисдикция, дайджест и пять новейших записей хроники (заметки без PDF или расшифровки; изображения допускаются), так что текущая серия записей хроники учитывает последние записи, не заставляя читать тяжёлые документы ради простой заметки; суждение по делу (проверка процессуального документа, передача, экспорт) — дополнительно пока полностью не прочитан каждый цитируемый или приложенный документ. Прочтения учитываются для каждого настольного ИИ в сохраняемом журнале и действительны три дня или до следующего входящего документа по делу; исходящие документы и записи доказательств никогда не аннулируют прочтение. Тот же журнал питает раскрывающееся меню у символа ИИ. Третий, нижний уровень охраняет само содержание дела: каждый инструмент содержания дела — хроника, хронология, поиски по ключевым словам, фрагментам и периоду, полные тексты, противоречия, высказывания, обязательства, сроки, календарь, корреспонденция, использование, поданные доказательства, цепочки писем, списки приложений, штампы, медиа, учреждения, метки, оценка и заметки-инструкции — отклоняется для дела, дайджест которого вызывающая сторона не прочитала, причём отказ называет инструмент подготовки; третья отклонённая попытка по тому же делу учитывается как нарушение правил. Счётчики подготовки сбрасываются при каждом чтении инструкций и каждом старте сессии.
Полное чтение дела защищено шлюзом, как описано в разделе 8. Выгрузка в черновое хранилище — самый быстрый полный путь: она собирает весь текст дела внутри приложения без обрезки, нормализует аномалии OCR (повторяющиеся пробелы, смешение окончаний строк, неразрывные пробелы, мягкие переносы, символы нулевой ширины), записывает его прямо в черновое хранилище и возвращает только дескриптор со статистикой; очень большие дела разбиваются на пронумерованные файлы-части. Фильтры охвата ограничивают выгрузку входящим, исходящим или обоими направлениями, а список идентификаторов доказательств выгружает ровно эти записи — предназначенный способ полностью прочитать один очень большой документ, причём дело определяется по доказательству.
Средство чтения доказательств — обязательная основа для каждого содержательного утверждения: оно загружает запись с извлечённым полным текстом документа (полным и без усечения; сверх лимита коннектора он целиком поступает в черновое хранилище) и, если имеется, полным текстом чата или расшифровки (охватывая чаты мессенджеров и расшифровки телефонных разговоров, слушаний, допросов и судебных заседаний), плюс квалифицированное резюме, описание и метаданные, которые объявлены не заменой полного текста. Если не появляется ни один раздел полного текста, извлечённого текста не существует, и модель не должна делать содержательных утверждений о записи. Список до двенадцати идентификаторов через запятую читает несколько записей за один вызов. Инструмент описи медиа сообщает о наличии, типе, дате и размере вложений-изображений, аудио и видео записи или дела, явно указывая, что содержимое медиа не читается как текст и что инструмент существует, чтобы запись, содержащая только медиа, не была ошибочно классифицирована как пустая.
Метки представлены как произвольные пользовательские стикеры на записях доказательств — информацией является текст, цвет не имеет фиксированного значения, а помеченная запись объявлена сильным маркером релевантности. Три режима выдают глобальный обзор с количествами и связанными записями, все метки дела или текстовый поиск по текстам меток, с фильтром охвата, разделяющим личные метки и метки, привязанные к делу. Предметные группы перечисляют всю картину дел клиента в виде групп с вложенными делами, включая древовидные родительские связи. Сохранённая оценка дела доступна для каждого дела.
Центральный поиск доказательств оценивает совпадения по всем полям доказательств, извлечённым полным текстам документов и содержимому расшифровок; запросы из нескольких слов объединяются конъюнктивно, поиск не зависит от диакритики и повышает вес фраз; результаты упорядочены по релевантности без раскрытия числовых оценок, каждый результат указывает, какое поле его вызвало, по умолчанию выдаётся пятнадцать и максимум тридцать результатов, а форма ответа следует выбору в шлюзе из раздела 8. Поиск фрагментов разбивает документы и расшифровки на окна абзацев и предложений и возвращает наиболее подходящие фрагменты со ссылкой на них — находя, где в тексте что-то стоит, а не просто в какой записи, — с устойчивым к OCR сопоставлением, преодолевающим ошибки внесения, бонусом за фразу и ограничением ровно одним делом или всеми делами ровно одного клиента (предназначенный инструмент для вопросов «делал ли X когда-либо, где-либо»; никогда не по нескольким клиентам), по умолчанию восемь и максимум двадцать фрагментов. Инструмент диапазона дат перечисляет доказательства между двумя датами. Специальный поиск корреспонденции от стороны обязателен, когда пользователь спрашивает о документах от конкретной стороны или к ней: он сопоставляет сторону с записями об участии с допуском диакритики, фильтрует по направлению (ко мне, от меня или оба), исключает чаты и расшифровки, по умолчанию скрывает собственноручно сделанные снимки экрана, сообщая их количество, и упорядочивает начиная с новейших — в явном отличии от поиска по ключевым словам, который вернул бы и записи, лишь упоминающие сторону.
Эти инструменты вычисляют по записям без какого-либо участия ИИ. Хронология возвращает все элементы дела, упорядоченные по дате события по убыванию, со ссылкой, меткой времени, типом записи и заголовком, по умолчанию триста и максимум пятьсот элементов. Сборщик противоречий намеренно не выносит суждений: он собирает до ста двадцати элементов-кандидатов (по умолчанию шестьдесят), по желанию отфильтрованных по одному субъекту, со ссылкой, датой, участниками и кратким содержанием и оставляет суждение и последующее чтение полных текстов модели. Инструмент «кто что сказал» находит каждый элемент, в котором встречается лицо, — как участник, в заголовке или тексте либо внутри формулировок расшифровки, — независимо от диакритики, отмечая источник каждого результата, по умолчанию сорок и максимум сто. Инструмент сети участников подсчитывает, какие лица и субъекты встречаются вместе в одних и тех же элементах, глобально или по делу, по желанию с фокусом на одном субъекте. Инструмент обязательств перечисляет открытые элементы, помеченные как сроки, по дате наступления с количеством дней, описаниями, ссылками и пометками о просрочке/срочности.
Ещё пять детерминированных инструментов служат для характеристики отдельных судей и прокуроров; решениями считаются только входящие документы от суда или прокуратуры. Средство перечисления решений возвращает каждое решение, в котором одно лицо заседало как судья или выступало как прокурор, по всем делам, засчитывая только имя во вводной части (состав суда) или в блоке подписей — имя в основном тексте не засчитывается, а секретари судебного заседания никогда не перечисляются. Средство чтения структуры разбирает одно решение на суд, отделение, номер дела, вид, номер и дату, заседание, состав, предложение с указанием сторон и предмета, резолютивную часть дословно, ключевые слова исхода, средство обжалования, оглашение, ссылки на нормы с их статусом в библиотеке и объём мотивировочной части, каждое с позицией символа, сообщая об отсутствующем как о не найденном. Сборщик поданных документов записывает каждый документ, поданный в деле до даты решения, в два черновых файла — исходящие документы клиента и входящие документы противной стороны, — ограничиваясь документами, адресованными суду или прокуратуре, каждый только с его основным документом (сопроводительное письмо и приложения отсекаются), и перечисляет то, что нельзя классифицировать, как нераспределённое; на его файлы распространяется обязанность чтения. Сравнение решения измеряет, какая доля собственной мотивировки суда совпадает, как текст, с документами клиента, документами противной стороны, с обоими, с текстом норм из библиотеки или ни с чем (собственные формулировки суда), отдельно измеряет пересказ позиций сторон и перечисляет совпадающие фрагменты с их степенью совпадения от семидесяти процентов и выше, начиная с наибольшей, в исходной формулировке с позициями символов. Сравнение документов сопоставляет любые два документа по всем клиентам и делам, классифицирует совпадающие фрагменты как текст норм, общий цитируемый источник или общие только для этих двух и начинает свой ответ с указания, что он даёт лишь первое впечатление и что оба документа должны быть полностью прочитаны, прежде чем что-либо утверждать о связи.
Семейство отслеживания поданных документов работает детерминированно по сохранённым процессуальным документам: инструмент использования отвечает для одного доказательства, какие приложения оно физически содержит и в каких процессуальных документах оно само было подано (с датой и номером дела, по всем делам), или для дела — отчёт о пробелах с элементами, которые никогда не подавались; средство перечисления поданных доказательств возвращает для каждого сохранённого процессуального документа приложенные идентификаторы плюс общее множество без дубликатов и обязательно перед составлением списка приложений нового процессуального документа, с документированной оговоркой, что охватываются только структурно приложенные приложения. Цепочка регистрационных номеров находит по номеру письма или по всем номерам, встречающимся в одном документе, каждый документ с тем же номером в хронологическом порядке — документированный ход административной процедуры. Средство перечисления приложений определяет физически содержащиеся в одном документе приложения, включая детерминированный штамп подачи для каждого приложения; инструмент штампов определяет для любого идентификатора доказательства его детерминированный штамп подачи (несколько сохранённых файлов дают несколько штампов; запись без сохранённого файла даёт явный пустой маркер). Оба инструмента, выдающие штампы, запрещают выдумывать штампы — их всегда нужно получать.
Четырёхступенчатый путь эскалации восстанавливает испорченные сохранённые полные тексты, и его использование в качестве удобной замены чтению явно запрещено. Запрос повторного сканирования просит приложение заново выполнить OCR сохранённого исходного PDF; пользователь выбирает страницы в IRONSTICK, а модели предписано сообщить об этом пользователю одним предложением и ждать. Инструмент статуса нужно вызвать один раз, когда пользователь скажет, что страницы выбраны, — циклы опроса запрещены, — и, когда всё готово, он возвращает рабочее задание вместе с двумя черновыми файлами, содержащими новый скан и текущий текст из базы данных. Правило сравнения и исцеления допускает только механические исправления OCR, никогда не перефразирование, причём цифры, имена и суммы сохраняются точно. Там, где место нечитаемо в ОБОИХ источниках, модель может перед отправкой попросить пользователя о визуальной проверке — не более трёх мест на документ, с записью, открытой точно в нужном месте, и точно названным местом («страница 7, второй абзац — сумма?»); при отключённой навигации запись и страница вместо этого называются в чате. Инструмент отправки передаёт исцелённый черновой файл приложению, которое показывает его пользователю в модальном окне; только сохранение пользователем заменяет текст в базе данных, и ничего не сохраняется автоматически. Последняя ступень эскалации, запрос передачи PDF, открывает запись, и модель просит пользователя лично перетащить исходный PDF в чат — мост намеренно не даёт никакой помощи с путём, жёстко отказывает, если не было предшествующего повторного сканирования, и отклоняет PDF размером более десяти мегабайт или более девяноста страниц; затем модель читает PDF визуально, строит исцелённую версию в черновом хранилище и отправляет её через тот же шлюз проверки. При отказе из-за размера или числа страниц процесс не заканчивается: резервный вариант с расшифровкой всё равно открывает запись, и модель просит пользователя открыть PDF через скрепку и дословно перепечатать решающие места («страница X, вверху, там должно быть … — пожалуйста, введите это точно») — не более трёх мест, дословно переносимых в исцелённую версию; любой оставшийся пробел раскрывается открыто. Тем самым адвокат выступает визуальным точным инструментом ровно для той доли скана, которую машина не может распознать, вместо того чтобы обрабатывать документ вручную.
Инструменты определения находят клиентов, лиц и учреждения по фрагменту имени с допуском диакритики; поиск по ключевому слову ищет по именам, заметкам и полям анализа, когда известен лишь фрагмент. Детерминированная проверка списка сопоставляет документ, содержащий список имён, со всеми лицами и компаниями в записях, при обращении по идентификатору доказательства или по делу — тогда сканируется новейшая запись дела, которая называется в ответе. При подключениях Claude и ChatGPT проверка сторон заранее принимает следующие стороны и ищет их в фоне, пока обрабатывается текущая; результаты хранятся тридцать минут, а порядок шлюза остаётся неизменным. Сетевые инструменты перечисляют всех, кто связан с одной стороной явными связями и общими делами, клики всей сети сторон посредством детерминированного выявления сообществ (в точности вид «Вселенная» на экране лиц, с флагом подозрительности для необычно плотных групп и необязательным разделением лиц и учреждений на слои) и наиболее связанные стороны; каждый ответ, касающийся стороны, начинается с блока дел, с которыми связана эта сторона. Средство чтения профиля возвращает каждое поле мастер-данных и анализа полностью и без усечения. Средства чтения профилей возвращают профиль субъекта с анализом и связями, все связи лица в обоих направлениях с лицами и учреждениями, профиль учреждения и учреждения, формально привязанные к делу. Средство чтения учёта времени сообщает пассивно измеренное рабочее время (каждый просмотр страницы длится до следующего, с ограничением в тридцать минут, последний засчитывается как одна минута) в виде обзора итогов и ведущих дел, клиентов и дней или в виде разбивки по дням для одного дела, за диапазон дат или окно последних дней, по умолчанию семь.
Прямая запись в мастер-данные невозможна. Два инструмента предложений помещают выводы в монитор согласованности данных приложения как элементы для проверки: предложение мастер-данных (только после того, как пользователь подтвердил в чате, что вывод следует оформить) нацелено на существующий субъект или учреждение — сначала определённые по имени — или описывает новую запись по имени и полям, со списком допустимых полей, в котором корпоративные и персональные идентификационные номера делят одно поле, допускаются только обоснованные поля, а ссылки на доказательства необязательны; предложение связи описывает связь между двумя определёнными лицами или между лицом и учреждением, ровно с одним контрагентом, обязательной категорией, необязательным обоснованием и необязательными ссылками на дело, клиента и доказательства. Предложение может также переименовать запись (поле Name), задать её вид (поле PersonKind: физическое или юридическое лицо), изменить категорию существующей связи, предложить удаление (записи, метки или выполненного срока) с обязательным обоснованием на языке системы или предложить две записи как дубликаты; новая запись принимается только после того, как её вид определён в диалоге, а предложение, затрагивающее описание или контактные данные лица, отклоняется, если вызывающая сторона не прочитала этот профиль в течение последних тридцати минут. В обоих процессах запись изменяется только тогда, когда пользователь принимает предложение в мониторе. На предложение новой записи сначала приходит список похожих существующих записей — сопоставленных нестрого, ничего не сохраняется, — и вызывающая сторона должна либо оформить предложение по одной из них, либо явно, параметром, подтвердить, что сторона действительно новая; строгое совпадение перенаправляется на существующую запись. Каждая сохранённая новая сторона возвращает обязательное последующее поручение, предписывающее вызывающей стороне исследовать и оформить связи этой стороны, включая поиск в интернете. Третий инструмент предложений привязывает сторону к делу: ровно один субъект или учреждение, обязательное обоснование и необязательные ссылки на доказательства становятся элементом проверки привязки к делу в том же мониторе; принятие записывает связь участника, на которой строятся представления клик и связей, а о существующей привязке, ожидающем дубликате или ранее отклонённом предложении сообщается вместо повторного предложения. Приложение также подсчитывает предложения каждой вызывающей стороны: после двух сохранённых предложений мастер-данных и одного предложения связи или привязки к делу оно рассматривает сессию как ведение сети сторон, один раз добавляет подсказку, что для этой полностью защищённой шлюзами работы модель высшего уровня не нужна, и — в чате в приложении — удерживает выполнение на среднем уровне моделей. Тот же монитор питают независимые фоновые процессы: экстрактор данных с устранением дубликатов в источнике и периодическое сканирование нормализации, предлагающее слияния и переклассификации по трёхкатегорийной модели (физическое лицо; юридическое лицо как любое корпоративное образование, не являющееся отдельным человеком, причём запись в торговом реестре имеет приоритет над государственной собственностью; учреждение как государственные органы без записи в реестре), — никогда не выполняя слияние автоматически.
Библиотека хранит полные тексты законов в виде файлов Markdown с внутренним регистрационным номером для каждого закона. Инструмент перечисления постранично просматривает опись (идентификатор, юрисдикция, заголовок, вид, имя файла, дата последней проверки; по умолчанию пятьдесят, максимум пятьсот) и работает только на чтение. Инструмент поиска обязателен перед любым поиском нормы в интернете: он сопоставляет либо по обозначению с заголовком и описанием, либо по цитируемому фрагменту с нечёткой терпимостью (достаточно примерно шестидесяти процентов слов, а окончания слов допускаются), требует юрисдикцию, взятую из дела, ранжирует совпадения в заголовке намного выше совпадений в содержании (совпадение в заголовке весит девять десятых, каждое совпадение в содержании — одну десятую, не более трёх фрагментов на файл) и возвращает для каждого результата регистрационный номер, имя файла, короткие фрагменты с их точными позициями символов и готовый вызов дословного отрывка, диапазон которого уже расширен — не менее чем на пятьсот символов за пределы фрагмента, — так что модель сама получает авторитетную формулировку, а не доверяет фрагменту. Инструмент отрывка возвращает дословное содержимое одного закона между двумя позициями символов, по регистрационному номеру, в пределах файла, с предваряющим примечанием, что диапазон можно скорректировать и что весь закон можно загрузить, при этом слишком большие результаты автоматически перенаправляются в черновое хранилище; сопоставление цифр при поиске по законам использует правила границ, допускающие запись с точкой-разделителем тысяч, принятую на официальных порталах. Целые законы можно загрузить по имени файла или по регистрационному номеру, при этом большие файлы перенаправляются автоматически. Инструмент регистрации — обязательный канал сообщения о любом законе, найденном в открытом интернете: передаются только ссылка, юрисдикция и необязательные заголовок и предложение; фоновый процесс загружает, преобразует, сохраняет источник и объявляет его в мониторе данных, а сама модель никогда ничего не преобразует. Цикл проверки библиотеки отслеживает дату последней проверки каждого источника. Закон, загруженный пользователем в виде файла без онлайн-источника, несёт в каждом ответе предупреждение об актуальности, поскольку его действие проверить невозможно. Отклонение закона в мониторе данных требует подтверждения, которое называет последствие: закон покидает библиотеку, а отклонение обновления удаляет весь закон, в том числе на офисном сервере.
Инструмент перепроверки по запросу сверяет один закон с его источником и сообщает: без изменений, обновлён или дубликат; более свежая загрузка заменяет запись, а на офисном сервере побеждает последний проверивший, независимо от того, кто зарегистрировал закон первым. Целые законы сверх лимита коннектора попадают в черновое хранилище и ничего не регистрируют как прочитанное; происхождение прочтения даёт инструмент статей.
Детерминированные инструменты проверки охватывают: IBAN (формат, длина для конкретной страны, контрольная сумма); национальные персональные, страховые и налоговые номера по девяти схемам в шести странах посредством контрольных цифр, с целевым режимом для каждой схемы и автоматическим режимом, который проверяет все схемы и сообщает действительные; европейские идентификаторы плательщика НДС (сначала офлайн-проверка формата страны, затем официальная онлайн-служба Союза, возвращающая раскрытые данные компании, если государство-член их предоставляет); номера EORI по онлайн-службе проверки Союза; идентификаторы юридических лиц (сначала контрольная сумма, затем глобальный реестр для статуса и наименования); и номера торгового реестра через европейский портал реестров предприятий, отображаемый в настоящем браузерном движке, причём модели предписано прочитать возвращённую страницу и подтвердить вывод. Каждый валидатор возвращает конкретный, обоснованный результат — действителен с подробностями, недействителен с указанием неудовлетворённого аспекта, не найден или служба недоступна с указанием статуса — никогда не голое «да» или «нет», так что действительно неверный номер всегда можно отличить от сбоя. Уровень инструкций делает запуск соответствующего валидатора обязательным, прежде чем любой такой номер попадёт в создаваемый или проверяемый документ. Тот же набор инструментов содержит инструмент приблизительного местоположения пользователя (страна, город и публичный адрес по последнему снимку входа, явно не являющийся источником юрисдикции) и инструмент погоды, работающий по мере возможности.
Два инструмента выходят в открытый интернет; оба позиционируются как дополнение к собственным веб-возможностям настольного ИИ, с явным указанием использовать их напрямую, если у ИИ нет собственного веб-доступа, и с запретом использовать их для данных, связанных с делом. Инструмент поиска выполняет запросы через веб-интерфейс, имитирующий человека, с выбором поисковых систем и возвращает результаты с заголовками и ссылками, которые предполагается открывать средством открытия страниц. Средство открытия страниц загружает ровно один публичный URL по поэтапному конвейеру, который описание перечисляет полностью, чтобы модель никогда не сдавалась преждевременно: HTTP-запрос, имитирующий человека, с настоящими браузерными заголовками, обработкой перенаправлений и сжатия; автоматическое распознавание проверок против ботов с эскалацией в настоящий встроенный браузерный движок; распознавание оболочек JavaScript с рендерингом до появления содержимого; постраничное преобразование PDF с использованием текстового слоя каждой страницы и OCR только для отсканированных страниц, так что смешанные документы работают; и преобразование офисных и текстовых форматов в читаемый текст. Вывод — Markdown, полностью: основное содержимое извлекается (навигация, реклама и баннеры cookie удаляются), страницы без тела статьи сохраняют нижний колонтитул, потому что там указаны адрес и контактные данные, а там, где после извлечения почти ничего не осталось бы, вместо этого выдаётся вся страница. Вызов отвечает в течение сорока пяти секунд; большой или отсканированный документ обрабатывается дальше в фоне и при следующем вызове с тем же адресом выдаётся сразу. Порталы законов отклоняются, пока не выполнен поиск в библиотеке, согласно шлюзу норм.
Вся навигация включается только по выбору пользователя через переключатель; без него вся группа не существует. Инструменты навигации открывают в главном окне приложения: дело (по желанию на вкладке хроники или оценки), список дел клиента, лицо, учреждение (оба выделенными и с открытыми подробностями), запись доказательства (нужная страница хроники, с выделением), подготовку досье (с полностью автоматическим вариантом, предназначенным для явного желания пользователя получить полный PDF), ежедневный протокол (по желанию подробности конкретного дня), монитор электронной почты (по желанию подробности конкретного письма), глобальный поиск с запущенным запросом (только по явному желанию; ответы в чате вместо этого используют внутренний поиск), область резервного копирования с немедленным запуском резервного копирования и любой названный экран из канонического списка экранов. Диалоги экспорта охватывают список клиентов, список сроков, обзор дел клиента, досье дела в двух типах документов и карту, а также сборку пакета ИИ клиента. Все инструменты навигации подчиняются жёсткой блокировке и являются целями предложений навигации из раздела 7.
Набор инструментов для составления документов привязывает создание документов к полученным спецификациям. Инструмент формата вывода возвращает обязательную инструкцию генерации для запрошенного вида артефакта — для процессуальных документов с разделением на процессуальный документ и простое письмо, каждый в форме с представителем и без представителя, с юрисдикцией, языком и датой дела, подставленными непосредственно в инструкцию, и заполнителями, которые модель заполняет данными коннектора; инструмент формата почтовой отправки возвращает обязательную спецификацию для судебных отправлений с последовательной выдачей пакетов. И то, и другое нужно выполнять буква в букву. Передача в редактор помещает процессуальный документ в Markdown непосредственно в текстовый процессор IRONSTICK, с загруженным текстом, но без сохранения — пользователь проверяет и сохраняет, — и доступна при подключении Claude. Инструмент внесения записи хроники открывает предзаполненную форму хроники в нужном деле, сам ничего не сохраняя.
Выдача файлов пользователю идёт исключительно через инструмент выдачи, который фронтенд выполняет сам: файл попадает в специальную папку выдачи в каталоге загрузок пользователя, папка открывается с выделенным файлом, и выводится ссылка. Папка предназначена только для выдачи — модель никогда ничего в ней не читает, не редактирует и не удаляет. Содержимое поступает либо встроенным, либо — что предпочтительно и обязательно для больших или уже записанных файлов — по исходному пути, который фронтенд читает прямо с диска, так что через модель ничего не перепечатывается, включая двоичные форматы. Модель сама версионирует имена файлов, по одному новому номеру на каждую выдачу, причём выдача под тем же именем перезаписывает файл; результат сообщает существующие версии основы имени и наибольшую из них, предупреждая, если выданный номер не является наибольшим. Выдача производится один раз на задачу, в конце, никогда для промежуточных состояний, и сначала проходит шлюз официальности из раздела 8.
Инструмент передачи передаёт созданную работу другому настольному ИИ: содержимое попадает в кратковременное большое хранилище, на него ссылается запись задачи, инструкция (ограниченная тысячей символов) указывает, что должен сделать ИИ-коллега, а затем модель просит пользователя запустить коллегу в другом приложении. Инструмент входящих перечисляет открытые задачи, адресованные вызывающей стороне, — её собственные никогда не появляются — с идентификатором, поручением и полным содержимым, по желанию с фильтром по клиенту или делу. Инструмент ответа закрывает задачу (удаляя её кратковременное содержимое) и одновременно отправляет оценку обратно исходному отправителю как новую задачу; инструмент завершения закрывает задачу без возврата. Чтение и запись чернового хранилища являются членами этого набора инструментов для работы с передаваемым содержимым.
Для каждого дела пользователь может хранить файлы инструкций, которые модель обязана учитывать. Средство перечисления показывает инструкции дела с идентификатором, именем файла, размером, датой загрузки и отрывком, без полных текстов; глобальная опись перечисляет все инструкции по всем клиентам и делам; средство чтения отдельной инструкции возвращает одну инструкцию без обрезки по её числовому идентификатору, с возможностью направить необработанное содержимое в черновое хранилище побайтово точно для сквозной передачи; средство массового чтения возвращает все инструкции дела за один вызов с той же возможностью использовать черновое хранилище. Оба вывода перечисления автоматически перенаправляются при превышении размера. Инструмент обновления предлагает изменённую версию ровно одним из трёх способов — фрагментом для дописывания (предпочтительный способ для дополнений; приложение само собирает результат, а модели запрещено воспроизводить существующее содержимое), исходным путём к полной новой версии на диске или полным новым содержимым, встроенным в вызов, — и приложение показывает изменение пользователю в виде сравнения; только явное одобрение принимает его, результат (одобрено, отклонено или ожидает решения) возвращается, а состояние ожидания запрещает повторную отправку. Экспорт пакета собирает полный комплект инструкций и навыков клиента и открывает диалог экспорта.
Один клиентский компаньон дополняет мост, не являясь частью поверхности MCP: устанавливаемый плагин-навык для каждого настольного ИИ (пять навыков, отражающих рабочую модель «набор инструментов и выполнение инструмента», генерируемые и версионируемые конфигуратором приложения). Конфигурация фронтенда моста для каждого ИИ записывается соответствующими кнопками конфигуратора, которые всегда записывают идентичность вызывающей стороны и путь к инструкциям, чтобы защитить от совместного использования конфигурации разными ИИ.
Каждый отказ в системе является поучительным, а не голым: нарушения схемы возвращают ожидаемую схему; неизвестные имена возвращают ближайшее совпадение; шлюз даты называет точное средство исправления; шлюз норм называет процедуру работы с библиотекой; блокировка навигации называет защищённый экран и отложенную альтернативу; блокировка согласия называет окно повторной попытки; слишком большие ответы называют файл и две команды продолжения или сужающие фильтры; сбои валидаторов называют неудовлетворённый аспект и отличают сбои служб; отказы по заполнению в памяти называют заполненность и остаток, а вблизи лимита — варианты реструктуризации; шлюзы выдачи и поиска называют свои варианты ответа, включая универсальный выход «unknown»; блокировка доступа называет два вызова, которые её открывают; шлюз подготовки называет непрочитанные части с идентификаторами и процентами; средство проверки процессуальных документов называет для каждого истёкшего или сброшенного прочтения точный вызов, который его восстанавливает. Контракт, обращённый к модели, состоит в том, что после не более чем трёх исправленных попыток любого неудачного вызова модель останавливается и сообщает пользователю точную ошибку.