Контекст — це бюджет, а не склад усього репозиторію

Контекст є обмеженим ресурсом, за який змагаються історія діалогу, файли, логи, правила проєкту та критерії готовності. Передавання всього репозиторію часто додає шум, розширює scope і провокує зайві правки.

Оптимальний підхід — мінімально достатній контекст із можливістю точкового розширення, якщо під час дослідження виявилася конкретна нестача даних.

СигналРоль у задачі
GoalЩо має змінитися
Affected areaДе шукати повʼязану реалізацію
EvidenceЧому проблему вважають реальною
ConstraintsЩо не можна змінювати
Зразок стилюЯк виглядає прийнята схожа реалізація

Порядок відбору контексту

  1. Сформулюйте мету та очікуваний результат.
  2. Визначте affected area: модуль, файли, класи або тести.
  3. Зберіть evidence: лог, stack trace, reproduction steps, failing test чи скриншот.
  4. Зафіксуйте обмеження та незмінні API або залежності.
  5. Додайте один-три релевантні файли чи один невеликий модуль.
  6. Додайте схожу реалізацію, якщо потрібно наслідувати стиль.
  7. Розширюйте контекст лише після конкретного сигналу про нестачу.

Контекст залежить від типу задачі

ЗадачаМінімальний корисний набір
BugfixКроки відтворення, stack trace, failing test і повʼязаний код
ДокументаціяФактичний API, приклад використання та чинні правила
FeatureGoal, affected flow, обмеження й критерії приймання
InvestigationСимптоми, докази, гіпотези та питання для перевірки

Як просити знайти кандидатні файли

Read-only запит до розширення контексту
Знайди файли, класи й тести, пов’язані із симптомом.
Не редагуй код.
Назви кожен кандидатний файл і поясни, який факт
потрібно перевірити перед внесенням змін.
Не додавай весь репозиторій без конкретної причини.

Що не варто передавати

  • весь репозиторій без потреби;
  • багатогодинні логи замість короткого фрагмента;
  • неперевірені старі припущення;
  • несуміжні задачі та застарілу документацію;
  • .env, ключі, токени та інші чутливі дані.

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

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