architect/standards/arch-component-lifecycle.md

type: standard
layer: arch
object: component
aspect: lifecycle
form: text
title: "Жизненный цикл компонента: создание и управление"
status: active
version: 1.0.0
date: 2026-04-15
knowledge_level: У1
parent: arch-component-structure.md
deps:
- arch-component-structure.md
- arch-document-system.md
- arch-class-system.md
- arch-service-files-trio.md


Жизненный цикл компонента: создание и управление

Стандарт описывает полный путь компонента от идеи до архива: 6 этапов создания, правила перехода между статусами, обязательные условия для каждого перехода.

Применяется к любому типу: .agent, .service, .module, .api, .tool, .server, .infra, .coder, .domain.


1. КАСКАД: МЕСТО В СИСТЕМЕ

У1  arch-component-structure.md   — ЧТО ТАКОЕ компонент, типы, структура
У1  arch-component-lifecycle.md   — КАК СОЗДАТЬ и управлять              ← этот документ
У4  projector/templates/@{тип}/   — ШАБЛОН для конкретного типа
    system/@{имя}.{тип}/          — ЭКЗЕМПЛЯР (реальный компонент)

Нельзя создать экземпляр без шаблона. Нельзя создать шаблон без стандарта структуры.


2. ШЕСТЬ ЭТАПОВ СОЗДАНИЯ

Этап 1 — ОПРЕДЕЛИТЬ ТИП

Выбрать суффикс из реестра arch-component-structure.md §2:

Обслуживает платформу?    system/   .agent / .service / .domain / .coder
Используется в проектах?  coder/    .module / .api / .tool
Описывает сервер?         infra/    .server / .infra

Проверка: один компонент = одна задача. Если задач несколько — разбить.


Этап 2 — НАЙТИ ИЛИ СОЗДАТЬ ШАБЛОН

ls projector/templates/@{тип}/
Результат Действие
Шаблон есть перейти к этапу 3
Шаблона нет создать шаблон сначала → затем этап 3

Создание шаблона:

projector/templates/@{тип}/
├── AI.md        ← роль (с {PLACEHOLDER})
├── CLAUDE.md    ← навигатор (с {PLACEHOLDER})
├── README.md    ← для людей (с {PLACEHOLDER})
├── index.yaml   ← метаданные (с {PLACEHOLDER})
└── {специфика}  ← по типу (см. §3)

Этап 3 — СОЗДАТЬ СКЕЛЕТ

Порядок строгий — нельзя менять:

1. index.yaml    первым: id, type, layer, class, extends, status:draft, deps:[]
2. AI.md         роль и протокол (мастер-файл)
3. CLAUDE.md     AI.md + Claude-специфичное
4. README.md     AI.md + объяснения для людей

Минимальный index.yaml:

id: {имя}
type: {суффикс}          # agent / service / module / api / server...
layer: {слой}            # system / coder / infra
version: "1.0.0"
status: draft
class: {Класс}Component  # из arch-class-system.md
parent: {слой}/
extends: projector/templates/@{тип}/
deps: []

Правило: CLAUDE.md и README.md не создаются без AI.md.


Этап 4 — ДОБАВИТЬ СПЕЦИФИКУ ТИПА

Тип Дополнительные файлы
.agent role.ai.md, protocols/
.service docker-compose.yml, .env.example
.module src/, tests/
.api src/, tests/, openapi.yaml
.tool src/, tests/
.server infra.yaml, management/, nginx/ (опц.), scripts/ (опц.)
.infra infra.yaml, management/
.coder src/, tests/, prompts/
.domain AI.md (расширенный), agents/

management/ для server/infra:

management/
├── STATUS.md   ← текущее состояние
├── TODO.md     ← задачи
└── LOG.md      ← история изменений

Этап 5 — ЗАРЕГИСТРИРОВАТЬ

Три действия одновременно:

1. Добавить запись в INDEX.md родительского слоя
2. Объявить extends: в index.yaml  шаблон-родитель
3. В зависимых компонентах: добавить этот компонент в их deps:

Формат записи в INDEX.md:

| `@{имя}.{тип}/` | {описание} | {статус} |

Операция СВЯЗЫВАНИЕ — см. arch-document-linking.md.


Этап 6 — АКТИВИРОВАТЬ

Условие: компонент работает в первый раз без ошибок.

# index.yaml
status: draft → active
version: "1.0.0"

После активации — зафиксировать в management/LOG.md:

## [YYYY-MM-DD] Активация v1.0.0
Статус: draft → active
Первый запуск: успешно

3. МАТРИЦА ОБЯЗАТЕЛЬНЫХ ФАЙЛОВ

Файл .agent .service .module .api .server .tool
index.yaml
AI.md
CLAUDE.md
README.md
infra.yaml
docker-compose.yml
src/ опц.
tests/ опц.
management/

4. СТАТУСЫ И ПЕРЕХОДЫ

draft ──────────→ active ──────→ deprecated ──→ archived
  ↑                  │               │
  └──────────────────┘               └── replaced_by: обязателен
     (рестарт если сломан)
Переход Условие
draft → active первый успешный запуск
active → deprecated появилась лучшая реализация; указать replaced_by:
deprecated → archived через 1 версию платформы; переместить в _archive/
active → draft если сломан и требует переработки

5. ВЕРСИОНИРОВАНИЕ

MAJOR.MINOR.PATCH
Изменение Версия Требует
Исправление, без изменения интерфейса PATCH
Новые возможности, обратно совместимо MINOR
Сломан интерфейс MAJOR CHANGELOG.md + уведомить deps:

При MAJOR: создать CHANGELOG.md с разделом ### Миграция.


6. ЧЕКЛИСТ СОЗДАНИЯ

□  Тип выбран из реестра arch-component-structure.md §2
□  Шаблон найден в projector/templates/@{тип}/ (или создан)
□  index.yaml создан первым, status: draft
□  AI.md создан (если требуется по типу)
□  CLAUDE.md создан (всегда)
□  README.md создан (если требуется по типу)
□  Специфичные файлы добавлены по матрице §3
□  Запись добавлена в INDEX.md родительского слоя
□  extends: указан в index.yaml
□  deps: объявлены (пустой список [] если нет зависимостей)
□  status: draft → active после первого успешного запуска
□  LOG.md обновлён

СВЯЗАННЫЕ ДОКУМЕНТЫ

Родитель:
- arch-component-structure.md — что такое компонент, типы

Зависимости:
- arch-document-system.md — типы и уровни документов
- arch-class-system.md — классовая система, наследование
- arch-service-files-trio.md — AI.md + CLAUDE.md + README.md
- arch-document-linking.md — операция СВЯЗЫВАНИЕ

Шаблоны (У4):
- projector/templates/@server/ — сервер
- projector/templates/@module/ — модуль