docs: make documentation checks self-contained
Docs security / security (pull_request) Successful in 6s
Docs verify / verify (pull_request) Successful in 11s
Conventional commits / commits (pull_request) Successful in 16s
Docs security / security (push) Successful in 9s
Docs verify / verify (push) Successful in 10s
Docs security / security (pull_request) Successful in 6s
Docs verify / verify (pull_request) Successful in 11s
Conventional commits / commits (pull_request) Successful in 16s
Docs security / security (push) Successful in 9s
Docs verify / verify (push) Successful in 10s
This commit was merged in pull request #14.
This commit is contained in:
@@ -93,7 +93,7 @@ sequenceDiagram
|
||||
[журнал операций](../operations/overview.md) или историю закрытых счетов.
|
||||
Для совокупного результата доступен [режим «Все счета»](../portfolio/all-accounts.md).
|
||||
|
||||
Согласованное поведение описывает [спецификация счетов](../../../specs/openspec/specs/brokerage-accounts/spec.md).
|
||||
Согласованное поведение описывает [спецификация счетов](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/brokerage-accounts/spec.md).
|
||||
Её раздел об экране пока требует одноколоночного списка и не описывает
|
||||
счётчики акций и облигаций. Текущая реализация и её проверки используют
|
||||
две колонки на широком экране и показывают эти счётчики. Расхождение требует
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
Access token действует 15 минут и хранится только в памяти браузера.
|
||||
Refresh token имеет серверный срок 7 дней, заменяется при восстановлении
|
||||
сессии и передаётся в cookie `refresh_token` с `httpOnly` и `SameSite=Lax`.
|
||||
Сроки определены в [спецификации сессий](../../../specs/openspec/specs/user-authentication/spec.md#requirement-access-и-refresh-сессии)
|
||||
Сроки определены в [спецификации сессий](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/user-authentication/spec.md#requirement-access-и-refresh-сессии)
|
||||
и [ADR 006](../../adr/006-auth-session-policy.md).
|
||||
|
||||
После перезагрузки SPA получает новый access token через refresh-cookie.
|
||||
@@ -117,6 +117,6 @@ Backend проверяет учётные данные и tokens, хранит
|
||||
и проверку атомарности с реальной изолированной базой.
|
||||
|
||||
Согласованное поведение находится в workspace-спецификации
|
||||
[User authentication](../../../specs/openspec/specs/user-authentication/spec.md).
|
||||
[User authentication](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/user-authentication/spec.md).
|
||||
Правила начального ожидания — в
|
||||
[состояниях интерфейса](../../architecture/cross-cutting/ui-resilience.md).
|
||||
|
||||
@@ -140,6 +140,6 @@ JavaScript Number. Отдельный ввод ограничен signed64: на
|
||||
сохраняет новую финансовую историю и при откате приложения. Устройство хранения
|
||||
описано в [контейнерах](../../architecture/containers.md#хранимые-данные-и-границы-доступа).
|
||||
Согласованный контракт банковского учёта находится в
|
||||
[manual-bank-cards](../../../specs/openspec/changes/add-manual-bank-cards/specs/manual-bank-cards/spec.md).
|
||||
[manual-bank-cards](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/changes/add-manual-bank-cards/specs/manual-bank-cards/spec.md).
|
||||
Автоматическая загрузка банковских данных, кредитные карты, другие валюты,
|
||||
бюджеты и общий баланс банковских денег с инвестициями в эту версию не входят.
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
для полного месяца это предыдущий полный месяц, иначе — непосредственно
|
||||
предшествующий интервал той же включительной длительности. Текущая страница
|
||||
его не показывает. Это расходится с
|
||||
[основным требованием сравнений](../../../specs/openspec/specs/brokerage-account-income-analytics/spec.md#requirement-period-comparisons-preserve-calendar-and-currency-meaning),
|
||||
[основным требованием сравнений](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/brokerage-account-income-analytics/spec.md#requirement-period-comparisons-preserve-calendar-and-currency-meaning),
|
||||
которое описывает оба сравнения. Требуется отдельно согласовать этот разрыв;
|
||||
здесь сохранено различие между ответом API и фактическим экраном.
|
||||
|
||||
@@ -104,7 +104,7 @@ Frontend проверяет принадлежность выплат по по
|
||||
|
||||
Аналитика только читает данные, не хранит историю операций и не рассчитывает налоги, инвестиционную эффективность, доходность, валютную конвертацию или общий мультивалютный итог.
|
||||
|
||||
Основное проверяемое поведение — в [спецификации дохода](../../../specs/openspec/specs/brokerage-account-income-analytics/spec.md),
|
||||
Основное проверяемое поведение — в [спецификации дохода](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/brokerage-account-income-analytics/spec.md),
|
||||
точная форма ответа — в [HTTP API](../../architecture/http-api.md).
|
||||
Не следует использовать календарь будущих событий для восстановления
|
||||
состава уже полученного дохода.
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
Суммы рассчитаны по количеству на `calculatedAt`. Они не учитывают будущие
|
||||
сделки, право владения на дату реестра и персональный налоговый расчёт.
|
||||
Есть неразрешённое ограничение интерпретации:
|
||||
[основная спецификация](../../../specs/openspec/specs/brokerage-account-upcoming-events/spec.md#requirement-forecasts-preserve-event-meaning-and-uncertainty)
|
||||
[основная спецификация](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/brokerage-account-upcoming-events/spec.md#requirement-forecasts-preserve-event-meaning-and-uncertainty)
|
||||
и текущая подсказка экрана называют прогноз суммой «до налогов», но для
|
||||
дивиденда реализация только умножает `dividend_net` на количество.
|
||||
Налоговый смысл этого поля не подтверждён локальными материалами; на
|
||||
@@ -61,7 +61,7 @@ API принимает необязательные `from` и `to` в форма
|
||||
Итоги остаются в ответе API; полный экран показывает список без общего итога.
|
||||
|
||||
Текущие controller, сервис и экран поддерживают выбор периода, тогда как
|
||||
[основная спецификация](../../../specs/openspec/specs/brokerage-account-upcoming-events/spec.md#requirement-account-page-presents-an-upcoming-events-list)
|
||||
[основная спецификация](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/brokerage-account-upcoming-events/spec.md#requirement-account-page-presents-an-upcoming-events-list)
|
||||
описывает фиксированные 30 дней и экран без фильтров. Документация отражает
|
||||
реализованный выбор периода, не изменяя это несогласованное требование.
|
||||
|
||||
|
||||
@@ -132,13 +132,13 @@ HTML-источник, общий кэш и поведение при измен
|
||||
выход очищает кэш сессии. Общие график, позиция и личные события
|
||||
имеют общее представление на страницах акций и облигаций.
|
||||
|
||||
Основные спецификации [портфеля](../../../specs/openspec/specs/portfolio-view/spec.md)
|
||||
и [журнала](../../../specs/openspec/specs/brokerage-account-ledger/spec.md)
|
||||
Основные спецификации [портфеля](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/portfolio-view/spec.md)
|
||||
и [журнала](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/brokerage-account-ledger/spec.md)
|
||||
описывают исходные финансовые понятия. Отдельная основная спецификация
|
||||
страницы облигации в текущем OpenSpec Store не найдена; условия вычислений
|
||||
подтверждены [каталогом](../../../backend/src/modules/investments/instruments/bonds/application/bond-catalog.service.ts),
|
||||
[рыночными данными](../../../backend/src/modules/investments/instruments/bonds/application/bond-market.service.ts),
|
||||
[выплатами](../../../backend/src/modules/investments/instruments/bonds/application/bond-income.service.ts)
|
||||
и [проверками](../../../backend/src/modules/investments/instruments/bonds/application/bond.spec.ts).
|
||||
подтверждены [каталогом](https://git.personal.ksv741.ru/WealthLedger/backend/src/commit/016782657acfd35ff3fd755462007938fac35156/src/modules/investments/instruments/bonds/application/bond-catalog.service.ts),
|
||||
[рыночными данными](https://git.personal.ksv741.ru/WealthLedger/backend/src/commit/016782657acfd35ff3fd755462007938fac35156/src/modules/investments/instruments/bonds/application/bond-market.service.ts),
|
||||
[выплатами](https://git.personal.ksv741.ru/WealthLedger/backend/src/commit/016782657acfd35ff3fd755462007938fac35156/src/modules/investments/instruments/bonds/application/bond-income.service.ts)
|
||||
и [проверками](https://git.personal.ksv741.ru/WealthLedger/backend/src/commit/016782657acfd35ff3fd755462007938fac35156/src/modules/investments/instruments/bonds/application/bond.spec.ts).
|
||||
Границы источников описаны в [разделе интеграций](../../integrations/README.md),
|
||||
сходное разделение рыночных и личных данных — в [акциях](stocks.md).
|
||||
|
||||
@@ -169,11 +169,11 @@ TTM означает последние 12 месяцев, MRQ — послед
|
||||
История открытых счетов не обещает полную историю владения, включая закрытые
|
||||
счета, переводы и универсальные корпоративные события.
|
||||
|
||||
Основные спецификации [портфеля](../../../specs/openspec/specs/portfolio-view/spec.md)
|
||||
и [журнала](../../../specs/openspec/specs/brokerage-account-ledger/spec.md)
|
||||
Основные спецификации [портфеля](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/portfolio-view/spec.md)
|
||||
и [журнала](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/brokerage-account-ledger/spec.md)
|
||||
задают исходные финансовые понятия. Отдельная основная спецификация страницы
|
||||
акции в текущем OpenSpec Store не найдена; описанные механизмы проверяются
|
||||
по [каталогу](../../../backend/src/modules/investments/instruments/stocks/application/stock-catalog.service.ts),
|
||||
[рыночным данным](../../../backend/src/modules/investments/instruments/stocks/application/stock-market.service.ts),
|
||||
[выплатам](../../../backend/src/modules/investments/instruments/stocks/application/stock-income.service.ts) и [проверкам](../../../backend/src/modules/investments/instruments/stocks/application/stock.spec.ts).
|
||||
по [каталогу](https://git.personal.ksv741.ru/WealthLedger/backend/src/commit/016782657acfd35ff3fd755462007938fac35156/src/modules/investments/instruments/stocks/application/stock-catalog.service.ts),
|
||||
[рыночным данным](https://git.personal.ksv741.ru/WealthLedger/backend/src/commit/016782657acfd35ff3fd755462007938fac35156/src/modules/investments/instruments/stocks/application/stock-market.service.ts),
|
||||
[выплатам](https://git.personal.ksv741.ru/WealthLedger/backend/src/commit/016782657acfd35ff3fd755462007938fac35156/src/modules/investments/instruments/stocks/application/stock-income.service.ts) и [проверкам](https://git.personal.ksv741.ru/WealthLedger/backend/src/commit/016782657acfd35ff3fd755462007938fac35156/src/modules/investments/instruments/stocks/application/stock.spec.ts).
|
||||
Сопоставление с облигациями — на [странице облигаций](bonds.md).
|
||||
|
||||
@@ -112,6 +112,6 @@ Backend хранит не более 100 страниц в памяти проц
|
||||
и `TBANK_UNAVAILABLE` сохраняют [общую семантику API](../../architecture/http-api.md).
|
||||
Пустой успешный ответ означает отсутствие подходящих операций, а не сбой.
|
||||
|
||||
Согласованное поведение описано в [спецификации журнала](../../../specs/openspec/specs/brokerage-account-ledger/spec.md).
|
||||
Согласованное поведение описано в [спецификации журнала](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/brokerage-account-ledger/spec.md).
|
||||
Фильтр конкретной бумаги и общий режим расширяют исходное описание отдельного
|
||||
счёта; их механизм раскрыт на страницах инструментов и общего портфеля.
|
||||
|
||||
@@ -109,11 +109,11 @@ Backend публикует статические маршруты под `/api/
|
||||
работать с отдельными счетами. При откате сначала возвращается клиент.
|
||||
Этот механизм не требует изменения схемы SQLite и миграции финансовых данных.
|
||||
|
||||
Основные спецификации [портфеля](../../../specs/openspec/specs/portfolio-view/spec.md),
|
||||
[операций](../../../specs/openspec/specs/brokerage-account-ledger/spec.md),
|
||||
[дохода](../../../specs/openspec/specs/brokerage-account-income-analytics/spec.md)
|
||||
и [событий](../../../specs/openspec/specs/brokerage-account-upcoming-events/spec.md)
|
||||
Основные спецификации [портфеля](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/portfolio-view/spec.md),
|
||||
[операций](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/brokerage-account-ledger/spec.md),
|
||||
[дохода](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/brokerage-account-income-analytics/spec.md)
|
||||
и [событий](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/brokerage-account-upcoming-events/spec.md)
|
||||
описывают отдельный счёт. Общий режим подтверждён действующими маршрутизаторами,
|
||||
сервисами и [проверками агрегации](../../../backend/src/modules/investments/all-accounts.spec.ts),
|
||||
сервисами и [проверками агрегации](https://git.personal.ksv741.ru/WealthLedger/backend/src/commit/016782657acfd35ff3fd755462007938fac35156/src/modules/investments/all-accounts.spec.ts),
|
||||
но не выделен в самостоятельную основную спецификацию. Не следует считать
|
||||
описание общего режима изменением требований к отдельному счёту.
|
||||
|
||||
@@ -90,8 +90,8 @@ frontend показывает до сотых. Положительное зна
|
||||
поэтому ограничение долей действует на все валюты. В общем портфеле проверка
|
||||
отрицательных денег выполняется по остаткам счетов до взаимозачёта.
|
||||
|
||||
Нормативные основы: [нормализованный состав](../../../specs/openspec/specs/portfolio-view/spec.md#requirement-нормализованный-состав-portfolio)
|
||||
и [точные значения и валютные агрегаты](../../../specs/openspec/specs/portfolio-view/spec.md#requirement-точные-значения-и-валютные-агрегаты).
|
||||
Нормативные основы: [нормализованный состав](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/portfolio-view/spec.md#requirement-нормализованный-состав-portfolio)
|
||||
и [точные значения и валютные агрегаты](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/portfolio-view/spec.md#requirement-точные-значения-и-валютные-агрегаты).
|
||||
Структура и общий режим подтверждены реализацией и её проверками;
|
||||
отдельных требований к ним в основной спецификации портфеля пока нет.
|
||||
Поля транспорта следует сверять с [HTTP API](../../architecture/http-api.md),
|
||||
|
||||
@@ -79,9 +79,9 @@ sequenceDiagram
|
||||
| Метаданные инструмента | Успешный поиск или подтверждённое отсутствие | Свежими считаются 24 часа; общий кэш на 500 ключей UID/FIGI, ошибки не сохраняются |
|
||||
|
||||
Это параметры текущей реализации, а не самостоятельная политика этого
|
||||
документа: [снимки](../../../../backend/src/modules/investments/portfolio/application/portfolio.service.ts),
|
||||
[метаданные](../../../../backend/src/integrations/tbank/instrument-metadata.service.ts) и
|
||||
[клиентский запрос](../../../../frontend/src/entities/portfolio/api/usePortfolio.ts).
|
||||
документа: [снимки](https://git.personal.ksv741.ru/WealthLedger/backend/src/commit/016782657acfd35ff3fd755462007938fac35156/src/modules/investments/portfolio/application/portfolio.service.ts),
|
||||
[метаданные](https://git.personal.ksv741.ru/WealthLedger/backend/src/commit/016782657acfd35ff3fd755462007938fac35156/src/integrations/tbank/instrument-metadata.service.ts) и
|
||||
[клиентский запрос](https://git.personal.ksv741.ru/WealthLedger/frontend/src/commit/9f7e342333b80bfacfd5bc394a2dcd0613d33ff3/src/entities/portfolio/api/usePortfolio.ts).
|
||||
|
||||
Пять минут — предельный возраст успешного снимка, а не дополнительные
|
||||
пять минут после окончания свежих 30 секунд. Запасной ответ сохраняет
|
||||
@@ -152,7 +152,7 @@ Frontend отображает название и остальные сведе
|
||||
источника; его увеличение не является гарантированным исправлением
|
||||
ограничения самого T-Bank.
|
||||
|
||||
Проверяемые правила: [свежесть и запасной снимок](../../../../specs/openspec/specs/portfolio-view/spec.md#requirement-свежесть-и-fallback-полного-portfolio-snapshot),
|
||||
[клиентские состояния](../../../../specs/openspec/specs/portfolio-view/spec.md#requirement-состояния-и-ошибки-portfolio-на-клиенте).
|
||||
Проверяемые правила: [свежесть и запасной снимок](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/portfolio-view/spec.md#requirement-свежесть-и-fallback-полного-portfolio-snapshot),
|
||||
[клиентские состояния](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/portfolio-view/spec.md#requirement-состояния-и-ошибки-portfolio-на-клиенте).
|
||||
Для расследования конкретного значения используйте
|
||||
[порядок диагностики](../how-to/investigate-discrepancy.md).
|
||||
|
||||
@@ -37,16 +37,16 @@
|
||||
теряет цифры, валюту или показатель, исследуйте frontend.
|
||||
Если исходные безопасные данные и нормализованный ответ расходятся,
|
||||
исследуйте backend. Если не совпадают ожидаемое и описанное поведение,
|
||||
сначала сопоставьте [спецификацию портфеля](../../../../specs/openspec/specs/portfolio-view/spec.md)
|
||||
сначала сопоставьте [спецификацию портфеля](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/portfolio-view/spec.md)
|
||||
и ограничения [потока загрузки](../flows/portfolio-loading.md).
|
||||
Исправление документации само по себе не разрешает конфликт требований
|
||||
и реализации.
|
||||
|
||||
Для адресной проверки исходников владельцами служат
|
||||
[сервис снимков](../../../../backend/src/modules/investments/portfolio/application/portfolio.service.ts),
|
||||
[валютные итоги](../../../../backend/src/modules/investments/portfolio/infrastructure/tbank-portfolio.mapper.ts),
|
||||
[структура](../../../../backend/src/modules/investments/portfolio/domain/portfolio-structure.ts) и
|
||||
[подготовка экрана](../../../../frontend/src/pages/account/ui/AccountPage.vm.ts).
|
||||
[сервис снимков](https://git.personal.ksv741.ru/WealthLedger/backend/src/commit/016782657acfd35ff3fd755462007938fac35156/src/modules/investments/portfolio/application/portfolio.service.ts),
|
||||
[валютные итоги](https://git.personal.ksv741.ru/WealthLedger/backend/src/commit/016782657acfd35ff3fd755462007938fac35156/src/modules/investments/portfolio/infrastructure/tbank-portfolio.mapper.ts),
|
||||
[структура](https://git.personal.ksv741.ru/WealthLedger/backend/src/commit/016782657acfd35ff3fd755462007938fac35156/src/modules/investments/portfolio/domain/portfolio-structure.ts) и
|
||||
[подготовка экрана](https://git.personal.ksv741.ru/WealthLedger/frontend/src/commit/9f7e342333b80bfacfd5bc394a2dcd0613d33ff3/src/pages/account/ui/AccountPage.vm.ts).
|
||||
Это точки продолжения расследования; смысл вычислений изложен выше.
|
||||
|
||||
Разбор завершён, когда различие объяснено составом, временем или определением
|
||||
|
||||
@@ -64,7 +64,7 @@ SQLite не хранит сам портфель: backend получает да
|
||||
без логотипа и с подписью результата. Отсутствующие показатели скрываются,
|
||||
а не подменяются нулём или заглушкой.
|
||||
|
||||
Существует расхождение: [согласованная спецификация представления позиций](../../../specs/openspec/specs/portfolio-view/spec.md#requirement-представление-карточек-позиций-на-клиенте)
|
||||
Существует расхождение: [согласованная спецификация представления позиций](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/portfolio-view/spec.md#requirement-представление-карточек-позиций-на-клиенте)
|
||||
требует доступности всех иных типов в отдельной секции, а текущие frontend
|
||||
и его проверка исключают `CURRENCY` только из списка карточек. Такие позиции
|
||||
остаются в ответе, валютных итогах, структуре и знаменателе долей остальных
|
||||
@@ -95,5 +95,5 @@ SQLite не хранит сам портфель: backend получает да
|
||||
Для проверки конкретной суммы используйте
|
||||
[руководство по расхождениям](how-to/investigate-discrepancy.md).
|
||||
Проверяемое поведение отдельного счёта описано в
|
||||
[спецификации портфеля](../../../specs/openspec/specs/portfolio-view/spec.md);
|
||||
[спецификации портфеля](https://git.personal.ksv741.ru/WealthLedger/specs/src/commit/9e227a563dda67620f0ad78228aa8a4c18bf35a0/openspec/specs/portfolio-view/spec.md);
|
||||
точную форму HTTP-ответа задаёт [OpenAPI backend](../../architecture/http-api.md).
|
||||
|
||||
Reference in New Issue
Block a user