diff --git a/development/completion-evidence.md b/development/completion-evidence.md index 23db3d6..050f9f9 100644 --- a/development/completion-evidence.md +++ b/development/completion-evidence.md @@ -1,5 +1,7 @@ # Completion Evidence + + Фактические записи о поставке завершённых changes: Delivery Map, archive path, delivery commits, точные verification commands с наблюдёнными результатами и итог independent read-only review. Записи добавляются после archive и являются @@ -91,3 +93,50 @@ archive: (1) изменение ассерта в stale-тесте объясн поведения облигаций согласно дельте; (2) хрупкий глобальный скан стилей усилен до `toHaveLength(1)` вместо `some()`. 2 SUGGESTION приняты без действий (существующий паттерн хардкода URL в тестах, именование тестов). + +## 2026-08-25-codify-frontend-view-model-boundary + +**Change:** codify-frontend-view-model-boundary (schema `wealth-ledger-sdd`) +**Archive path:** `specs/openspec/changes/archive/2026-08-25-codify-frontend-view-model-boundary` +**Specs sync:** `skip_specs: true`; change закрепляет frontend/docs/process +границы View/ViewModel без изменения runtime product requirements. + +### Delivery Map + +| Area | Status | Outcome | +| --- | --- | --- | +| frontend | affected | `AccountPage` разделён на thin container, ViewModel и props-only view; VM владеет data/auth/router/application hooks и derived presentation model; view оставлен только с `useTranslation`; крупные смысловые секции вынесены в небольшие presentation components; добавлены VM regression tests | +| backend | N/A | API и backend-поведение не менялись | +| specs | affected | OpenSpec change заархивирован после workspace verification | +| docs | N/A | As-built product docs не менялись; Completion Evidence добавлен отдельным финальным docs-коммитом | + +### Delivery commits + +| Repo | Commit | Subject | +| --- | --- | --- | +| frontend | `fff36f252aa1a7bb18042c8fc2d06262b687b0b1` | refactor: enforce account page view model boundary | +| backend | — | N/A | +| specs | `5cc42f30cab997a6d0889c124279d06d64fc8e07` | docs(specs): archive frontend view model boundary change | +| docs | current evidence commit | docs: record frontend view model boundary evidence | + +### Verification + +| Command (repo) | Наблюдённый результат | +| --- | --- | +| `npm run test:run -- src/pages/account/ui/AccountPage.test.tsx` (frontend, baseline) | pass; 1 файл, 12 тестов | +| `npm run test:run -- src/pages/account/ui/AccountPage.test.tsx src/pages/account/ui/AccountPage.vm.test.tsx` (frontend) | pass; 2 файла, 15 тестов | +| `npm run typecheck` (frontend) | pass | +| `npm run lint` (frontend) | pass | +| `npm run knip` (frontend) | pass | +| `npm run deps` (frontend) | pass | +| `npm ci && npm run verify` (frontend, Node 22.21.0) | pass; runtime/hygiene/typecheck/lint/vitest/knip/deps/build/bundle-budget без ошибок; 18 test files / 64 tests | +| `openspec validate codify-frontend-view-model-boundary --type change --strict --store wealth-ledger-specs` (specs) | pass | +| `bash specs/scripts/verify-workspace-change.sh codify-frontend-view-model-boundary` (workspace, Node 22.21.0) | pass; Delivery Map verified frontend/specs=affected, backend/docs/runtime-openapi=N/A | +| `openspec validate --specs --strict --store wealth-ledger-specs` (specs) | pass; 20 passed, 0 failed | +| `bash specs/scripts/verify-openspec-authority.sh` (workspace) | pass | +| `git diff --check` (frontend/specs) | pass | + +### Independent read-only review + +Verdict: **PASS**. Critical и Important findings отсутствовали. Minor hygiene: +удалены случайные `.DS_Store` файлы из `specs` до archive/commit.