7.1 KiB
OpenSpec authority и lifecycle
Назначение
Этот документ описывает фактически настроенный OpenSpec workflow WealthLedger. Общие определения, approval policy, risk-based testing и build-versus-buy находятся в Engineering governance.
Единственный SDD store
- Canonical store:
wealth-ledger-specs. - Физический root:
specs/openspecотносительно workspace. - Requirements, Delta Specs, Design, Tasks, changes и archives хранятся только в этом store.
- Команда, читающая или изменяющая change, всегда получает
--store wealth-ledger-specs; cwd и nearest-root discovery не выбирают authority проекта. - Versioned framework-specific planning artifacts вне
specs/openspec, включаяsuperpowers/plans, запрещены.references/**остаётся read-only исключением.
Exact поддерживаемая OpenSpec CLI version хранится в specs/openspec/.cli-version. Перед project-owned операциями выполняется:
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 version 2 из
specs/openspec/schemas/wealth-ledger-sdd. Её граф:
proposal → specs → design → tasks → apply
OpenSpec обеспечивает structural order, а явное решение Change Owner — переход между артефактами. Agent создаёт один текущий artifact и останавливается для approval. Роли артефактов и cascade rules определены в governance policy; исполняемые templates и instructions принадлежат schema.
До запроса approval выполняется доступная stage-aware проверка:
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:
openspec schema validate wealth-ledger-sdd --verbose
openspec schema which wealth-ledger-sdd --json
schema which должен указывать project-local source. specs/openspec/config.yaml хранит default schema и компактный routing context, а не копию полной policy.
Agent entrypoints и обновление OpenSpec
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.
Projection восстанавливается и проверяется из workspace root:
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
Design содержит Delivery Map для frontend, backend, specs и docs. Из workspace один non-mutating dispatcher проверяет карту и запускает canonical gates affected areas:
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 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
Structural success не доказывает соответствие реализации. Project-owned verify workflow сопоставляет реализацию с Proposal, Delta Specs, Design и Tasks, затем требует independent read-only review без Critical и Important findings.
Archive отклоняется при незавершённом artifact approval, unchecked task, failed affected-area gate, отсутствующей semantic verification или independent review. Confirmation override для этих условий отсутствует. Completion Evidence создаётся только после archive и delivery commits по двухфазному протоколу Engineering governance; final evidence commit не подменяется незакрытым task.