Files
docs/adr/010-native-openspec-sdd-and-local-orchestration.md
T

3.1 KiB
Raw Blame History

status
status
accepted

Native OpenSpec SDD и минимальная local orchestration

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; новая 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.