Files

43 lines
7.3 KiB
Markdown
Raw Permalink 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.
## 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 "<id>"`, 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.