docs-ord – Организационно-распорядительные документы
Пользовательский контекст
Прочитай ~/.docs-plugin/org_details.md. Если knowledge_base_path заполнен и каталог существует, считай его корнем пользовательского хранилища: сначала прочитай корневые инструкции (AGENTS.md, CLAUDE.md, GEMINI.md или эквивалент текущего агента), затем найди карточки ОРД по теме задачи. Читай столько карточек и связанных материалов, сколько нужно, пока новые источники перестают добавлять факты, дословные формулировки, основания, распорядительные пункты, согласование, ознакомление и приложения. При неоднозначности извлечения или важности формы открой оригинал по указателю карточки. Отделяй данные источника от правил скилла и собственных предложений; не выдумывай обязанности, сроки и реквизиты без подтверждения пользователя.
Режим работы: создание или ревью
Скилл работает в двух режимах. Определи режим из запроса до всего остального:
- Создание (по умолчанию): пользователь даёт вводные и просит составить документ → разделы 0–4 ниже.
- Ревью: на вход подаётся готовый документ (
.doc/.docx) И есть слова вроде «ревью / проверь / поправь / вычитай / отрецензируй / посмотри приказ» → раздел 5. Режим ревью.
0. Карта references
Прочитать до начала работы
Эти файлы содержат правила, без которых документ будет некорректным. Читать ВСЕ четыре перед формированием текста.
| Файл | Что содержит | Критичные нюансы |
|---|---|---|
npa-rules.md |
Формат реквизитов НПА, верификация через WebSearch, действия при ненахождении | Исключения из формата: кодексы (ТК РФ), Конституция, ГОСТы, СанПиНы указываются БЕЗ реквизитов «от ... №...». Субагент npa-verifier этого не знает и вернет полные реквизиты - главный агент обязан отфильтровать |
basis-rules.md |
Правила блока обоснования (вводная часть до ключевого слова) | Обоснование не заканчивается запятой. Ключевое слово на отдельной строке после пустой строки |
~/.docs-plugin/org_details.md |
Реквизиты, шапка, подписант, дефолтные согласующие, структура учреждения | Должность подписанта берется ТОЛЬКО отсюда. Правило для подразделений и филиалов - уточнить у пользователя |
Читать по ситуации
| Файл | Когда читать | Критичные нюансы |
|---|---|---|
doc-types.md |
Если тип документа не приказ (распоряжение, указание) | Падежи: приказ, указание - дательный (кому), распоряжение - винительный (кого). Закрывающие пункты распоряжения тоже в винительном |
staff-rules.md |
При включении ФИО в документ | Сверка сотрудников НЕ делегируется субагенту. Делать самостоятельно через openpyxl. Формат ФИО: «Фамилия И.О.» в теле, «И.О. Фамилия» в подписи руководителя |
approval-rules.md |
При формировании листов согласования и ознакомления | Минимальный уровень для согласования - не ниже зам. ГД. Начальники отделов и управлений идут в ознакомление, не в согласование |
attachment-types.md |
Если документ содержит приложения | Каталог 10+ типов. Состав комиссии ВСЕГДА отдельным приложением |
deadline-rules.md |
Если приложение содержит столбец сроков (план, программа, график, дорожная карта) | Конкретные даты DD.MM.YYYY вместо кварталов. Проверка по производственному календарю |
amendment-rules.md |
Если приказ о внесении изменений | Полное переизложение приложения (не текстовое описание правок) |
examples.md |
Для подбора формулировок обоснования | Примеры со ссылками на НПА в корректном формате |
Справочные
| Файл | Когда читать |
|---|---|
helpers.md |
При написании кастомного скрипта (API хелперов generate.py) |
usage-examples.md |
При написании скрипта (примеры вызова create_ord) |
review-checklist.md |
В режиме ревью (раздел 5): чек-лист конформанса эталону generate.py — пол, а не потолок |
maintenance.md |
При изменении generate.py (правило синхронизации) |
1. Workflow
Шаг 0. Прочитать обязательные references
Gemini CLI:
~/.docs-plugin/org_details.mdне подгружается автоматически. Прочитай файл явно до любых других шагов. Используй native Gemini tools. Если файла нет – сообщи пользователю и предложи запустить docs-init.Codex:
~/.docs-plugin/org_details.mdне подгружается автоматически. Прочитай файл явно до любых других шагов. Используй native Codex tools. Если файла нет – сообщи пользователю и предложи запустить docs-init.
Прочитать npa-rules.md, basis-rules.md и ~/.docs-plugin/org_details.md – до запуска субагентов и до формирования текста.
Шаг 1. Понять задачу
Определить из контекста запроса:
| Параметр | Как определить |
|---|---|
| Тип документа | Из контекста. Если не приказ - прочитать doc-types.md. Если неясно - спросить |
| Приложения | Из контекста. Если неясно - спросить |
| Реквизиты | Номер и дата - пропуски; сроки - из запроса |
Что НЕ спрашивать:
- НПА - субагент ищет автоматически
- Основания для издания - нет в запросе - нет в документе
Что спрашивать:
- Контроль - обязательный вопрос (если не указан явно)
- До 5 содержательных уточняющих вопросов по существу документа. Вопросы зависят от темы и контекста - задавать то, что нельзя угадать и что критично для содержания. Примеры:
- Сроки исполнения (если в запросе нет конкретных дат)
- Признание утратившими силу предыдущих ОРД по этой теме
- Конкретные механизмы и процедуры (если приказ утверждает порядок или положение)
- Ответственные исполнители по пунктам (если из запроса неясно)
- Источник финансирования (если приказ подразумевает расходы)
- Подписант (если тип документа - распоряжение или указание)
- Состав участников, комиссии, рабочей группы
- Допускается больше 5 вопросов, если контекст документа объективно требует дополнительных уточнений
- Вопросы задаются одним блоком вместе с вопросом о контроле, до показа структуры документа
Шаг 2. Запустить npa-verifier
Субагент запускается сразу – параллельно с уточняющими вопросами. Промпт:
Для каждого НПА из списка: <список НПА или описание темы>
Проверь через WebSearch реквизиты и актуальность по протоколу web-search.md. Источники: publication.pravo.gov.ru, официальные сайты ведомств, consultant.ru, garant.ru.
Для каждого НПА верни: {"npa_key": "...", "official_name": "...", "date": "...", "number": "...", "status": "актуален"|"отменен"|"изменен", "source_url": "...", "checked_at": "...", "confidence": "high"|"medium"|"low", "notes": "..."}.
Если НПА не найден – верни {"npa_key": "...", "status": "не найден"}.
Если тема указана без НПА – подбери 2-4 релевантных НПА и верни их реквизиты.
Не придумывай реквизиты. Вернуть только JSON-массив.
Claude Code: запусти субагентом как описано выше.
Gemini CLI: субагент недоступен. Выполни проверку inline по
web-search.md: WebSearch по каждому НПА на publication.pravo.gov.ru / официальных сайтах ведомств / consultant.ru / garant.ru. Примени те же правила фильтрации: кодексы (ТК РФ и др.), Конституция, ГОСТы, СанПиНы – без реквизитов «от ... №...».Codex: если в текущей сессии доступен agent/subagent tool, можно делегировать проверку. Иначе сообщи пользователю
subagents unavailable in this session, continuing inlineи выполни ту же inline-проверку поweb-search.md.
Шаг 3. Сверить сотрудников
Прочитать staff-rules.md. Сверку делать самостоятельно через openpyxl (не субагентом). Логика:
- Определить, какие подразделения затронуты документом
- Найти всех их сотрудников в сводном .xlsx
- Выбрать старшего по иерархии
- Распределить по согласованию и ознакомлению (правила - в
approval-rules.md)
Лист ознакомления: add_notify_sheet() автоматически сортирует сотрудников по ФИО (А-Я) и устанавливает равную ширину столбцов.
Шаг 4. Применить правила формата к результатам субагента
Субагент npa-verifier возвращает сырые данные. Перед вставкой в документ проверить каждый НПА по правилам из npa-rules.md:
- Кодексы, Конституция, ГОСТы, СанПиНы - убрать реквизиты «от ... №...»
- Формат ссылки:
[вид акта] [орган] от [дата] № [номер] «[название]» - Убрать лишние заметки (редакция, регистрация в Минюсте)
Шаг 5. Описать структуру пользователю
КРАТКО описать: обоснование (какие НПА, в каком формате), тело (пункты), приложения (если есть), согласование, ознакомление.
Если есть приложения - прочитать attachment-types.md для выбора правильного типа.
Заголовок подприложения (к Положению, Программе и т.д.) не воспроизводит имя родительского документа - оно уже есть в грифе. Писать «Таблица мониторинга», а не «Таблица мониторинга Программы профилактики профессионального выгорания персонала».
Если приложения содержат столбец «Сроки выполнения» или «Сроки» - прочитать deadline-rules.md. Проверить все предлагаемые даты по производственному календарю (WebSearch) до показа структуры пользователю.
Дождаться подтверждения пользователя.
Шаг 6. Генерация .docx
Генерировать через create_ord() или кастомный скрипт (для нестандартных приложений). Подробности по API - см. helpers.md и usage-examples.md.
Шаг 7. Чек-лист
Перед выдачей документа проверить:
- Тип документа, ключевое слово и падеж согласованы
- Все ФИО проверены по списку сотрудников
- Должности указаны полностью и корректно
- НПА верифицированы, формат реквизитов корректен (исключения для кодексов и пр.)
- Кавычки - только «елочки»
- Нет длинных тире (—) в тексте (generate.py заменяет автоматически, но агент не должен их генерировать)
- Есть пункт о контроле
- Приложения оформлены корректно (если есть)
2. Стиль текста
Правила, которые generate.py не контролирует – ответственность агента:
- Официальный деловой стиль: только формальные формулировки
- Кавычки: только «елочки» (« »), не " "
- Тире: дефис (-) или среднее (–, U+2013). Длинное тире (U+2014) запрещено; generate.py заменяет его автоматически, но агент не должен его генерировать
- Запрет англицизмов: KPI - показатели результативности, дедлайн - срок исполнения, фидбэк - обратная связь, кейс - случай, ассессмент - оценка, грейд - разряд, категория
- Глаголы в пунктах: инфинитивы (Утвердить, Назначить, Возложить, Обеспечить, Провести, Организовать)
- Завершающие пункты: ознакомление и размещение скан-копии - по умолчанию НЕ включать (только по явной просьбе пользователя). Контроль - включать всегда
- Контроль: как правило, возлагается на профильного заместителя ГД. Оставлять за собой - крайне редко. Для
control_person="self"в документе: «Контроль за исполнением настоящего приказа оставляю за собой.» - Состав комиссии: всегда отдельным приложением, не в теле приказа
- Нумерация: использовать
_list_para(), не вписывать номера вручную - Запрет косой черты: не использовать «/» как разделитель слов. Вместо «приказ/распоряжение» писать «приказ, распоряжение» или «приказ или распоряжение». Допустимо: № п/п, номера документов.
- Никаких домыслов: нет данных - сообщи пользователю, не придумывай
3. Политика файлов
| Тип файла | Путь | Пояснение |
|---|---|---|
| Библиотека хелперов | skills/docs-ord/generate.py |
Переиспользуемый код. Не модифицировать без обновления SKILL.md |
| Временные сценарии | /tmp/<название>.py |
Одноразовые сборочные сценарии; не сохранять в пользовательском конфиге |
| Готовые документы | {output_dir_ord}/<название>.docx из ~/.docs-plugin/org_details.md |
Выходные файлы |
4. Правило согласованности
generate.py, SKILL.md и references/review-checklist.md должны быть синхронизированы. Подробности - см. references/maintenance.md.
5. Режим ревью (проверка готового документа)
Вход: готовый .doc/.docx + запрос на проверку/правку. Цель — найти всё, что не так или можно улучшить, и привести документ к эталону.
Принцип: чек-лист — это пол, а не потолок. Не запирай себя в список. Ревьюй как живой человек, у которого в голове весь накопленный корпус правил, а не только инварианты формата.
Шаг 0. Подготовка
- Если вход
.doc— конвертируй в.docx(textutil -convert docxна macOS илиlibreoffice --headless --convert-to docx). Дальше работай с.docx. - Прочитай
~/.docs-plugin/org_details.md(реквизиты-эталон,revision_author) иreview-checklist.md. - Создай копию
<имя>_правки.docxрядом с оригиналом. Оригинал не трогай.
Шаг 1. Петля 1 — холистическая (главная)
Прочитай тот же корпус правил, что и при создании такого документа (по типу и содержанию): npa-rules, basis-rules, doc-types, approval-rules, staff-rules, attachment-types, deadline-rules, amendment-rules, examples, org_details, ~/DOCX Rules.md. Затем прочитай документ и ревьюй так, будто собираешь его заново и сравниваешь. Выноси всё: логику, обоснование, верность и формат НПА (через npa-verifier), дубли, структуру разделов, формулировки, стиль, контроль (на профильного зам. ГД, не на исполнителей).
Шаг 2. Петля 2 — конформанс (страховочный пол)
Прогони инварианты review-checklist.md детерминированным скриптом (сверка XML, не через .text). Это гарантирует, что механика формата не потеряется, даже если петля 1 что-то не заметила. Объедини и дедуплицируй находки двух петель.
Шаг 3. Классификация и применение
Дели находки на два слоя (детали и принадлежность — в review-checklist.md):
- Текстовый слой (орфография, пунктуация, кавычки/тире/косая черта, даты прописью → ДД.ММ.ГГГГ, перечисление через «;» → список, ручные пробелы и переносы, формулировки): собери одним батч-предложением со списком конкретных правок. По «ОК» внеси как track-changes в
<имя>_правки.docx; автор ревизий —revision_authorиз конфига (нет ключа — обезличенный дефолт). - Структурный слой (реквизиты/заголовок/подписант/согласование → таблицы; разрыв страницы → раздела; Calibri → TNR в нумерации; поля; столбцы листа ознакомления; переоформление таблицы-перечня): track-changes это выразить НЕ может. Опиши в чате поэлементно, что изменится при пересборке, + обоснование. По «ОК» — пересобери через
generate.py(create_ord()) в отдельный эталонный.docx.
Предложи пользователю на выбор три варианта (к каждому — опциональные комментарии):
- Применить только текстовый слой → track-changes в
<имя>_правки.docx. - Применить только структурный слой → пересборка в эталонный
.docx. - Комбинированный (рекомендуй по умолчанию): применить все правки сразу — текстовые правки внести прямо в контент и пересобрать в один эталонный
.docxчерезgenerate.py. В этом варианте<имя>_правки.docxс диффами не нужен: исправленный текст уже в пересобранном документе.
Содержательные правки, меняющие смысл (контроль, объединение/удаление категорий, признание утратившими силу), не вноси молча даже в комбинированном варианте — сохраняй исходный смысл и вынеси на отдельное подтверждение.
Ничего не применяй молча. Не плоди .md-отчёты — все находки и предложения в чат.