Output contract визначає прийнятний результат
Контракт результату описує не характер агента, а відповідь, яку можна прийняти: формат, докази, маркування невизначеності та умови зупинки. Команда «перевір diff» залишає надто багато рішень на розсуд subagent.
Такий контракт відрізняється від handoff note: handoff передає стан довгої задачі, а output contract допомагає оцінити завершену роботу агента.
| Складова | Що має бути |
|---|---|
| Підсумок | Перевірений scope і загальний висновок |
| Знахідки | Проблема, severity, місце та suggested action |
| Докази | Файл і рядок, diff, лог, тест або інша перевірка |
| Перевірки | Команда, результат і exit code |
| Невизначеність | Факти окремо від [hypothesis] |
| Межі | Змінені файли й перевірений scope |
| Наступна дія | Конкретний крок власника |
| Stop | Коли агент припиняє роботу |
Жорсткі поля й оцінні поля
Шлях, рядок, команда, exit code і список змінених файлів легко перевірити. Severity, ризик і рекомендація потребують інженерного судження. Корисний output contract поєднує обидва види полів, але не маскує оцінку під факт.
Finding:
- severity: high | medium | low
- location: path/to/file.ts:42
- evidence: test, log, diff або code path
- suggested action: конкретна дія
- confidence: confirmed | [hypothesis] Контракт для reviewer
- Зафіксуйте конкретний flow або модуль.
- Вкажіть фокус: регресії, тести, API або сумісність.
- Забороніть редагування.
- Вимагайте findings із severity, file:line та evidence.
- Попросіть перелічити виконані перевірки й exit codes.
- Задайте stop condition, наприклад верхню межу diff.
Як приймати результат
Впевнений тон не є доказом. Непідтверджене твердження має залишатися гіпотезою до перевірки кодом, trace, тестом або іншими фактичними джерелами.
| Рішення | Коли застосувати |
|---|---|
| Прийняти | Є докази, scope дотримано, межі не порушено, next step зрозумілий |
| Повернути на уточнення | Висновок корисний, але бракує evidence, severity або маркування гіпотез |
| Відхилити | Змінено заборонені файли, проігноровано stop або findings без перевірної основи |
Канонічне джерело уроку · JavaRush
Відкрити матеріал JavaRush