Files
docs/development/audit-remediation.md
T

34 KiB
Raw Blame History

Audit remediation registry

Назначение

Это единый versioned реестр текущего состояния remediation для findings из всех технических audit snapshots. Каждый аудит — неизменяемый source of facts; этот документ хранит только текущий статус, путь продолжения и evidence последующих решений, не копируя полный текст finding.

Правила работы

  • Каждая audit-derived запись имеет один статус: planned, active, done, deferred или accepted.
  • Одновременно допускается не более одного active remediation change. Пока он существует, продолжается только он. При наличии planned ровно одна запись отмечается следующей рекомендуемой задачей, но она не запускается параллельно active change.
  • done требует даты, archive path OpenSpec change, commit для каждого затронутого Git-репозитория и точных non-mutating verification commands с observed results.
  • deferred и accepted требуют даты, rationale и review trigger либо ссылки на явное решение владельца.
  • При смене статуса обновляется только этот реестр; versioned audit snapshot не редактируется.

Текущее состояние workflow

Текущая задача

Завершить harden-agent-sdd-governance. Пока change active, новый remediation change не создаётся.

Следующая рекомендуемая задача

assess-auth-platform-options для AUD24-02. Она начинается только после archive текущего active change, применяет Solution Assessment к существующей реализации и зрелым auth platforms, включая Better Auth, и не предрешает миграцию.

Реестр findings

Аудит 13.08.2026

Audit ID Текущий статус Связь и следующее действие Terminal evidence или trigger
A-01 done См. WL-P2-03. CAS rotation и regression test, 2026-08-23.
A-02 accepted Ограниченная revocation model закреплена в ADR 006; access token живёт 15 минут. Пересмотреть, если продукт потребует немедленный отзыв access token.
A-03 deferred Production transport исключён из local MVP scope. Пересмотреть перед hosted deployment или reverse-proxy contract.
A-04 done docs/features/tbank-connection.md описывает поставленные Accounts, Portfolio, Ledger и Future Events. Current-state docs проверены 2026-08-24.
A-05 done См. WL-P1-03 и WL-P1-04. Canonical root и hard archive lifecycle, 2026-08-23.
A-06 done См. WL-P2-10. Architecture/development onboarding и link review, 2026-08-24.
A-07 done См. WL-P2-02. P2002 mapping и concurrent registration regression, 2026-08-23.
A-08 planned Объединить validation payload review с tighten-backend-request-feedback. Готово к выбору после active change.
A-09 planned Operations cache закрыт WL-P2-01; отдельно оценить session retention/index. Создать scoped change после решения приоритета.
A-10 deferred Текущая operational mitigation описана в T-Bank feature doc. Пересмотреть при наблюдаемой потере metadata или новом large-portfolio SLA.
A-11 done Исправлено и подтверждено самим snapshot 13.08.2026. Transport tests и единый Bearer owner.
A-12 done Исправлено в snapshot; дополнительно защищено WL-P3-03. Dependency boundary fixture passed, 2026-08-24.
A-13 deferred Frontend behavior закрыт; backend e2e зависит от WL-P2-05. Тот же stable Prisma trigger, что у WL-P2-05.
A-14 active harden-agent-sdd-governance. Completion Evidence только после archive.
A-15 active harden-agent-sdd-governance. Обновить current-state ADR и links.
A-16 active harden-agent-sdd-governance. Слоистые AGENTS и onboarding.
A-17 deferred Совпадает с accessibility scope WL-P3-04. Пересмотреть при включении accessibility/second locale в MVP scope.
A-18 active harden-agent-sdd-governance. Нормализовать H1 main spec и пройти strict validation.

Аудит 24.08.2026

Audit ID Цель Статус Связанный change Следующее действие / evidence
AUD24-01 Ввести risk-based testing без тестов ради файла или coverage. active harden-agent-sdd-governance Завершить gates и archive.
AUD24-02 Оценивать mature solutions и ретроспективно проверить auth platform. planned assess-auth-platform-options Начать только после active governance change; миграция не предрешена.
AUD24-03 Закрепить строгий artifact graph и роли OpenSpec. active harden-agent-sdd-governance Завершить gates и archive.
AUD24-04 Синхронизировать agent projection и hard archive blockers. active harden-agent-sdd-governance Завершить gates и archive.
AUD24-05 Добавить canonical repo gates и workspace dispatcher. active harden-agent-sdd-governance Завершить gates и archive.
AUD24-06 Ввести docs-as-code gate и authoritative process policy. active harden-agent-sdd-governance Завершить gates и archive.
AUD24-07 Сделать AGENTS компактными routing/enforcement layers. active harden-agent-sdd-governance Завершить gates и archive.
AUD24-08 Охватить одним registry все audit snapshots и исправить stale status. active harden-agent-sdd-governance Завершить gates и archive.
AUD24-09 Исправить current-state ADR/spec contradictions. active harden-agent-sdd-governance Завершить gates и archive.

P1

Audit ID Цель Репозитории Статус Связанный change Следующее действие Terminal evidence
WL-P1-01 Один владелец React Query cache identity. frontend done 2026-08-23-stabilize-frontend-query-and-strict-contracts — 2026-08-23; frontend 1250581, specs b8a3f96; npm run verify — passed (16 files, 48 tests).
WL-P1-02 Сделать strict TypeScript исполняемым gate и устранить 16 ошибок. frontend done 2026-08-23-stabilize-frontend-query-and-strict-contracts — 2026-08-23; frontend 1250581, specs b8a3f96; strict typecheck and full npm run verify passed.
WL-P1-03 Установить единственный canonical OpenSpec root. specs done 2026-08-23-harden-openspec-authority-and-lifecycle — 2026-08-23; frontend d870d53, backend fee4f8c, specs 51344d4, docs 0bc8d1c; authority verifier и 15 strict specs passed.
WL-P1-04 Сделать archive lifecycle доказательством завершённости. specs, docs done 2026-08-23-harden-openspec-authority-and-lifecycle — 2026-08-23; frontend d870d53, backend fee4f8c, specs 51344d4, docs 0bc8d1c; hard archive gate и independent review passed.
WL-P1-05 Разделить non-mutating lint check и auto-fix backend. backend done 2026-08-23-make-local-verification-agent-safe — 2026-08-23; backend 71d57d6, specs 72444db, docs 293df9c; npm run lint, app/test typecheck и 17 suites / 51 tests — passed.

P2

Audit ID Цель Репозитории Статус Связанный change Следующее действие Terminal evidence
WL-P2-01 Ограничить размер и eviction operations cache. backend, specs, docs done 2026-08-23-harden-auth-and-cache-concurrency — 2026-08-23; backend c77b3cf, specs 6e20cdf, docs 8568e7b; Node 22 lint, app/test typecheck и 56 unit tests passed.
WL-P2-02 Вернуть предсказуемый 409 при конкурентной регистрации. backend, specs, docs done 2026-08-23-harden-auth-and-cache-concurrency — 2026-08-23; backend c77b3cf, specs 6e20cdf, docs 8568e7b; P2002 mapping and barrier regression test passed.
WL-P2-03 Сделать refresh rotation атомарной. backend, specs, docs done 2026-08-23-harden-auth-and-cache-concurrency — 2026-08-23; backend c77b3cf, specs 6e20cdf, docs 8568e7b; CAS one-winner regression test passed.
WL-P2-04 Синхронизировать runtime, OpenAPI и auth success statuses. backend, frontend done 2026-08-24-align-api-contract-and-client-resilience — 2026-08-24; backend 9bd3400, frontend 6d892da, specs 800450d, docs b91280c; metadata regression, frontend OpenAPI check и runtime/snapshot SHA совпали.
WL-P2-05 Восстановить runnable backend e2e gate. backend deferred — Пересмотреть после следующей stable Prisma: три чистых migrate deploy на Node 22 должны пройти подряд. 2026-08-23; Prisma 7.9.1 на Node 22 воспроизводимо возвращает пустой schema-engine error даже для fresh SQLite DB; published latest также 7.9.1.
WL-P2-06 Добавить проходящий app/test TypeScript gate backend. backend done 2026-08-23-make-local-verification-agent-safe — 2026-08-23; backend 71d57d6, specs 72444db, docs 293df9c; npm run typecheck:app и npm run typecheck:test — passed.
WL-P2-07 Сохранять cached data во время background refetch. frontend done 2026-08-24-align-api-contract-and-client-resilience — 2026-08-24; frontend 6d892da, specs 800450d, docs b91280c; observable Accounts/Portfolio refetch tests и npm run verify — passed (17 files, 55 tests).
WL-P2-08 Нормализовать cold-start refresh failure. frontend done 2026-08-24-align-api-contract-and-client-resilience — 2026-08-24; frontend 6d892da, specs 800450d, docs b91280c; cold-start и protected-401 transport-failure tests passed.
WL-P2-09 Проверять backend runtime OpenAPI против frontend snapshot. backend, frontend done 2026-08-23-make-local-verification-agent-safe — 2026-08-23; frontend 7a3048c, backend 71d57d6, specs 72444db, docs 293df9c; runtime и snapshot SHA-256 совпали, frontend npm run openapi:check — passed.
WL-P2-10 Актуализировать onboarding и постоянную документацию. docs, frontend, backend, specs done 2026-08-24-refresh-project-documentation-and-agent-entrypoints — 2026-08-24; frontend be80ef2, backend fec542a, specs 9f68ae5, docs 88c0cd3; OpenSpec/authority, link-path review и independent review passed.
WL-P2-11 Зафиксировать одинаковый local bootstrap frontend/backend. frontend, backend, docs done 2026-08-23-make-local-verification-agent-safe — 2026-08-23; frontend 7a3048c, backend 71d57d6, specs 72444db, docs 293df9c; Node 22 policy и npm ci guidance зафиксированы.
WL-P2-12 Проверить применимость high dependency advisories. frontend, backend, specs, docs done 2026-08-24-address-dependency-advisories-and-repo-hygiene — 2026-08-24; frontend 826936c, backend 6052565, specs 8897bd9, docs 60a1c33; React Router обновлён, Prisma tooling risk принят с review trigger.
WL-P2-13 Дать одному agent workflow единый local verify interface. frontend, backend, specs, docs deferred — Вернуться после восстановления WL-P2-05 тем же Prisma trigger; затем выбрать минимальный общий interface. 2026-08-23; полный общий verdict не может быть достоверно зелёным, пока обязательный backend e2e migration gate блокируется Prisma 7.9.1.

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 done 2026-08-24-tighten-frontend-quality-guardrails — 2026-08-24; frontend 1fc269a, specs 2029519, docs fa5db07; Node 22 npm run verify — passed.
WL-P3-03 Восстановить FSD public API boundary. frontend done 2026-08-24-tighten-frontend-quality-guardrails — 2026-08-24; frontend 1fc269a, specs 2029519, docs fa5db07; dependency fixture gate — passed.
WL-P3-04 Исправить базовые language/loading accessibility semantics. frontend deferred — Пересмотреть при включении accessibility в MVP scope. 2026-08-24; текущий local MVP scope не включает accessibility remediation.
WL-P3-05 Ввести пропорциональный bundle regression budget. frontend done 2026-08-24-tighten-frontend-quality-guardrails — 2026-08-24; frontend 1fc269a, specs 2029519, docs fa5db07; initial JS payload 509,165 B ≤ 512,000 B.
WL-P3-06 Добавить coverage ratchet только как regression signal. frontend done 2026-08-24-tighten-frontend-quality-guardrails — 2026-08-24; frontend 1fc269a, specs 2029519, docs fa5db07; coverage 82.57/76.08/77.35/83.48% — passed.
WL-P3-07 Защитить рабочий .env от случайного commit. frontend, specs, docs done 2026-08-24-address-dependency-advisories-and-repo-hygiene — 2026-08-24; frontend 826936c, specs 8897bd9, docs 60a1c33; hygiene check passed.
WL-P3-08 Исключить runtime SQLite DB из Git. backend, specs, docs done 2026-08-24-address-dependency-advisories-and-repo-hygiene — 2026-08-24; backend 6052565, specs 8897bd9, docs 60a1c33; hygiene check passed.

История registry

Terminal evidence добавляется сюда только после завершения соответствующего change.

2026-08-24 — WL-P3-02, WL-P3-03, WL-P3-05, WL-P3-06: done

Change синхронизирован в canonical specs и архивирован в 2026-08-24-tighten-frontend-quality-guardrails.

  • Затронутые Git-репозитории: frontend 1fc269a (feat: enforce frontend quality guardrails), specs 2029519 (docs(specs): archive frontend quality guardrails), docs fa5db07 (docs: activate frontend quality guardrails remediation); terminal evidence фиксируется следующим docs commit.
  • Frontend под Node 22.21.0: npm run verify — passed: OpenAPI and hygiene checks, strict TypeScript, Biome, 17 test files / 56 tests, coverage all committed src 82.57% statements / 76.08% branches / 77.35% functions / 83.48% lines, Knip, dependency gate с четырьмя fixtures, production build и bundle gate. Initial JavaScript payload — 509,165 B при budget 512,000 B; committed lazy baselines включают все dynamic route boundaries, включая ProtectedLayout.
  • openspec validate tighten-frontend-quality-guardrails --type change --strict --store wealth-ledger-specs — passed до archive; после sync/archive openspec validate --specs --strict --store wealth-ledger-specs — 18 passed, 0 failed; bash specs/scripts/verify-openspec-authority.sh и git diff --check по затронутым repositories — passed.
  • opsx-verify не установлен как shell executable; выполнена эквивалентная процедура из .opencode/skills/openspec-verify-change/SKILL.md: completeness 21/21 tasks, 3 requirements / 7 scenarios, correctness и coherence — без blocking findings. Independent read-only review нашёл три Important guardrail gaps; после fixes re-review — без Critical или Important findings.
  • WL-P3-04 остаётся planned по явному решению owner: application accessibility semantics не входят в текущий MVP scope. Следующая единственная recommended задача — tighten-backend-request-feedback для WL-P3-01.

2026-08-24 — WL-P2-12, WL-P3-07, WL-P3-08: done

Change синхронизирован в canonical specs и архивирован в 2026-08-24-address-dependency-advisories-and-repo-hygiene.

  • Затронутые Git-репозитории: frontend 826936c (fix: harden frontend dependency and env hygiene), backend 6052565 (fix: harden backend runtime artifact hygiene), specs 8897bd9 (docs(specs): archive dependency hygiene remediation), docs 60a1c33 (docs: record dependency hygiene remediation evidence).
  • Frontend под Node 22: npm run verify — passed: OpenAPI check, hygiene check, strict TypeScript check, Biome, 17 test files / 55 tests, coverage, Knip, dependency check и production build. npm audit --omit=dev — 0 vulnerabilities; прямой react-router обновлён с 7.9.6 до 7.18.2 для GHSA-2w69-qvjg-hvjx.
  • Backend под Node 22: npm run hygiene:check, npm run lint, npm run typecheck:app, npm run typecheck:test и npm test -- --runInBand — passed (19 suites, 59 tests). Runtime dev.db удалён из Git; intentional textual fixtures остаются versionable. npm audit --omit=dev всё ещё показывает три high по Prisma CLI path prisma -> @prisma/config -> deepmerge-ts для GHSA-ggr8-5vv4-36mx: public runtime path не найден, риск принят как tooling-only. Review trigger: совместимый stable Prisma release должен устранить deepmerge-ts < 8.0.0, либо появится доказуемый runtime call path.
  • npm run test:e2e остаётся deferred по WL-P2-05: prisma migrate deploy на чистой temporary SQLite DB завершается пустым Schema engine error до Jest. Это не менялось данным change.
  • bash specs/scripts/verify-openspec-authority.sh — passed; openspec validate --specs --strict --store wealth-ledger-specs — 17 passed, 0 failed; git diff --check по четырём репозиториям — passed. Эквивалентная opsx-verify процедура подтвердила 13/13 tasks, correctness и coherence. Независимый read-only review после исправлений — без Critical, Important или Minor findings.

2026-08-24 — WL-P2-10: done

Change синхронизирован в canonical specs и архивирован в 2026-08-24-refresh-project-documentation-and-agent-entrypoints.

  • Затронутые Git-репозитории: frontend be80ef2 (docs: refresh frontend onboarding), backend fec542a (docs: refresh backend onboarding), specs 9f68ae5 (fix(specs): remove archived change duplicate после archive commit 5b7bc0f), docs 88c0cd3 (docs: refresh project onboarding entrypoints).
  • npm run verify в frontend под Node 22 — passed: OpenAPI check, strict TypeScript check, Biome, 17 test files / 55 tests, coverage, Knip, dependency check и production build.
  • Read-only link/path review — passed: 14 Markdown entrypoints без missing local links; MVP.md и CONTEXT.md удалены, а historical audit/archive references намеренно сохранены.
  • openspec validate --all --strict --store wealth-ledger-specs — 16 passed, 0 failed; bash specs/scripts/verify-openspec-authority.sh — passed; git diff --check по затронутым путям — passed.
  • Independent read-only standards/spec review выявил только Finder metadata и две неполные README links; metadata удалены, ссылки добавлены, re-review — passed. Эквивалентная opsx-verify процедура подтвердила completeness 16/16, correctness и coherence без blocking findings.

2026-08-24 — WL-P2-04, WL-P2-07, WL-P2-08: done

Change синхронизирован в canonical specs и архивирован в 2026-08-24-align-api-contract-and-client-resilience.

  • Затронутые Git-репозитории: frontend 6d892da (fix: preserve cached data during refresh failures), backend 9bd3400 (fix: align auth success status contract), specs 800450d (docs(specs): archive api contract resilience remediation), docs b91280c (docs: document auth and client refresh resilience).
  • Frontend под Node 22: npm run verify — passed: OpenAPI check, strict TypeScript check, Biome, 17 test files / 55 tests, coverage, Knip, dependency check и production build.
  • Backend под Node 22: npm run lint, npm run typecheck:app, npm run typecheck:test и npm test -- --runInBand — passed (19 suites, 59 tests). test:e2e не запускался: WL-P2-05 остаётся deferred из-за Prisma migration gate.
  • bash specs/scripts/verify-runtime-openapi.sh — passed: runtime и snapshot SHA-256 96744da5f307b37ee3d9233b3259043425f65e49bcc60f78b46c585a78251db4 совпали. openspec validate --specs --strict --store wealth-ledger-specs — 16 passed, 0 failed; authority verifier и git diff --check — passed.
  • opsx-verify выполнен эквивалентной процедурой из .opencode/skills/openspec-verify-change/SKILL.md: completeness 16/16 tasks, correctness и coherence — без blocking findings. Независимый read-only review не нашёл Critical, Important или Minor issues.

2026-08-23 — WL-P2-01, WL-P2-02, WL-P2-03: done

Change синхронизирован в main specs и архивирован в specs/openspec/changes/archive/2026-08-23-harden-auth-and-cache-concurrency.

  • Затронутые Git-репозитории: backend c77b3cf (fix: harden auth and cache concurrency), specs 6e20cdf (docs(specs): archive auth and cache remediation), docs 8568e7b (docs: record auth and cache concurrency policy).
  • Backend под Node 22: npm run lint, npm run typecheck:app, npm run typecheck:test и npm test -- --runInBand — passed (18 suites, 56 tests). test:e2e не запускался: WL-P2-05 остаётся deferred из-за Prisma migration gate.
  • openspec validate harden-auth-and-cache-concurrency --type change --strict --store wealth-ledger-specs — passed до archive; после sync openspec validate --specs --strict --store wealth-ledger-specs — 15 passed, 0 failed; authority verifier и git diff --check — passed.
  • opsx-verify не установлен как shell executable; выполнена эквивалентная процедура из .opencode/skills/openspec-verify-change/SKILL.md: completeness 12/12 tasks, correctness и coherence — без blocking findings. Independent read-only review не нашёл Critical/Important findings.

2026-08-23 — WL-P1-05, WL-P2-06, WL-P2-09, WL-P2-11: done

Change архивирован в specs/openspec/changes/archive/2026-08-23-make-local-verification-agent-safe.

  • Затронутые Git-репозитории: frontend 7a3048c (docs: document runtime OpenAPI verification), backend 71d57d6 (fix: make backend local verification safe), specs 72444db (docs(specs): archive local verification remediation), docs 293df9c (docs: document local verification workflow).
  • Backend под Node 22: npm run lint, npm run typecheck:app, npm run typecheck:test и npm test -- --runInBand — passed (17 suites, 51 tests).
  • npm run openapi:check в frontend — passed; bash specs/scripts/verify-runtime-openapi.sh — runtime и snapshot SHA-256 совпали.
  • openspec validate make-local-verification-agent-safe --type change --strict --store wealth-ledger-specs перед archive — passed; после sync openspec validate --specs --strict --store wealth-ledger-specs — 15 passed, 0 failed; authority verifier, git diff --check и independent read-only review — passed/no findings.

2026-08-23 — WL-P2-05, WL-P2-13: deferred

Под Node 22 prisma migrate deploy 7.9.1 несколько раз завершается пустым Schema engine error на новых SQLite DB до запуска Jest; при включении engine diagnostics результат меняется. npm view prisma version вернул ту же published stable версию 7.9.1. Поэтому не вводится параллельный migration runner и не создаётся общий workspace verdict с ложным зелёным статусом. Review trigger для обоих findings: следующая stable Prisma должна трижды подряд применить существующие migrations к чистой SQLite DB на Node 22.

2026-08-23 — WL-P1-03, WL-P1-04: harden-openspec-authority-and-lifecycle

Статус: done. Change синхронизирован в main specs и архивирован в specs/openspec/changes/archive/2026-08-23-harden-openspec-authority-and-lifecycle.

  • Затронутые Git-репозитории: frontend d870d53 (docs: define canonical OpenSpec store); backend fee4f8c (docs: define canonical OpenSpec store); specs 51344d4 (docs(specs): harden OpenSpec authority lifecycle); docs 0bc8d1c (docs: document OpenSpec authority lifecycle).
  • bash specs/scripts/verify-openspec-authority.test.sh — passed: positive fixture, второй OpenSpec root, implicit/conditional store selection, parenthesized invocation, archive override и framework planning location корректно отклоняются; references/** исключён.
  • bash specs/scripts/verify-openspec-authority.sh из workspace root и всех четырёх независимых repositories — OpenSpec authority verified: wealth-ledger-specs at specs/openspec.
  • openspec validate harden-openspec-authority-and-lifecycle --type change --strict --store wealth-ledger-specs — passed перед archive; openspec validate --specs --strict --store wealth-ledger-specs — 15 passed, 0 failed после sync/archive.
  • git diff --check в frontend, backend, specs и docs — exit 0 перед commits; независимый read-only review scope — Critical/Important findings отсутствуют.

2026-08-23 — WL-P1-01, WL-P1-02: stabilize-frontend-query-and-strict-contracts

Статус: done. OpenSpec change синхронизирован в main specs и архивирован в specs/openspec/changes/archive/2026-08-23-stabilize-frontend-query-and-strict-contracts.

  • Затронутые Git-репозитории: frontend commit 1250581 (fix: stabilize frontend query cache contracts); specs commit b8a3f96 (docs(specs): archive frontend query remediation).
  • npm run verify в frontend — passed: OpenAPI check, strict TypeScript check, Biome, 16 test files / 48 tests, coverage, Knip, dependency check и production build.
  • openspec validate stabilize-frontend-query-and-strict-contracts --type change --store wealth-ledger-specs — Change 'stabilize-frontend-query-and-strict-contracts' is valid перед archive.
  • openspec validate --specs --store wealth-ledger-specs — 14 specs passed, 0 failed перед archive.
  • git diff --check для staged OpenSpec archive/sync changes — exit 0.
  • Archive выполнен по явному разрешению владельца с одной незакрытой только административной задачей 4.2: она требует archive path и поэтому не могла быть закрыта до archive. Сразу после archive задача отмечена [x]; WL-P1-04 теперь active в harden-openspec-authority-and-lifecycle, чтобы убрать эту циклическую зависимость из будущего процесса.

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.