docs: record SDD audit remediation

This commit is contained in:
2026-08-26 00:42:35 +03:00
parent 4dbff85654
commit 72c3a8a668
12 changed files with 1229 additions and 10 deletions
@@ -19,10 +19,15 @@ bash specs/scripts/verify-openspec-version.sh
```
Несовпадение version блокирует операцию до чтения или изменения store.
Публикация новой stable версии не меняет этот contract автоматически. Upgrade
выполняется отдельным SDD change после staged проверки schema, instructions,
project-owned projection, store resolution и hard blockers; historical archives
не переписываются.
## Project-local schema
Новые changes по умолчанию используют schema `wealth-ledger-sdd` из `specs/openspec/schemas/wealth-ledger-sdd`. Её граф:
Новые changes по умолчанию используют schema `wealth-ledger-sdd` version 2 из
`specs/openspec/schemas/wealth-ledger-sdd`. Её граф:
```text
proposal → specs → design → tasks → apply
@@ -30,6 +35,18 @@ proposal → specs → design → tasks → apply
OpenSpec обеспечивает structural order, а явное решение Change Owner — переход между артефактами. Agent создаёт один текущий artifact и останавливается для approval. Роли артефактов и cascade rules определены в governance policy; исполняемые templates и instructions принадлежат schema.
До запроса approval выполняется доступная stage-aware проверка:
```bash
bash specs/scripts/verify-openspec-planning.sh <change>
```
Proposal проверяется без ложного объявления полного change success; по мере
появления Specs, Design и Tasks добавляются strict validation, Delivery Map,
rollback, area ownership и exact Requirement coverage. Технический format
failure исправляется и проверяется повторно; structural success не означает
approval.
Project-local schema проверяется из `specs`:
```bash
@@ -41,9 +58,30 @@ openspec schema which wealth-ledger-sdd --json
## Agent entrypoints и обновление OpenSpec
Root `.opencode` — generated local projection OpenSpec 1.10 с минимальными WealthLedger overlays: fixed store, one-artifact-at-a-time и hard archive blockers. Она не является SSOT, потому что workspace root не versioned.
Canonical source WealthLedger-owned OpenCode commands и skills находится в
`specs/agent-projection/opencode`. Root `.opencode/commands` и
`.opencode/skills` — derived local projection с минимальными overlays: fixed
store, one-artifact-at-a-time, stage planning gate, Apply feedback routing и
hard archive blockers. Package manifests, installed dependencies и machine-local
state не входят в source.
`openspec update` не запускается напрямую из workspace root. Новую upstream version сначала генерируют в isolated staging, сравнивают с projection, переносят upstream delta и повторно накладывают project overlays. После этого обязательно выполняют authority fixtures; permissive archive, conditional store selection и второй `openspec` root считаются failures.
Projection восстанавливается и проверяется из workspace root:
```bash
bash specs/scripts/sync-agent-projection.sh
bash specs/scripts/verify-agent-projection.sh
```
Sync выполняет verified cutover и восстанавливает прежнее local state при
ошибке. Verifier non-mutating сравнивает required file set и contents и получает
expected `generatedBy` marker из `.cli-version`.
`openspec update` не запускается напрямую из workspace root. Новую upstream
version сначала генерируют в isolated staging, сравнивают с canonical source,
переносят upstream delta и повторно накладывают минимальные project overlays.
После этого sync обновляет derived root, а authority fixtures проверяют marker,
missing/content drift, permissive archive, conditional store selection и второй
`openspec` root как failures.
## Реализация и проверка change
@@ -55,10 +93,16 @@ bash specs/scripts/verify-workspace-change.sh <change>
`specs` проверяется всегда. Dispatcher читает явный Contract Gate Decision из Design и сравнивает backend runtime OpenAPI с committed frontend snapshot только при `runtime-openapi: required`; этот status допустим лишь при affected frontend и backend. Child failure блокирует общий результат; fallback и auto-fix отсутствуют.
Перед affected-area gates dispatcher повторяет planning verifier. Tasks имеют
формат `X.Y [area] action` и indented `Covers`/`Verification`; каждый Delta
Requirement покрывается точной ссылкой хотя бы один раз, а `workspace` остаётся
только owner orchestration/verification.
Перед archive отдельно подтверждаются structural и semantic gates:
```bash
bash specs/scripts/verify-openspec-authority.sh
bash specs/scripts/verify-agent-projection.sh
openspec validate <change> --type change --strict --store wealth-ledger-specs
openspec validate --specs --strict --store wealth-ledger-specs
```