6.6 KiB
project-foundation Specification
Purpose
Определяет минимальный, согласованный фундамент рабочих приложений и правила их совместного развития через отдельные репозитории и SDD-изменения.
Requirements
Requirement: Репозитории содержат локальные инструкции для AI-агентов
Система SHALL содержать обзорный AGENTS.md в корне рабочей области и
отдельный AGENTS.md в репозиториях frontend, backend, specs и docs.
Инструкции MUST описывать назначение области, локальные команды проверки,
границы ответственности и связь с SDD-артефактами. Каждая инструкция MUST
объявлять wealth-ledger-specs и specs/openspec как canonical OpenSpec
authority, требовать явный --store wealth-ledger-specs для поддерживаемых
OpenSpec операций и запрещать versioned framework-specific planning artifacts
вне canonical store. Локальные инструкции MUST направлять агента к durable
documentation, относящейся к его области, и к durable remediation registry,
когда задача связана с findings технического аудита. Backend instructions MUST
различать non-mutating verification commands и явные auto-fix commands.
Scenario: Агент начинает работу в отдельном репозитории
- WHEN агент открывает любой из репозиториев frontend, backend, specs или docs
- THEN он может определить локальные правила работы, canonical OpenSpec
authority, источник связанных спецификаций и относящийся к области durable
documentation из
AGENTS.mdэтого репозитория
Scenario: Агент получает audit-derived задачу из отдельного репозитория
- WHEN задача ссылается на finding технического аудита
- THEN локальный
AGENTS.mdуказывает на remediation registry и canonical OpenSpec workflow с явным store selection до начала изменения кода
Scenario: Агент выбирает backend quality gate
- WHEN агент читает backend instructions перед локальной проверкой
- THEN он запускает документированные non-mutating lint/typecheck commands и не получает auto-fix как неявный quality gate
Requirement: Корень рабочей области не хранит delivery-plan файл
Корень рабочей области MUST NOT содержать MVP.md или другой versioned
delivery-plan файл как источник требований, порядка поставки или фактического
поведения. Требования SHALL оставаться в OpenSpec, а delivered system overview
и долговечные ограничения SHALL находиться в docs. Frontend и backend MUST
требовать Node 22 и документировать lockfile-safe bootstrap через npm ci.
Scenario: Агент определяет границы поставленной системы
- WHEN агент начинает работу и ищет актуальные границы WealthLedger
- THEN он находит их в durable documentation и canonical OpenSpec, а не в корневом delivery-plan файле
Scenario: Агент bootstrap-ит application repository
- WHEN агент начинает локальную проверку frontend или backend на чистой машине
- THEN он может определить Node 22 и выполнить
npm ciбез угадывания runtime policy
Requirement: Frontend предоставляет минимальный каркас приложения
Frontend SHALL предоставлять русскоязычный адаптивный каркас приложения с маршрутами /login, /register, /accounts, /accounts/:accountId и /settings, светлой финансовой темой и навигацией для счетов и настроек. Каркас MUST содержать состояния загрузки, ошибки и пустых данных без реализации доменных сценариев.
Scenario: Пользователь открывает маршрут MVP
- WHEN пользователь переходит на любой маршрут MVP
- THEN frontend отображает соответствующий каркас страницы и не показывает шаблонный Todo-интерфейс
Requirement: Backend предоставляет безопасный API-фундамент
Backend SHALL публиковать HTTP API с префиксом /api/v1, принимать разрешенные frontend origins только из конфигурации и возвращать клиенту безопасные ошибки без секретов или внутренних деталей.
Scenario: Запрос приходит с неразрешенного origin
- WHEN браузер отправляет cross-origin запрос не с настроенного frontend origin
- THEN backend не разрешает браузеру доступ к ответу через CORS
Requirement: Frontend typecheck строго проверяет application и tooling code
Frontend MUST включать TypeScript strict mode для application source и Vite tooling source. Команда локального frontend typecheck MUST завершаться с ошибкой при любом нарушении strict TypeScript и завершаться успешно для committed frontend code.
Scenario: Agent проверяет frontend перед завершением задачи
- WHEN агент запускает documented frontend verification или его typecheck stage
- THEN проверка выполняет strict TypeScript compilation application и Vite tooling source и сообщает non-zero exit code при strict diagnostic