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 arch-component-structure.md — ЧТО ТАКОЕ компонент, типы, структура
У1 arch-component-lifecycle.md — КАК СОЗДАТЬ и управлять ← этот документ
У4 projector/templates/@{тип}/ — ШАБЛОН для конкретного типа
system/@{имя}.{тип}/ — ЭКЗЕМПЛЯР (реальный компонент)
Нельзя создать экземпляр без шаблона. Нельзя создать шаблон без стандарта структуры.
Выбрать суффикс из реестра arch-component-structure.md §2:
Обслуживает платформу? → system/ → .agent / .service / .domain / .coder
Используется в проектах? → coder/ → .module / .api / .tool
Описывает сервер? → infra/ → .server / .infra
Проверка: один компонент = одна задача. Если задач несколько — разбить.
ls projector/templates/@{тип}/
| Результат | Действие |
|---|---|
| Шаблон есть | перейти к этапу 3 |
| Шаблона нет | создать шаблон сначала → затем этап 3 |
Создание шаблона:
projector/templates/@{тип}/
├── AI.md ← роль (с {PLACEHOLDER})
├── CLAUDE.md ← навигатор (с {PLACEHOLDER})
├── README.md ← для людей (с {PLACEHOLDER})
├── index.yaml ← метаданные (с {PLACEHOLDER})
└── {специфика} ← по типу (см. §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.
| Тип | Дополнительные файлы |
|---|---|
.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 ← история изменений
Три действия одновременно:
1. Добавить запись в INDEX.md родительского слоя
2. Объявить extends: в index.yaml → шаблон-родитель
3. В зависимых компонентах: добавить этот компонент в их deps:
Формат записи в INDEX.md:
| `@{имя}.{тип}/` | {описание} | {статус} |
Операция СВЯЗЫВАНИЕ — см. arch-document-linking.md.
Условие: компонент работает в первый раз без ошибок.
# index.yaml
status: draft → active
version: "1.0.0"
После активации — зафиксировать в management/LOG.md:
## [YYYY-MM-DD] Активация v1.0.0
Статус: draft → active
Первый запуск: успешно
| Файл | .agent | .service | .module | .api | .server | .tool |
|---|---|---|---|---|---|---|
index.yaml |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
AI.md |
✅ | ❌ | ✅ | ✅ | ❌ | ✅ |
CLAUDE.md |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
README.md |
❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
infra.yaml |
❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
docker-compose.yml |
❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
src/ |
❌ | опц. | ✅ | ✅ | ❌ | ✅ |
tests/ |
❌ | опц. | ✅ | ✅ | ❌ | ✅ |
management/ |
❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
draft ──────────→ active ──────→ deprecated ──→ archived
↑ │ │
└──────────────────┘ └── replaced_by: обязателен
(рестарт если сломан)
| Переход | Условие |
|---|---|
draft → active |
первый успешный запуск |
active → deprecated |
появилась лучшая реализация; указать replaced_by: |
deprecated → archived |
через 1 версию платформы; переместить в _archive/ |
active → draft |
если сломан и требует переработки |
MAJOR.MINOR.PATCH
| Изменение | Версия | Требует |
|---|---|---|
| Исправление, без изменения интерфейса | PATCH | — |
| Новые возможности, обратно совместимо | MINOR | — |
| Сломан интерфейс | MAJOR | CHANGELOG.md + уведомить deps: |
При MAJOR: создать CHANGELOG.md с разделом ### Миграция.
□ Тип выбран из реестра 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/ — модуль