# Приложение B. Доменная карта AgentClinic AgentClinic — учебный проект, на котором показывается SDD-цикл. Это маленькое сатирическое приложение про «клинику» для программных агентов. Домен нужен не ради шутки. Он даёт достаточно сущностей, чтобы показать маршруты, базу данных, фазы, проверки и расширение MVP, но остаётся простым. ## Сущности | Сущность | Что означает | Пример | | --- | --- | --- | | Агент | программный помощник или бот | «SpecWriter», «BugFixer» | | Недуг | повторяющаяся проблема агента | «галлюцинирует API», «рефакторит без спроса» | | Терапия | способ помочь агенту | «строгий validation.md», «короткая сессия после /clear» | | Запись на приём | заявка пользователя | имя, сообщение, выбранный недуг | | Отзыв | обратная связь о клинике | имя, сообщение, дата | ## Минимальные маршруты К концу учебника проект может иметь такие маршруты: | Маршрут | Смысл | | --- | --- | | `/` | главная страница | | `/agents` | список агентов | | `/agents/:id` | карточка агента и связанные недуги | | `/ailments` | список недугов | | `/therapies` | список терапий | | `/appointments` | форма записи | | `/feedback` | форма обратной связи | | `/dashboard` | простая панель администратора | Не все маршруты нужны в первой фазе. В SDD важно не построить всё сразу, а последовательно добавлять проверяемые фрагменты. ## Возможные таблицы SQLite ```text agents id name description ailments id title description therapies id title description agent_ailments agent_id ailment_id appointments id name message ailment_id created_at feedback id name message created_at ``` Это не обязательная схема. Она нужна как ориентир для спецификаций и фактов проверки. ## Как домен раскладывается по фазам | Фаза | Поставляемый результат | Минимальные факты | | --- | --- | --- | | Hello Hono | приложение отвечает на `/` | `GET /` возвращает 200 | | Агенты и недуги | список агентов и карточка агента | есть связанный список недугов | | Терапии | страницы способов лечения | маршруты возвращают 200 | | Запись на приём | форма и сохранение заявки | невалидная форма отклоняется | | Обратная связь | форма отзывов | последние отзывы видны после сохранения | | Панель администратора | счётчики сущностей | счётчики совпадают с базой | ## Что не входит в учебный домен Чтобы проект оставался учебным, не добавляйте без отдельной спецификации: - настоящую медицинскую терминологию; - реальные персональные данные; - платёжные сценарии; - авторизацию с ролями; - внешнюю отправку писем; - сложные графики; - интеграции с реальными сервисами. Если хочется добавить такую функцию, сделайте её отдельной фазой и начните с `requirements.md`, `plan.md` и `validation.md`. ## Доменный словарь для спецификаций Используйте одинаковые слова во всех главах и спецификациях: - «агент», а не вперемешку «бот», «ассистент», «модель»; - «недуг», а не «проблема» в одном файле и «симптом» в другом; - «терапия», а не «решение» там, где речь о доменной сущности; - «запись на приём», а не «заявка» без пояснения; - «отзыв», а не «feedback» в русском тексте. Технические имена маршрутов, таблиц и файлов оставляйте на английском, если они уже используются в коде.