Iwe restore
Skill TserenTserenov/FMT-exocortex-template/.claude/skills/iwe-restore
Exocortex template: fork & deploy your AI-powered personal knowledge system with Claude Code
npx -y skills add TserenTserenov/FMT-exocortex-template --skill iwe-restoreAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Восстановление памяти агента из exocortex-бэкапа при переезде на новое устройство. Находит DS-strategy/exocortex/, показывает что будет восстановлено, спрашивает подтверждение, копирует memory/ + CLAUDE.md + AGENTS.md, финализирует /audit-installation.
SKILL.md
8.2 KB, as published. Nobody here has run it
IWE Restore — восстановление памяти агента
Когда использовать: переехал на новый ноутбук, пересоздал workspace, потерял
memory/. Еслиmemory/уже заполнен и ты просто хочешь проверить — используй/audit-installation.
Аргументы: $ARGUMENTS
When to use
Восстановление памяти агента из exocortex-бэкапа при переезде на новое устройство. Находит DS-strategy/exocortex/, показывает что будет восстановлено, спрашивает подтверждение, копирует memory/ + CLAUDE.md + AGENTS.md, финализирует /audit-installation.
Обещание
За 5 минут и одно подтверждение — восстановить память агента из GitHub-бэкапа. Агент не перезапишет ничего молча: сначала показывает что найдено, потом ждёт «да».
Algorithm
Шаг 1. Найти бэкап
Определить путь к governance-репо. Приоритет:
- Аргумент скилла
$ARGUMENTS(если передан) - Переменная окружения
$DS_STRATEGYили$GOVERNANCE_REPO - Стандартный путь
~/IWE/${IWE_GOVERNANCE_REPO:-DS-strategy}/ - Поиск:
find ~/IWE -maxdepth 2 -name "exocortex" -type d 2>/dev/null
GOVERNANCE="${1:-${DS_STRATEGY:-$HOME/IWE/${IWE_GOVERNANCE_REPO:-DS-strategy}}}"
EXOCORTEX="$GOVERNANCE/exocortex"
Если exocortex/ не найден → сказать:
«Не нашёл бэкап. Папка
exocortex/отсутствует в$GOVERNANCE. Убедись, что governance-репо склонирован:git clone <url> ~/IWE/${IWE_GOVERNANCE_REPO:-DS-strategy}. Если репо на другом пути — вызови/iwe-restore путь/к/DS-strategy.»
Завершить.
Шаг 2. Показать что найдено
Собрать информацию о бэкапе:
# Список файлов в бэкапе
find "$EXOCORTEX" -maxdepth 1 -type f \( -name "*.md" -o -name "*.yaml" -o -name "*.yml" \) | sort
# Дата последнего изменения самого свежего файла
find "$EXOCORTEX" -maxdepth 1 -type f | xargs ls -lt 2>/dev/null | head -1
Определить путь к memory/ на текущем устройстве:
HOME_SLUG=$(echo "$HOME" | sed 's|/|-|g')
MEMORY_DST="$HOME/.claude/projects/${HOME_SLUG}-IWE/memory"
Показать пользователю:
Найден бэкап:
Источник: ~/IWE/${IWE_GOVERNANCE_REPO:-DS-strategy}/exocortex/ (N файлов, последний бэкап: ДАТА)
Назначение: ~/.claude/projects/.../memory/
Что будет восстановлено:
memory/: [список файлов .md и .yaml]
CLAUDE.md → ~/IWE/CLAUDE.md
AGENTS.md → ~/IWE/AGENTS.md (если есть)
Текущее состояние memory/:
[пусто / N файлов уже есть]
Шаг 3. Спросить подтверждение
Спросить одним вопросом:
«Восстановить? (да / нет / показать diff)»
- нет → завершить, ничего не менять.
- показать diff → перейти к Шагу 3a.
- да → перейти к Шагу 4.
Шаг 3a. Diff (если запросил)
Для каждого файла из бэкапа, который уже существует в memory/:
diff "$EXOCORTEX/<file>" "$MEMORY_DST/<file>"
Показать расхождения кратко. После — снова спросить: «Восстановить с перезаписью? (да / пропустить существующие / нет)»
Шаг 4. Восстановить
4a. Создать папку memory/ если не существует
mkdir -p "$MEMORY_DST"
4b. Копировать файлы памяти
rsync -av --exclude='CLAUDE.md' --exclude='AGENTS.md' \
--include='*.md' --include='*.yaml' --include='*.yml' \
--exclude='*' \
"$EXOCORTEX/" "$MEMORY_DST/"
Если пользователь выбрал «пропустить существующие» — добавить флаг --ignore-existing.
4c. Копировать CLAUDE.md
issue #217: подстановка
{{HOME_DIR}}→$HOMEделает восстановление ОС-агностичным (бэкап пишется на плейсхолдере вday-close.sh, симметричноsetup.sh).$HOMEстоит в replacement-частиsed s///— экранируем&/\, иначе$HOMEс&трактуется как «весь совпавший текст» и портит путь (cold-review находка).
WORKSPACE_DIR="${IWE_WORKSPACE:-$HOME/IWE}"
HOME_SED_SAFE=$(printf '%s' "$HOME" | sed 's/[&\]/\\&/g')
if [ -f "$EXOCORTEX/CLAUDE.md" ]; then
# Если CLAUDE.md уже есть — показать: «CLAUDE.md уже существует. Перезаписать?»
# При согласии:
sed "s|{{HOME_DIR}}|$HOME_SED_SAFE|g" "$EXOCORTEX/CLAUDE.md" > "$WORKSPACE_DIR/CLAUDE.md"
fi
4d. Копировать AGENTS.md
if [ -f "$EXOCORTEX/AGENTS.md" ]; then
sed "s|{{HOME_DIR}}|$HOME_SED_SAFE|g" "$EXOCORTEX/AGENTS.md" > "$WORKSPACE_DIR/AGENTS.md"
fi
4e. Отчёт
Восстановлено:
memory/: N файлов скопировано, M пропущено
CLAUDE.md: ✅ / ⏭ пропущен
AGENTS.md: ✅ / — не было в бэкапе
Шаг 5. Проверка
Запустить /audit-installation для финальной проверки целостности инсталляции.
Сказать пользователю:
«Память восстановлена. Перезапусти Claude Code — агент подхватит файлы из
memory/при следующей сессии.»
Граничные случаи
| Ситуация | Поведение |
|---|---|
memory/ пуст | Копировать всё без вопросов (только итоговый подтверждающий вопрос) |
memory/ уже заполнен | Показать diff-опцию, не перезаписывать молча |
exocortex/ содержит очень старый бэкап (>30 дней) | Предупредить: «Бэкап от ДАТА — N дней назад. Продолжить?» |
CLAUDE.md в workspace новее бэкапа | Предупредить: «Файл в workspace новее бэкапа на N дней. Перезаписать потеряешь правки.» |
Нет прав на запись в memory/ | Показать ошибку + команду для ручного исправления прав |