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
Любая процедура платформы (пересборка, деплой, разбор, установка) строится по единому шаблону из пяти блоков.
Процедура — многошаговая операция с состоянием, которую можно прервать и продолжить.
Отличие от простого действия:
- Занимает больше одной сессии
- Имеет прогресс который нужно сохранять
- Может быть прервана и возобновлена
- Требует явного завершения
Примеры процедур платформы:
- arch-rebuild-operation.md — пересборка документов
- arch-intake-operation.md — разбор входящих материалов
- arch-deployment-operation.md — деплой сервиса
- arch-server-setup.md — установка сервера
Каждая процедура содержит пять блоков. Порядок строгий.
┌─ БЛОК 1: ВХОД ─────────────────────────────────────┐
│ Определить: новая процедура или продолжение? │
│ → новая → БЛОК 2 (инициализация) │
│ → старая → БЛОК 3 (продолжение) │
└────────────────────────────────────────────────────┘
│
├──→ БЛОК 2: ИНИЦИАЛИЗАЦИЯ (новая)
│ Определить границы → собрать данные →
│ составить план → одобрение → выполнение
│
└──→ БЛОК 3: ПРОДОЛЖЕНИЕ (старая)
Восстановить контекст → показать позицию →
подтвердить → продолжить
После выполнения:
↓
┌─ БЛОК 4: ВЫХОД / ФИНАЛИЗАЦИЯ ──────────────────────┐
│ Проверка по матрице → финализация → архив │
└────────────────────────────────────────────────────┘
В любой момент:
┌─ БЛОК 5: РЕСТАРТ / ПРОВЕРКА ───────────────────────┐
│ Рестарт: архивировать → начать заново │
│ Проверка: пройти матрицу без изменений │
└────────────────────────────────────────────────────┘
Задача: определить состояние — новая процедура или продолжение.
Алгоритм (всегда самостоятельно, без вопросов оператору):
1. Читаем служебные файлы процедуры (JOURNAL.md, STATUS.md, REBUILD.md — зависит от процедуры)
2. Смотрим реальную структуру папок — что создано
3. Определяем путь:
┌─ ВХОД ────────────────────────────────────────────┐
│ есть прогресс + журнал → МЕНЮ ПРОДОЛЖЕНИЯ │
│ нет прогресса / нет файлов → МЕНЮ ИНИЦИАЛИЗАЦИИ │
└───────────────────────────────────────────────────┘
Меню продолжения:
═══════════════════════════════════════════
{НАЗВАНИЕ ПРОЦЕДУРЫ} — Продолжение
═══════════════════════════════════════════
Прогресс: N% — {что сделано}
Следующий шаг: {из журнала}
1. ПРОДОЛЖИТЬ — с текущей позиции
2. КОРРЕКЦИЯ — просмотреть, исправить
3. РЕСТАРТ — начать заново
4. ПРОВЕРКА — только матрица
═══════════════════════════════════════════
Меню инициализации:
═══════════════════════════════════════════
{НАЗВАНИЕ ПРОЦЕДУРЫ} — Новая
═══════════════════════════════════════════
Прогресс не найден. Для старта нужно:
1. ЧТО обрабатываем? → объект процедуры
2. ГДЕ доп. инфо? → источники
3. КУДА результат? → назначение
4. ЧТО не трогать? → исключения
═══════════════════════════════════════════
Без ответов на вопросы — процедура не начинается.
Задача: подготовить всё необходимое для выполнения.
Шаги:
1. ОПРЕДЕЛИТЬ ГРАНИЦЫ
→ уточнить объект: один файл? компонент? весь слой?
→ уточнить источники и исключения
2. СОБРАТЬ ДАННЫЕ
→ поиск по всей платформе по теме
→ карта: что есть / устарело / отсутствует
3. СОСТАВИТЬ ПЛАН
→ список шагов с зависимостями
→ оценка объёма (количество файлов/операций)
→ показать оператору
4. ОДОБРЕНИЕ
→ оператор принимает план или вносит правки
→ после одобрения — зафиксировать в журнале
5. ВЫПОЛНЕНИЕ
→ по плану, шаг за шагом
→ после каждого шага — запись в журнал
Задача: восстановить контекст и продолжить с нужной позиции.
Алгоритм:
1. Читаем журнал — последние 10 записей
2. Определяем текущую позицию (шаг, файл, этап)
3. Показываем оператору:
"Остановились на: {позиция}. Следующий шаг: {шаг}. Продолжаем?"
4. После подтверждения — продолжить без повторного планирования
Правило: не задавать вопросы, ответы на которые уже есть в журнале.
Задача: завершить процедуру корректно.
Условие финализации: матрица проверок полностью ✅
Шаги финализации:
1. Все проверки матрицы ✅
2. Показать оператору итог — что создано / изменено
3. Получить явное "да" на финализацию
4. Применить результат (переместить файлы / задеплоить / зафиксировать)
5. Архивировать рабочие файлы (_archive/YYYY-MM-DD/)
6. Записать в журнал: "ФИНАЛИЗАЦИЯ завершена YYYY-MM-DD"
Правило: финализация — отдельный шаг, не совмещать с выполнением.
Применяется когда нужно начать заново: изменились требования, накопились ошибки, потерян контекст.
1. Архивировать служебные файлы: _archive/YYYY-MM-DD-restart/
2. Создать новый журнал с пометкой "РЕСТАРТ от YYYY-MM-DD"
3. Вернуться к БЛОКУ 1 — ИНИЦИАЛИЗАЦИЯ
Применяется чтобы убедиться в состоянии без изменений.
1. Прочитать текущее состояние
2. Пройти матрицу проверок
3. Показать результат оператору
4. Никаких изменений не вносить
Каждая процедура определяет свою матрицу. Минимальный набор:
| # | Проверка | Описание |
|---|---|---|
| М1 | Полнота | Все входные объекты обработаны |
| М2 | Без потерь | Ничего не удалено без подтверждения |
| М3 | Журнал | Все шаги зафиксированы |
| М4 | Соответствие | Результат соответствует плану |
| М5 | Откат | Определена команда отката |
Специфичные проверки добавляет каждая процедура.
Обязательный файл — JOURNAL.md (или аналог для процедуры).
Минимальный формат записи:
## [YYYY-MM-DD HH:MM] {Действие}
Позиция: {где мы в процедуре}
Сделано: {что выполнено}
Следующий шаг: {что дальше}
Правило: при открытии сессии — читать последние 10 записей. Не спрашивать оператора о том что уже в журнале.
| Команда | Действие |
|---|---|
/procedure start |
БЛОК 1 — ВХОД |
/procedure continue |
БЛОК 3 — ПРОДОЛЖЕНИЕ |
/procedure finish |
БЛОК 4 — ФИНАЛИЗАЦИЯ |
/procedure restart |
БЛОК 5 — РЕСТАРТ |
/procedure check |
БЛОК 5 — ПРОВЕРКА |
---
type: standard
object: {имя}
aspect: operation
title: "Операция {НАЗВАНИЕ}"
---
# Операция {НАЗВАНИЕ}
## 1. ЧТО ТАКОЕ {НАЗВАНИЕ}
## 2. ВХОД
[Блок 1 — адаптировать]
## 3. ИНИЦИАЛИЗАЦИЯ
[Блок 2 — специфика процедуры]
## 4. ВЫПОЛНЕНИЕ
[Шаги процедуры]
## 5. МАТРИЦА ПРОВЕРОК
[Специфичные проверки + обязательные М1-М5]
## 6. ФИНАЛИЗАЦИЯ
[Блок 4 — адаптировать]
## 7. РЕСТАРТ
[Блок 5 — адаптировать]