Engineering contract робить роль перевірюваною
Інструкція агента має бути коротким engineering contract: що він робить, за яких умов запускається, які дії дозволені, у якому форматі звіту повертає результат і коли зупиняється. Без цього subagent легко перетворити на необмеженого виконавця.
Зручно мислити контрактом через чотири осі: Read, Run, Write і Stop. Вони відділяють доступ до контексту від запуску перевірок, право змінювати файли та момент повернення контролю.
| Вісь | Питання контракту | Приклад reviewer |
|---|---|---|
| Read | Що можна inspect? | Diff, повʼязані файли, тести |
| Run | Які перевірки можна запускати? | Погоджені read-only тести або lint |
| Write | Що можна змінювати? | Нічого |
| Stop | Коли повернути контроль? | Після визначеної області та звіту |
Структура інструкції агента
- Назвіть роль і цінність результату.
- Опишіть умови використання та підготовлений вхід.
- Перелічіть дозволені файли, команди й перевірки.
- Зафіксуйте заборони: не редагувати, не розширювати scope, не вигадувати докази.
- Визначте схему звіту: severity, file:line, evidence, action, questions.
- Додайте stop condition і правило позначення [hypothesis].
Приклад контракту read-only reviewer
## Role
Ти — reviewer готового diff у визначеній області.
## Read
Переглянь diff, повʼязані файли та тести.
## Run
Запускай лише погоджені перевірки; запиши їхній результат.
## Write
Не змінюй жодного файлу.
## Report
Для кожного finding вкажи severity, file:line, evidence,
suggested action і confidence. Непідтверджене познач [hypothesis].
## Stop
Після перевірки scope поверни звіт і open questions. Людина зберігає фінальне рішення
Reviewer може зібрати findings, але не ухвалює за команду, чи достатня зміна, чи прийнятний ризик і чи можна merge. Якщо доказів не вистачає, агент має повернути open question, а не заповнювати прогалину впевненим припущенням.
Такий поділ робить роль корисною навіть тоді, коли її висновок — «потрібно дослідити ще». Це чесніший результат, ніж неперевірена рекомендація.
Канонічне джерело уроку · JavaRush
Відкрити матеріал JavaRush