architect/standards/arh/lifecycle-stages.md

type: standard
aspect: lifecycle
title: "Общая модель стадий жизненного цикла"
version: 1.0.0
date: 2026-02-19
status: active


Общая модель стадий жизненного цикла

Универсальная модель стадий для всех артефактов платформы.


ПРИНЦИП

ИДЕЯ → РАЗРАБОТКА → ТЕСТИРОВАНИЕ → ПРОДАКШН → АРХИВ

Каждая сущность проходит через стадии жизненного цикла.


УНИВЕРСАЛЬНЫЕ СТАДИИ

5 базовых стадий

┌──────────┐   ┌──────────┐   ┌──────────┐   ┌──────────┐   ┌──────────┐
│  DRAFT   │ → │   DEV    │ → │   TEST   │ → │   PROD   │ → │ ARCHIVE  │
│ Черновик │   │ Разработка│   │ Тестовая │   │ Продакшн │   │  Архив   │
└──────────┘   └──────────┘   └──────────┘   └──────────┘   └──────────┘
    │                                              ↑               ↑
    └──────────────────────────────────────────────┘               │
                     ROLLBACK                                      │
                                                                   │
    ┌──────────────────────────────────────────────────────────────┘
    │                          DEPRECATED

Описание стадий

Стадия Статус Описание Действия
DRAFT draft Черновик, идея, планирование Проектирование, документация
DEV development Активная разработка Код, тесты, интеграция
TEST testing Тестирование, проверка QA, staging, review
PROD active Продакшн, эксплуатация Мониторинг, поддержка
ARCHIVE archived Архив, не используется Хранение, документирование

Дополнительные статусы

Статус Когда Описание
deprecated Перед ARCHIVE Устарело, но ещё работает
suspended В любой момент Приостановлено
failed После TEST Не прошло тестирование
cancelled В любой момент Отменено

ПЕРЕХОДЫ МЕЖДУ СТАДИЯМИ

Прямой путь (нормальный flow)

DRAFT → DEV → TEST → PROD → ARCHIVE

Условия перехода:

Переход Условие Проверка
DRAFT → DEV План утверждён ✅ Требования определены
DEV → TEST Код готов ✅ Тесты написаны, сборка успешна
TEST → PROD Тесты пройдены ✅ QA одобрено, деплой готов
PROD → ARCHIVE Не используется ✅ Замена готова, данные мигрированы

Обратный путь (rollback)

PROD → TEST → DEV → DRAFT

Причины отката:

Переход Причина Действие
PROD → TEST Критический баг Откатить на предыдущую версию
TEST → DEV Тесты не прошли Исправить код
DEV → DRAFT Архитектура неверна Переработать дизайн

Специальные переходы

ANY  SUSPENDED     # Приостановка
SUSPENDED  ANY     # Возобновление
ANY  CANCELLED     # Отмена
TEST  FAILED       # Провал тестирования
PROD  DEPRECATED   # Устаревание

ПРИМЕНЕНИЕ К СУЩНОСТЯМ

Проект

DRAFT: Идея проекта, бриф
  
DEV: Разработка MVP
  
TEST: Пилот, альфа/бета
  
PROD: Запуск, эксплуатация
  
ARCHIVE: Проект завершён

Подробнее: ../arh/lifecycle-project.md

Код (модуль/компонент)

DRAFT: Проектирование API
  
DEV: Написание кода
  
TEST: Unit/Integration тесты
  
PROD: Деплой в продакшн
  
ARCHIVE: Код устарел

Подробнее: lifecycle-code.md

Данные

DRAFT: Схема данных
  
DEV: Тестовые данные
  
TEST: Валидация на staging
  
PROD: Продакшн данные
  
ARCHIVE: Старые данные

Подробнее: lifecycle-data.md

Артефакт (документ/ресурс)

DRAFT: Черновик документа
  
DEV: Написание, редактирование
  
TEST: Review, правки
  
PROD: Опубликовано
  
ARCHIVE: Устарело

Подробнее: lifecycle-artifact.md


МАРКИРОВКА СТАТУСА

В файловой системе

Папки по стадиям:

projects/
├── draft/           ← Черновики
├── dev/             ← В разработке
├── active/          ← Продакшн
└── archive/         ← Архив

Префиксы файлов:

DRAFT_project.md
DEV_module.py
TEST_feature.js
PROD_service.py
ARCHIVE_old_version.py

В метаданных (index.yaml)

name: "my-project"
status: "active"        # draft | development | testing | active | archived
lifecycle_stage: "prod" # draft | dev | test | prod | archive
version: "1.0.0"

В Git

Ветки:

draft/*       # Черновики
dev/*         # Разработка
test/*        # Тестирование
main          # Продакшн
archive/*     # Архив

Теги:

v1.0.0-draft
v1.0.0-beta
v1.0.0        # prod
v1.0.0-archived

В базе данных

CREATE TABLE projects (
    id INT PRIMARY KEY,
    name VARCHAR(255),
    status VARCHAR(50),  -- draft, development, testing, active, archived
    lifecycle_stage VARCHAR(20),
    created_at TIMESTAMP,
    updated_at TIMESTAMP
);

АВТОМАТИЗАЦИЯ ПЕРЕХОДОВ

CI/CD pipeline

# .github/workflows/lifecycle.yml
name: Lifecycle Management

on:
  push:
    branches: [dev, test, main]

jobs:
  transition:
    runs-on: ubuntu-latest
    steps:
      - name: DEV → TEST
        if: github.ref == 'refs/heads/test'
        run: |
          npm test
          npm run build

      - name: TEST → PROD
        if: github.ref == 'refs/heads/main'
        run: |
          npm run deploy:prod

Hooks

#!/bin/bash
# .git/hooks/pre-push

BRANCH=$(git branch --show-current)

if [ "$BRANCH" = "main" ]; then
    echo "Pushing to PROD. Running checks..."
    npm test || exit 1
    npm run lint || exit 1
fi

МОНИТОРИНГ ЖИЗНЕННОГО ЦИКЛА

Метрики

Метрика Описание Норма
Time in DRAFT Время в черновиках < 1 недели
Time in DEV Время разработки < 2 недель
Time in TEST Время тестирования < 3 дней
Time in PROD Время в продакшне > 6 месяцев
Failed transitions Откаты назад < 10%

Дашборд

ПРОЕКТЫ ПО СТАДИЯМ:
┌─────────────────────────────────────┐
│ DRAFT:  ████████░░ 5 проектов (20%) │
│ DEV:    ██████████ 10 проектов (40%)│
│ TEST:   ████░░░░░░ 3 проекта (12%)  │
│ PROD:   ██████░░░░ 5 проектов (20%) │
│ ARCHIVE:██░░░░░░░░ 2 проекта (8%)   │
└─────────────────────────────────────┘

ПОЛИТИКИ

Правила переходов

  1. Нельзя пропускать стадии:
    ❌ DRAFT → PROD (без DEV и TEST) ✅ DRAFT → DEV → TEST → PROD

  2. Откат только на одну стадию назад:
    ❌ PROD → DRAFT (слишком далеко) ✅ PROD → TEST → DEV (постепенно)

  3. Из ARCHIVE нельзя вернуть в PROD:
    ❌ ARCHIVE → PROD ✅ ARCHIVE → (создать новый проект)

Обязательные проверки

Стадия Проверка Инструмент
DEV → TEST Тесты пройдены npm test, pytest
TEST → PROD Review сделан GitHub PR approval
PROD → ARCHIVE Замена готова Checklist

СВЯЗАННЫЕ СТАНДАРТЫ

Стандарт Связь
../arh/lifecycle-project.md Lifecycle проекта
lifecycle-code.md Lifecycle кода
lifecycle-data.md Lifecycle данных
lifecycle-artifact.md Lifecycle артефактов
process-development.md Процесс разработки
policy-rollback.md Политика откатов

ПРИМЕРЫ

Проект от идеи до архива

# 2024-01-01: DRAFT
status: draft
description: "Идея: магазин пиротехники"

# 2024-02-01: DEV
status: development
description: "Разработка MVP"

# 2024-05-01: TEST
status: testing
description: "Пилот с 10 клиентами"

# 2024-06-01: PROD
status: active
description: "Запуск для всех"

# 2025-12-01: ARCHIVE
status: archived
description: "Заменён новой платформой"

Модуль с откатом

2024-01-01: DRAFT   - Проектирование API
2024-01-15: DEV     - Написание кода
2024-02-01: TEST    - Тестирование
2024-02-05: PROD    - Деплой
2024-02-06: TEST    - ROLLBACK (баг в проде)
2024-02-07: DEV     - Исправление
2024-02-10: TEST    - Повторное тестирование
2024-02-12: PROD    - Деплой v1.0.1

CHANGELOG

2026-02-19 — v1.0.0


Версия: 1.0.0
Статус: active
Владелец: architect