Чеклист документации
Обязательные требования перед публикацией документации на docs-portal. Применяется ко всем monitored репозиториям (Passports, Defectoscopy, Techplans, Infra YC).
Обязательные файлы
| Файл | Назначение | Пример |
|---|---|---|
docs/API.md |
Полный API reference (все эндпоинты) | passports/API.md |
docs/architecture.md |
Архитектурный обзор + ссылки на D2 | — |
docs/diagrams/architecture.d2 |
Компоненты и их связи | — |
docs/diagrams/data-flow.d2 |
Поток данных от запроса до ответа | — |
Чеклист
- [ ] Все эндпоинты задокументированы в
API.md - [ ] Каждый эндпоинт: схема запроса + схема ответа + коды ошибок + сценарий интеграции
- [ ] Нет IP-адресов в docs/ (только доменные имена или алиасы VM)
- [ ] Нет эмодзи в заголовках
- [ ] Основной язык — русский (технические термины и имена полей — на английском)
- [ ] D2-диаграммы: исходники в
docs/diagrams/*.d2(SVG/PNG не коммитить — рендерятся автоматически) - [ ] docs-portal обновился после push (sync-docs workflow сработал или cron отработал)
Шаблон эндпоинта (API.md)
### POST /api/endpoint-name
Краткое описание в одном предложении.
**Аутентификация:** Bearer токен / нет
**Тело запроса:**
| Поле | Тип | Обязательно | Описание |
|------|-----|-------------|----------|
| field_name | string | да | Описание |
**Ответ 200:**
```json
{"ok": true, "data": {"field": "value"}}
```
**Коды ошибок:**
| Код | Условие |
|-----|---------|
| 400 | Неверный формат запроса |
| 422 | Ошибка валидации |
**Типовой сценарий интеграции:**
```python
response = requests.post("https://svc.techcon-ml.ru/api/endpoint-name", ...)
assert response.json()["ok"] == True
```
D2-диаграммы: как добавить на docs-portal
D2-диаграммы рендерятся через Kroki автоматически при сборке docs-portal.
В markdown-файле используйте fenced code block с языком kroki-d2:
```kroki-d2
direction: right
A -> B -> C
```
Не коммитить SVG/PNG — они генерируются на лету при каждом деплое docs-portal.
Исходники .d2 коммитить в docs/diagrams/.