docs: record ledger entry type label evidence
This commit is contained in:
@@ -529,3 +529,71 @@ Change Owner дополнительно удалены children-only aliases в
|
|||||||
`type TestWrapperProps = PropsWithChildren` и чистые barrel imports ради
|
`type TestWrapperProps = PropsWithChildren` и чистые barrel imports ради
|
||||||
последующего re-export; обе convention-проверки подтверждены пустыми `rg`
|
последующего re-export; обе convention-проверки подтверждены пустыми `rg`
|
||||||
результатами. Generated OpenAPI source остался вне manual migration.
|
результатами. Generated OpenAPI source остался вне manual migration.
|
||||||
|
|
||||||
|
## 2026-08-27-ledger-entry-type-label
|
||||||
|
|
||||||
|
**Change:** ledger-entry-type-label (schema `wealth-ledger-sdd`)
|
||||||
|
**Archive path:** `specs/openspec/changes/archive/2026-08-27-ledger-entry-type-label`
|
||||||
|
**Specs sync:** дельта `brokerage-account-ledger` — «Full ledger presents
|
||||||
|
compact rows» слита в main spec (1 модифицированный Requirement с новыми
|
||||||
|
scenarios «Отображение купона», «Отображение дивиденда» и «Подпись типа не
|
||||||
|
дублируется»); post-archive strict validation — `20 passed, 0 failed` для main
|
||||||
|
specs и `38 passed, 0 failed` для archived changes.
|
||||||
|
|
||||||
|
### Delivery Map
|
||||||
|
|
||||||
|
| Area | Status | Outcome |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| frontend | affected | `LedgerEntryRow` показывает подпись типа события вместо цветной подписи направления: для income по upstream `type` — «Купон» (`OPERATION_TYPE_COUPON`) или «Дивиденд» (остальные income-типы), иначе — подпись категории; категория убрана из вторичной метадаты (дата · инструмент); знак «+»/«−» и семантический цвет остаются носителями направления; без денежного движения — «Без движения денег»; добавлены i18n-ключи `ledger.entryLabel.income.*`, удалены неиспользуемые `ledger.direction.*`; тесты обновлены (сценарии «Купон»/«Дивиденд»/«Комиссия») |
|
||||||
|
| backend | N/A | API contract, маппинг категорий и финансовые расчёты не менялись; `category` и upstream `type` уже были в контракте |
|
||||||
|
| specs | affected | Approved Proposal, Delta Specs, Design и Tasks заархивированы; delta синхронизирована в main spec |
|
||||||
|
| docs | affected | as-built `features/brokerage-account-ledger.md` описывает подпись типа события, знак и цвет как носители направления, отсутствие дублирования категории во вторичной метадате |
|
||||||
|
|
||||||
|
### Delivery commits
|
||||||
|
|
||||||
|
| Repo | Commit | Subject |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| frontend | `d53ce50e2842e8d69a709b92417888ba851774b4` | feat(broker-operation): show operation type label in ledger entries |
|
||||||
|
| specs (archive) | `37c0133e8baf15959a0c38e45e7b7ac320b8084f` | docs(specs): archive ledger-entry-type-label change and sync main spec |
|
||||||
|
| docs (as-built) | `2abb5912b2db23d4984ca3b99578310596d66555` | docs(brokerage-account-ledger): describe operation type label and no category duplication |
|
||||||
|
| docs (evidence) | current evidence commit | docs: record ledger entry type label evidence |
|
||||||
|
|
||||||
|
### Verification
|
||||||
|
|
||||||
|
| Command (repo) | Наблюдённый результат |
|
||||||
|
| --- | --- |
|
||||||
|
| `npm ci` (frontend, Node 22) | pass; 419 packages from offline cache, 0 vulnerabilities |
|
||||||
|
| `npm run verify` (frontend) | pass (exit 0); strict TypeScript, Biome, coverage (`21` files / tests зелёные), Knip, dependency-cruiser и production build прошли без ошибок |
|
||||||
|
| `npm ci` (docs) | pass |
|
||||||
|
| `npm run verify` (docs) | pass (exit 0); markdownlint `38` files, `0` issues, `git diff --check` clean |
|
||||||
|
| `openspec validate ledger-entry-type-label --type change --strict --store wealth-ledger-specs` (specs, pre-archive) | pass; change valid |
|
||||||
|
| `openspec validate --specs --strict --store wealth-ledger-specs` (specs, pre/post-archive) | pass; `20 passed, 0 failed` |
|
||||||
|
| `openspec archive ledger-entry-type-label --store wealth-ledger-specs --yes` (specs) | pass; Task status Complete, main spec `brokerage-account-ledger` обновлён (`~ 1 modified`), archived as `2026-08-27-ledger-entry-type-label` |
|
||||||
|
| `openspec validate --archived --strict --store wealth-ledger-specs` (specs, post-archive) | pass; `38 passed, 0 failed` |
|
||||||
|
| `git diff --check` (frontend/docs/specs) | pass (clean) |
|
||||||
|
|
||||||
|
Environment note: `specs/scripts/verify-workspace-change.sh` and
|
||||||
|
`verify-openspec-version.sh` отсутствуют в данном checkout, поэтому
|
||||||
|
workspace-verify выполнялся native OpenSpec validation (`openspec validate
|
||||||
|
--change --strict --tasks`-эквивалент через `open spec validate --type change
|
||||||
|
--strict`) + canonical gates каждого affected repo (frontend/docs) по одному
|
||||||
|
разу; `openspec schema validate wealth-ledger-sdd` недоступен в CLI 1.10.0
|
||||||
|
(только `spec-driven`), что не блокирует archive — команда archive сама
|
||||||
|
выполнила strict-валидацию и синхронизацию. Git-repository созданы без
|
||||||
|
remote, поэтому push не выполнялся (некуда пушить).
|
||||||
|
|
||||||
|
Все Tasks были завершены до archive. Semantic verification подтвердила каждый
|
||||||
|
delta Requirement: подпись типа по `category`+`type` (income → «Купон» или
|
||||||
|
«Дивиденд», иначе категория), отсутствие дублирования подписи во вторичной
|
||||||
|
метадате, знак и цвет как носители направления, нейтральная запись без
|
||||||
|
движения денег без цены/количества, и обзор счёта (пять последних записей)
|
||||||
|
разделяет ту же семантику через общий `LedgerEntryRow`.
|
||||||
|
|
||||||
|
### Independent read-only review
|
||||||
|
|
||||||
|
Verdict: **PASS**. Critical findings — `0`, Important findings — `0`, Minor
|
||||||
|
findings — `0`. Изменение чисто презентационное (текстовая подпись строки +
|
||||||
|
i18n), backend/API contract, денежные расчёты, безопасность и данные не
|
||||||
|
затрагиваются; знак «+»/«−` сохраняет направление независимо от цвета
|
||||||
|
(accessibility); конфликтов, race conditions, log noise, non-determinism,
|
||||||
|
DEBUG/TODO/console и deprecated API не внесено.
|
||||||
|
|||||||
Reference in New Issue
Block a user