chore: harden SDD governance workflow

This commit is contained in:
2026-08-24 19:55:28 +03:00
parent 20295190dd
commit 0006aea562
30 changed files with 1659 additions and 75 deletions
+27 -15
View File
@@ -1,24 +1,36 @@
# Specs
## Назначение
## Назначение и authority
Репозиторий единственных versioned SDD-артефактов и canonical OpenSpec store: `wealth-ledger-specs` в `specs/openspec` (относительно workspace). Все функциональные изменения планируются в `openspec/changes/<change>/` до реализации в frontend или backend.
Этот репозиторий — единственный versioned SDD authority. Canonical OpenSpec store — `wealth-ledger-specs`, физический root от workspace — `specs/openspec` (локально `openspec`). OpenSpec commands, читающие или изменяющие change, всегда получают `--store wealth-ledger-specs`; nearest-root или default-store fallback запрещён.
## Проверка
Proposal, Delta Specs, Design, Tasks, changes и archives хранятся только в `openspec`. Не создавать versioned planning artifacts вне него, включая `superpowers/plans`; `../references/**` read-only. `docs` хранит as-built state и Completion Evidence, но не копию change artifacts.
## Workflow и verification
Поддерживаемая CLI version задана в `openspec/.cli-version`; новые changes используют project-local schema `wealth-ledger-sdd`. Артефакты создаются по одному после approval Change Owner. Общая policy: [`../docs/development/engineering-governance.md`](../docs/development/engineering-governance.md); lifecycle: [`../docs/development/openspec-authority-and-lifecycle.md`](../docs/development/openspec-authority-and-lifecycle.md); audit work: [`../docs/development/audit-remediation.md`](../docs/development/audit-remediation.md).
Из workspace canonical pre-archive gate:
```bash
openspec validate <change> --type change --store wealth-ledger-specs
openspec instructions apply --change <change> --json --store wealth-ledger-specs
bash scripts/verify-openspec-authority.sh
bash scripts/verify-runtime-openapi.sh
bash specs/scripts/verify-workspace-change.sh <change>
```
## Границы
Для scoped diagnostics из `specs`:
- Change содержит proposal, design, delta-specs и tasks; требования и задачи живут здесь, не в delivery-plan файле или коде.
- Реализация отмечается в tasks только после выполненной работы. Перед архивированием change проходит `opsx-verify` и получает связанную документацию в `../docs`.
- Не хранить код приложений и долгоживущие ADR в этом репозитории.
- Для фактических границ системы и терминов использовать [`../docs/architecture/system-overview.md`](../docs/architecture/system-overview.md) и [`../docs/architecture/domain-glossary.md`](../docs/architecture/domain-glossary.md).
- Для задачи по Audit ID, продолжения remediation или выбора следующего улучшения сначала прочитать [`../docs/development/audit-remediation.md`](../docs/development/audit-remediation.md); продолжать или создавать change только в store `wealth-ledger-specs`.
- Все OpenSpec commands, читающие или изменяющие change, обязаны указывать `--store wealth-ledger-specs`; nearest-root и global-default selection не поддерживаются.
- Не создавать и не коммитить framework-specific planning/spec/task/design artifacts вне `openspec/` (то есть `specs/openspec` от workspace), включая `superpowers/plans`; `../references/**` остаётся read-only исключением.
```bash
bash scripts/verify-openspec-version.sh
openspec schema validate wealth-ledger-sdd --verbose
openspec validate <change> --type change --strict --store wealth-ledger-specs
openspec validate --specs --strict --store wealth-ledger-specs
bash scripts/verify-openspec-authority.sh
```
Structural validation не заменяет semantic verification и independent read-only review. Tasks отмечаются только после выполненной работы; archive не допускает unchecked tasks или verification override.
## Boundaries
- Design содержит Delivery Map `frontend`, `backend`, `specs`, `docs` и условный Solution Assessment.
- Specs описывают observable behavior, не изменения кода; Design — architecture, не line-by-line implementation; Tasks — implementation checklist без будущего evidence.
- Не хранить application code и durable ADR в `specs`.
- Для фактической системы и терминов использовать [`../docs/architecture/system-overview.md`](../docs/architecture/system-overview.md) и [`../docs/architecture/domain-glossary.md`](../docs/architecture/domain-glossary.md).