Constraints визначають спосіб роботи
Мета каже, що потрібно отримати, а scope — де працювати. Constraints обмежують метод реалізації: забороняють зайві залежності, широкий рефакторинг, несумісні зміни та вихід за дозволену зону.
Обмеження можуть бути технічними й процесними: спочатку дослідження, потім план, уточнення неоднозначностей і підсумковий звіт.
| Блок | Приклад |
|---|---|
| Goal | Оператор бачить і зберігає нотатку |
| Scope | Форма, backend-flow, подія і тести |
| Non-goals | Платіжна логіка та правила схвалення |
| Constraints | Без нових бібліотек, одна нова міграція, малий diff |
Constraints для наскрізної зміни
- не ламати наявні endpoint-контракти;
- не підключати нові бібліотеки;
- не редагувати старі неповʼязані міграції;
- якщо потрібна схема, створити одну нову міграцію;
- зберегти старі записи без нового поля;
- уникати масштабного переписування
RefundService; - перед редагуванням дослідити поточну реалізацію.
Процесна рамка для Claude
## Constraints
- Спочатку перевір схему та пов’язані файли.
- Подай короткий план до редагування.
- Постав запитання, якщо вимога неоднозначна.
- Внеси найменші необхідні зміни.
- Запусти релевантні перевірки.
- Повідом змінені файли, результати та залишкові ризики. Сигнали порушення меж
- для малої функції утворився великий diff;
- зʼявилися перейменування або форматування поза задачею;
- додано залежність без потреби;
- тихо змінено public API;
- виправлено стару міграцію, не повʼязану із задачею.
- неперевірене припущення стало частиною реалізації.
Фінальний чекліст меж
- Goal описує поведінковий результат.
- Current і Desired behavior розділені та перевірювані.
- Scope охоплює потрібний наскрізний потік.
- Non-goals називають свідомо відкладені зміни.
- Constraints визначають технічні й процесні правила.
- Diff, тести та звіт підтверджують, що межі не порушено.
Канонічне джерело уроку · JavaRush
Відкрити матеріал JavaRush