# Docs Memo

> Use when the user needs to create an internal memo (служебная записка) in .docx format. Triggers: служебка, служебная записка, внутренняя записка, написать служебку, memo. НЕ использовать для приказов, распоряжений (используй docs-ord) или официальных писем (используй docs-letter).

- Skill: `obviousbread/docs-memo` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add obviousbread/docs-memo`
- Raw SKILL.md: https://api.skillmd.com/api/skills/obviousbread/docs-memo/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: obviousbread (https://skillmd.com/u/obviousbread)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/obviousbread/docs-memo

---


# docs-memo — Служебные записки

Генерирует служебные записки в формате .docx. Реквизиты организации загружаются из `~/.docs-plugin/org_details.md`.

## Пользовательский контекст

Прочитай `~/.docs-plugin/org_details.md`. Если `knowledge_base_path` заполнен и каталог существует, считай его корнем пользовательского хранилища: сначала прочитай корневые инструкции (`AGENTS.md`, `CLAUDE.md`, `GEMINI.md` или эквивалент текущего агента), затем найди служебные записки и связанные входящие материалы по теме. Читай столько карточек и связанных материалов, сколько нужно, пока новые источники перестают добавлять факты, дословные формулировки, основания и приложения. При неоднозначности извлечения или важности формы открой оригинал по указателю карточки. Отделяй данные источника от правил скилла и собственных предложений; не выдумывай факты, обязанности и сроки без подтверждения пользователя.

## 0. Карта references

| Файл | Что содержит | Когда читать |
|------|-------------|-------------|
| `speech-patterns.md` | Формальные речевые обороты: просьбы, уведомления, обоснования, ссылки на документы | Перед формулированием текста |
| `examples.md` | Примеры реальных служебок с темами и формулировками | При подборе формулировок для нестандартных тем |
| `~/.docs-plugin/org_details.md` | Адресат, автор, подписант по умолчанию | До начала работы |

## Структура документа

```
[пустой левый блок]  |  Кому (должность + ФИО дат.)
                     |  от кого (должность + ФИО род.)

             Служебная записка       (жирный, по центру)

    [Тело: абзацы с красной строкой 1.25 см, по ширине]

                                     ФИО подписанта
                                     ДД.ММ.ГГГГ
```

**Форматирование:** Times New Roman 14pt, A4, поля: верх 2 / лево 3 / право 1.5 / низ 1 см.

## Алгоритм работы

> **Gemini CLI:** `~/.docs-plugin/org_details.md` не подгружается автоматически. На шаге 1 прочитай файл явно. Используй native Gemini tools. Если файла нет — сообщи пользователю и предложи запустить docs-init.
>
> **Codex:** `~/.docs-plugin/org_details.md` не подгружается автоматически. На шаге 1 прочитай файл явно. Используй native Codex tools. Если файла нет — сообщи пользователю и предложи запустить docs-init.

1. Прочитать `~/.docs-plugin/org_details.md` (адресат, автор, подписант по умолчанию).
2. Прочитать `references/speech-patterns.md`.
3. Если нужна верификация НПА или исследование — проверить данные по первичным официальным источникам; если подтверждения нет, сообщить пользователю и не угадывать.
4. Уточнить суть и цель (только если не указано в запросе).
5. Если нужна верификация НПА или исследование - запустить субагента (см. ниже). Дождаться результата.
6. Сформулировать текст, сохраняя официально-деловой стиль.
7. Использовать дату из запроса; если не указана - дефолт сегодня.
8. Запустить `create_sluzhebka()` и сохранить .docx.
9. Сообщить пользователю путь к файлу.

## Ситуативная верификация

**Субагентов не нужно**, если служебка - простая просьба, уведомление или пояснение.

**Субагент `npa-verifier`** - когда служебка ссылается на НПА:

```
Для каждого НПА из списка: <список или тема>
Проверь через WebSearch по протоколу web-search.md реквизиты и актуальность (publication.pravo.gov.ru, официальные сайты ведомств, consultant.ru, garant.ru).
Верни JSON-массив: [{"official_name": "...", "number": "...", "date": "...", "status": "актуален"|"отменен"|"изменен"|"не найден", "source_url": "...", "checked_at": "...", "confidence": "high"|"medium"|"low", "notes": "..."}]
Не придумывай реквизиты.
```

> **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`.

**Субагент `research-subagent`** - когда нужно проверить факты из открытых источников:

```
Тема: <тема из контекста служебки>
Задача: собрать актуальные данные, факты или статистику для обоснования позиции по протоколу web-search.md.
Источники: официальные сайты ведомств, правовые базы, профильные ресурсы.
Верни: {"summary": "краткий синтез для включения в служебку", "sources": ["url1", "url2", ...]}
```

> **Claude Code:** запусти субагентом как описано выше.
>
> **Gemini CLI:** субагент недоступен. Выполни inline по `web-search.md`: WebSearch по теме, синтезируй summary и список источников.
>
> **Codex:** если в текущей сессии доступен agent/subagent tool, можно делегировать исследование. Иначе сообщи пользователю `subagents unavailable in this session, continuing inline` и выполни ту же inline-проверку по `web-search.md`.

**Постобработка субагентов:** 1) отбросить НПА со status «отменен», 2) встроить реквизиты через речевые обороты из `speech-patterns.md`, 3) не вставлять сырой JSON в текст.

## Генерация .docx

```python
import sys
sys.path.insert(0, "skills/docs-memo")
from generate import create_sluzhebka

create_sluzhebka(
    body_paragraphs=[
        "Прошу Вас...",
    ],
    doc_date="18.02.2026",
    output_path="<output_dir_memo из ~/.docs-plugin/org_details.md>/Новая служебка.docx",
)
```

Параметры `addressee`, `sender`, `signer` загружаются из `~/.docs-plugin/org_details.md` автоматически, если не переданы явно.

## Политика вопросов

**Спрашивать:** суть и тема, если пользователь не указал.

**Не спрашивать** (есть дефолты из `~/.docs-plugin/org_details.md`):
- Адресат и автор
- Дата - по умолчанию сегодня
- Путь сохранения - из `output_dir_memo` в `~/.docs-plugin/org_details.md`

## Стиль текста

- **Кавычки:** только «елочки» (« »)
- **Обращение:** «Прошу Вас» с заглавной «В»
- **Никаких домыслов:** нет данных - спроси пользователя
- **Запрет косой черты:** не использовать «/» как разделитель слов. Альтернативы: запятая, «или», «и», скобки.

## Чек-лист

- [ ] Текст соответствует официально-деловому стилю
- [ ] Кавычки - только «елочки»
- [ ] Дата указана корректно
- [ ] Адресат и автор заполнены
- [ ] Файл сохранен в папку `output_dir_memo` из `~/.docs-plugin/org_details.md`

## Политика файлов

| Тип файла | Путь | Пояснение |
|-----------|------|-----------|
| Генератор | `skills/docs-memo/generate.py` | Не модифицировать без обновления SKILL.md |
| Готовые документы | `{output_dir_memo}/<название>.docx` из `~/.docs-plugin/org_details.md` | Выходные файлы |

