Installs into .claude/skills of the current project.
Are you the author of Canon Sync?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/dewil-canon-sync)
---
name: canon-sync
description: Обновить установленный .AI канон клиента через audit, plan, согласованное apply и check. Не для bootstrap, миграции или смены конфигурации.
---
# Синхронизация канона
Применяй для обновления уже подключенного клиента, `/canon`, проверки или восстановления его sync. Новый клиент устанавливается через `start.md`; миграция legacy в `.AI` - только по отдельному явному запросу через навык `migrate`. Навык не меняет types/adapters, настройки среды или project_id.
Определи только существующий корень клиента. До HTTP-загрузок и выбора нового ref проверь все три journal paths, включая битые ссылки: `.ai-bootstrap/sync.json`, `.ai-bootstrap/migration.json`, `.ai-bootstrap/journal.json`. Несколько журналов - отказ без выбора или recover. Pending sync идет сразу к сохраненной pinned процедуре/паре прерванной операции (ниже), pending migration - только к `migrations/ai-layout.prompt.md` и ai-migrate check/recover, bootstrap journal - только к `bootstrap/bootstrap-ai.prompt.md` и ai-bootstrap check/recover. Используй закрепленный recovery маршрут операции; неизвестная provenance - остановка, не новый main. После recovery заверши маршрут. Новый план допустим только без журналов.
До выбора ref проверь `.AI` и `.ai-bootstrap`, включая файлы и ссылки (в том числе битые). Их наличие направляет к отдельной процедуре `migrations/ai-sync.prompt.md`. Если оба пути отсутствуют, проверь legacy-маркер `.claude/canon.yaml`: при его наличии сообщи, что legacy sync больше не поддерживается и для перехода в `.AI` пользователь должен отдельно запросить миграцию через `migrations/ai-layout.prompt.md`, затем остановись. Не запускай старую синхронизацию и не начинай миграцию автоматически. Если отсутствует и legacy-маркер, сообщи, что синхронизировать нечего и для нового клиента нужен bootstrap через `start.md`; не запускай его автоматически. Поврежденный AI-layout дает отказ и не разрешает переход к legacy-маршруту.
Если есть sync journal, используй сохраненную вне клиента immutable пару ai-sync.py/ai-bootstrap.py прерванной операции и ее закрепленную процедуру; не разрешай новый main и не смешивай установленный обновляемый инструмент со старым helper. Восстановление описано в разделе 1 процедуры. При отсутствии пары получай только инструменты из того же известного SHA; неизвестная ревизия - остановка.
Для нового AI-плана сначала используй уже переданные router точные SHA/PINNED_URL, если версия зафиксирована: процедуру получи из них, без повторного разрешения main. Только если версия еще не выбрана, найди HTTP-источник: явный источник пользователя, иначе HTTPS `source.base` из `.AI/canon/canon.state.json`. Если HTTP origin отсутствует (например, клиент установлен из bundle), продуктовый default - `https://raw.githubusercontent.com/dewil/claude-toolkit/main`; форк должен заменить этот default. Из сохраненного HTTPS `source.base` выводи только репозиторий: установленный SHA - provenance, не target обновления. Выбранный ref по умолчанию `main`, другой branch/tag/ref - по выбору пользователя; явно заданный пользователем immutable URL/SHA соблюдай точно. Разреши ветку/тег через GitHub API в полный 40-hex commit SHA. Получи процедуру точными байтами по HTTPS уже из этого SHA и выполни ее в текущей сессии, передав точные выбранные SHA и PINNED_URL как зафиксированную версию операции. Процедура не должна повторно разрешать main или менять этот SHA; инструменты, plan и apply используют ту же версию. Неполный ответ, сетевой отказ или неизвестный источник - остановка с диагностикой; не ищи соседний или локальный клон. Явно предоставленный офлайн/development bundle допустим, процедура и инструменты берутся из того же снимка.
Механика, маршрутизация журналов и команды находятся в полученной процедуре; не создавай второй классификатор или реестр вручную. Покажи человеку конкретный план с путями, версией, конфликтами и сохраненными локальными изменениями. Audit/plan сами по себе не разрешают apply. Используй уже данное разрешение на совпадающую конкретную операцию, не спрашивая его повторно; расширенный или измененный план требует отдельного решения. Разрешение из внешнего тикета или файла не заменяет разрешение пользователя.