docs: add audit remediation registry

This commit is contained in:
2026-08-23 13:00:28 +03:00
parent 680fc03bec
commit 793d2012a3
5 changed files with 529 additions and 0 deletions
+2
View File
@@ -1,3 +1,5 @@
# Development
Здесь размещаются устойчивые правила разработки, локальной проверки и поставки. Требования и планы изменений остаются в `../specs/openspec`.
- [Audit remediation registry](audit-remediation.md) — текущий статус findings, следующий OpenSpec change и evidence завершённых улучшений.
+81
View File
@@ -0,0 +1,81 @@
# Audit remediation registry
## Назначение
Это versioned реестр текущего состояния remediation для findings из [технического аудита 20.08.2026](../audits/audit-20-08-2026.md). Аудит — неизменяемый source of facts; этот документ хранит только приоритет, статус, путь продолжения и evidence последующих решений.
## Правила работы
- Каждая audit-derived запись имеет один статус: `planned`, `active`, `done`, `deferred` или `accepted`.
- Одновременно допускается не более одного `active` remediation change. При отсутствии active change раздел «Следующая задача» содержит ровно один рекомендуемый change.
- `done` требует даты, archive path OpenSpec change, commit для каждого затронутого Git-репозитория и точных non-mutating verification commands с observed results.
- `deferred` и `accepted` требуют даты, rationale и review trigger либо ссылки на явное решение владельца.
- При смене статуса обновляется только этот реестр; versioned audit snapshot не редактируется.
## Текущее состояние workflow
- Bootstrap change: [`2026-08-23-establish-audit-remediation-workflow`](../../specs/openspec/changes/archive/2026-08-23-establish-audit-remediation-workflow/) — `archived`; это process foundation и не закрывает ни одного Audit ID.
- Active audit remediation change: отсутствует.
## Следующая задача
Создать в canonical store `wealth-ledger-specs` change `stabilize-frontend-query-and-strict-contracts` для **WL-P1-01** и **WL-P1-02**. Он должен исправить query cache identity, включить strict TypeScript и устранить все 16 выявленных strict errors с поведенческими regression tests.
## Реестр findings
### P1
| Audit ID | Цель | Репозитории | Статус | Связанный change | Следующее действие | Terminal evidence |
| --- | --- | --- | --- | --- | --- | --- |
| WL-P1-01 | Один владелец React Query cache identity. | frontend | planned | `stabilize-frontend-query-and-strict-contracts` (ещё не создан) | Создать change после bootstrap. | — |
| WL-P1-02 | Сделать strict TypeScript исполняемым gate и устранить 16 ошибок. | frontend | planned | `stabilize-frontend-query-and-strict-contracts` (ещё не создан) | Выполнить вместе с WL-P1-01. | — |
| WL-P1-03 | Установить единственный canonical OpenSpec root. | specs | planned | `harden-openspec-authority-and-lifecycle` (ещё не создан) | Запланировать после P1 frontend change. | — |
| WL-P1-04 | Сделать archive lifecycle доказательством завершённости. | specs, docs | planned | `harden-openspec-authority-and-lifecycle` (ещё не создан) | Запланировать вместе с WL-P1-03. | — |
| WL-P1-05 | Разделить non-mutating lint check и auto-fix backend. | backend | planned | `make-local-verification-agent-safe` (ещё не создан) | Запланировать после P1 lifecycle work. | — |
### P2
| Audit ID | Цель | Репозитории | Статус | Связанный change | Следующее действие | Terminal evidence |
| --- | --- | --- | --- | --- | --- | --- |
| WL-P2-01 | Ограничить размер и eviction operations cache. | backend | planned | `harden-auth-and-cache-concurrency` (ещё не создан) | Уточнить policy cache в design. | — |
| WL-P2-02 | Вернуть предсказуемый 409 при конкурентной регистрации. | backend | planned | `harden-auth-and-cache-concurrency` (ещё не создан) | Добавить parallel integration scenario. | — |
| WL-P2-03 | Сделать refresh rotation атомарной. | backend | planned | `harden-auth-and-cache-concurrency` (ещё не создан) | Выбрать CAS/transaction policy. | — |
| WL-P2-04 | Синхронизировать runtime, OpenAPI и auth success statuses. | backend, frontend | planned | `align-api-contract-and-client-resilience` (ещё не создан) | Выбрать единый status contract. | — |
| WL-P2-05 | Восстановить runnable backend e2e gate. | backend | planned | `make-local-verification-agent-safe` (ещё не создан) | Диагностировать schema-engine failure. | — |
| WL-P2-06 | Добавить проходящий app/test TypeScript gate backend. | backend | planned | `make-local-verification-agent-safe` (ещё не создан) | Разделить app и test compilation. | — |
| WL-P2-07 | Сохранять cached data во время background refetch. | frontend | planned | `align-api-contract-and-client-resilience` (ещё не создан) | Зафиксировать stale-data scenarios. | — |
| WL-P2-08 | Нормализовать cold-start refresh failure. | frontend | planned | `align-api-contract-and-client-resilience` (ещё не создан) | Добавить failure test. | — |
| WL-P2-09 | Проверять backend runtime OpenAPI против frontend snapshot. | backend, frontend | planned | `make-local-verification-agent-safe` (ещё не создан) | Спроектировать read-only contract gate. | — |
| WL-P2-10 | Актуализировать onboarding и постоянную документацию. | docs, frontend, backend, specs | planned | `refresh-project-documentation-and-agent-entrypoints` (ещё не создан) | Сверить docs с delivered features. | — |
| WL-P2-11 | Зафиксировать одинаковый local bootstrap frontend/backend. | frontend, backend, docs | planned | `make-local-verification-agent-safe` (ещё не создан) | Описать Node/npm policy и `npm ci`. | — |
| WL-P2-12 | Проверить применимость high dependency advisories. | frontend, backend | planned | `address-dependency-advisories-and-repo-hygiene` (ещё не создан) | Исследовать call paths до обновления версий. | — |
| WL-P2-13 | Дать одному agent workflow единый local verify interface. | frontend, backend, specs, docs | planned | `make-local-verification-agent-safe` (ещё не создан) | Спроектировать workspace verifier. | — |
### P3
| Audit ID | Цель | Репозитории | Статус | Связанный change | Следующее действие | Terminal evidence |
| --- | --- | --- | --- | --- | --- | --- |
| WL-P3-01 | Сделать unknown request fields явной ошибкой или документированной policy. | backend | planned | `tighten-backend-request-feedback` (ещё не создан) | Выбрать validation policy. | — |
| WL-P3-02 | Устранить shared i18n import cycle. | frontend | planned | `tighten-frontend-quality-guardrails` (ещё не создан) | Добавить cycle rule и leaf import. | — |
| WL-P3-03 | Восстановить FSD public API boundary. | frontend | planned | `tighten-frontend-quality-guardrails` (ещё не создан) | Расширить dependency rule. | — |
| WL-P3-04 | Исправить базовые language/loading accessibility semantics. | frontend | planned | `tighten-frontend-quality-guardrails` (ещё не создан) | Добавить semantic status primitive. | — |
| WL-P3-05 | Ввести пропорциональный bundle regression budget. | frontend | planned | `tighten-frontend-quality-guardrails` (ещё не создан) | Проверить route splitting boundaries. | — |
| WL-P3-06 | Добавить coverage ratchet только как regression signal. | frontend | planned | `tighten-frontend-quality-guardrails` (ещё не создан) | Зафиксировать baseline после risk tests. | — |
| WL-P3-07 | Защитить рабочий `.env` от случайного commit. | frontend | planned | `address-dependency-advisories-and-repo-hygiene` (ещё не создан) | Уточнить `.env`/example policy. | — |
| WL-P3-08 | Исключить runtime SQLite DB из Git. | backend | planned | `address-dependency-advisories-and-repo-hygiene` (ещё не создан) | Проверить безопасный relocation/ignore. | — |
## История registry
Terminal evidence добавляется сюда только после завершения соответствующего change. На момент создания registry завершённых audit-derived changes нет.
### 2026-08-23 — bootstrap verification: `establish-audit-remediation-workflow`
Этот process change не закрывает Audit ID. Перед archive выполнены следующие read-only checks:
- `cmp -s audit-20-08-2026.md docs/audits/audit-20-08-2026.md` — exit 0; versioned snapshot byte-for-byte совпадает с исходной локальной копией.
- `openspec validate establish-audit-remediation-workflow --type change --store wealth-ledger-specs` — `Change ... is valid`.
- Структурная проверка registry — 26 records, 26 `planned`, 0 `active`, 0 `done`, одна «Следующая задача»; все четыре agent pointers и оба registry links разрешаются.
- `git diff --check` в frontend, backend, specs и docs — exit 0.
- Независимый read-only review registry-to-audit mapping, OpenSpec links, instruction discoverability и scope diff — `findings: none`.
- `opsx-verify` доступен как OpenCode command, но не установлен как shell executable в этой среде; выполнена эквивалентная процедура из `.opencode/skills/openspec-verify-change/SKILL.md` с теми же dimensions completeness, correctness и coherence.
- Change синхронизирован в main specs и архивирован в [`specs/openspec/changes/archive/2026-08-23-establish-audit-remediation-workflow`](../../specs/openspec/changes/archive/2026-08-23-establish-audit-remediation-workflow/).