architect/prospective/process-project-lifecycle.md

type: standard
title: "Жизненный цикл проекта — процессы"
status: active
version: 1.0.0
date: 2026-04-10
knowledge_level: У1


Жизненный цикл проекта — процессы

Полный цикл от идеи до архивирования: инициация, инициализация, рабочий процесс,
операции, разработка IT-решения, реабилитация, процессорная обработка.


1. ИНИЦИАЦИЯ ПРОЕКТА (bootstrap)

1.1 Чеклист создания нового проекта

Выполнять строго по порядку.

Шаг 1 — Определить тип и место

1. Тип проекта  PROJECT_TYPOLOGY.md §3
2. Место в иерархии  где родитель?
3. Имя папки: @{тип}-{имя}/

Шаг 2 — Скопировать шаблон

# Шаблоны: architect/templates/@{тип}/
cp -r architect/templates/@biz/ projects/org/@biz-{имя}/

Доступные шаблоны: @org, @biz, @it, @ops, @hr, @fin, @mkt, @rd, @phys, @module

Шаг 3 — Структура проекта

@{тип}-{имя}/
├── INDEX.md        ← навигация: что где лежит
├── AI.md           ← контекст для любого AI
├── CLAUDE.md       ← инструкции для Claude
├── STATUS.md       ← стадия: IDEA, что делаем, следующий шаг
├── LOG.md          ← первая запись: инициализация
├── [файлы по типу] ← матрица в PROJECT_DOCUMENTS.md §4
└── arh/

Шаг 4 — Заполнить AI.md

type: biz          # тип из TYPOLOGY
name: ...
description: ...   # 1-2 абзаца: что это, зачем
status: IDEA
key_files:
  - INDEX.md
  - STATUS.md

Шаг 5 — Глоссарий (обязательно)

1. Изучить тему проекта (бизнес, предметная область, технологии)
2. Предложить пользователю список основных терминов с определениями
3. Обсудить, скорректировать
4. Если терминов >3  записать в GLOSSARY.md
5. При появлении новых терминов  предлагать добавить

Шаг 6 — Обновить родителя

- Добавить ссылку в INDEX.md родительского проекта
- Добавить запись в LOG.md: "YYYY-MM-DD — Создан проект @{name}"

1.2 Санация существующего проекта

Санация — применение чеклиста bootstrap к существующему проекту.
Цель: определить нужный список документов, собрать ценное, лишнее — в arh/.
Каждый шаг утверждает оператор.

Алгоритм санации:

Разведка (L0): читаем все .md, строим карту
    ↓
Карта документов → показываем оператору
    ↓
Утверждение списка ← ОПЕРАТОР
    ↓
По каждому документу:
  Читаем существующие → предлагаем объединение → ОПЕРАТОР ✓ → записываем
    ↓
Всё остальное → arh/ ← ОПЕРАТОР ✓
    ↓
Битые ссылки → fix
    ↓
git commit -m "chore({project}): sanation — docs list, merge, arh/"

Отличие от bootstrap:

Bootstrap Санация
Откуда С нуля Существующий проект
Контент Пишем новый Берём лучшее из существующего
Участие оператора Шаг глоссария Каждый документ
Результат Чистый проект Оздоровлённый проект с историей в arh/

2. ИНИЦИАЛИЗАЦИЯ СТРУКТУРЫ

2.1 Три состояния IT-проекта

ZERO         VANILLA           WORKING          PRODUCTION
─────────    ──────────────    ─────────────    ─────────────
Установлено  Голый дистрибутив Версии с кодом  Релиз в проде
НЕ работает  v0.0.0            v0.1.0+          v1.0.0+
БД нет       БД есть           Custom модули    Стабильно

2.2 Два пути (PATH A vs PATH B)

PATH A: Создание с нуля

НИЧЕГО → Zero → Vanilla (v0.0.0) → Working (v0.1.0+) → Production (v1.0.0+)

PATH B: Онбординг существующего

Получение → Анализ → Развёртывание → Онбординг (v1.0.0) → Working (v1.1.0+)

PATH A дает Vanilla (чистый дистрибутив), PATH B дает Working project (уже с кодом).

2.3 PATH A — Создание с нуля

Шаг 1: Проверка инфраструктуры

# Диск
df -h                   # минимум 10GB свободно

# PHP
php -v                  # 8.1+ (рекомендуется 8.4)

# БД
mysql --version         # MySQL 8.0+ или MariaDB 10.6+

# Веб-сервер
nginx -v                # nginx 1.20+

# Composer
composer --version      # 2.x

Шаг 2: Создание Zero

cd ~/
composer create-project drupal/recommended-project new.site.ru
cd new.site.ru

git init
git add .
git commit -m "Zero: Drupal 11.3.3 deployed"

Шаг 3: Настройка -> Vanilla

# Создать БД
mysql -u root -p
CREATE DATABASE site_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'site_user'@'localhost' IDENTIFIED BY 'SecurePass123';
GRANT ALL PRIVILEGES ON site_db.* TO 'site_user'@'localhost';
FLUSH PRIVILEGES;

# Установить CMS
php core/scripts/drupal install standard \
  --db-url=mysql://site_user:SecurePass123@localhost/site_db \
  --site-name="New Site" \
  --account-name=admin \
  --account-pass=Admin123!

# Включить ТОЛЬКО модули из коробки
drush en locale -y

# Проверить
curl -I http://new.site.ru/    # HTTP/1.1 200 OK
drush pml --status=enabled --no-core | wc -l  # 1 (только locale)

# Зафиксировать
git tag v0.0.0

Шаг 4: Эталонные данные

# .credentials.md — НЕ в git, добавить в .gitignore
# .project-config.md — в git (параметры без паролей)
echo ".credentials.md" >> .gitignore

Шаг 5: Vanilla Backup (L3)

cd ~/
tar -czf "vanilla-$(date +%Y%m%d-%H%M%S).tar.gz" new.site.ru/
mysqldump -u site_user -pSecurePass123 site_db | \
  gzip > "vanilla-db-$(date +%Y%m%d-%H%M%S).sql.gz"

2.4 Версионирование

v0.0.0 = Vanilla (голый дистрибутив) — контрольная точка
v0.1.0 = Первая фича
v0.x.x = Разработка (не в проде)
v1.0.0 = Релиз в production
v1.0.1 = Баг-фикс (PATCH)
v1.1.0 = Новая фича (MINOR)
v2.0.0 = Breaking change (MAJOR)

2.5 Аудит и рефакторинг

Чеклист аудита проекта:
- Структура соответствует стандарту
- Все обязательные файлы на месте
- Нет дублирования данных
- Credentials в .gitignore
- Версия актуальна

Когда нужен рефакторинг:
- Накопился технический долг
- Структура перестала соответствовать стандарту
- Меняется стек или архитектура


3. РАБОЧИЙ ПРОЦЕСС (workflow)

3.1 Окружения и режимы работы

Режим 1: ПОЛНЫЙ ЦИКЛ (DEV -> STAGING -> PRODUCTION)

Когда: E-commerce, финансы, большая аудитория, высокая стоимость ошибки.

DEV        → разработка
STAGING    → точная копия prod, финальные тесты
PRODUCTION → боевой

STAGING = точная копия PRODUCTION (БД, версии, конфиг).

Режим 2: БЫСТРЫЙ ЦИКЛ (DEV -> PRODUCTION)

Когда: MVP, внутренние инструменты, низкий риск, малый бюджет.

DEV        → разработка + ВСЕ тесты
PRODUCTION → релиз + мониторинг

3.2 LEGACY vs NEXT

LEGACY — текущий рабочий проект в production.
NEXT — переделка с нуля, разрабатывается параллельно.

Миграция:
site.ru (LEGACY)     archive.site.ru
new.site.ru (NEXT)   site.ru

3.3 Workflow по режимам

Полный цикл:

1. DEV: код  тесты  git commit  push develop
2. STAGING: merge develop  deploy  тесты stage.site.ru
3. PRODUCTION: merge staging  deploy  мониторинг

Быстрый цикл:

1. DEV: код  ВСЕ тесты  git commit  push main
2. PRODUCTION: deploy  мониторинг  hotfix при необходимости

3.4 Безопасность разработки

Правило: один шаг = одна проверка

1. СДЕЛАТЬ одно изменение
2. ПРОВЕРИТЬ что работает
3. ЗАПИСАТЬ в DEVLOG.md
4. GIT COMMIT
5. Следующее изменение

Правило: не чинить ядро

Ядро (НЕ ТРОГАТЬ):

Система Ядро Можно менять
Drupal core/, vendor/ modules/custom/, themes/custom/
Laravel vendor/, bootstrap/ app/, routes/, config/
WordPress wp-includes/, wp-admin/ wp-content/plugins/, themes/
Node.js node_modules/ src/, lib/

Если сломалось: ОТКАТ к backup -> Повторить ПО-ДРУГОМУ.

Правило: 3 ошибки -> СТОП

3 ошибки подряд -> откат к backup -> другой подход.

Правило: удаленные изменения (READ-MODIFY-WRITE)

1. READ  прочитать текущее состояние
2. BACKUP  сохранить копию
3. MODIFY  изменить конкретное место
4. VERIFY  проверить результат
5. COMMIT или ROLLBACK

3.5 DEVLOG.md

Формат записи:

[YYYY-MM-DD HH:MM] ДЕЙСТВИЕ: описание
  Параметр: значение
  ✓ Результат
  → Статус

Типы действий: INFRA CHECK, ZERO, VANILLA, SETUP, MODULE, BACKUP, FEATURE, FIX, DEPLOY, ROLLBACK.

3.6 Git-правила

Проверил что работает -> commit. НЕ раньше.

git commit -m "Feature: описание"
git tag v0.x.x

Один commit = одно логическое изменение.


4. ОПЕРАЦИИ В ХОДЕ ПРОЕКТА

4.1 Контрольные точки (backup)

Уровень Что Когда Где
L1 Файлы Модули, код Перед деплоем arh/ + timestamp
L2 БД Дамп БД Перед миграцией БД arh/sql/ + timestamp
L3 Vanilla Голый дистрибутив После установки CMS ~/backups/vanilla/
L4 Система Весь проект Перед большими изменениями $INFRA/backups/
# L1: Модули
tar -czf "arh/modules-$(date +%Y%m%d-%H%M%S).tar.gz" modules/

# L2: БД
mysqldump -u user -p db_name | gzip > "arh/sql/db-$(date +%Y%m%d-%H%M%S).sql.gz"

# L3: Vanilla
tar -czf "backups/vanilla/vanilla-$(date +%Y%m%d-%H%M%S).tar.gz" site.ru/
mysqldump -u user -p db_name | gzip > "backups/vanilla/vanilla-db-$(date +%Y%m%d-%H%M%S).sql.gz"

4.2 Деплой

Checklist перед деплоем:

□ Backup создан (L1+L2)
□ Тесты пройдены (на DEV/STAGING)
□ Git tag поставлен
□ DEVLOG заполнен
□ План rollback готов

Rollback при ошибке:

# Откат файлов
tar -xzf arh/modules/modules-before-deploy-*.tar.gz -C modules/

# Откат БД
gunzip -c arh/sql/db-before-deploy-*.sql.gz | mysql -u user -ppass db_name

# Проверка
curl -I http://site.ru/

5. РАЗРАБОТКА IT-РЕШЕНИЯ

5.1 Процесс (7 фаз)

ФАЗА 1: СОЗДАНИЕ СТРУКТУРЫ     ← один раз
ФАЗА 2: РАЗРАБОТКА (dev/)      ← активная работа
ФАЗА 3: ТЕСТИРОВАНИЕ (test/)   ← проверка
ФАЗА 4: PRODUCTION (prod/)     ← релиз
ФАЗА 5: ЭКСПЛУАТАЦИЯ           ← использование
ФАЗА 6: ОБНОВЛЕНИЕ             ← новая версия (цикл)
ФАЗА 7: АРХИВИРОВАНИЕ          ← вывод из эксплуатации

5.2 Стадии кода

Стадия Версия Где Описание
dev/ X.Y.Z-dev modules/dev/ Разработка
test/ X.Y.Z-rc1 modules/test/ Тестирование
prod/ X.Y.Z modules/prod/ Production
archive/ X.Y.Z modules/archive/ Deprecated

5.3 Перенос между стадиями

dev -> test:

# Обновить версию: X.Y.Z-dev -> X.Y.Z-rc1
cp -r modules/dev/my_module/ modules/test/my_module-vX.Y.Z-rc1/

test -> prod:

# Обновить версию: X.Y.Z-rc1 -> X.Y.Z
bash /opt/scripts/backup.sh    # ОБЯЗАТЕЛЬНО
cp -r modules/test/my_module-vX.Y.Z-rc1/ modules/prod/my_module-vX.Y.Z/

Хранить минимум 2-3 версии в prod/ для rollback.

5.4 Hotfix (срочное исправление)

Критерии: критический баг (downtime, потеря данных), простое исправление (1-5 строк), срочность.

# Исправить в dev/
vim modules/dev/my_module/func.php
# Обновить версию: X.Y.Z -> X.Y.Z+1

# Можно пропустить test/ если критично
cp -r modules/dev/my_module/ modules/prod/my_module-vX.Y.Z+1/

5.5 Алгоритм разработки

1. ЗАДАЧА  оператор формулирует
2. АНАЛИЗ  кодер читает существующий код, планирует
3. РЕАЛИЗАЦИЯ  код по стандартам, минимальные изменения
4. ПРОВЕРКА  тесты, ручная проверка, демонстрация
5. ФИКСАЦИЯ  git add, git commit, обновление документации

Git-коммиты:

feat: новая функциональность
fix: исправление ошибки
refactor: рефакторинг
docs: документация

5.6 Начало проекта (Теория 9 вопросов)

ФАЗА 0: INTAKE      — сбор входных данных (2-4 ч)
ФАЗА 1: ПОЧЕМУ      — проблема (4-8 ч)
ФАЗА 2: ЗАЧЕМ       — видение (4-6 ч)
ФАЗА 3: ЧТО         — решение (6-10 ч)
ФАЗА 4: КТО         — команда (2-4 ч)
ФАЗА 5: КАК         — архитектура (8-16 ч)
ФАЗА 6-8: ЧЕМ/ГДЕ/КОГДА — параллельно (8-12 ч)
ФАЗА 9: СКОЛЬКО      — ресурсы (4-6 ч)
ФАЗА 10: СТАРТ       — разработка

Обязательный чеклист перед первой строкой кода:

Если хотя бы один пункт НЕ готов -> НЕ начинать разработку.


6. РЕАБИЛИТАЦИЯ ПРОЕКТА

6.1 Определение

Реабилитация — последовательный курс сеансов, каждый из которых атомарно
приводит часть документации в соответствие с целевой структурой.

Томография Реабилитация
Цель Что не так Привести в порядок
Результат Отчёт Изменения в репозитории
Обратимость Без изменений Каждый сеанс обратим через git

6.2 Фазы реабилитации

Фаза 0 — Фиксация

git tag rehab-YYYY-MM-start

Создать маппинг в tmp/PLAN.md со статусами: RENAME, CREATE, DELETE, ARCHIVE, KEEP, REVIEW.

Фаза 1 — Создание недостающего

Создать новые файлы. Сначала создать, потом переносить/удалять.

git commit -m "rehab: create missing files"

Фаза 2 — Миграция

Атомарное правило: переименование файлов и обновление ВСЕХ ссылок — один коммит.

git mv old/path.md new/path.md

# Обновить все ссылки во всём репозитории
find /opt/claude-workspace -name "*.md" -exec sed -i 's|old/path|new/path|g' {} +

# Проверить: ноль вхождений старого пути
grep -rn 'old/path' --include="*.md" | wc -l  # должно быть 0

git commit -m "rehab: migrate [описание]"

Фаза 3 — Очистка

Удалить или архивировать устаревшее. Только после того как новый файл существует и все ссылки обновлены.

Фаза 4 — Верификация

✅ Ноль ссылок на старые пути
✅ Все файлы из PLAN.md имеют статус ✅
✅ Каждая папка-аспект имеет README.md
✅ git log --follow показывает историю для перенесённых файлов
git tag rehab-YYYY-MM-end
mv tmp/PLAN.md architect/arh/rehab-YYYY-MM-plan.md

6.3 Инструменты

scan.sh — найти все ссылки на паттерн:

#!/bin/bash
PATTERN=${1:-"ваш паттерн"}
grep -rn "$PATTERN" /opt/claude-workspace --include="*.md" | grep -v "^Binary" | sort

validate.sh — проверить нет битых ссылок:

#!/bin/bash
ERRORS=0
while IFS= read -r file; do
  while IFS= read -r link; do
    target=$(dirname "$file")/$link
    if [ ! -f "$target" ]; then
      echo "BROKEN: $file -> $link"
      ERRORS=$((ERRORS + 1))
    fi
  done < <(grep -oP '\[.*?\]\(\K[^)]+(?=\))' "$file" | grep -v '^http' | grep '\.md')
done < <(find /opt/claude-workspace/architect -name "*.md" | grep -v arh/ | grep -v tmp/)
echo "Total broken links: $ERRORS"

7. ПРОЦЕССОР ПРОЕКТА (роли и передачи)

7.1 Место в платформе

ПРОЕКТОР (агент) → использует → ПРОЕКТ-ПРОЦЕССОР (движок)

Проектор решает ЧТО делать. Проект-Процессор решает КАК исполнить.

7.2 Рекурсивная сигнатура

PROCESS(task, context):
  [0]   CONTEXT_CHECK(task)            path, risk_level
  [0.5] MATCHER(task)                  template | null
  if ATOMIC(task):
    [2]   SYNTHESIZE(task, context)    CODE-PROMPT.md
    [3]   EXECUTE(CODE-PROMPT)         result
    return result

  [1]   DECOMPOSE(task)                subtasks[]
  [1.5] CLARIFY(subtasks)              verified_subtasks[]

  for each subtask:
    if ATOMIC: SYNTHESIZE + EXECUTE
    else: PROCESS(subtask, INHERIT(context, subtask))    РЕКУРСИЯ

  INTEGRATE(results[])  deploy/
  PASS_3(deploy/, risk_level)
  PASS_4(deploy/)
  return deploy/

7.3 Пять стадий

[0]   CONTEXT_CHECK     — проверить размер и сложность
[0.5] MATCHER           — найти шаблон (БЫСТРЫЙ / МЕДЛЕННЫЙ ПУТЬ)
[1]   ДЕКОМПОЗИТОР      — разбить на дерево атомов
[1.5] УТОЧНЕНИЕ         — верификация полноты параметров
[2]   СИНТЕЗАТОР        — собрать контекст для каждого атома
[3]   ЭКЗЕКУТОР         — исполнить атомы
      INTEGRATE         — собрать результаты
      PASS 3            — полное тестирование
      PASS 4            — финализация (HARDEN)

7.4 Быстрый vs Медленный путь

Точное совпадение (100%)    → БЫСТРЫЙ ПУТЬ: шаблон → ЭКЗЕКУТОР
Частичное (>=70%)           → БЫСТРЫЙ + дополнить
Нет совпадения (<70%)       → МЕДЛЕННЫЙ ПУТЬ: полный цикл + сохранить шаблон

7.5 Критерий атомарности

ATOMIC = true если ВСЕ условия:
1. entity_count = 1 — одна сущность
2. estimated_lines <= 500 — результат помещается в один CODE-PROMPT
3. dependency_count = 0 — нет зависимости от незавершённых задач
4. Все REQUIRED_PARAMS разрешены

7.6 Ограничение глубины рекурсии

depth > 7  → WARN: проверить декомпозицию
depth > 12 → STOP: пересмотреть задачу, ESCALATE оператору

7.7 Две рекурсии

Рекурсия задач Рекурсия блоков
Причина Задача сложная по смыслу Задача не влезает в контекст
Механизм Декомпозиция по логике Разбивка на последовательные части
Глубина Не ограничена (WARN > 7) 1-2 уровня
Критерий Задача атомарна Блок < CONTEXT_LIMIT * 0.7

ПРАВИЛА

Правило Описание
Глоссарий обязателен Каждый проект начинается с изучения темы и предложения терминов
Структура сначала INDEX, AI, STATUS, LOG -> потом контент
Имя папки Всегда @{тип}-{имя}/, тип из PROJECT_TYPOLOGY.md
Один шаг = одна проверка Сделал -> проверил -> записал -> commit
Не чинить ядро Откатиться к рабочему -> повторить по-другому
DEVLOG всегда Каждое действие записывается
Git после проверки Проверил -> commit, не раньше

Версия: 1.0.0
Дата: 2026-04-10