Files
specs/openspec/specs/project-foundation/spec.md
T

6.6 KiB
Raw Blame History

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