4.3 KiB
status
| status |
|---|
| accepted |
Native OpenSpec SDD и минимальная local orchestration
Статус: историческое решение
ADR 012 отменяет обязательный SDD lifecycle. Native OpenSpec остаётся optional инструментом; repo gates сохраняются.
Прежняя частичная замена
ADR 011 заменяет части этого решения о schema v3, custom verifiers и dispatcher. Выбор native OpenSpec, независимых repository gates и исходное rationale сохраняются. Ниже оставлено историческое описание прежней реализации; действующую процедуру определяют authorities, указанные в ADR 011. Version contract этим уточнением не меняется.
Исторический контекст и решение
WealthLedger использует project-local schema wealth-ledger-sdd version 3 с
последовательностью 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-drivenschema отклонена: она не выражает обязательный переход Specs перед Design и не задаёт Delivery Map или проектные роли артефактов. - Отдельный workflow engine или custom generator отклонён: он создал бы конкурирующий формат и lifecycle authority.
- Nx, Turborepo, Bazel, Make или just отклонены для текущего масштаба: workspace не имеет общего dependency graph, build cache или CI, а репозитории уже владеют canonical gates.
- Versioned source tree, patch-only, programmatic generator и symlink для root agent entrypoints отклонены для текущего масштаба: они добавляют отдельный projection lifecycle поверх уже достаточных schema, docs и scripts.
Исторические последствия
OpenSpec CLI закреплён exact version contract; новая stable release не включает
auto-upgrade, а смена contract является отдельным SDD change со staged
compatibility fixtures. Root .opencode остаётся локальным non-authority
entrypoint, а hard constraints проверяются через authority verifier. Planning
verifier до approval проверяет только детерминированную структуру: capability
set, Delivery Map, rollback, task area и Requirement coverage. Он различает
artifact-validation, неверный invocation и failure окружения, чтобы agent не
переписывал planning artifact из-за сломанного вызова или prerequisite.
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.