type: standard
aspect: process
title: "Реабилитация документации"
version: 1.0.0
date: 2026-03-30
status: active
Назначение: Структурированный курс восстановления документации после томографии
Пара: Томография (диагностика) → Реабилитация (восстановление)
Реабилитация — последовательный курс сеансов, каждый из которых атомарно
приводит часть документации в соответствие с целевой структурой.
Отличие от томографии:
| Томография | Реабилитация | |
|---|---|---|
| Цель | Что не так | Привести в порядок |
| Результат | Отчёт | Изменения в репозитории |
| Обратимость | Без изменений | Каждый сеанс обратим через git |
Входные:
- Отчёт томографии (или аудита)
- Текущее состояние репозитория
Рабочие (в tmp/):
- PLAN.md — маппинг: было → стало для каждого файла
- PROGRESS.md — статус каждого сеанса
- scan.sh — поиск ссылок по репозиторию
- validate.sh — проверка отсутствия битых ссылок
Выходные:
- Изменения в репозитории (серия коммитов с тегами)
- PLAN.md с отметками ✅ переносится в arh/
git tag rehab-YYYY-MM-start
Создать маппинг в tmp/PLAN.md. Каждый файл должен получить статус:
- RENAME — переименовать/переместить
- CREATE — создать новый
- DELETE — удалить
- ARCHIVE — перенести в arh/
- KEEP — оставить как есть
- REVIEW — требует ручного решения
Создать новые файлы которых не было. Коммит: rehab: create missing files.
Правило: Сначала создать, потом переносить/удалять — новое должно существовать
до того как старое исчезает.
Атомарное правило: переименование файлов и обновление всех ссылок на них —
ОДИН коммит. Нельзя разделять: между переносом и обновлением ссылок
репозиторий в неконсистентном состоянии.
# Переименовать
git mv old/path.md new/path.md
# Обновить все ссылки во всём репозитории
find /opt/claude-workspace -name "*.md" -exec sed -i 's|old/path|new/path|g' {} +
# Проверить что ноль вхождений старого пути
grep -rn 'old/path' --include="*.md" | wc -l # должно быть 0
# Коммит
git commit -m "rehab: migrate [описание]"
Область поиска: весь репозиторий, не только изменяемая папка.
Удалить или архивировать устаревшее. Коммит: rehab: cleanup [описание].
Правило: Удалять только после того как:
1. Новый файл существует (создан в фазе 1 или перенесён в фазе 2)
2. Все ссылки на старый файл обновлены
Запустить validate.sh. Все проверки должны пройти:
✅ Ноль ссылок на старые пути
✅ Все файлы из PLAN.md имеют статус ✅
✅ Каждая папка-аспект имеет README.md
✅ git log --follow показывает историю для перенесённых файлов
После верификации:
git tag rehab-YYYY-MM-end
mv tmp/PLAN.md architect/arh/rehab-YYYY-MM-plan.md
Каждый сеанс = один git commit. Именование коммитов:
rehab: rename folders 1-9 (N references updated)
rehab: migrate UPPERCASE files to aspects
rehab: update navigation (CLAUDE.md, INDEX.md)
rehab: cleanup arh/ and stale files
Каждый сеанс обратим: git reset HEAD~1 --hard.
#!/bin/bash
PATTERN=${1:-"ваш паттерн"}
grep -rn "$PATTERN" /opt/claude-workspace --include="*.md" | grep -v "^Binary" | sort
#!/bin/bash
ERRORS=0
while IFS= read -r file; do
while IFS= read -r link; do
target=$(dirname "$file")/$link
if [ ! -f "$target" ]; then
echo "BROKEN: $file -> $link"
ERRORS=$((ERRORS + 1))
fi
done < <(grep -oP '\[.*?\]\(\K[^)]+(?=\))' "$file" | grep -v '^http' | grep '\.md')
done < <(find /opt/claude-workspace/architect -name "*.md" | grep -v arh/ | grep -v tmp/)
echo "Total broken links: $ERRORS"
Версия: 1.0.0
Дата: 2026-03-30