Files
docs/development/audit-remediation.md
T

82 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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: [`stabilize-frontend-query-and-strict-contracts`](../../specs/openspec/changes/stabilize-frontend-query-and-strict-contracts/) — `active` для WL-P1-01 и WL-P1-02.
## Следующая задача
Выбор следующего remediation change отложен до terminal status активного [`stabilize-frontend-query-and-strict-contracts`](../../specs/openspec/changes/stabilize-frontend-query-and-strict-contracts/). Его scope: исправить 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 | active | `stabilize-frontend-query-and-strict-contracts` | Выполнить согласованные OpenSpec tasks. | — |
| WL-P1-02 | Сделать strict TypeScript исполняемым gate и устранить 16 ошибок. | frontend | active | `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/).