Финальная работа: проект, харнесс и защита решения
Что вы предъявляете в конце
Финальная работа состоит из менеджера задач и процесса, которым вы его построили. Работоспособный код без понятных проверок оставляет слишком много неизвестного. Красивые инструкции без работающего проекта тоже не отвечают задаче.
Вернитесь к собственной starter, а не заменяйте её эталоном. Доведите add, list и done до договора из SPEC.md. Затем добавьте одну небольшую функцию на выбор: фильтр незавершённых задач, переименование или краткую статистику. До реализации запишите поведение, ошибочные случаи и границы функции.
Для переименования, например, нужно решить, что происходит с пустым названием и отсутствующим id. Для фильтра — меняет ли он файл и как ведёт себя пустой список. Не добавляйте удаление, сеть и аккаунты одновременно с этой функцией.
Обязательный комплект результата
| Артефакт | Как его оценить |
|---|---|
| Программа | Воспроизводит сценарии add/list/done и дополнительную функцию |
| SPEC.md | Содержит примеры и ограничения |
| README.md | Позволяет запустить проект в новой папке |
| Инструкции агента и один скилл | Объясняют процедуру без старого чата |
| STATUS.md | Различает сделанное, проверенное и незавершённое |
| Проверки | Ловят нарушение требований и проходят на готовом проекте |
| История Git | Показывает осмысленные шаги и просмотренные изменения |
| Отчёт | Называет инструмент, использование, ошибки и ограничения |
Не подключайте MCP ради галочки. Можно обосновать, что локальных инструментов достаточно. Если подключили сервер, объясните, какие права он получил и какую задачу решил. Для хуков действует тот же принцип: полезная проверка важнее количества настроек.
Демонстрация
Начните с нового учебного файла данных. Используйте команды готового проекта:
python3 app.py --file defense.json add "Подготовить защиту"
python3 app.py --file defense.json list
python3 app.py --file defense.json done 1
python3 app.py --file defense.json list
python3 check.pyЗатем покажите отклонение пустого названия и отсутствие изменения данных при неизвестном id. На отдельном искусственном файле воспроизведите ошибку JSON: программа должна сообщить о проблеме и не перезаписать файл. Для дополнительной функции запустите её собственные проверки.
Откройте новую сессию агента и попросите описать следующий шаг по документам, ничего не меняя. Это проверка передачи контекста. Попросите человека, который не видел разговор, запустить приложение по README; если это невозможно, явно отметьте самостоятельную проверку.
Вопросы защиты
Ответьте своими словами: чем модель отличается от агента; почему скилл не является ограничением доступа; что даёт MCP; какие части харнесса предоставляет клиент; что добавили вы; что подтверждает успешный check.py и чего он не подтверждает.
Назовите один случай неверного ответа агента и способ, которым вы его обнаружили. Покажите одно изменение, которое отвергли или сузили. Объясните, как продолжить работу без старой сессии и как восстановить искусственные данные из копии.
Оценка готовности
Работа готова к учебной сдаче, если все заявленные сценарии воспроизводятся, проверки проходят, новая папка запускается по README, а ограничения названы прямо. Частично готовая функция должна оставаться отмеченной как незавершённая. Не ставьте итоговую отметку только по уверенности агента.
После курса вы можете переходить к небольшому проекту в знакомой предметной области. Когда появляется сеть, несколько пользователей или ценные данные, сначала расширьте требования и проверки. Начните с одного нового риска и одного наблюдаемого сценария, сохраняя освоенный цикл работы.
Разбор
Хорошая защита показывает цепочку «требование → изменение → проверка → наблюдение». Если вы только демонстрируете эталон, это изучение примера, а не собственная работа. Если дополнительная функция прошла один ручной сценарий, честно назовите непроверенные случаи. Умение видеть пределы результата — часть работы с агентом.