canon-revision · git:20260814.06fa906 · 2026-08-14 · sha256 94e6ee0d820669df

canon-revision git:20260814.06fa906A

Immutable. This exact content is served forever at /api/v1/blob/94e6ee0d820669df.

---
name: canon-revision
description: >
  Full structural REVISION of an always-loaded rules file (CLAUDE.md / MEMORY.md): build a TOP
  block of the most important rules + numbered categories, move rule bodies verbatim (a script
  moves bytes and proves 0 losses; the LLM decides only the mapping), fold heavy mechanics into
  trigger+gist+pointer form, then guards → canary window → fleet rollout. Trigger on "/canon-
  revision", "revise the canon". For scheduled maintenance, not ad-hoc trimming.
license: MIT
---

# canon-revision — ревизия always-loaded файла правил

Боль: файл правил растёт интейком, структура плывёт, важное тонет в середине. Решение Антона (22.07): жить циклами — свободный рост до жёлтой зоны, потом ПОЛНАЯ ревизия структуры. Эта процедура = та ревизия, обкатана на CLAUDE.md v2.

Роли: LLM решает ТОЛЬКО (а) маппинг секций по категориям, (б) состав ТОП-блока, (в) какие секции фолдить и точечные правки по явным решениям Антона. Байты двигает СКРИПТ и сам доказывает, что ничего не потерял. Никогда не перепечатывай файл руками.

## Шаг 0 — RECALL + рамки
- Память: [[claude-md-compression-contract]] (контракт: триггер·директива·клаузы·указатель; грабли двух концов), [[write-service-files-tight-no-recompress]], [[memory-index-hygiene]] (для MEMORY.md), [[declined-decisions]] (пере-сжатие слов = declined).
- Пороги = дефолты `~/.claude/scripts/claude_md_guard.py` (anton 22.07: жёлтая 100KB · красная 120KB). Цифры-истина = код гарда, не заметки.
- Ревизия = канон-правка → только машина Антона, живая сессия.

## Шаг 1 — Замер ДО
`python ~/.claude/scripts/claude_md_guard.py` + байты + счётчик секций (`^## `/`^### `). Записать: byte, sections, md5.

## Шаг 2 — Координация и страховка
1. `onair.py check --zone canon-skills` (для MEMORY.md: memory-index) → чисто → `onair.py declare --mode exclusive`.
2. `canon_write_gate.py <файл>` → GO + авто-бэкап; плюс свой `*.bak-<дата>-revision`.
3. ⚠️ Грабли двух концов (память compression-contract): перед publish сверь (а) md5 базы канона, (б) diff собранного со СВОИМ живым файлом — параллельные сессии дописывают интейком.

## Шаг 3 — Сборка (детерминированная)
Взять `references/restructure_claude_md.py` (рабочий образец 22.07), адаптировать маппинг:
- Разбор по `^## ` заголовкам; каждый заголовок обязан попасть в маппинг, лишний/пропавший = громкий отказ.
- Категории `## §N. <имя>` + правила `### §N.M <старый заголовок>`; тела verbatim.
- ТОП-блок `## §0. ⭐ ТОП-N` — самые важные правила по приоритетам Антона, одна строка = правило + `→ §X.Y`; состав ТОПа показать Антону до применения (или взять его прошлые приоритеты).
- Точечные правки — только по явным решениям Антона, каждая через anchored-replace с assert count==1.
- Встроенная проверка: каждое тело присутствует в выходе (BODY LOST = отказ).

## Шаг 4 — Пороговый контроль и фолды
Guard RED/жирная жёлтая → структурный фолд самых жирных ПРОЦЕССНЫХ секций (образец `references/fold_four.py`): остаётся триггер+суть+указатель, тело обязано УЖЕ жить в Библии/памяти (проверь, что канон существует, иначе сперва запиши его туда). Топ-правила Антона не фолдить без его до→после. Слова не пере-сжимать.

## Шаг 5 — Верификация (/tt-слой)
- Счётчики: секции ДО == ПОСЛЕ (минус явно удалённые по решению Антона), `### ` = N, ТОП-строки = N, ссылки §X.Y в ТОПе указывают на существующие номера.
- Guard повторно; при росте >87KB — живой замер, что харнес грузит хвост (в СВЕЖЕЙ сессии спросить содержимое последней секции; «потолок 89000б» — непроверенная легенда).
- По вкусу: cold-reader тест (памятка в compression-contract: свежий Sonnet + trap-сценарии).

## Шаг 6 — Публикация и дома
1. `publish_canon.py` (для CLAUDE.md); MEMORY.md едет синком сам.
2. Новые/изменённые правила → дома: память + MEMORY.md-строка (+ Библия, если правило человеко-исполнимо); `rule_home_guard.py <slug>`.
3. `onair close`, отчёт Антону до→после (байты, секции, что фолднуто, откат).

## Шаг 7 — Датчик «не стало хуже» + раскат
- Откат всегда наготове: `Copy-Item <файл>.bak-<дата>-revision <файл>` + `publish_canon.py`.
- 3 дня после ревизии: датчик «не стало хуже» — ОДНОРАЗОВЫЙ shadow-скрипт под конкретную ревизию по [[shadow-first-mvp-pattern]] (пишется заново на 3 дня, schtasks ночью, выпиливается по time-box — не постоянный компонент). Метрики: доля 🧒-блоков, таймстампы, целостность md5; деградация >30% = стоп/откат + разбор корня; норм = раскат подтверждён, обоснование в отчёт. Прецедент: ревизия 22.07 — пробник canon_v2_watch намерил ELI5-rate 80%→77% (= не хуже) → раскат обоснован, пробник убит по расписанию.
- Флот получает через канон-рельсу; ACK пиров по правилу шины.

## Границы
- ⛔ Не запускать на чужих машинах / не с живой сессии Антона (canon-gate сам заблокирует).
- ⛔ Не пере-сжимать слова, не выносить тела в `.claude/rules/` «под авто-загрузку» — фичи авто-загрузки НЕТ (опровергнуто 21.07, память rule-activation-audit).
- Канон: [[claude-md-compression-contract]] + `reglament-optimizatsiya-always-loaded-faylov-claude-md-i-memory-md`; сестра для MEMORY.md: [[memory-index-hygiene]].

---

<!-- CONTACT-FOOTER -->
## About & contact

Built and battle-tested at **Palo Alto AI Research Lab** — a fleet of Claude Code machines
running 24/7 as a second brain and synthetic cofounder. Every skill here survived real
production use before publication.

- 📦 All 101 skills: https://github.com/tonydzi/second-brain-starter-kit
- 👤 Author: **Anton Dziatkovskii** — Telegram [@tonydzi](https://t.me/tonydzi) · WhatsApp [+1 341 222 9178](https://wa.me/13412229178) · X [@Tony_Stef_](https://x.com/Tony_Stef_)
- 🧪 **Engineers: want to test-drive this setup?** Message me — I hand out free starter seeds to engineers who test and report back. Custom skill requests welcome.