docs: record SDD audit remediation
This commit is contained in:
@@ -4,16 +4,36 @@ status: accepted
|
||||
|
||||
# Native OpenSpec SDD и минимальная local orchestration
|
||||
|
||||
WealthLedger использует project-local schema `wealth-ledger-sdd` OpenSpec 1.10 с последовательностью `Proposal → Delta Specs → Design → Tasks → Apply` и тонкий dispatcher существующих repository gates. Это сохраняет один lifecycle authority в `specs/openspec`, выражает проектные approval boundaries нативными extension points и не вводит второй workflow engine или monorepo control plane для четырёх независимых Git-репозиториев.
|
||||
WealthLedger использует project-local schema `wealth-ledger-sdd` version 2 с
|
||||
последовательностью `Proposal → Delta Specs → Design → Tasks → Apply`, один exact
|
||||
OpenSpec CLI contract из `.cli-version` и тонкие non-mutating verifiers. Это
|
||||
сохраняет один lifecycle authority в `specs/openspec`, выражает approval
|
||||
boundaries нативными extension points и не вводит второй workflow engine или
|
||||
monorepo control plane для четырёх независимых Git-репозиториев.
|
||||
|
||||
## Рассмотренные варианты
|
||||
|
||||
- Встроенная `spec-driven` schema отклонена: она не выражает обязательный переход Specs перед Design и не задаёт Delivery Map или проектные роли артефактов.
|
||||
- Отдельный workflow engine или custom generator отклонён: он создал бы конкурирующий формат и lifecycle authority.
|
||||
- Nx, Turborepo, Bazel, Make или just отклонены для текущего масштаба: workspace не имеет общего dependency graph, build cache или CI, а репозитории уже владеют canonical gates.
|
||||
- Patch-only, programmatic generator и symlink для root agent projection
|
||||
отклонены из-за upstream text fragility, второго transformation engine либо
|
||||
tool/filesystem portability. Выбран committed canonical source tree с
|
||||
explicit atomic sync и exact drift check.
|
||||
|
||||
## Последствия
|
||||
|
||||
OpenSpec CLI закреплён exact version contract, а upgrade требует staged generation и проверки generated root `.opencode` projection. Dispatcher знает четыре workspace area, но не реализует build или test logic: он только валидирует Delivery Map и делегирует в repo-owned commands. Approval identity остаётся человеческим workflow constraint, потому что schema моделирует порядок артефактов, но не личность утвердившего.
|
||||
OpenSpec CLI закреплён exact version contract; новая stable release не включает
|
||||
auto-upgrade, а смена contract является отдельным SDD change со staged
|
||||
compatibility fixtures. Project-owned commands и skills имеют versioned source
|
||||
в `specs`, root `.opencode` является derived projection. Planning verifier до
|
||||
approval проверяет только детерминированную структуру: capability set, Delivery
|
||||
Map, rollback, task area и Requirement coverage.
|
||||
|
||||
Dispatcher знает четыре workspace area, но не реализует build или test logic:
|
||||
он делегирует repo-owned commands. Approval identity остаётся человеческим
|
||||
workflow constraint, потому что schema моделирует порядок артефактов, но не
|
||||
личность утвердившего. Semantic review по-прежнему не заменяется structural
|
||||
checks.
|
||||
|
||||
Решение пересматривается, если OpenSpec перестанет поддерживать нужный artifact graph, появится обязательный общий CI/build graph или стоимость последовательной локальной orchestration станет существенной. В этих случаях новый ADR сравнивает native evolution с внешним engine либо monorepo platform.
|
||||
|
||||
Reference in New Issue
Block a user