---
name: workflow-editor
description: >
  Безопасное изменение workflow pipeline: добавление, удаление, перестановка шагов.
  Triggers: "измени workflow", "edit workflow", "добавь шаг", "remove step",
  "reorder workflow", "workflow editor", "изменение пайплайна", "новый шаг workflow".
  Обновляет все артефакты, валидирует целостность цепочки next_skill,
  обрабатывает версионирование.
type: analytical
---

# Workflow Editor

Безопасное изменение workflow pipeline dot_ai. Каждый проект уникален — этот навык обеспечивает бесшовные обновления при развитии dot_ai, сохраняя целостность всех артефактов.

## Алгоритм

### 1. Анализ текущего workflow

- Прочитать `rules/workflow.md` — текущее определение pipeline (диаграммы + таблицы)
- Прочитать `AGENTS.md` или `CLAUDE.md` — секция Workflow, таблица навыков
- Прочитать `.ai/ARCHITECTURE.md` — ключевые паттерны, дерево модулей
- Построить полную карту маршрутов: основной путь и параллельные ветки `skill_N → next_skill`
- Прочитать `LEARNINGS.md` и `EVALS.md` — накопленный опыт предыдущих изменений

### 2. Планирование изменения

Пользователь указывает операцию:

**ADD (добавить шаг или ветку):**
- Определить позицию: после какого шага вставить
- Определить: entry/exit условия нового шага
- Рассчитать: новый next_skill для вставленного шага и предыдущего
- Для параллельной ветки определить точку входа, точку возврата в общий маршрут и label шага (например `F1`)
- Если нужен новый навык — предложить вызвать skill-creator

**REMOVE (удалить шаг):**
- Проверить: нет ли зависимостей (uses: в других навыках)
- Перенаправить: previous_skill.next_skill → next_skill после удаляемого
- Оценить влияние на установленные проекты

**REORDER (переставить шаги):**
- Перенумеровать все затронутые шаги
- Обновить все next_skill цепочки
- Проверить: entry/exit условия всё ещё совпадают

**Оценка SemVer:**
- MAJOR: удаление или перестановка шагов (breaking для установленных проектов)
- MINOR: добавление шага в конец (non-breaking)
- MINOR: добавление опциональной параллельной ветки без изменения основного маршрута
- PATCH: исправление опечаток в workflow артефактах

Представить план пользователю для подтверждения.

### 3. Исполнение

Обновить **все** артефакты:

| Артефакт | Что обновляется |
|----------|----------------|
| `rules/workflow.md` | ASCII-диаграмма, таблицы шагов, правила переходов |
| `AGENTS.md` или `CLAUDE.md` | Секция Workflow (диаграмма + таблица), таблица навыков |
| `.ai/ARCHITECTURE.md` | Ключевые паттерны, дерево модулей |
| `templates/CLAUDE.md.tpl` | Workflow-секция и таблица навыков (если навык распространяется) |
| `init/SKILL.md` | Список копируемых навыков (Phase 3.2) |
| `skills/*/SKILL.md` | `next_skill:` в Workflow Contract каждого затронутого навыка |
| `.agents/skills/*/SKILL.md` или `.claude/skills/*/SKILL.md` | То же самое, рабочая копия, если каталог существует |

Для каждого затронутого навыка обновить **оба места** (`skills/` и рабочую копию), если рабочая копия существует.

### 4. Валидация целостности

Пройти полную проверку после изменений:

**Цепочка:**
- [ ] Пройти каждый маршрут от entrypoint до `next_skill: null`: нет разрывов
- [ ] Нет циклов (проверить через множество посещённых на каждом маршруте)
- [ ] Каждый workflow-навык имеет номер шага или branch label
- [ ] Основной маршрут имеет последовательные номера: ①②③... без пропусков
- [ ] Параллельные ветки имеют явный label и точку возврата в общий маршрут
- [ ] Entry условия следующего навыка совпадают с exit условиями предыдущего внутри маршрута

**Кросс-артефактная консистентность:**
- [ ] ASCII-диаграммы идентичны: `rules/workflow.md` ↔ `AGENTS.md`/`CLAUDE.md` ↔ `templates/CLAUDE.md.tpl`
- [ ] Таблица навыков в AGENTS.md/CLAUDE.md содержит все workflow-навыки
- [ ] `init/SKILL.md` Phase 3.2 включает все workflow-навыки
- [ ] `.ai/ARCHITECTURE.md` дерево модулей актуально

**Версионирование:**
- [ ] SemVer bump корректный (MAJOR/MINOR/PATCH)
- [ ] Запись в `.ai/CHANGELOG.md` создана

**Source-of-truth sync:**
- [ ] Запустить `python scripts/validate_source_sync.py` — FAIL блокирует, WARN допустим
- [ ] Если валидатор обнаружил drift — синхронизировать runtime-копии перед завершением

### 5. Версионирование, отчёт и self-improvement

- Определить SemVer impact и создать запись в `.ai/CHANGELOG.md`
- Вывести:
  - Изменённые файлы (пути)
  - Результаты валидации
  - Версионный impact (MAJOR → предупреждение об установленных проектах)
  - Если MAJOR: "Установленные проекты нуждаются в обновлении через init-скилл"

**Improvement Triage** после каждого запуска:
1. Изменение прошло без проблем → `no_change`
2. Обнаружен паттерн, применимый к будущим изменениям → `LEARNINGS.md`
3. Валидация выявила проблему → `EVALS.md` + предложить патч `SKILL.md`
4. Предпочитать замену устаревшего guidance добавлению новых правил
5. Не обновлять `SKILL.md` без прохождения eval

## Правила

1. Всегда валидировать — проходить все маршруты next_skill после каждого изменения
2. Обновлять оба места (`skills/` + рабочая копия `.agents/skills/` или `.claude/skills/`) для каждого затронутого навыка
3. ASCII-диаграммы должны совпадать во всех артефактах: `rules/workflow.md`, `AGENTS.md`/`CLAUDE.md`, `templates/CLAUDE.md.tpl`
4. Номера основного маршрута последовательны: ①②③... Без пропусков; параллельные ветки используют явные labels
5. Удаление/перестановка = MAJOR. Предупредить об установленных проектах. Добавление в конец = MINOR
6. Всегда обновлять `.ai/CHANGELOG.md` с записью о модификации workflow
7. Обучаться через LEARNINGS.md и EVALS.md — переписывать себя после каждого существенного опыта
