## 1. Canonical OpenSpec authority - [x] 1.1 Обновить корневой `AGENTS.md` и `frontend/AGENTS.md`, `backend/AGENTS.md`, `specs/AGENTS.md`, `docs/AGENTS.md`: объявить `wealth-ledger-specs`/`specs/openspec` единственным SDD store, потребовать `--store wealth-ledger-specs`, запретить versioned framework-specific planning artifacts вне store и сохранить исключение `references/**`. - [x] 1.2 В каждом из восьми `.opencode/commands/opsx-*.md` и восьми `.opencode/skills/openspec-*/SKILL.md` заменить conditional store-selection guidance на fixed `wealth-ledger-specs`; все OpenSpec commands, читающие или изменяющие change, должны содержать `--store wealth-ledger-specs` и не должны допускать nearest-root/global-default fallback. - [x] 1.3 Изменить `.opencode/commands/opsx-archive.md` и `.opencode/skills/openspec-archive-change/SKILL.md`: блокировать archive без подтверждающего обхода, если отсутствует `tasks.md`, любой planning artifact не `done`/`skipped` или в tasks есть `- [ ]`; описать post-archive evidence и commits как действие после archive, не как task change. ## 2. Read-only authority verifier - [x] 2.1 Создать `specs/scripts/verify-openspec-authority.sh`, который по собственному расположению определяет workspace, не делает writes и проверяет `specs/.openspec-store/store.yaml`, единственный project-owned `specs/openspec`, пять `AGENTS.md`, все шестнадцать `.opencode` entrypoints, отсутствие generated fallback wording и известных framework planning locations вне store; исключить `references/**`, `.git`, dependencies и generated outputs. - [x] 2.2 Добавить в verifier понятные сообщения для каждого нарушенного инварианта и ненулевой exit status; success path должен сообщать проверенное canonical authority без изменения tracked files. - [x] 2.3 Добавить в `specs/AGENTS.md` documented command verifier и выполнить read-only проверки success path, дополнительного `openspec/` root, неявного entrypoint и запрещённого planning location на временных fixtures, не изменяя project-owned tracked files. ## 3. Durable documentation и remediation state - [x] 3.1 Создать в `docs/development` краткую durable documentation authority/lifecycle contract: границы `specs/openspec`, `docs`, application repos и `references/**`; объяснить, что requirements, design и tasks не дублируются вне canonical store. - [x] 3.2 Добавить документ в `docs/development/README.md` и убедиться, что он ссылается на canonical OpenSpec store, а не создаёт второй change-specific SDD artifact. - [x] 3.3 Обновить `docs/development/audit-remediation.md`: сделать `harden-openspec-authority-and-lifecycle` active change для WL-P1-03/WL-P1-04 и убрать его из формулировки «ещё не создан», не помечая findings как `done` до фактического archive evidence. ## 4. Historical archive reconciliation - [x] 4.1 Собрать read-only evidence из OpenSpec archive и Git history specs, docs, backend и frontend для `2026-08-17-redesign-position-cards`; установить фактические archive path и commits либо документировать недостающий факт. - [x] 4.2 Только если evidence подтверждено, отметить tasks 6.2 и 6.3 archived change как complete и добавить dated reconciliation note с exact commands, observed results и различием между исходным archive и текущей проверкой; не менять implementation files, delta specs, archive date или историю Git. ## 5. Pre-archive verification - [x] 5.1 Запустить authority verifier из workspace root и из `frontend`, `backend`, `specs` и `docs`; зафиксировать в change точные команды и observed results для дальнейшего completion evidence. - [x] 5.2 Нормализовать RFC 2119 маркеры в `brokerage-account-ledger` через delta-spec без изменения требований или сценариев; выполнить `openspec validate harden-openspec-authority-and-lifecycle --type change --strict --store wealth-ledger-specs`, `openspec validate --specs --strict --store wealth-ledger-specs` и `git diff --check` в каждом затронутом Git repository; устранить все blocking results. - [x] 5.3 Выполнить независимый read-only review delta specs, policy boundaries, archive gate, verifier exclusions и historical reconciliation; подтвердить, что tasks не содержат post-archive bookkeeping или commit/registry-completion checkbox. ## Pre-archive verification evidence — 2026-08-23 - `bash specs/scripts/verify-openspec-authority.sh` из workspace root — `OpenSpec authority verified: wealth-ledger-specs at specs/openspec`. - `cd frontend && bash ../specs/scripts/verify-openspec-authority.sh` — success с тем же результатом. - `cd backend && bash ../specs/scripts/verify-openspec-authority.sh` — success с тем же результатом. - `cd specs && bash scripts/verify-openspec-authority.sh` — success с тем же результатом. - `cd docs && bash ../specs/scripts/verify-openspec-authority.sh` — success с тем же результатом. - `bash specs/scripts/verify-openspec-authority.test.sh` — success; fixture подтверждает success path, дополнительный project-owned OpenSpec root, неявный store selection (включая вызов в скобках), conditional `--store ""`, archive override wording, запрещённый `docs/superpowers/plans` и исключение `references/**`. - `openspec validate harden-openspec-authority-and-lifecycle --type change --strict --store wealth-ledger-specs` — `Change 'harden-openspec-authority-and-lifecycle' is valid`. - Первый запуск `openspec validate --specs --strict --store wealth-ledger-specs` выявил baseline `brokerage-account-ledger`: strict validator требует RFC 2119 `SHALL` или `MUST`, тогда как main spec использовала русское «ДОЛЖНА». По явному решению владельца change получил delta-spec, нормализующий только маркеры без изменения requirements или scenarios. - Повторный `openspec validate --specs --strict --store wealth-ledger-specs` — 14 passed, 0 failed. - `git diff --check` в frontend, backend, specs и docs — exit 0. - Независимый read-only review 2026-08-23 — Critical/Important findings отсутствуют; проверены все 16 `.opencode` entrypoints, hard archive gate, exclusions verifier и historical reconciliation.