architect/standards/arch-procedure-standard.md

type: standard
layer: arch
object: procedure
aspect: standard
form: text
title: "Стандарт процедуры платформы"
status: active
version: 1.0.0
date: 2026-04-15
knowledge_level: У1
parent: arch-document-system.md


Стандарт процедуры платформы

Любая процедура платформы (пересборка, деплой, разбор, установка) строится по единому шаблону из пяти блоков.


1. ЧТО ТАКОЕ ПРОЦЕДУРА

Процедура — многошаговая операция с состоянием, которую можно прервать и продолжить.

Отличие от простого действия:
- Занимает больше одной сессии
- Имеет прогресс который нужно сохранять
- Может быть прервана и возобновлена
- Требует явного завершения

Примеры процедур платформы:
- arch-rebuild-operation.md — пересборка документов
- arch-intake-operation.md — разбор входящих материалов
- arch-deployment-operation.md — деплой сервиса
- arch-server-setup.md — установка сервера


2. ПЯТЬ ОБЯЗАТЕЛЬНЫХ БЛОКОВ

Каждая процедура содержит пять блоков. Порядок строгий.

┌─ БЛОК 1: ВХОД ─────────────────────────────────────┐
│  Определить: новая процедура или продолжение?       │
│  → новая    → БЛОК 2 (инициализация)               │
│  → старая   → БЛОК 3 (продолжение)                 │
└────────────────────────────────────────────────────┘
         │
         ├──→ БЛОК 2: ИНИЦИАЛИЗАЦИЯ (новая)
         │    Определить границы → собрать данные →
         │    составить план → одобрение → выполнение
         │
         └──→ БЛОК 3: ПРОДОЛЖЕНИЕ (старая)
              Восстановить контекст → показать позицию →
              подтвердить → продолжить

         После выполнения:
         ↓
┌─ БЛОК 4: ВЫХОД / ФИНАЛИЗАЦИЯ ──────────────────────┐
│  Проверка по матрице → финализация → архив          │
└────────────────────────────────────────────────────┘

         В любой момент:
┌─ БЛОК 5: РЕСТАРТ / ПРОВЕРКА ───────────────────────┐
│  Рестарт: архивировать → начать заново              │
│  Проверка: пройти матрицу без изменений             │
└────────────────────────────────────────────────────┘

3. БЛОК 1 — ВХОД

Задача: определить состояние — новая процедура или продолжение.

Алгоритм (всегда самостоятельно, без вопросов оператору):

1. Читаем служебные файлы процедуры (JOURNAL.md, STATUS.md, REBUILD.md  зависит от процедуры)
2. Смотрим реальную структуру папок  что создано
3. Определяем путь:
┌─ ВХОД ────────────────────────────────────────────┐
│  есть прогресс + журнал → МЕНЮ ПРОДОЛЖЕНИЯ        │
│  нет прогресса / нет файлов → МЕНЮ ИНИЦИАЛИЗАЦИИ  │
└───────────────────────────────────────────────────┘

Меню продолжения:

═══════════════════════════════════════════
 {НАЗВАНИЕ ПРОЦЕДУРЫ} — Продолжение
═══════════════════════════════════════════
 Прогресс:      N% — {что сделано}
 Следующий шаг: {из журнала}

 1. ПРОДОЛЖИТЬ  — с текущей позиции
 2. КОРРЕКЦИЯ   — просмотреть, исправить
 3. РЕСТАРТ     — начать заново
 4. ПРОВЕРКА    — только матрица
═══════════════════════════════════════════

Меню инициализации:

═══════════════════════════════════════════
 {НАЗВАНИЕ ПРОЦЕДУРЫ} — Новая
═══════════════════════════════════════════
 Прогресс не найден. Для старта нужно:

 1. ЧТО обрабатываем?     → объект процедуры
 2. ГДЕ доп. инфо?        → источники
 3. КУДА результат?       → назначение
 4. ЧТО не трогать?       → исключения
═══════════════════════════════════════════

Без ответов на вопросы — процедура не начинается.


4. БЛОК 2 — ИНИЦИАЛИЗАЦИЯ

Задача: подготовить всё необходимое для выполнения.

Шаги:

1. ОПРЕДЕЛИТЬ ГРАНИЦЫ
    уточнить объект: один файл? компонент? весь слой?
    уточнить источники и исключения

2. СОБРАТЬ ДАННЫЕ
    поиск по всей платформе по теме
    карта: что есть / устарело / отсутствует

3. СОСТАВИТЬ ПЛАН
    список шагов с зависимостями
    оценка объёма (количество файлов/операций)
    показать оператору

4. ОДОБРЕНИЕ
    оператор принимает план или вносит правки
    после одобрения  зафиксировать в журнале

5. ВЫПОЛНЕНИЕ
    по плану, шаг за шагом
    после каждого шага  запись в журнал

5. БЛОК 3 — ПРОДОЛЖЕНИЕ

Задача: восстановить контекст и продолжить с нужной позиции.

Алгоритм:

1. Читаем журнал  последние 10 записей
2. Определяем текущую позицию (шаг, файл, этап)
3. Показываем оператору:
   "Остановились на: {позиция}. Следующий шаг: {шаг}. Продолжаем?"
4. После подтверждения  продолжить без повторного планирования

Правило: не задавать вопросы, ответы на которые уже есть в журнале.


6. БЛОК 4 — ВЫХОД / ФИНАЛИЗАЦИЯ

Задача: завершить процедуру корректно.

Условие финализации: матрица проверок полностью ✅

Шаги финализации:

1. Все проверки матрицы 
2. Показать оператору итог  что создано / изменено
3. Получить явное "да" на финализацию
4. Применить результат (переместить файлы / задеплоить / зафиксировать)
5. Архивировать рабочие файлы (_archive/YYYY-MM-DD/)
6. Записать в журнал: "ФИНАЛИЗАЦИЯ завершена YYYY-MM-DD"

Правило: финализация — отдельный шаг, не совмещать с выполнением.


7. БЛОК 5 — РЕСТАРТ / ПРОВЕРКА

Рестарт

Применяется когда нужно начать заново: изменились требования, накопились ошибки, потерян контекст.

1. Архивировать служебные файлы: _archive/YYYY-MM-DD-restart/
2. Создать новый журнал с пометкой "РЕСТАРТ от YYYY-MM-DD"
3. Вернуться к БЛОКУ 1  ИНИЦИАЛИЗАЦИЯ

Проверка

Применяется чтобы убедиться в состоянии без изменений.

1. Прочитать текущее состояние
2. Пройти матрицу проверок
3. Показать результат оператору
4. Никаких изменений не вносить

8. МАТРИЦА ПРОВЕРОК

Каждая процедура определяет свою матрицу. Минимальный набор:

# Проверка Описание
М1 Полнота Все входные объекты обработаны
М2 Без потерь Ничего не удалено без подтверждения
М3 Журнал Все шаги зафиксированы
М4 Соответствие Результат соответствует плану
М5 Откат Определена команда отката

Специфичные проверки добавляет каждая процедура.


9. ЖУРНАЛ ПРОЦЕДУРЫ

Обязательный файл — JOURNAL.md (или аналог для процедуры).

Минимальный формат записи:

## [YYYY-MM-DD HH:MM] {Действие}
Позиция: {где мы в процедуре}
Сделано: {что выполнено}
Следующий шаг: {что дальше}

Правило: при открытии сессии — читать последние 10 записей. Не спрашивать оператора о том что уже в журнале.


10. КОМАНДЫ УПРАВЛЕНИЯ ПРОЦЕДУРОЙ

Команда Действие
/procedure start БЛОК 1 — ВХОД
/procedure continue БЛОК 3 — ПРОДОЛЖЕНИЕ
/procedure finish БЛОК 4 — ФИНАЛИЗАЦИЯ
/procedure restart БЛОК 5 — РЕСТАРТ
/procedure check БЛОК 5 — ПРОВЕРКА

11. ШАБЛОН ДОКУМЕНТА ПРОЦЕДУРЫ

---
type: standard
object: {имя}
aspect: operation
title: "Операция {НАЗВАНИЕ}"
---

# Операция {НАЗВАНИЕ}

## 1. ЧТО ТАКОЕ {НАЗВАНИЕ}

## 2. ВХОД
[Блок 1 — адаптировать]

## 3. ИНИЦИАЛИЗАЦИЯ
[Блок 2 — специфика процедуры]

## 4. ВЫПОЛНЕНИЕ
[Шаги процедуры]

## 5. МАТРИЦА ПРОВЕРОК
[Специфичные проверки + обязательные М1-М5]

## 6. ФИНАЛИЗАЦИЯ
[Блок 4 — адаптировать]

## 7. РЕСТАРТ
[Блок 5 — адаптировать]

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