Quickstart — RENAR за 30 минут
Один сквозной пример: маленький проект «email/password sign-up». Проходим полный цикл RENAR с минимальным набором артефактов: ТЗ → ADAPT → BR → SR → SPEC → TC. Время: ~30 минут чтения + проб на бумаге; ~2-3 часа если делать вживую на substrate. Предпосылки: знакомство с RENAR Core (5 правил + ADAPT + 2 QG).
Что вы получите
После этого quickstart у вас будет:
- Понимание полного цикла RENAR на одном маленьком примере.
- Готовые YAML-шаблоны для каждого типа артефакта.
- Опыт прохождения двух Quality Gates: QG-ADAPT-approve и QG-2 verified-by-TC.
- Точка для масштабирования на реальный проект.
Предпосылки
Substrate — система хранения и версионирования артефактов. RENAR substrate-agnostic; для quickstart подойдёт любой substrate с capabilities V1-V6 (01-glossary §2.7):
- git с PR-ревью (default для большинства проектов);
- Raven (документная БД с встроенными подписями);
- любая БД с историей и подписями.
Структура папок (default convention для git substrate):
my-project.req/
tz/ # immutable ТЗ от клиента
adapt/ # ADAPT артефакты
br/ # Business Requirements
sr/ # System Requirements
specs/ # SPEC-* семейство
arch/ api/ data/ ui/ sec/ ai/ proc/ int/ ops/
tests/ # TC и INT-TC
Для других substrate — эквивалентная организация по doc-types или namespaces.
Шаг 1. ТЗ (5 минут)
Клиент даёт небольшое ТЗ. Это договорной immutable документ — после подписания не редактируется.
tz/TZ-2026-001.md (фрагмент):
---
id: TZ-2026-001
title: "Регистрация пользователей через email"
signed-date: "2026-05-15"
signed-by-client: "Иванов И.И., PM, ClientCo"
---
# ТЗ-2026-001
## §1. Контекст
Создать систему регистрации пользователей по email.
## §2. Требования
- Пользователь может зарегистрироваться через email и пароль.
- После регистрации пользователь подтверждает email (получает письмо).
- После подтверждения — доступ в личный кабинет.
## §3. Ограничения
- Только web-приложение.
- Хранение в РФ (ФЗ-152).
ТЗ подписано клиентом → immutable. Все правки и интерпретации идут через ADAPT.
Шаг 2. Draft ADAPT (10 минут)
Создаём adapt/ADAPT-001-main.md. AI-агент или инженер заполняет Forward (как поняли) и Backward (что неясно).
---
id: ADAPT-001
title: "Адаптация ТЗ-2026-001 — Регистрация через email"
type: ADAPT
source-tz:
id: TZ-2026-001
signed-date: "2026-05-15"
signed-by-client: "Иванов И.И., PM, ClientCo"
document-ref: "<substrate-ref-pin>"
status: draft
created: "2026-05-16"
ai-provenance:
generated-by: "anthropic-claude-opus-4-7@2026-05-16"
prompt-template: "prompts/adapt-from-tz.md@v1.0"
context-tokens: 1024
output-tokens: 2048
human-edits: false
---
2.1 Forward
## Forward §2 Требования
**Цитата:** «Пользователь может зарегистрироваться через email и пароль.
После регистрации пользователь подтверждает email. После подтверждения —
доступ в личный кабинет.»
**Интерпретация:** Регистрация — POST /auth/sign-up с {email, password}.
Создаётся User со status `unverified`. Отправляется email с verification
link. Клик по link → status `verified`. Только `verified` могут войти.
**Достроенные сценарии:**
- sign-up: создание User в `unverified`, отправка email
- email verification: подтверждение → перевод в `verified`
- первый вход: только `verified` → редирект в личный кабинет
**Scope:**
- Входит: email/password, email verification, доступ в личный кабинет.
- НЕ входит: OAuth (Google/Apple), SMS-верификация, 2FA, сброс пароля.
**Forward links** (auto-populated после approval): BR-01, SR-01, SR-02, SR-03.
2.2 Backward (3 записи)
## Backward
### B-001: gap — попытка входа неверифицированного
- **Категория:** gap
- **Статус:** open
- **Описание:** ТЗ не описывает поведение системы при попытке входа
до верификации email.
- **Вопрос к клиенту:** показывать сообщение «подтвердите email» с кнопкой
повторной отправки — или возвращать 401 без объяснения?
### B-002: regulatory — ФЗ-152 хранение в РФ
- **Категория:** regulatory
- **Статус:** open
- **Описание:** ТЗ §3 требует «хранение в РФ». Что конкретно: дата-центр,
юрисдикция provider'а, отдельная инсталляция?
- **Вопрос к клиенту:** уточнить scope ФЗ-152 для проекта.
### B-003: gap — повторная отправка email
- **Категория:** gap
- **Статус:** open
- **Описание:** Что если verification email потерян? Можно ли отправить
повторно, сколько раз, есть ли rate limit?
- **Вопрос к клиенту:** policy на повторную отправку email.
Шаг 3. Approved ADAPT (5 минут)
Клиент даёт ответы. Каждая backward запись проходит lifecycle:
open → asked-to-client → answered → resolved → frozen (после approval)
Резюме после ответов клиента:
### B-001: resolved
- **Asked-to-client:** 2026-05-17
- **Ответ клиента:** 2026-05-18, Иванов И.И.:
«Показать сообщение + кнопку повторной отправки. 401 без объяснения — плохой UX.»
- **Resolution:** добавлен сценарий в Forward §2; создан SR-04.
### B-002: resolved
- **Ответ клиента:** 2026-05-18:
«Дата-центр в РФ, юрисдикция РФ. Provider — выбирает исполнитель.»
- **Resolution:** добавлен пункт в Forward §2 о data-residency: ["RU"].
### B-003: resolved
- **Ответ клиента:** 2026-05-18:
«Повторная отправка не чаще 1 раза в 5 минут, не больше 5 раз в сутки.»
- **Resolution:** добавлены rate-limit правила в Forward §2; SR-04 уточнён.
Все backward → resolved, open-questions-count = 0. ADAPT готов к approval.
QG-ADAPT-approve — все 6 пунктов passed:
status: approved
approval:
client-signature:
signed-by: "Иванов И.И."
role: PM
organization: "ClientCo"
signed-at: "2026-05-18T15:30:00Z"
signature-ref: "<substrate-native-ref>"
architect-signature:
signed-by: "Петров П.П."
role: architect
signed-at: "2026-05-18T16:00:00Z"
ai-provenance:
human-edits: true # архитектор отредактировал AI-draft
open-questions-count: 0
resolved-questions-count: 3
После approval ADAPT immutable (frozen). Все BR/SR/SPEC ссылаются на approved ADAPT, не на ТЗ напрямую.
Шаг 4. BR-01 (3 минуты)
br/BR-01-user-registration.md:
---
id: BR-01
title: "Регистрация пользователей через email"
type: BR
status: approved
priority: must
source:
adapt: "ADAPT-001"
adapt-section: "Forward §2"
tz-section: "§2"
business-context:
stakeholder: "Иванов И.И. (PM, ClientCo)"
business-goal: "Дать пользователям возможность создать аккаунт и получить доступ к продукту"
business-outcome:
measurement-type: kpi
kpi-name: "registration-conversion-rate"
measurement-method: "registered / visited_signup * 100%"
baseline-value: 0
target-value: 60
target-met-by: "2026-09-01"
data-classification:
contains-pii: true
retention-days: 2555 # 7 лет по ФЗ-152
data-residency: ["RU"]
compliance:
- { standard: "ФЗ-152", article: "ст.6,12" }
ai-provenance:
generated-by: "anthropic-claude-opus-4-7@2026-05-18"
human-edits: true
---
# BR-01: Регистрация пользователей через email
Пользователь должен мочь самостоятельно создать аккаунт через email/password
и получить доступ к личному кабинету после подтверждения email.
Шаг 5. SR-01..SR-04 (3 минуты)
Декомпозируем BR на verifiable SR. Каждый SR ссылается на approved ADAPT.
sr/SR-01-sign-up.md (frontmatter):
---
id: SR-01
title: "Sign-up через email/password"
type: SR
status: approved
parent:
id: BR-01
source:
adapt: "ADAPT-001"
adapt-section: "Forward §2"
constrained-by:
- "SPEC-API-01"
- "SPEC-DATA-01"
- "SPEC-SEC-01"
quality-characteristic:
- functional-suitability
- security
---
Тело SR-01:
## Описание
POST /auth/sign-up принимает {email, password}.
- При валидных данных: создаёт User со status `unverified`, отправляет
verification email, возвращает 201.
- При невалидном email (regex/format): возвращает 422 с указанием поля.
- При уже занятом email: возвращает 409.
- При слабом пароле (< 8 chars или попадает в blacklist): возвращает 422.
Аналогично создаются SR-02 (email verification), SR-03 (вход для verified), SR-04 (повторная отправка email, с rate limit из B-003 resolution).
Шаг 6. SPEC-* (3 минуты)
specs/api/SPEC-API-01-auth.md (фрагмент):
---
id: SPEC-API-01
title: "REST API аутентификации"
type: SPEC-API
status: approved
source:
adapt: "ADAPT-001"
api-style: rest
api-version: "v1.0.0"
versioning-strategy: url-path
authentication: bearer-jwt
rate-limits:
- { endpoint: "POST /auth/resend-email", limit: "1/5min/user; 5/24h/user" }
contract-file:
format: openapi-3.1
location: "contracts/auth-api.yaml"
depends-on:
- "SPEC-DATA-01"
- "SPEC-SEC-01"
referenced-by: ["SR-01", "SR-02", "SR-03", "SR-04"] # auto-derived
---
Аналогично — SPEC-DATA-01 (схема User), SPEC-SEC-01 (auth model + ФЗ-152 controls).
Шаг 7. TC pos/neg парность (5 минут)
Каждый SR — минимум 1 позитивный + 1 негативный TC.
tests/TC-01-signup-success.md (позитивный для SR-01):
---
id: TC-01
title: "Sign-up: успешная регистрация"
type: system
status: ready
verifies:
- id: SR-01
requirement-version: "1.0"
negative: false
automation:
status: automated
location: "tests/auth/test_signup.py::test_signup_success"
runner: pytest
---
## Given
- новый email (uniquely-generated@test.com)
- валидный password (длина ≥ 8, не в blacklist)
## When
POST /auth/sign-up {email, password}
## Then
- status 201
- response body содержит {"user_id": "<uuid>", "status": "unverified"}
- в БД создан User с status `unverified`
- отправлен verification email (mock)
tests/TC-02-signup-invalid-email.md (негативный для SR-01):
---
id: TC-02
title: "Sign-up: отклонить невалидный email"
type: system
status: ready
verifies:
- id: SR-01
requirement-version: "1.0"
negative: true
automation:
status: automated
location: "tests/auth/test_signup.py::test_signup_invalid_email"
runner: pytest
---
## Given
- email "not-an-email" (без `@`)
- любой валидный password
## When
POST /auth/sign-up {email, password}
## Then
- status 422
- response body {"field": "email", "error": "invalid format"}
- User в БД НЕ создан
- email НЕ отправлен
Аналогично пары для SR-02, SR-03, SR-04. Дополнительно для SR-04 (с rate limit) — TC, проверяющий блок после 5-й попытки за 24 часа.
Шаг 8. Запустить TC и promote SR (2 минуты)
Substrate-нативный test runner запускает TC, обновляет last-run:
# tests/TC-01-signup-success.md (после прогона):
last-run:
date: "2026-05-19T10:00:00Z"
result: pass
ci-run-url: "<substrate-native-ref>"
agent-run-id: "test-runner-001"
requirement-version: "1.0"
Когда все TC из SR-01.verified-by[] зелёные, проводится spot-check (Правило 5 Core) — инженер вручную запускает 1-2 случайных passing TC и сверяет результат с SR.
Если spot-check passed → QG-2 verified-by-TC passed → SR-01 переводится в verified:
# sr/SR-01-sign-up.md:
status: verified
verified-by:
- "TC-01"
- "TC-02"
verified-at: "2026-05-19T14:00:00Z"
verified-by-engineer: "Петров П.П."
Аналогично — SR-02, SR-03, SR-04 → verified. Когда все SR в BR-01 verified → QG-4 (BR ready for acceptance).
Trace chain
В любой момент можно восстановить происхождение любого артефакта:
TC-02 (negative)
└─ verifies SR-01 (sign-up)
└─ derived from ADAPT-001 §2 Forward (email/password)
└─ interprets TZ-2026-001 §2 (immutable)
└─ constrained-by SPEC-API-01 (REST contract)
└─ depends-on SPEC-DATA-01, SPEC-SEC-01
При аудите через год: «откуда взялось требование возвращать 422 на невалидный email» — TC-02 → SR-01 → ADAPT-001 §2. Trace полный.
Что вы только что сделали
- Создали immutable договорной артефакт (ТЗ).
- Прошли двустороннюю интерпретацию через ADAPT с тремя backward findings → клиент дал ответы → approved.
- Декомпозировали в BR + 4 SR, привязанные к approved ADAPT.
- Описали 3 SPEC (API, DATA, SEC) как параллельную ось структуры.
- Покрыли каждый SR pos+neg TC парой (минимум 8 TC).
- Прошли два Quality Gates: QG-ADAPT-approve и QG-2 verified-by-TC.
Это полный цикл RENAR в минимальной форме. На реальном проекте scaling — больше BR/SR/SPEC, больше backward findings, делегирование на AI-агентов, дополнительные QG-3 (verification) и QG-4 (acceptance).
Что дальше
| Хотите… | Документ |
|---|---|
| Детальный walkthrough на полноразмерном примере (login + profile + permissions) | 01-walkthrough.md |
| Переход с legacy подхода (просто ТЗ → код) на RENAR | 02-transition-guide.md |
| Git как substrate (commit-policy, PR-ревью, hooks) | 03-tool-guide-git.md |
| Raven как substrate (документная БД, подписи через API) | 04-tool-guide-raven.md |
| Сравнение RENAR с SAFe / BABOK / ISO 29148 | 05-safe-comparison.md |
| Compliance: GDPR, ФЗ-152, AI Act mapping | 06-compliance.md |
| Failure modes — типовые провалы и их паттерны | 07-failure-modes.md |
| Полная нормативная спецификация (15 глав) | standard/ |
| Схемы артефактов и validation rules | reference/02-schemas.md |
| Глоссарий и mapping на отраслевые стандарты | reference/01-glossary.md |
Quickstart RENAR 1.0-draft — renar.tech