# Часть 13. Поддержка существующего проекта SDD полезен не только для новых проектов. В существующем проекте спецификации можно восстановить из кода, README, TODO, трекера задач, журнала изменений, тестов и архитектурных документов. Это не «переписать старый код». Это добавить слой намерения, которого раньше не хватало. В учебном сценарии можно взять готовый AgentClinic MVP, удалить `specs/` и представить, что это существующий проект. Задача Qwen Code — восстановить конституцию проекта, а затем продолжить обычный цикл SDD. ## Процесс для существующего проекта ```text Существующий проект README.md TODO.md исходный код тесты package.json Восстановление specs/mission.md specs/tech-stack.md specs/roadmap.md Продолжение спецификация фичи реализация проверка перепланирование ``` ## Запрос для восстановления конституции проекта ```text /clear Мы добавляем разработку по спецификациям в существующий проект. Прочитай @README.md, @TODO.md, @package.json и посмотри дерево исходного кода. Не переписывай приложение. Подготовь проект конституции: - specs/mission.md - specs/tech-stack.md - specs/roadmap.md Перед записью файлов задай мне ровно три группы вопросов: 1. Пробелы в миссии и целевой аудитории. 2. Предположения и неизвестные места в технологическом стеке. 3. Приоритеты дорожной карты по TODO.md и текущему коду. ``` Если Qwen Code неточно описал проект, исправьте конституцию до следующей фичи. ## Что искать в существующем проекте Попросите агента собрать факты, а не домыслы: ```text Изучи проект и составь список только из фактов: - найденная среда выполнения и фреймворк; - скрипты package.json; - база данных или слой хранения; - маршруты и страницы; - тесты; - пункты TODO; - рискованные зоны. Отдели факты от предположений. Файлы не изменяй. ``` Это защищает от выдуманной архитектуры. ## Пример `tech-stack.md` для существующего проекта ```markdown # Технологический стек ## Обнаружено - TypeScript. - Маршруты Hono. - JSX рендерится на сервере. - SQLite через better-sqlite3. - Тесты на Vitest. ## Найденные соглашения - Маршруты лежат в src/routes. - Компоненты лежат в src/components. - Миграции базы данных лежат в src/db/migrations. - Тесты лежат в tests. ## Неизвестно - Цель развёртывания не задокументирована. - Конфигурация CI не найдена. - Политика линтинга и форматирования не найдена. ## Ограничения - Не добавлять новый фреймворк во время подключения SDD к существующему проекту. - Сохранять поведение существующих маршрутов, если спецификация фичи не требует другого. ``` ## Дорожная карта из TODO Если есть: ```markdown # TODO - Добавить форму обратной связи. - Добавить страницу о компании. - Добавить отзывы клиентов. - Добавить карту на страницу о компании. ``` Преобразуйте в маленькие фазы: ```markdown ## Фаза 1: форма обратной связи - [ ] Добавить таблицу feedback. - [ ] Добавить маршрут /feedback. - [ ] Добавить форму и список. - [ ] Добавить тесты проверки. ## Фаза 2: содержимое страницы о компании - [ ] Добавить статическую страницу о компании. - [ ] Добавить историю клиники и краткие биографии сотрудников. - [ ] Добавить ссылку в навигацию. ## Фаза 3: карта на странице о компании - [ ] Выбрать способ встраивания карты. - [ ] Добавить адрес. - [ ] Обеспечить аккуратное поведение при недоступной карте. ``` ## Спецификация фичи для существующего проекта После конституции продолжайте обычный цикл: ```text Найди следующую незавершённую фазу в @specs/roadmap.md. Создай для неё спецификацию фичи. Используй существующие соглашения кода; не добавляй новую архитектуру. Перед записью файлов спроси меня о границах, решениях и контексте. ``` ## Особые риски SDD в существующем проекте - Агент может принять случайный старый код за архитектурное правило. - README может быть устаревшим. - TODO может не отражать текущий приоритет. - Тесты могут закреплять ошибки. - Нельзя «очистить» проект в ветке фичи без явного разрешения. Поэтому спецификации существующего проекта должны различать «наблюдаемое», «решённое» и «неизвестное». ## Практика 1. Возьмите существующий небольшой проект. 2. Попросите Qwen Code собрать список только из фактов. 3. Создайте конституцию через интервью. 4. Сформируйте дорожную карту из TODO и пробелов. 5. Реализуйте одну маленькую фичу существующего проекта через спецификацию фичи. ## Контрольные вопросы 1. Почему восстановленная конституция должна отделять факты от предположений? 2. Какие источники можно использовать для дорожной карты существующего проекта? 3. Почему нельзя рефакторить старый код «по пути», если это не входит в спецификацию?