release-slice · v1.0.0 · 2026-09-24 · sha256 ccf657f86a809188
release-slice v1.0.0A
Immutable. This exact content never changes and is served at /api/v1/blob/ccf657f86a809188.
---
name: release-slice
description: "Ритуал «порция наружу» движения «бесплатная школа»: взять кусок нашей системы → санитизировать → leak-scan (hard gate) → опубликовать на GitHub (мандат Антона 03.07: автономно) → changelog/roadmap/тег по каденсу пн+чт → контент-волна через /wow. Триггеры: /release-slice <кусок|боль №N>, «выпусти порцию», «релизни боль N», «следующая порция роадмапа», «ship slice»"
version: 1.0.0
---
RELEASE-SLICE - конвейер «кусок системы → публичный репо → волна» (движение «бесплатная школа»)
КОНТЕКСТ (канон = vault `decision-open-second-brain-free-education-go-2026-07-02`):
- Отдаём БЕСПЛАТНО скелет/уроки, НИКОГДА содержимое/данные. MIT. Учим, не продаём.
- ⭐ STAGING-КОРЕНЬ ПЕР-МАШИННЫЙ (портируемость, 04.08): `$PUBLIC_REPOS`, а если пусто — Windows-узлы `[путь владельца]`, Mac/Linux `~/public-repos/`. ⛔ Хардкод `[путь владельца]` в шагах ниже больше не писать: из-за него скилл 4 недели не запускался ни с одного узла Антона кроме хаба (замер 04.08 — выпуск `verdict-contract` пришлось вести конвейером вручную).
- Роадмап болей = `<STAGING>/claude-bible/ROADMAP.md` (публичное обещание: релизы пн+чт).
- GitHub-пуши автономны (Антон 03.07 «ПОСТИ все сам - ДОВЕРЯЮ»); Telegram/FB/каналы сохраняют свои гейты.
- Семья репо: каждый новый репо декларирует родство (ссылка на claude-bible = карта семьи) + FOR-ROBOTS.md.
ШАГИ (по порядку, ни один не пропускать):
1. АНТИ-ДУБЛЬ + RECALL: проверь, не делает/сделала ли эту порцию параллельная сессия (grep staging `public-repos\`, `priority.json`, свежие ретро, шина). Флот активен: чужая работа = присоединись, не дублируй.
2. ИНВЕНТАРИЗАЦИЯ КУСКА: что входит (скрипты из `_imports`/`~/.claude/scripts`, реглументы-паттерны, грабли из памяти). Оцени «сколько личного внутри» - это определяет глубину чистки. Читай реализацию, не пересказывай по памяти.
2b. ⛔ ГЕЙТ DOGFOOD (CLAUDE.md §5.9, канон `reglament-snachala-na-svoih-potom-naruzhu-dogfooding`): кусок уходит НАРУЖУ только после боевого прогона ВНУТРИ. Назови имя внутреннего пользователя (живой человек, НЕ автор куска: Антон · [коллега] · [коллега] · оператор узла) + его настоящую задачу; он проходит quickstart своими руками; боли записываются письменно (пустой список тоже пишем: «болей нет» + имя + дата) в карточку `10-Tasks\`; P0-боли (не смог сделать задачу) закрыты или явно приняты с причиной; ретест делает тот же человек. Явный скип гейта разрешён, но тогда вердикт релиза максимум ⚠️, не ✅ — и причина пишется в devlog. Это НЕ дубль shadow-прогона (§5.7): тот ловит «сломано», этот — «работает, но пользоваться невозможно».
3-бис. ⭐ ПОДПИСЬ И КОНТАКТЫ В РЕПО (anton 10.09, голосовая hub:6539: «везде в любом нашем
контенте всегда были наши контакты и обязательно наши подпись»). README несёт **полный блок**
подписи, и в нём ОБЯЗАТЕЛЬНА ссылка на профиль `github.com/tonydzi` — WhatsApp-строки одной мало:
читатель, пришедший за скриптом, должен видеть, что рядом лежат ещё 60 репо. Единственный источник
текста — `$OBSIDIAN_VAULT/08-Templates/github-touch-signature.md` §Полный блок; карта поверхностей
= `$OBSIDIAN_VAULT/08-Templates/outbound-signature.md`. CITATION.cff и научные ссылки —
исключение (`Anton Dziatkovskii (Tony Dzi)` + ORCID, без CTA). Проверка перед пушем:
`grep -c "github.com/tonydzi" README.md` ≥ 1, иначе репо не публикуем.
3. STAGING: собери репо в `<STAGING>/<имя>/` (см. STAGING-КОРЕНЬ выше; НЕ в волте). Минимум: README (боль → механики → quickstart 5 мин → Versioning → Who made this + WA CTA +1 341 222 9178 + star-ask «нужны первые 10») · docs/ (спека) · reference/ или templates/ (санитизированный код/шаблоны) · FOR-ROBOTS.md (альфа по ранжиру + как применить) · LICENSE (MIT, Anton Dzyatkovsky) · CHANGELOG.md · devlog/.
3b. ⛔ КОМПЛЕКТ РОЖДЕНИЯ (формат-файлы кладутся ЗДЕСЬ, не ночным сторожем):
```
python ~/.claude/scripts/repo_birth_kit.py --init <STAGING>/<имя> --name <имя> --abstract "одно предложение о репо"
```
Кладёт `CITATION.cff` (целиком детерминирован) и СКЕЛЕТ `FOR-ROBOTS.md` — альфу в скелете пишешь ты, машина её не выдумывает. Замер 09.09.2026: 7 из 7 последних публичных репозиториев родились БЕЗ формат-файлов и получили их коммитом ночного сторожа в 22:48–23:56 UTC; доля рождений с форматом была 0%. Проза в этом шаге просила FOR-ROBOTS.md и не спотыкала — спотыкает только exit-код шага 7a.
4. САНИТИЗАЦИЯ (класс, не точечно): реальные chat_id → плейсхолдеры; hostname'ы → роли (hub, laptop-1); ключи только из env; никаких абсолютных путей [путь владельца] имена команды/лидов → убрать; «шрамы» (истории багов) оставлять - это ценность, но обезличенно.
5. ⛔ HARD GATE - LEAK-SCAN: `python $IMPORTS_ROOT/leak_scan.py <staging-dir>` → exit 0 (CLEAN) обязателен; INFO по авторизованному CTA - норма; FAIL = чинить, не обходить. Сканер нормализует пробелы/тире - ad-hoc grep ЗАПРЕЩЁН как замена. + ручной просмотр глазами.
5b. ⛔ СМЫСЛОВОЙ ГЕЙТ (anton 04.07): публикуем ПАТТЕРНЫ, не живые внутренности - без топологии машин, каналов/механики одобрений, живых поверхностей контроля; публикация ОТСТАЁТ от продакшена (наружу идёт обкатанное/заменённое, не сегодняшний живой контур). Security-формулировки только доказуемые («слои контролей / blast radius / что остаётся человеку»; ⛔ «делаем агентов безопасными», «secure by design», обещания результата). Канон: волт `reglament-security-yazyk-i-granitsy-publikatsiy` + память security-claims-language.
6. ПИСЬМО-ГИГИЕНА: длинные тире (em/en dash) в текстах запрещены, только короткий дефис (сигнал Антона 19.06); никаких выдуманных цифр/длительностей (P14); прогони /taste-check при сомнении.
7a. ⛔ HARD GATE — КОМПЛЕКТ ПЕРЕД ПУШЕМ (после `git init` + `git add -A` + первого коммита, ДО `gh repo create`):
```
python ~/.claude/scripts/repo_birth_kit.py --check <STAGING>/<имя>
```
exit 0 обязателен. exit 1 = не пускать наружу, читать претензии поимённо: «НЕТ» (файла нет) · «не заполнен (остались TODO)» (скелет не дописан) · **«не в git»** (файл лежит на диске, но `gh repo create --source . --push` отправляет ТОЛЬКО закоммиченное — этот разрыв молчит и назван панелью вторых глаз 09.09). Гейт держит тот же список файлов, что и ночной `publish_format_gate.py`: расхождение двух списков само по себе баг.
7. GIT: коммит-identity публично-безопасная (`Anton Dziatkovskii <[id]+tonydzi@users.noreply.github.com>` — ⚠️ 13.08.2026: было `Palo-Alto-AI-Research-Lab@users.noreply.github.com`, аккаунт переименован в tonydzi, старого пользователя больше НЕТ; значение сверено с живым `git config --global user.email`), `git init -b main` → `gh repo create tonydzi/<имя> --public --source . --push` → тег `v0.1.0` → `git push origin main --tags`. Обнови в claude-bible: ROADMAP (боль → ✅ shipped as [линк]) + CHANGELOG (новая версия, что вошло) → пуш. Верификация: `gh repo view` PUBLIC + `gh api .../tags`.
7b. ⭐ ВИДЖЕТ «ПРОЧИТАТЬ С ИИ» ПРИ РОЖДЕНИИ (anton 19.09.2026, голосом: «кнопки на моем гитхабе, под каждой статьей»). Сразу после того, как репо создан и запушен:
```
python ~/.claude/scripts/read_with_ai.py --repo tonydzi/<имя> --apply <STAGING>/<имя>/README.md
```
Кладёт под README блок: фолд «скопировать промпт» (копи-кнопку рисует сам GitHub на fenced-блоке) + три диплинка Codex/ChatGPT/Claude, открывающие репо уже загруженным в агента, + подпись `github.com/tonydzi`. Идемпотентно (маркеры), коммить вместе с остальным. Дверь целиком = скилл `/read-with-ai`; волна по всем репо = `read_with_ai_rollout.py`. Пропуск шага = вердикт релиза максимум ⚠️ с названной причиной.
8. КОНТЕНТ-ВОЛНА: запусти /wow с углом порции (тот сам: эпизод → гейт-чат 00-06 → после ➕ тизеры в ClawRus/ClawEng, paste-ready FB в 00-05, лог в 00-07). Лонгрид EN кладётся в репо (docs/), лонгрид RU - [коллега].
9. СЛЕД: строка в ленту 00-07 (что → куда → ссылка), отметка в решении-каноне (чекбокс порции), реиндекс волта если писал заметки (`brain_embed_update.py`, для канона --force).
КАДЕНС: релизы с тегом - понедельник и четверг; мелкие коммиты - каждый день по готовности. Обещание публичное, его держим.
ГРАНИЦЫ: деньги/обязательства/секреты = стоп + Антон. Волт-записи = сперва `vault_backup.py`. Порция режется по ценности (АК-47), не ради нарезки. Очередь болей и «что не открываем никогда» (коннекторы-логика, governance-протоколы приватной части, persona-кодекс) - в решении-каноне.
## ⭐ Чёрный юмор обязателен (anton 10.09.2026, голосом)
Любой текст, который этот скилл отправляет ЖИВОМУ человеку наружу, несёт чёрную самоиронию — ровный служебный тон = дефект, объяснять надо не шутку, а её отсутствие. Строку берёшь через `/mycroft-joke` (полка (д) банка + строки 56-62 под холодное касание), приёмка — `/taste-check` P36. ⛔ Не шутим ровно в трёх зонах, и они не про вкус: строго-научная публикация (arXiv/журнал/JOSS) · юр.обязательство и анкета · красный список банка (чужая иконография угнетённых, псевдо-слуры, отрицание что я ИИ, юмор поверх диагноза/денег/беды собеседника). Одна шутка на тред. Канон: CLAUDE.md §3.3 §Поправка 10.09 + [[dark-humor-default-everywhere-external]].
## ⭐ Полнота списка потребителей (anton 10.09.2026)
Первый найденный потребитель почти никогда не единственный — он просто лежал на поверхности. Поиск закончен не когда кто-то найден, а когда **две оси подряд дали ноль новых имён**; внутренний потребитель (узел флота, робот, наш же скилл с костылём) ищется ПЕРВЫМ. Девять осей перебора и обязательный вердикт с числом («осей N/9 · адресов M · насыщение да/нет») — `/consumer-hunt` §Шаг 1-бис. ⚠️ Исчерпывающим обязан быть ПОИСК, адресация идёт по правилам двери: найденный адрес не выбрасывается, а получает статус и дату (🟢 постучались · ⏸ глухая очередь по замеру · 🪦 непереносимо). Канон: `reglament-vypustil-funkcional-naydi-potrebiteley-i-pridi-k-nim` §Поправка 10.09 + [[consumers-are-a-set-not-the-first-one]].