Docs-as-code — документація в тому самому change set

Docs-as-code означає, що технічна документація живе в репозиторії, потрапляє до diff, проходить review і перевіряється разом із кодом. Документ не є довідкою «десь поруч»: він описує конкретну поведінку, команди або процедуру.

Зміна коду та застаріла інструкція утворюють неповний delivery. Тому документацію потрібно оновлювати в тому самому PR, коли змінюється її джерело правди.

АртефактТиповий зміст
READMESetup, основні команди та змінні середовища
API documentationМаршрути, методи, запити, відповіді та контракти
RunbookДіагностика, реагування на інцидент і відновлення
Onboarding guideПідготовка чистого робочого середовища
Changelog / release notesПідтверджені зміни між версіями

Джерело істини важливіше за памʼять

  • звіряйте API-опис із controller, DTO та тестами;
  • перевіряйте команди через package scripts, Gradle tasks або реальний запуск;
  • порівнюйте env у README, .env.example, Compose та конфігурації застосунку;
  • підтверджуйте runbook логами, alert-ами й фактичним smoke-сценарієм;
  • позначайте неперевірені твердження як unknown, а не подавайте їх упевнено.

Claude як перевіряльник документації

  1. Передайте Claude конкретний документ і перелік файлів-джерел.
  2. Попросіть знайти розбіжності в командах, route, env або прикладах.
  3. Вимагайте посилання на файл, рядок або тест для кожного зауваження.
  4. Окремо попросіть перелік непідтверджених тверджень.
  5. Підготуйте малий diff і перевірте його практичним запуском.
Bounded prompt для docs review
Input: README.md and the referenced setup files
Check: commands, ports, env names, API routes and examples
Return: mismatches with evidence and suggested minimal edits
Do not invent endpoints, variables or recovery commands
Do not edit files before the report is reviewed

Generated text не дорівнює актуальній документації

Генерація може створити читабельний текст, але delivery-документація повинна бути перевірюваною. Важливо не те, наскільки переконливо звучить опис, а чи запускається команда, чи збігається маршрут із кодом і чи відповідає приклад фактичному DTO.

Наприклад, якщо API почало повертати approvalRequired: true зі статусом PENDING_APPROVAL, runbook має пояснювати очікування ручного підтвердження, а не радити повторювати запит навмання.

ПеревіркаДоказ
КомандаФактичний запуск на чистому або описаному середовищі
API routeController, route test або контрактний тест
Приклад відповідіDTO, serializer і тестовий результат
RunbookЛог, smoke-check або перевірений recovery path

Docs gate перед merge

  • після зміни setup оновлено README та onboarding;
  • після зміни route або response оновлено API-опис;
  • приклади команд і запитів перевірені практично;
  • документація не містить секретів або приватних значень;
  • бізнесові компроміси й висновки ADR залишилися під людським review.

Канонічне джерело уроку · JavaRush

Відкрити матеріал JavaRush