docs: record SDD audit remediation
This commit is contained in:
@@ -14,6 +14,10 @@
|
||||
|
||||
**Enforceable Engineering Invariant** — обязательное правило с детерминированной non-mutating локальной проверкой, нарушение которой блокирует завершение change. Непроверяемое предпочтение является guidance, а не hard guardrail.
|
||||
|
||||
**Planning structural gate** — stage-aware проверка доступной формы и ссылочной
|
||||
целостности текущего planning artifact до запроса approval. Она не оценивает
|
||||
качество rationale и не является semantic approval.
|
||||
|
||||
## Последовательность SDD
|
||||
|
||||
Каждый versioned change проходит один граф:
|
||||
@@ -25,10 +29,21 @@ Proposal → Delta Specs → Design → Tasks → Apply → Verify → Archive
|
||||
- Proposal формулирует намерение, границы и ожидаемый результат без технологий, API, файлов и зависимостей.
|
||||
- Delta Specs описывают изменение наблюдаемого поведения и инвариантов без изменений кода.
|
||||
- Design объясняет архитектурный способ реализации крупными частями, риски и альтернативы; он не является построчной инструкцией.
|
||||
- Tasks — implementation checklist, достаточный для выполнения Design и Specs. Он содержит планируемые проверки, но не будущие результаты, commits или post-archive bookkeeping.
|
||||
- Tasks — implementation checklist, достаточный для выполнения Design и Specs.
|
||||
Каждый checkbox объявляет ровно одну area, `Covers` ссылается на native
|
||||
identity `capability path — exact Requirement heading` либо объясняет `N/A`,
|
||||
а `Verification` задаёт планируемую проверку. Tasks не содержат будущие
|
||||
результаты, commits или post-archive bookkeeping.
|
||||
|
||||
AI-агент готовит только текущий разрешённый артефакт, показывает его Change Owner и останавливается. Downstream artifact создаётся только после явного approval. Если новая сессия не может подтвердить approval из доступного контекста, агент запрашивает его повторно.
|
||||
|
||||
До запроса approval агент запускает доступный stage planning gate и сам
|
||||
исправляет технические ошибки формата. Полный change validation не объявляется
|
||||
успешным, пока downstream artifacts отсутствуют. Форматное исправление без
|
||||
изменения intent, behavior, decisions или task scope не требует reapproval;
|
||||
семантическое изменение возвращает workflow к самому раннему затронутому
|
||||
artifact.
|
||||
|
||||
Изменение принятого upstream artifact инвалидирует approval зависимых артефактов: Proposal — Specs, Design и Tasks; Specs — Design и Tasks; Design — Tasks. Tasks не могут неявно расширять scope или менять поведение и архитектуру: работа возвращается к соответствующему upstream artifact.
|
||||
|
||||
## Delivery Map и multi-repository delivery
|
||||
@@ -42,6 +57,12 @@ Design каждого change оценивает все четыре област
|
||||
|
||||
Change остаётся active, пока каждая affected область не реализована и не прошла свой canonical gate. Design содержит Contract Gate Decision: `runtime-openapi` имеет статус `required`, когда изменение затрагивает frontend и backend стороны API contract, иначе `N/A` с конкретной причиной. Успех одного репозитория не компенсирует отсутствие или failure другого.
|
||||
|
||||
Task owner выбирается только из `frontend`, `backend`, `specs`, `docs` и
|
||||
`workspace`. Repository owner нельзя использовать для area со статусом `N/A`;
|
||||
cross-repository implementation разбивается на отдельные tasks. `workspace`
|
||||
владеет только orchestration и verification, но не подменяет repository-owned
|
||||
implementation или canonical gates.
|
||||
|
||||
## Risk-based testing
|
||||
|
||||
Автоматизированный тест обязателен, когда изменение затрагивает хотя бы один существенный риск:
|
||||
@@ -75,6 +96,17 @@ Solution Assessment сравнивает применимые варианты
|
||||
|
||||
Собственная реализация допустима, только если подходящего решения нет или доказана существенная несовместимость. Тогда Design фиксирует проверенные варианты, конкретные gaps, принятые риски и trigger повторного рассмотрения. Для обратимого изменения вне перечисленных областей отдельная формальная оценка не создаётся ради процесса.
|
||||
|
||||
## Rollback contract
|
||||
|
||||
Design фиксирует status `required`, trigger, actions, data safety и verification,
|
||||
если change меняет auth/security behavior, data integrity или migration, public
|
||||
contract либо другое существенно труднообратимое решение. Contract учитывает
|
||||
данные и compatibility, созданные после delivery, и не может зависеть от нового
|
||||
неутверждённого архитектурного решения.
|
||||
|
||||
Для обратимого change вне этих рисков status `N/A` содержит конкретную причину.
|
||||
Отдельный rollback artifact не создаётся ради процесса.
|
||||
|
||||
## Single Source of Truth
|
||||
|
||||
| Вид знания | Authoritative location |
|
||||
@@ -85,6 +117,7 @@ Solution Assessment сравнивает применимые варианты
|
||||
| Текущее устройство и поставленные возможности | `docs/architecture` и `docs/features` |
|
||||
| Устойчивые архитектурные решения и причины | `docs/adr` |
|
||||
| Инженерная policy и completion evidence | `docs/development` |
|
||||
| Canonical source project-owned agent commands и skills | `specs/agent-projection/opencode` |
|
||||
| Компактная маршрутизация AI-агентов | root и repository-local `AGENTS.md` |
|
||||
|
||||
`docs` описывает только фактическое текущее состояние и не пересказывает Proposal, Delta Specs, Design или Tasks другим форматом. `AGENTS.md` не копирует архитектуру или feature documentation: он направляет к authority и перечисляет только применимые hard constraints и canonical commands.
|
||||
@@ -104,6 +137,17 @@ CI пока отсутствует, поэтому обязательные gate
|
||||
|
||||
Hard guardrail должен иметь исполняемую локальную проверку. Правило без надёжной проверки помечается как guidance и учитывается в review, но не выдаётся за автоматический запрет. Новые frameworks, checkers и thresholds добавляются только после оценки поддерживаемого решения, maintenance cost и реально защищаемого риска.
|
||||
|
||||
Root `.opencode/commands` и `.opencode/skills` являются derived projection.
|
||||
Изменения вносятся в versioned source под `specs`, распространяются explicit
|
||||
atomic sync и проверяются exact file/content comparison; package manifests,
|
||||
dependencies и machine-local state не являются authority inputs.
|
||||
|
||||
Текущая exact OpenSpec CLI version читается только из
|
||||
`specs/openspec/.cli-version`. Новая stable release не меняет contract
|
||||
автоматически. Upgrade выполняется отдельным SDD change после isolated проверки
|
||||
schema, agent projection, canonical store и positive/negative fixtures;
|
||||
историческое evidence сохраняет фактическую прежнюю version.
|
||||
|
||||
## Verify, archive и Completion Evidence
|
||||
|
||||
Structural validation OpenSpec проверяет schema и форму артефактов, но не соответствие реализации. До archive обязательны:
|
||||
|
||||
Reference in New Issue
Block a user