---
name: veda-artifact-formatting
description: Standard для агентов VEDA (Ася, Зам, HR, Лекс), которые создают Google Docs и Google Sheets через инструменты create_gdoc / create_gsheet. Содержит: правила markdown для GDoc, структура и форматирование GSheet, формат чисел/денег/процентов/дат на русском. Загружай ОБЯЗАТЕЛЬНО перед любым вызовом create_gdoc или create_gsheet.
type: standard
when_to_use:
  - перед create_gdoc / create_gsheet любой персоной
  - при ревью артефакта от агента — чек-лист «не колхозно ли»
  - при добавлении новой персоны с правом писать в GWS
---

# Стандарт оформления Google Docs и Google Sheets для агентов

> Источник правил: feedback Алекса (`feedback_gdoc_formatting`, `feedback_sheets_formatting`, `spreadsheet-styling`) + индустриальные style guides (Google Developer Docs, Microsoft Style Guide, Бюро Горбунова).
>
> Принцип: **данные > декор**. Документ должен читаться, не «впечатлять». Меньше bold, меньше цвета, больше структуры.

---

## 1. Google Docs — `create_gdoc(title, markdown)`

### Заголовок и стиль
- **БЕЗ H1/H2/H3** в markdown (`#`, `##`, `###` запрещены). Размер шрифта не меняется. Никаких `HEADING_*` стилей. Заголовки и разные размеры выглядят колхозно — это явная установка Алекса.
- **Title документа** — параметр функции `title=...`, в markdown первой строкой `# Название` НЕ пишем.
- **Шрифт и размер** — дефолт Google Docs (Arial 11pt), не менять.

### Структура раздела
```
**Меша · Овен**

Управитель — Марс. Стихия — огонь. Качество — кардинальное.
Знак инициации, первого импульса, прорыва.

- Тип: подвижный
- Зона экзальтации: Солнце
```

- Раздел = короткий **bold-подзаголовок** одной строкой (≤ 40 символов, без переноса) → пустая строка → обычный текст / буллеты.
- Между разделами — **одна пустая строка**.
- 1 bold-подзаголовок на раздел. Не каждые два абзаца.

### Bold — где можно и где нельзя
- ✅ Короткий подзаголовок раздела: `**Меша · Овен**`, `**Финансы**`, `**Что делать**`.
- ✅ Точечное выделение термина в тексте: `Зона экзальтации — это **место максимальной силы планеты**`.
- ❌ Обернуть в `**...**` ЦЕЛЫЙ абзац: `**Управитель — Марс. Стихия — огонь. Качество — кардинальное. Знак инициации...**` — это «стена жирного», запрещено.
- ❌ Bold-ить каждое предложение или каждый параметр в столбце.
- ❌ Bold длиннее 60 символов или с переносом строки. Технический cap — `tools/artifacts.py:_md_to_docs_requests`.

### Списки
- `- ` для маркированных, `1. ` для нумерованных (последовательность шагов).
- Бить охотно: 4+ строки одной мысли = разнести буллетами.
- Пункт начинается с заглавной. Точка в конце — если это полное предложение; без точки — если короткое словосочетание.

### Абзацы
- 2–4 предложения. Стена текста длиннее 5 строк = воткнуть подзаголовок или разбить на буллеты.
- Главная цифра/факт — в начало предложения, не в конец.

---

## 2. Google Sheets — `create_gsheet(title, headers, rows)`

### Шрифт и базовый стиль
- **Inter 10pt** (или Arial/Roboto если Inter недоступен), один шрифт на весь лист, не больше двух размеров (10pt тело, 11pt итоги).
- Header row: **bold + заливка `#EEEEEE`** (светло-серый), freeze первой строки.
- Текст — выравнивание слева, числа/даты/валюта — справа, проценты — справа.
- Wrap text для длинных описаний (>40 символов в ячейке).
- Колонки с датами: минимум 120–130px.

### Форматы чисел (numberFormat)
| Тип | Формат | Пример |
|---|---|---|
| Целое число | `#,##0` | `12 345` |
| Деньги (₽) | `# ##0 ₽` | `1 250 000 ₽` |
| Проценты целые | `0%` | `35%` |
| Проценты дробные | `0.0%` | `3.5%` |
| Коэффициенты | `0.0` | `1.4` |
| Большие суммы в заголовках | `1,2 млн ₽`, `350 тыс. ₽` | (только подписи графиков, не в таблице — иначе не суммируется) |

- Разряды — пробел: `1 250 000`, не запятая и не точка (Бюро Горбунова, ГОСТ Р 7.0.97).
- Знак валюты после числа с неразрывным пробелом: `1 250 ₽`, не `₽1250`.
- Не хранить число как строку `«1 234 ₽»` — только как число с применённым numberFormat.

### Цвет (палитра 4 цвета + белый)
| Роль | HEX | Где |
|---|---|---|
| Фон данных | `#FFFFFF` | строки с данными |
| Заголовки и итоги | `#EEEEEE` | header row, subtotals, section totals |
| Заголовок секции «Доход/Маржа» | `#CEE1F3` | только row-header секции, не данные |
| Заголовок секции «Расходы» | `#F4CCCC` | только row-header секции |
| Отрицательное отклонение Δ | текст `#FF0000` | ТОЛЬКО красный текст, НЕ красный фон |
| Условное форматирование маржи | gradient `#F4C5C1` → `#57BB8A` | только колонка с % маржи |

**Запрещено:**
- Тёмные фоны (navy, dark blue).
- Яркие заливки (жёлтый, оранжевый, ярко-зелёный) — детский сад.
- Больше 3–4 фоновых цветов на лист.
- Цветной текст кроме красного для отрицательных.
- Декоративные градиенты, тени, иконки в ячейках.
- Alternating row colors на коротких таблицах (≤ 5 строк) — мешают.
- Conditional formatting «всё подряд». Только метрики с явным порогом (план/факт, ROMI, конверсия): зелёный ≥ цель, красный < цель.

### Структура
- **Заголовки (row 0–1):** `#EEEEEE` или секционный цвет, **bold**, 10pt, merge для групповых заголовков.
- **Данные (row 2+):** белый фон, normal, 10pt; числа right-aligned с numberFormat.
- **Итоговые строки:** `#EEEEEE`, bold — визуально отделяют секции.
- **Иерархия (вложенность):** отступами / префиксом `в т.ч.`, НЕ цветом.

### Sheets API — практические заметки
- `numberFormat`: `"#,##0\" ₽\""` для рублей.
- `backgroundColor`: RGB object `{red: 0.93, green: 0.93, blue: 0.93}`, не hex.
- `textFormat.bold: true` только для header row и итогов.
- `textFormat.foregroundColor`: красный ТОЛЬКО для отрицательных Δ.
- Borders: тонкие `#CCCCCC` или без них (gridlines достаточно).

---

## 3. Числа, деньги, даты на русском (cross-artifact)

| Сущность | Правило | Пример |
|---|---|---|
| Разряды | тонкий неразрывный пробел | `12 000`, `1 250 000 ₽` |
| Валюта | знак после числа, неразрывный пробел | `1 250 ₽`, `35 €` |
| Процент | `35%` без пробела (Excel-стиль) ИЛИ `35 %` (текстовый) — ОДИН стиль на документ | — |
| Сокращение | в подписях и заголовках | `1,2 млн ₽`, `350 тыс. ₽` |
| Полные числа | в таблицах (чтобы суммировались) | `1 250 000` |
| Дата в таблице | ISO для сортировки | `2026-05-12` |
| Дата в тексте | словом | `12 мая 2026` |
| Диапазон дат | длинное тире без пробелов | `12–18 мая` |
| Диапазон в заголовке столбца | с пробелами вокруг короткого тире | `6 - 12 апр` |
| Отрицательные числа | минус, не скобки | `-12 500 ₽`, не `(12 500)` |

---

## 4. Язык командных артефактов: русский по умолчанию

Источник: обратная связь Алекса 2026-07-09 по отчету в Base для отдела продаж. Ошибка: в командный отчет попали `checkout`, `CTA`, `клики`, `оффер`, `dashboard`, хотя русские термины точнее и понятнее команде.

Правило: в Base, чатах команды, Google Docs/Sheets и управленческих отчетах использовать русские слова, если английское слово не является названием продукта, полем кода/API или устоявшейся аббревиатурой.

| Запрещено без причины | Писать |
|---|---|
| `checkout` | страница оформления заказа/оплаты |
| `CTA` | кнопка заявки, призыв к действию |
| `click`, `клик`, `клики` | нажатие, нажатия |
| `оффер` | продающее предложение, предложение |
| `dashboard` | сводка, экран аналитики |
| `benchmark` / `бенчмарк` | сравнение |
| `gate` в тексте для команды | проверка, контроль |
| `PASS/FAIL` в тексте для команды | пройдена / не пройдена |

Исключения: URL, названия внешних сервисов (`GetCourse`, `Base`), технические поля (`willCreatePaidDeal`), имена файлов, команды, API-поля и машинный вывод валидатора. Если английское слово нужно оставить, рядом должна быть русская расшифровка.

Перед отправкой командного артефакта пройти поиск по словам выше. Найдено в пользовательском тексте — заменить. Найдено только в URL/коде/поле API — допустимо.

---

## 5. Чек-лист перед сдачей артефакта

**GDoc**
- [ ] Нет `# / ## / ###` в markdown — title через параметр функции.
- [ ] Bold-строки ≤ 40 символов, по 1 на раздел, без переноса.
- [ ] Нет абзацев целиком в `**...**`.
- [ ] Между разделами пустая строка.
- [ ] Списки буллетами, не сплошным текстом.

**GSheet**
- [ ] Header row: freeze + bold + `#EEEEEE`.
- [ ] Числа имеют numberFormat — не строки.
- [ ] Деньги: `# ##0 ₽` с пробелом-разделителем.
- [ ] Проценты: `0%` без десятых (или `0.0%` если дробные).
- [ ] Текст слева, числа справа.
- [ ] Колонки с датами ≥ 120px.
- [ ] Нет ярких заливок, ≤ 3 фоновых цветов.
- [ ] Отрицательные — красный текст, не красный фон.

**Числа на русском**
- [ ] Разряды через пробел: `1 250 000`.
- [ ] `₽` после числа с пробелом.
- [ ] Даты — ISO в таблицах, словом в тексте.
- [ ] Диапазоны через `–`, не дефис.

**Язык**
- [ ] Нет `checkout`, `CTA`, `клик`, `оффер`, `dashboard`, `benchmark`, `gate`, `PASS/FAIL` в тексте для команды.
- [ ] Если английский термин остался, это URL, название сервиса, API-поле, команда или рядом есть русская расшифровка.

---

## 6. Источники

- `memory/feedback_gdoc_formatting.md` — правило Алекса по заголовкам в GDoc.
- `memory/feedback_sheets_formatting.md` — правило Алекса по числам/датам в Sheets.
- `memory/spreadsheet-styling.md` — палитра финансовых таблиц VEDA (2026-03-09).
- Обратная связь Алекса 2026-07-09: без лишних англицизмов в командных отчетах; `checkout` → «страница оформления заказа/оплаты».
- [Google Developer Style Guide — Headings / Lists / Text formatting / Highlights](https://developers.google.com/style/headings).
- [Google Sheets API — Basic formatting](https://developers.google.com/workspace/sheets/api/samples/formatting).
- [Microsoft Style Guide — Numbers / Currency](https://learn.microsoft.com/en-us/style-guide/numbers).
- [Бюро Горбунова — разряды и процент](https://bureau.ru/soviet/20121007/) + [20210808](https://bureau.ru/soviet/20210808/).
- ГОСТ Р 7.0.97-2016 (делопроизводство, оформление чисел и валют).

---

## 7. Технический бэкстоп

Если агент всё равно нарушит правила (например, обернёт абзац в bold), `tools/artifacts.py:_md_to_docs_requests` имеет defensive cap: bold-промежутки длиннее 60 символов или с `\n` внутри — маркеры выдираются, bold не применяется. HEADING_* в принципе не генерируется. Но это страховка, не замена корректному markdown — всегда писать правильно с первого раза.
