feat: add experimental wealth-ledger-sdd-lab OpenSpec schema (#61) #62

Merged
codex-bot merged 1 commits from feature/61-sdd-lab-schema into develop 2026-10-29 05:58:30 +03:00
Owner

Closes #61

Что

Экспериментальная project-local schema wealth-ledger-sdd-lab для Engineering Lab. Выбирается только явно (openspec new change <name> --schema wealth-ledger-sdd-lab); default (wealth-ledger-sdd-v2), v2, legacy, архив и canonical specs не изменены.

  • Обязательный DAG: proposal → process-record → specs → design ∥ qa-analysis → tasks → apply.
  • Условные artifacts (research, ux-design, system-analysis + data-mapping/failure-model/nfr/observability, security-analysis, test-cases, docs-impact) выбираются в Change Profile (process-record.md) и не блокируют CLI.
  • 4 decision gates (G1 Product Decision, G2 Requirements Baseline, G3 Solution Approval, G4 Delivery Acceptance) вместо 7 approvals; Gate Log разделяет validation / findings / decision.
  • check.cjs (plan|apply|archive) — детерминированные проверки, которых нет в OpenSpec 1.13.1: profile ↔ файлы, порядок выбранных входов, ссылки на requirements, Covers/coverage, TC ids, contracts/diagrams, Review/Parity tasks, порядок и scope gates, invalidation, archive readiness.
  • UX — часть единого Design package (одно approval на G3); правила Visual Package из v2 сохранены.

Почему так

CLI 1.13.1 не поддерживает условные artifacts: completion = существование файла, requires — жёсткое ребро, apply проверяет только apply.requires. Поэтому условность вынесена в Change Profile + checker, а не в фиктивные поля schema.

Проверки

  • openspec schema validate lab / v2 / legacy — valid.
  • openspec validate --all --strict --store wealth-ledger-specs — 33/33.
  • scripts/check-openspec.cjs — toolchain matches.
  • Регрессия v2: новый v2 change во временном store — граф и apply-blocking без изменений.
  • Три сценария во временной копии store (UI, интеграция, финансовый high-risk) с seeded defects: checker поймал все структурные; native archive сценария A прошёл. Независимый review сценария C нашёл семантические блокеры (класс backend#140), которые механика не ловит.
  • git diff --check — чисто.

Известные ограничения / до первого реального lab change

  • Canonical openspec-authority-and-lifecycle перечисляет только legacy и v2 и требует per-artifact approval — нужна отдельная spec delta (решение владельца).
  • openspec status показывает невыбранные условные artifacts как ready, isPlanningComplete не станет true; следующий artifact берётся из check.cjs plan.
  • Подлинность approval механически не проверяется (только форма записи).
  • Non-TTY openspec archive требует --yes; предварительный check.cjs archive обязателен.

Рекомендуемый первый лабораторный прогон: #60.

Closes #61 ## Что Экспериментальная project-local schema `wealth-ledger-sdd-lab` для Engineering Lab. Выбирается только явно (`openspec new change <name> --schema wealth-ledger-sdd-lab`); default (`wealth-ledger-sdd-v2`), v2, legacy, архив и canonical specs не изменены. - Обязательный DAG: proposal → process-record → specs → design ∥ qa-analysis → tasks → apply. - Условные artifacts (research, ux-design, system-analysis + data-mapping/failure-model/nfr/observability, security-analysis, test-cases, docs-impact) выбираются в Change Profile (`process-record.md`) и не блокируют CLI. - 4 decision gates (G1 Product Decision, G2 Requirements Baseline, G3 Solution Approval, G4 Delivery Acceptance) вместо 7 approvals; Gate Log разделяет validation / findings / decision. - `check.cjs` (`plan|apply|archive`) — детерминированные проверки, которых нет в OpenSpec 1.13.1: profile ↔ файлы, порядок выбранных входов, ссылки на requirements, Covers/coverage, TC ids, contracts/diagrams, Review/Parity tasks, порядок и scope gates, invalidation, archive readiness. - UX — часть единого Design package (одно approval на G3); правила Visual Package из v2 сохранены. ## Почему так CLI 1.13.1 не поддерживает условные artifacts: completion = существование файла, `requires` — жёсткое ребро, apply проверяет только `apply.requires`. Поэтому условность вынесена в Change Profile + checker, а не в фиктивные поля schema. ## Проверки - `openspec schema validate` lab / v2 / legacy — valid. - `openspec validate --all --strict --store wealth-ledger-specs` — 33/33. - `scripts/check-openspec.cjs` — toolchain matches. - Регрессия v2: новый v2 change во временном store — граф и apply-blocking без изменений. - Три сценария во временной копии store (UI, интеграция, финансовый high-risk) с seeded defects: checker поймал все структурные; native archive сценария A прошёл. Независимый review сценария C нашёл семантические блокеры (класс backend#140), которые механика не ловит. - `git diff --check` — чисто. ## Известные ограничения / до первого реального lab change - Canonical `openspec-authority-and-lifecycle` перечисляет только legacy и v2 и требует per-artifact approval — нужна отдельная spec delta (решение владельца). - `openspec status` показывает невыбранные условные artifacts как `ready`, `isPlanningComplete` не станет `true`; следующий artifact берётся из `check.cjs plan`. - Подлинность approval механически не проверяется (только форма записи). - Non-TTY `openspec archive` требует `--yes`; предварительный `check.cjs archive` обязателен. Рекомендуемый первый лабораторный прогон: #60.
codex-bot added 1 commit 2026-10-29 05:57:44 +03:00
feat: add experimental wealth-ledger-sdd-lab OpenSpec schema (#61)
Conventional commits / commits (pull_request) Successful in 9s
Specs security / security (pull_request) Successful in 6s
Specs verify / verify (pull_request) Successful in 8s
5b7105d423
codex-bot merged commit 322ddf6a7f into develop 2026-10-29 05:58:30 +03:00
codex-bot deleted branch feature/61-sdd-lab-schema 2026-10-29 05:58:30 +03:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/specs#62