Рабочая копия списка открывается и позволяет отмечать задачи. Следующий запрос агенту — ещё не «добавь фильтр». Сначала нужно выяснить, одинаково ли вы понимаете существующий код. Для этого полезнее несколько вопросов о поведении, чем просьба «изучи проект полностью».
В маленьком стенде ответ можно проверить целиком. На большом проекте тот же приём ограничивает исследование участком, который связан с задачей. Обзор всех папок часто создаёт ощущение понимания, не объясняя, что произойдёт после конкретного действия пользователя.
Спросите о пути действия
Передайте агенту этот запрос, указав свою папку work. Если инструмент не умеет читать файлы, приложите три исходных файла вручную и обозначьте их имена.
Пока ничего не меняй. Прочитай index.html и app.js в рабочей папке.
Ответь со ссылками на файл и функцию или строку:
1. Где заданы исходные задачи и их статус?
2. Как данные превращаются в строки списка?
3. Что происходит, когда пользователь отмечает задачу?
4. Почему после перезагрузки статусы возвращаются?
5. Где можно добавить фильтр, не удаляя задачи?
Отдели найденное в коде от предложения. Если чего-то не нашёл, так и напиши.
Если не можешь открыть файлы, сообщи об этом, не реконструируй содержимое.
Запрос задаёт область чтения, вопросы и формат доказательств. Он не требует от агента угадать вашу будущую архитектуру. Просьба не менять файлы здесь — договорённость о текущем этапе. Если нужен технически гарантированный запрет записи, используйте предусмотренные инструментом ограничения.
С чем сверять ответ
Откройте app.js. В начале находится массив tasks: у задачи есть id, title и done. Дальше функция render() очищает список и создаёт элементы по задачам. Обработчик change переносит состояние checkbox в task.done и вызывает отрисовку снова.
Это ориентиры по подготовленному исходнику, а не обязательный текст ответа агента. Номера строк могут измениться после редактирования. Проверяйте действие в указанном месте: действительно ли строка меняет статус, а не просто выводит подпись?
В index.html подключён app.js. После перезагрузки этот скрипт выполняется заново и создаёт исходный массив. Если агент объясняет сброс запросом к API или чтением базы, попросите показать соответствующий код. В нашем стенде таких механизмов нет.
Разделите факт и проектное решение
«Сейчас список строится из tasks» — проверяемый факт. «Фильтр лучше вынести в отдельный компонент» — предложение. Оно требует причины: какая проблема появится без компонента и стоит ли это сложности в трёхфайловом упражнении?
Для фильтра нам достаточно вычислять видимые задачи перед циклом отрисовки. Это выбранный подход, а не единственно возможная реализация. Например, можно скрывать уже созданные элементы. Тогда нужно отдельно следить, как изменение статуса взаимодействует со скрытием. Сравнивать варианты стоит по сохранности данных и понятности проверки.
Попросите агента назвать неопределённости. Сохраняется ли фильтр после перезагрузки? Показываем ли сообщение, когда ничего не осталось? Если ответа в существующем коде нет, это вопросы к постановке задачи. Их не надо выдавать за обнаруженные требования.
Если ответ не совпал с кодом
Не исправляйте весь ответ общим «ты неправильно понял». Укажите одно расхождение и попросите проверить основание:
Ты написал, что задачи загружаются из хранилища.
В app.js я вижу массив tasks с тремя объектами.
Покажи код чтения хранилища. Если его нет, исправь объяснение сброса
после перезагрузки. Правки файлов по-прежнему не нужны.
Если инструмент не видел нужную папку, сначала исправьте доступ. Повторять вопрос с более строгими формулировками бессмысленно, пока ему недоступны исходники. Если файл виден, но ответ снова не опирается на него, сузьте запрос до одной функции и разберите её вместе.
После чтения посмотрите diff или сравните рабочие файлы с initial. На этом этапе изменений не ожидается. При неожиданных правках сначала выясните, что изменилось, и сохраните нужное; не применяйте общий откат поверх собственных изменений.
Оставьте короткую карту
Запишите для себя: данные — tasks; отображение — render(); изменение статуса — обработчик change; постоянного хранилища нет. Карту нужно уметь объяснить без ответа агента перед глазами.
Теперь у вас есть основание для небольшого изменения. В первой задаче с ИИ превратим пожелание «показывать незавершённое» в условия, которые можно проверить.