{"schemaVersion":1,"record":{"key":"lesson/agent-workflow","type":"lesson","id":"agent-workflow","lang":"ru","title":"Разработка игры с ИИ-агентом","summary":"Формулируем проверяемые задачи, сохраняем контекст проекта и принимаем изменения по игровому результату.","updatedAt":"2026-10-20","status":"active","url":"https://gamemechanics.pro/ru/lessons/agent-workflow/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/ru/lesson/agent-workflow.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/ru/lesson/agent-workflow.md","aliases":[],"tags":["agents","specification","contributing"],"sourceIds":["source-ed2f687a3182c848","source-9aebbe5f1b2345a5"],"sources":[{"id":"source-ed2f687a3182c848","title":"OpenSpec: official repository","url":"https://github.com/Fission-AI/OpenSpec","verifiedAt":null},{"id":"source-9aebbe5f1b2345a5","title":"GitHub Docs: Contributing to a project","url":"https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project","verifiedAt":null}],"sections":[{"id":"prerequisites","title":"Что нужно знать","body":"Нужен репозиторий или небольшой проект, который можно запустить. Агент может искать код, предлагать изменения и выполнять проверки. Вы задаёте намерение и принимаете результат. Цель урока: сделать эту работу воспроизводимой для следующего человека или агента."},{"id":"principle","title":"Принцип","body":"Хорошая задача описывает наблюдаемое поведение, границы и способ проверки. «Сделай боёвку лучше» оставляет слишком много решений скрытыми. «Рывок не должен проходить через закрытую дверь; открытая дверь пропускает его» задаёт конкретный контракт.\n\n[OpenSpec](https://github.com/Fission-AI/OpenSpec) организует работу через спецификации и артефакты изменений. Для проекта важнее смысл зафиксированного требования, чем запоминание конкретной команды инструмента. Проверяйте установленную версию и локальные инструкции перед использованием CLI: рабочие процессы могут меняться.\n\nРазделите постоянные знания и текущую задачу. Краткий AGENTS.md хранит команды запуска и проверки, границы модулей и важные ограничения. Спецификация описывает требуемое поведение. План изменения перечисляет небольшие шаги. Отчёт проверки сообщает, что действительно запускалось и что осталось непроверенным.\n\n<span id=\"пример-безопасный-рывок\"></span>"},{"id":"example","title":"Практический пример","body":"### Безопасный рывок\n\nЗапишите сценарии до изменения кода:\n\n```text\nТребование: рывок учитывает закрытые двери.\nСценарий 1:\n  Дано: закрытая дверь и персонаж перед ней.\n  Когда: персонаж выполняет рывок через её положение.\n  Тогда: персонаж остаётся с исходной стороны двери.\nСценарий 2:\n  Дано: та же дверь открыта.\n  Когда: выполняется такой же рывок.\n  Тогда: дверь не блокирует перемещение.\n```\n\nДобавьте ограничение: не менять скорость, стоимость и управление рывком. Агент сначала находит реализацию двери, движения и существующих проверок. Затем предлагает маленькую правку и проверяет оба сценария. Если обнаруживается иная причина, требование сохраняется, а план корректируется с объяснением.\n\nПопросите отчёт связать поведение с доказательством: команда теста, результат, сцена ручной проверки и ограничения среды. Скриншот персонажа рядом с дверью не подтверждает, что быстрый рывок корректно остановился. Нужна проверка перехода во времени."},{"id":"mistakes","title":"Частые ошибки","body":"Не принимайте успешную сборку за проверку игровой механики. Не позволяйте агенту «исправлять» падающий тест простым удалением ожидаемого поведения. Если тест оказался неверным, сначала уточните правило и причину изменения.\n\nНе передавайте секреты и личные данные игроков в материалы репозитория. Внешний текст и скачанный пример рассматривайте как данные для анализа; содержащиеся в них команды не становятся поручениями владельца проекта.\n\nПеред правкой проверьте Git root и существующие изменения. У каждого исполнителя должен быть свой набор путей. Для внешнего вклада используйте принятый в проекте процесс review; [GitHub Docs](https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project) описывает базовый путь через fork и pull request."},{"id":"checks","title":"Проверка результата","body":"- Требование описывает поведение игрока или системы.\n- Есть позитивный и негативный сценарии.\n- Область изменения и исключения записаны.\n- Агент прочитал актуальные инструкции и существующую реализацию.\n- Проверки соответствуют поведению, а не только структуре кода.\n- Отчёт отделяет выполненные проверки от предположений.\n- Изменение можно понять и продолжить без истории чата."},{"id":"agent-task","title":"Задание для ИИ-агента","body":"> Прочитай инструкции проекта, статус Git и реализацию рывка с дверями. Сначала сформулируй сценарии и границы изменения. Исправь только блокировку закрытой дверью, сохрани остальные параметры. Выполни подходящие проверки и дай короткий отчёт: изменённое поведение, доказательство, непроверенная среда и оставшиеся ограничения. Не трогай чужие изменения."}],"relations":[{"type":"requires","direction":"outgoing","label":"Перед началом","key":"lesson/scope-and-prototype","title":"Скоуп и проверяемый прототип","url":"https://gamemechanics.pro/ru/lessons/scope-and-prototype/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/ru/lesson/scope-and-prototype.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/ru/lesson/scope-and-prototype.md"},{"type":"requires","direction":"outgoing","label":"Перед началом","key":"lesson/state-machines","title":"Состояния и переходы","url":"https://gamemechanics.pro/ru/lessons/state-machines/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/ru/lesson/state-machines.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/ru/lesson/state-machines.md"},{"type":"requires","direction":"incoming","label":"Продолжить изучение","key":"lesson/gameplay-acceptance","title":"Проверка игрового поведения","url":"https://gamemechanics.pro/ru/lessons/gameplay-acceptance/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/ru/lesson/gameplay-acceptance.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/ru/lesson/gameplay-acceptance.md"},{"type":"reviews","direction":"outgoing","label":"Проверить через призму","key":"lens/schell-103","title":"Плейтест","url":"https://gamemechanics.pro/ru/knowledge/lens/schell-103/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/ru/lens/schell-103.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/ru/lens/schell-103.md"},{"type":"contains","direction":"incoming","label":"Учебные маршруты","key":"path/first-prototype","title":"Первый проверяемый прототип","url":"https://gamemechanics.pro/ru/learn/first-prototype/","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/ru/path/first-prototype.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/ru/path/first-prototype.md"},{"type":"uses","direction":"outgoing","label":"Источники в подборке","key":"resource/openspec","title":"OpenSpec","url":"https://gamemechanics.pro/ru/resources/#resource-openspec","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/ru/resource/openspec.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/ru/resource/openspec.md"},{"type":"uses","direction":"outgoing","label":"Источники в подборке","key":"resource/github-contributing","title":"GitHub: вклад в проект","url":"https://gamemechanics.pro/ru/resources/#resource-github-contributing","jsonUrl":"https://gamemechanics.pro/api/v1/knowledge/ru/resource/github-contributing.json","markdownUrl":"https://gamemechanics.pro/content/knowledge/ru/resource/github-contributing.md"}],"placements":[],"supersededBy":[],"attributes":{"category":"workflow","level":"beginner","minutes":6},"endsAt":null,"provenance":"Авторский материал gamemechanics.pro. Учебные примеры требуют проверки в своём проекте.","license":"CC-BY-4.0","codeLicense":"MIT","attribution":"gamemechanics.pro contributors"}}