Meta

AUTHORING

Як створювати і заповнювати документацію

CONVENTIONS — це правила формату. Цей файл — процес як реально побудувати доки з нуля або оновити існуючі. Читається як чекліст.


Головний принцип

Ітеративно, не одним заходом. Спершу — скелет, потім заповнюємо по одному файлу вузькими питаннями. Не намагатись описати все у голові й одразу писати полотна тексту — забудеш половину, перевантажиш неважливим.

Цикл заповнення ноди (універсальний)

Діє для UI, сервісу, сутності, flow — будь-якого файлу.

  1. Юзер → важливі речі. Числа, умови, нюанси, причини. Без художки.
  2. AI → аналіз + уточнення. Якщо є прогалини або двозначності — 3-5 вузьких питань. Якщо все зрозуміло — одразу п. 3.
  3. AI → формулювання. Текст під шаблон сторінки. Тільки те що юзер сказав. Ніяких «для повноти».
  4. Юзер → рев’ю і правки. Просить доповнити/виправити/прибрати. Повторюємо 2-4 поки не ок.
  5. Фіксація → наступна нода.

Стоп-сигнали:

  • AI починає вигадувати деталі → зупиняємось, лишаємо TODO.
  • Юзер просить «розпиши глибше» без нових фактів → значить дійшли до межі знань, більше нема що додати.

Сценарій 1 — Старт у новому проекті

Робиться один раз при внесенні документації в новий репозиторій.

  1. Скопіювати docs/CONVENTIONS.md з еталонного проекту
  2. Скопіювати docs/AUTHORING.md (цей файл)
  3. Створити CLAUDE.md в корені репо з посиланнями на CONVENTIONS.md і AUTHORING.md
  4. Створити docs/glossary.md (порожній) — заповнюватиметься по ходу
  5. Створити порожній docs/Canvas.canvas
  6. Відкрити docs/ у Obsidian як vault

Сценарій 2 — Опис UI з нуля

Для нової програми або нової вкладки якої ще нема в доках. Протестовано — цей порядок дає найменше churn’у.

Фаза A — Скелет структури

  1. Скріни з підписами блоків. Paint/Figma — виділити логічні зони прямокутниками і підписати назвами з розмови («колонка фаворитів», «хедер»). Не описувати що робить — тільки як називається.
  2. Скинути скріни AI одним повідомленням. Попросити: структурно підсумувати що бачить + запитати термінологію яку не впізнав. Не просити одразу писати файли.
  3. Термінологія → glossary. Перед створенням скелету зафіксувати всі абревіатури (RU, TU, LT, Pause, whitelist тощо). Без глосарію AI буде гадати і накидати різні варіанти.
  4. Папки: AI створює docs/ui/, services/, entities/, flows/, system/. Імена UI-файлів — українською (див. CONVENTIONS).
  5. Скелет UI-файлів. AI за шаблоном робить порожні сторінки: шапка + H1 + контекстна стрічка + порожні секції. Логіку не заповнюємо — тільки структура.
  6. Canvas скелет. AI створює ноди для кожного файлу + групи по екранах (Login screen / App хедер / Workspace screen / Sender screen). Лінки і стрілки — в наступній фазі.

Фаза B — Заповнення по одній ноді

Йдемо послідовно, по одному файлу. Не більше одного в роботі.

  1. Юзер видає важливі речі — що на цьому екрані/елементі дійсно важливо: числа, умови, фільтри, нюанси, нетипова поведінка. Короткими фразами, без художки.
  2. AI аналізує і уточнює. Знаходить прогалини, суперечності, незрозумілі місця — задає 3-5 вузьких запитань. Якщо питань нема — одразу формулює.
  3. AI формулює текст під шаблон сторінки. Без додаткових абзаців «для повноти» — тільки те що юзер сказав, переведене в структурований формат.
  4. Юзер рев’ює результат: читає, просить редагувати неточності, прибрати зайве, доповнити пропущене.
  5. Фіксуємо → переходимо до наступної ноди.

Правило зупинки: якщо AI починає вгадувати або додавати «для повноти» — юзер зупиняє. Краще лишити TODO: уточнити X ніж написати неправду.

Фаза C — Зв’язки з беком

Коли всі UI-файли заповнені — проходимо по кожній секції Зв'язки і додаємо лінки на бек-сервіси. Canvas дістає стрілки між UI і сервісами.


Сценарій 3 — Опис бек-сервісу з існуючого коду

  1. Вказати AI шлях до файлу коду (src/...).
  2. AI читає код і створює скелет за шаблоном Service: шапка з шляхом + Інтервал (якщо є) + Логіка + порожні Нюанси / Зв'язки.
  3. Уточнення нюансів і причин. Це найцінніше в бек-доках. AI запитує або пропонує варіанти, розробник підтверджує/виправляє:
    • чому саме такий таймаут
    • чому саме такий захист (watchdog, stop-list, isBusy)
    • які були інциденти/суперечки які сформували це рішення
  4. Лінки на UI що показує результати цього сервісу — в Зв'язки.

Сценарій 4 — Опис Flow (процесу)

Напр. логін, логаут, ініціалізація ранера.

  1. Назвати крок-за-кроком послідовність дій (AI читає код і пропонує, розробник коригує).
  2. Якщо кроків ≤3 — описуємо в одному файлі секціями.
  3. Якщо ≥4 — оглядова сторінка зі списком + окремий файл на крок.
  4. Кожен крок отримує секції Що робить, Нюанси (якщо є), Зв'язки.

Сценарій 5 — Оновлення при зміні коду

  1. Після зміни бізнес-логіки відкрити відповідний файл у docs/.
  2. Коротко сказати AI: «онови docs/xxx.md під зміну в src/yyy.ts».
  3. AI читає зміну, порівнює з поточним доком, робить правки. Людина рев’ює.
  4. Якщо забули — AI нагадає при наступній дотичній задачі (через CLAUDE.md).

Не оновлюємо при рефакторингу без зміни поведінки (переіменування, форматування, чищення типів).


Сценарій 6 — Canvas

Canvas — візуальна мапа, головний вхід у доки.

  1. Оновлюємо після того як тематична група файлів стабілізувалась (не після кожного окремого файлу — це churn).
  2. Новий файл → нова нода на Canvas з кольором відповідного типу (див. CONVENTIONS → Canvas).
  3. Стрілки підписуємо однаково: тригерить / оновлює / читає / стартує.
  4. Групи (обведення прямокутником) використовуємо для ≥3 нод одного типу в одному місці.

Правила розмови з AI

Що говорити:

  • Точний шлях файлу коду або назву UI-елемента
  • Що саме змінилось (одна фраза)
  • Який файл у docs/ онови або створи

Що AI має робити само:

  • Читати CONVENTIONS перед роботою з доками
  • Задавати вузькі питання коли йому бракує інформації (не гадати)
  • Пропонувати оновити пов’язані файли через Зв'язки
  • Після оновлення нагадувати про Canvas якщо структура змінилась

Антипатерни:

  • «Опиши весь сендер» — надто широко, AI напише полотно → перевантажить деталями. Краще: «зроби скелет chat-sender.md за шаблоном і задай питання по нюансам».
  • Заповнювати одразу всі 20 файлів — втратиш якість, не зможеш рев’ювити уважно.
  • Описувати реалізацію замість поведінки (див. правила глибини в CONVENTIONS).

Чеклист перед комітом змін у docs/

  • Новий файл має шапку за шаблоном (теги + backlink + H1 + контекстна стрічка)
  • Тип теги правильний (#UI, #Service, #Entity, #Flow, #System, #Meta)
  • Секція Зв'язки заповнена або свідомо пропущена
  • Жодних описів синтаксису/транспорту без впливу на поведінку
  • Нові терміни додано в glossary
  • Якщо структурний файл — оновлено Canvas