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