Constraints визначають спосіб роботи

Мета каже, що потрібно отримати, а scope — де працювати. Constraints обмежують метод реалізації: забороняють зайві залежності, широкий рефакторинг, несумісні зміни та вихід за дозволену зону.

Обмеження можуть бути технічними й процесними: спочатку дослідження, потім план, уточнення неоднозначностей і підсумковий звіт.

БлокПриклад
GoalОператор бачить і зберігає нотатку
ScopeФорма, backend-flow, подія і тести
Non-goalsПлатіжна логіка та правила схвалення
ConstraintsБез нових бібліотек, одна нова міграція, малий diff

Constraints для наскрізної зміни

  • не ламати наявні endpoint-контракти;
  • не підключати нові бібліотеки;
  • не редагувати старі неповʼязані міграції;
  • якщо потрібна схема, створити одну нову міграцію;
  • зберегти старі записи без нового поля;
  • уникати масштабного переписування RefundService;
  • перед редагуванням дослідити поточну реалізацію.

Процесна рамка для Claude

## Constraints
- Спочатку перевір схему та пов’язані файли.
- Подай короткий план до редагування.
- Постав запитання, якщо вимога неоднозначна.
- Внеси найменші необхідні зміни.
- Запусти релевантні перевірки.
- Повідом змінені файли, результати та залишкові ризики.

Сигнали порушення меж

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

Фінальний чекліст меж

  1. Goal описує поведінковий результат.
  2. Current і Desired behavior розділені та перевірювані.
  3. Scope охоплює потрібний наскрізний потік.
  4. Non-goals називають свідомо відкладені зміни.
  5. Constraints визначають технічні й процесні правила.
  6. Diff, тести та звіт підтверджують, що межі не порушено.

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

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