---
name: workflow-harmonization
description: Проверка актуальности, гармоничности и непротиворечивости системы инструкций и skills после любых изменений. Предотвращает рассинхрон ссылок, процессов и ролей. Триггеры: изменения в CLAUDE.md, .cursorrules, .ai/**, .cursor/skills/**, явная команда «harmonize» / «гармонизация».
---

# Гармонизация — Проверка целостности системы инструкций

**Регламент:** [.ai/HARMONIZATION.md](../../../.ai/HARMONIZATION.md) (единый источник правил гармонизации)
**Автопроверка:** `bash scripts/harmonize.sh` (запусти первым для быстрой диагностики)

**Цель:** убедиться, что все документы, ссылки и процессы согласованы после изменений.

**Когда запускать:**
- После любых изменений в CLAUDE.md, .cursorrules, .ai/**, .cursor/skills/**
- По явной команде `harmonize` / `гармонизация`
- Автоматически в workflow-done (шаг 5.7) — если были затронуты файлы инструкций/skills

---

## Шаг 1: Bootstrap integrity

**Что проверить:**
- [ ] `CLAUDE.md` ведёт в `.ai/INDEX.md` (через START PROTOCOL)
- [ ] `.cursorrules` ведёт в `.ai/INDEX.md` (через START PROTOCOL)
- [ ] `CLAUDE.md` и `.cursorrules` НЕ дублируют содержимое `RULES.md` (только ссылаются)
- [ ] `CLAUDE.md` и `.cursorrules` НЕ противоречат друг другу
- [ ] Список скиллов в CLAUDE.md актуален (совпадает с `_local/`)

**OK:** Оба bootstrap-файла — тонкие, ведут в INDEX, не дублируют.

**FAIL → Действие:** Исправить bootstrap-файл: убрать дублирование, восстановить ссылку на INDEX. Сообщить пользователю что именно было не так.

---

## Шаг 2: Navigation integrity

**Что проверить:**
- [ ] `.ai/INDEX.md` содержит актуальную таблицу навигации (все документы из `.ai/` перечислены)
- [ ] Структура проекта в INDEX.md отражает реальную файловую систему
- [ ] Таблица триггеров актуальна (все триггеры существуют и работают)
- [ ] `RULES.md` — единый свод правил, нет противоречий между секциями
- [ ] `SNAPSHOT.md` отражает последние изменения

**OK:** INDEX точно отражает реальность, RULES непротиворечив, SNAPSHOT актуален.

**FAIL → Действие:** Обновить INDEX (таблицу, дерево). Исправить противоречия в RULES. Обновить SNAPSHOT.

---

## Шаг 3: Skills coherence + safety

**Что проверить:**
- [ ] Все скиллы из `_local/` перечислены в `_local/README.md`
- [ ] Все скиллы из `_local/` перечислены в `RULES.md` (секция «Скиллы»)
- [ ] Нет активных (используемых) скиллов в `_quarantine/` (кроме README.md)
- [ ] Нет файлов в `_upstream/` без записи в `APPROVALS.md`
- [ ] Ссылки внутри SKILL.md-файлов ведут на существующие файлы (`.ai/` пути корректны)
- [ ] Зоны доверия в RULES.md совпадают с SECURITY_SKILLS_IMPORT.md

**OK:** Все скиллы учтены, зоны доверия соблюдены, ссылки рабочие.

**FAIL → Действие:** Обновить README/RULES. Если в quarantine есть активные скиллы — уведомить владельца (не перемещать самостоятельно). Исправить битые ссылки в SKILL.md.

---

## Шаг 4: Templates coherence

**Что проверить:**
- [ ] `.ai/templates/` содержит ADR_TEMPLATE.md, RFC_TEMPLATE.md, RUNBOOK_TEMPLATE.md
- [ ] На templates/ есть ссылка из INDEX.md
- [ ] Шаблоны не пустые

**OK:** Все шаблоны на месте, ссылка в INDEX есть.

**FAIL → Действие:** Создать отсутствующий шаблон (минимальная версия). Добавить ссылку в INDEX если отсутствует.

---

## Шаг 5: Link graph check

**Что проверить — относительные ссылки между ключевыми файлами:**
- [ ] CLAUDE.md → .ai/INDEX.md, .ai/RULES.md, .ai/SNAPSHOT.md, .ai/ARCHITECTURE.md, .ai/BACKLOG.md
- [ ] .cursorrules → .ai/INDEX.md, .ai/RULES.md, .ai/SNAPSHOT.md, .ai/ARCHITECTURE.md, .ai/BACKLOG.md
- [ ] INDEX.md → все документы из таблицы навигации (RULES, ARCHITECTURE, SNAPSHOT, BACKLOG, EVOLUTION, CHANGELOG, SECURITY_SKILLS_IMPORT, templates/)
- [ ] RULES.md → INDEX.md, ARCHITECTURE.md, SECURITY_SKILLS_IMPORT.md
- [ ] SNAPSHOT.md → INDEX.md, ARCHITECTURE.md, BACKLOG.md, RULES.md, CHANGELOG.md
- [ ] BACKLOG.md → INDEX.md, ARCHITECTURE.md, SNAPSHOT.md, RULES.md, CHANGELOG.md

**Метод:** для каждой ссылки вида `[текст](./путь)` или `[текст](путь)` — проверить что файл существует.

**OK:** Все ссылки ведут на существующие файлы.

**FAIL → Действие:** Исправить битую ссылку (обновить путь или создать файл). Перечислить все исправления в отчёте.

---

## Шаг 6: Harmonization report

После прохождения шагов 1–5 — создать/обновить `.ai/HARMONIZATION_REPORT.md`:

1. Записать дату и последний коммит
2. Для каждого шага: OK или FAIL + что исправлено
3. Если есть open issues — перечислить
4. Итоговый статус: CLEAN / FIXED / HAS_ISSUES

**Формат отчёта — см. шаблон `.ai/HARMONIZATION_REPORT.md`.**

---

## Итоговая выдача

После завершения — сообщить пользователю:

```
Гармонизация: [CLEAN / FIXED (N исправлений) / HAS_ISSUES (N проблем)]
Проверено: bootstrap, навигация, скиллы, шаблоны, ссылки
[Если были исправления — перечислить]
[Если есть open issues — перечислить]
Отчёт: .ai/HARMONIZATION_REPORT.md
```
