## MODIFIED Requirements ### Requirement: Изменение upstream artifact требует каскадной проверки Изменение утверждённого Proposal MUST инициировать повторную проверку Delta Specs, Design и Tasks; изменение утверждённых Delta Specs MUST инициировать повторную проверку Design и Tasks; изменение утверждённого Design MUST инициировать повторную проверку Tasks. Изменение Tasks MUST NOT неявно менять scope, наблюдаемое поведение или архитектурные решения upstream artifacts; при таком обнаружении workflow SHALL вернуть работу к самому раннему затронутому upstream artifact и его approval gate. Если несоответствие обнаружено во время Design или Apply, downstream-работа MUST остановиться, а Change Owner MUST получить наблюдаемое основание возврата и решения, требуемые на выбранном уровне. Механическое исправление синтаксиса или формата, которое не меняет утверждённые намерение, поведение, архитектурные решения или состав задач, MUST пройти повторную structural validation и MUST NOT само по себе инвалидировать approvals. #### Scenario: После Design изменилось намерение - **WHEN** владелец меняет scope или ожидаемый эффект Proposal - **THEN** зависимые Delta Specs, Design и Tasks теряют прежнее подтверждение до повторной согласованной проверки #### Scenario: Task вводит новое поведение - **WHEN** implementation checklist требует поведение, которого нет в утверждённых Delta Specs - **THEN** агент не расширяет scope через Tasks и возвращает change к Delta Specs #### Scenario: Apply выявляет архитектурное расхождение - **WHEN** во время реализации обнаружено, что утверждённый Design не позволяет выполнить Specs без другого архитектурного решения - **THEN** Apply останавливается, Tasks теряет прежнее подтверждение, а change возвращается к Design с наблюдаемым основанием и вариантами решения #### Scenario: Исправляется только структурный формат - **WHEN** утверждённый artifact содержит исправимую синтаксическую или formatting-ошибку без изменения его смысла - **THEN** workflow исправляет ошибку, повторяет structural validation и сохраняет действующие approvals ### Requirement: OpenSpec tooling имеет проверяемый version contract SDD workflow MUST объявлять одну текущую поддерживаемую версию OpenSpec CLI в canonical version contract и проверять фактическую версию до команд, читающих или изменяющих canonical change. Normative checks и проверяемые generated markers MUST получать ожидаемую версию из этого контракта и MUST NOT независимо закреплять конкретный version literal. Несовместимая либо неопределённая версия MUST давать actionable blocking result и MUST NOT приводить к молчаливому изменению artifact graph, templates или project-owned entrypoints. Публикация новой stable версии MUST NOT автоматически менять поддерживаемую версию проекта. Upgrade SHALL изменять version contract только после изолированной проверки совместимости schema, agent workflow, canonical store и hard blockers и SHALL сохранять историческое evidence с фактически использованными ранее версиями. #### Scenario: Версия CLI соответствует контракту - **WHEN** агент начинает работу с canonical change поддерживаемой версией OpenSpec - **THEN** workflow продолжает работу с объявленной схемой и canonical store #### Scenario: Версия CLI не соответствует контракту - **WHEN** доступная версия OpenSpec не совпадает с объявленным совместимым контрактом - **THEN** локальная preflight-проверка блокирует SDD-операцию и сообщает ожидаемую и фактическую версии #### Scenario: Опубликована новая stable версия - **WHEN** upstream публикует новую stable версию, которая ещё не прошла project compatibility assessment - **THEN** текущий version contract остаётся действующим и новая версия не становится неявным требованием для разработки #### Scenario: Подготовлен upgrade candidate - **WHEN** Engineering Owner рассматривает смену поддерживаемой версии - **THEN** изолированная проверка подтверждает schema, agent workflow, store selection и hard blockers до изменения version contract и project-owned projection ## ADDED Requirements ### Requirement: Project-owned agent workflow воспроизводим из versioned authority Project-owned agent workflow SHALL восстанавливаться в новом workspace из committed authority inputs и текущей поддерживаемой версии инструмента без использования прежнего локального generated state. Workspace-level projection SHALL оставаться derived output и MUST NOT становиться конкурирующим SDD authority. Non-mutating verifier MUST обнаруживать отсутствие required projection, расхождение с versioned inputs и несовместимый generated version marker; установленные зависимости и machine-local runtime state MUST NOT считаться authority inputs. #### Scenario: Workspace собирается заново - **WHEN** участник получает чистые checkout всех project repositories и поддерживаемый инструмент - **THEN** documented workflow воспроизводит project-owned agent projection из versioned inputs без копирования файлов с прежней машины #### Scenario: Derived projection изменена вручную - **WHEN** локальная project-owned projection больше не соответствует versioned authority inputs - **THEN** non-mutating verifier завершает проверку ошибкой и указывает на projection drift ### Requirement: Planning artifact проверяется до запроса approval Каждый создаваемый planning artifact SHALL пройти все применимые на его текущем этапе non-mutating structural checks до запроса approval Change Owner. Если полный change validation ещё заблокирован отсутствующими downstream artifacts, workflow MUST выполнить доступные проверки текущего artifact и явно оставить недоступную проверку незавершённой, а не заявлять общий успех. Техническая ошибка проверяемого формата SHALL исправляться и проверяться повторно без передачи ручного исправления Change Owner; structural success MUST NOT подменять semantic approval. #### Scenario: Текущий artifact имеет проверяемое нарушение - **WHEN** сгенерированный planning artifact нарушает обязательный формат или ссылочную целостность, доступные для проверки на текущем этапе - **THEN** workflow исправляет нарушение и повторяет structural checks до запроса owner approval #### Scenario: Downstream artifacts ещё отсутствуют - **WHEN** Proposal создан, а Delta Specs, Design и Tasks ещё не существуют - **THEN** workflow сообщает результат доступных Proposal checks и не представляет отсутствующую full-change validation как успешную