architect/_archive/2025-11-26-cleanup/system-docs/architecture/3-process.md

Процессное измерение

Версия: 1.0.0
Дата: 2025-11-19


Что описывает это измерение

Вопрос: Как выполняются операции?

Ответ:
- Последовательность действий
- Алгоритмы
- Жизненный цикл
- Управление состоянием

НЕ описывает:
- Где находятся файлы (структурное)
- Что делает система (функциональное)
- Кто выполняет (ролевое)


Основные процессы

1. Создание проекта

Последовательность:

Определить тип →
Собрать информацию →
Создать структуру →
Создать файлы из templates →
Git commit →
Обновить workspace index

Детали: См. platform/procedures/ONBOARD_NEW_PROJECT.md

2. Работа над задачей

Последовательность:

Загрузить контекст →
Понять задачу →
Проверить состояние →
Выполнить изменения →
Проверить работоспособность →
Документировать →
Commit (опц)

3. Миграция версий

Последовательность (10 стадий):

1. Инвентаризация
2. Анализ
3. Планирование
4. Подготовка
5. Staging
6. Валидация
7. Миграция
8. Верификация
9. Архивирование
10. Финализация

Чекпоинты после каждой стадии

4. Подключение к инфраструктуре

Последовательность:

Найти инфру в index.yaml →
Загрузить config.yaml →
Проверить usage (ready/project) →
Получить доступы →
Подключиться (ssh/api) →
Выполнить задачу →
Документировать изменения

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

Состояния

planning → development → testing → staging → production → archived

Переходы

planning → development
- Условие: spec.md готов
- Действие: Создать solution/code/

development → testing
- Условие: Основной функционал реализован
- Действие: Создать tests/, запустить

testing → staging
- Условие: Тесты проходят
- Действие: Деплой на staging сервер

staging → production
- Условие: UAT пройден
- Действие: Деплой на production

* → archived
- Условие: Проект не нужен
- Действие: Переместить в archive/


Управление состоянием

Чекпоинты

Что: Сохранение состояния системы

Когда:
- Перед критичными изменениями
- После каждой стадии миграции
- Перед деплоем

Как:

git add .
git commit -m "checkpoint: before migration stage 5"

Валидация

Что: Проверка корректности состояния

Проверки:
- Файлы существуют
- Форматы корректны
- Тесты проходят
- Сервис работает (HTTP 200)

Пример:

pytest tests/
curl -s -o /dev/null -w "%{http_code}" http://localhost:8503
# Ожидаем: 200

Rollback

Что: Откат к предыдущему состоянию

Когда:
- Валидация провалилась
- Критичная ошибка
- Неожиданное поведение

Как:

git reset --hard HEAD~1  # откат коммита
# или
mv staging/ failed-staging/
mv current/ staging/  # откат папки

Алгоритмы

Алгоритм: Разрешение символических ссылок

Вход: @latest, @stable, @v1

Выход: Конкретная версия (например, v2.0.0)

Шаги:
1. Проверить кэш
2. Парсинг типа ссылки
3. Поиск кандидатов
4. Выбор оптимальной версии
5. Кэширование
6. Возврат результата

Алгоритм: Каскадная загрузка

Вход: Сложность задачи (simple/medium/complex)

Выход: Загруженный контекст

Шаги:
1. Загрузить базовый контекст (CLAUDE.md + index.yaml)
2. Если simple → вернуть
3. Если medium → загрузить дополнительно spec.md + procedures.md
4. Если complex → загрузить весь код
5. Вернуть результат

Алгоритм: Поиск файла по назначению

Вход: Назначение (например, "спецификация")

Выход: Путь к файлу

Шаги:
1. Загрузить index.yaml
2. Найти файл с purpose == "спецификация"
3. Если не найдено → проверить стандартные имена (spec.md)
4. Если не найдено → ошибка
5. Вернуть путь


Обработка ошибок

Категории ошибок

Критичные — остановить работу
- Файл не найден
- Синтаксическая ошибка
- Сервер недоступен

Важные — сообщить, предложить варианты
- Тест провалился
- HTTP 500
- Timeout

Предупреждения — записать в лог
- Устаревшая зависимость
- Низкая производительность

Стратегии восстановления

Rollback:

try:
    apply_changes()
except Error:
    rollback_to_checkpoint()

Retry:

for attempt in range(3):
    try:
        execute()
        break
    except TemporaryError:
        wait(2 ** attempt)

Fallback:

try:
    use_primary()
except Error:
    use_fallback()

Процедуры

Типы процедур

CREATE — создание нового
- Создать проект
- Создать компонент
- Создать документ

READ — чтение существующего
- Навигация
- Анализ
- Поиск

UPDATE — изменение существующего
- Изменить код
- Обновить документацию
- Мигрировать версию

DELETE — удаление (архивирование)
- Архивировать проект
- Удалить временные файлы
- Очистить кэш

Где хранятся процедуры

Общие:
- platform/procedures/

Специфичные для проекта:
- projects/{name}/management/procedures.md

Специфичные для инфры:
- infra/{name}/README.md


Следующее измерение

Следующее: 4-role.md — кто за что отвечает

Назад: 2-functional.md — функциональное измерение