schema: spec-driven

context: |
  Language: Russian
  Пиши на русском, но:
  - Структурные заголовки оставляй на английском:
    ## ADDED/MODIFIED/REMOVED Requirements, ### Requirement:, #### Scenario:
  - Ключевые слова GIVEN/WHEN/THEN и RFC 2119 (SHALL/MUST/SHOULD) — на английском
  - Технические термины (API, REST, JWT), пути и код — на английском

  Имена capabilities:
  - Capability — это ПОВЕДЕНИЕ или домен системы, а не пакет кода (совпадение с
    именем пакета допустимо, но не критерий).
  - Существительное, понятное без знания кода: ingest, recognition, file-layout,
    review, notifications. НЕ qbt/worker — это реализация.
  - Гранулярность по принципу «требования меняются вместе». Дробить, когда в
    одной спеке смешиваются разные заботы. Переименовать дёшево (RENAMED
    Requirements) — не дроби преждевременно в маленьком проекте.

  RFC 2119 — требование валидатора, не стиль:
  - Каждое ### Requirement ОБЯЗАНО содержать литерал SHALL или MUST, иначе
    `openspec validate` падает. Поэтому эти слова и WHEN/THEN не русифицируем.

  Что это за проект — читай перед предложением, а не отсюда:
  - docs/passport.md — цель, её граница (чем jellybit НЕ является),
    потребители, типовые сценарии, референсы;
  - CLAUDE.md — инварианты с severity, семантика гейта, запреты с путями и то,
    что считается необратимым;
  - docs/architecture.md — устройство и единые точки; docs/security.md —
    периметр; docs/database.md — схема и настройки с числами;
    docs/adr/ — почему решено так; docs/research/ — что уже измерено.
  Пересказа этих документов здесь нет намеренно: второй дом факта расходится с
  первым молча, и заметно это становится в предложении, которое уже написано.

  Ревью: правило выбора метки и состав проходов здесь не пересказываем — их дом
  скилл av-dev-pipeline:review-pipeline, проектная настройка — docs/review.md.

  Конвенции кода: механизированное проверяет `task gate`, прозой остаётся
  docs/conventions/. Ни состав шагов гейта, ни перечень конвенций здесь не
  пересказываем: и то и другое растёт по ходу задач.

  Развилка или блокер — сперва prior art. Готовые решения смотрим в референсах
  паспорта, отвергаем — с названной причиной, и причина идёт в design.md этого
  же изменения.

rules:
  proposal:
    - Capabilities называй по поведению или домену системы, не по пакету кода
  specs:
    # Кавычки обязательны: без них YAML обрежет строку на первом '#'.
    - "Каждое ### Requirement обязано содержать SHALL или MUST (иначе валидация падает)"
    - "Сценарий — ровно #### (четыре решётки); три или список молча теряются"
    - "SHALL/MUST должно стоять в ПЕРВОМ абзаце требования: валидатор смотрит только его"
    - "Заголовки и WHEN/THEN/GIVEN — на английском, остальной текст на русском"
