Экспериментальная 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 не изменены.
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.
Регрессия 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 обязателен.
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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 не изменены.process-record.md) и не блокируют CLI.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.Почему так
CLI 1.13.1 не поддерживает условные artifacts: completion = существование файла,
requires— жёсткое ребро, apply проверяет толькоapply.requires. Поэтому условность вынесена в Change Profile + checker, а не в фиктивные поля schema.Проверки
openspec schema validatelab / v2 / legacy — valid.openspec validate --all --strict --store wealth-ledger-specs— 33/33.scripts/check-openspec.cjs— toolchain matches.git diff --check— чисто.Известные ограничения / до первого реального lab change
openspec-authority-and-lifecycleперечисляет только legacy и v2 и требует per-artifact approval — нужна отдельная spec delta (решение владельца).openspec statusпоказывает невыбранные условные artifacts какready,isPlanningCompleteне станетtrue; следующий artifact берётся изcheck.cjs plan.openspec archiveтребует--yes; предварительныйcheck.cjs archiveобязателен.Рекомендуемый первый лабораторный прогон: #60.