Skip to content

Чеклист документации

Обязательные требования перед публикацией документации на 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/.