read-with-ai · v1.0.0 · 2026-09-24 · sha256 e70f5b67cc2869c3
read-with-ai v1.0.0A
Immutable. This exact content never changes and is served at /api/v1/blob/e70f5b67cc2869c3.
--- name: read-with-ai description: "Виджет «ПРОЧИТАТЬ С ИИ» под нашим контентом: кнопка «скопировать промпт» + диплинки, открывающие материал уже загруженным в агента (Codex · ChatGPT · Claude). Триггеры: /read-with-ai, «кнопки с ИИ», «прочитать с ИИ», «добавь ИИ-кнопки», «виджет под статью», «read with AI»" version: 1.0.0 --- READ-WITH-AI — «кнопки под каждой статьёй» ПРИКАЗ (Антон, голосовая 19.09.2026, tg:-[id], дословно): «Мне нужно также сделать кнопки на моем гитхабе. Под каждой статьей. И также на любых ресурсах где можно добавлять кнопки. 1/ скопировать промпт. Чтобы сделать ТАКЖЕ 2/ готовый промпт и авто открытие жпт но лучше кодекса 3/ готовый промпт и авто открытие клода.» Образец, который он прислал скриншотом: виджет под статьями на [человек].coach. ЗАЧЕМ ЭТО НАМ (не украшение): читатель приходит за одним файлом, а уходит с агентом, который уже держит наш материал в контексте. Это дверь к цели №1 (инженер-тестер, CLAUDE.md §1.1) и к «всё = контент». ## Один источник правды `~/.claude/scripts/read_with_ai.py` — генератор промпта и трёх кнопок. Промпт пишется ОДИН раз и разъезжается по форматам; руками блоки не собираем. ## Три поверхности — какой формат куда | поверхность | формат | чем копируется промпт | |---|---|---| | README репо, gist, dev.to, Habr-markdown | `--format md` | ⭐ `<details>` + fenced-блок: копи-кнопку рисует САМ GitHub (`data-snippet-clipboard-copy-content`). JS на GitHub запрещён, это единственный честный путь | | GitHub Pages, наш сайт, любой HTML | `--format html` | настоящая кнопка (clipboard API + фолбэк execCommand) + плавающая пилюля внизу экрана | | Telegram, FB, письмо | `--format text` | голые ссылки, копирует сам читатель | ## Команды Новый или обновлённый репо (единичный): ``` python ~/.claude/scripts/read_with_ai.py --repo tonydzi/<имя> --apply <путь>/README.md ``` Статья на сайте: ``` python ~/.claude/scripts/read_with_ai.py --url "<URL>" --title "<Заголовок>" --format html > widget.html ``` Волна по всем публичным не-форк репо (идемпотентна, пустых коммитов не делает): ``` python ~/.claude/scripts/read_with_ai_rollout.py --dry-run # план python ~/.claude/scripts/read_with_ai_rollout.py --only <имя> # канарейка python ~/.claude/scripts/read_with_ai_rollout.py # волна ``` Статический сайт целиком (каждая страница получает СВОЙ URL в промпте): ``` python ~/.claude/scripts/read_with_ai_pages.py --root <dir> --base https://tonydzi.github.io --skip call/index.html python ~/.claude/scripts/_check_pages_widget.py <dir> https://tonydzi.github.io # второй заход, читает факт в файле ``` ## Диплинки: что чем доказано (§5.4 — «причина такой же claim, как вывод») - `chatgpt.com/?q=<enc>` и `claude.ai/new?q=<enc>` — ✅ вычитаны из живого HTML [человек].coach 20.09, тот же паттерн работает в проде у автора образца. - `chatgpt.com/codex?prompt=<enc>` — 🤔 улика по употреблению в дикой природе (`CihadCengiz/prompt-generator`, page.jsx:216, «Open in ChatGPT Codex»); своего клик-теста НЕ делали. Отказ мягкий: параметр проигнорируется — читатель попадёт на Codex с пустым полем, а промпт лежит в копи-кнопке рядом. - `codex://new?prompt=<enc>` — ✅ документированная схема ДЕСКТОПНОГО Codex (gist zhuowei/98005fb9…). В веб-кнопку не ставим: без установленного приложения ссылка выглядит сломанной. Отдаётся флагом `--codex-desktop`. ## Границы - ⛔ Не трогаем ФОРКИ чужих проектов — `gh repo list --source` их и не отдаёт. - ⛔ `dashboards` и `github-evidence` пропускаем с названной причиной: первый не статьи, у второго README пересобирает робот и затрёт блок. - ⛔ Страницу-бронь (`/call/`) не засоряем: там должен остаться один CTA. - Подпись `github.com/tonydzi` вшита в каждый формат (§1.1); убрать её нельзя, тест `_test_read_with_ai.py` на это краснеет. - Идемпотентность держат HTML-маркеры; повторный прогон заменяет блок, а не плодит. ## Тесты ``` python ~/.claude/scripts/_test_read_with_ai.py # регресс, 46 проверок python ~/.claude/scripts/_killrun_read_with_ai.py # kill-list: 7 мутаций, все ловятся ``` ## Кто вызывает (потребители названы, §9.3-тер) - `/release-slice` шаг 7b — новый публичный репо получает виджет при рождении. - Эта дверь (`/read-with-ai`) — руками, когда появилась новая статья/страница. - Антон — когда видит поверхность, где можно поставить кнопки. ## Замер при рождении (20.09.2026) 49 публичных репо с виджетом (47 создано волной + 2 канарейки), 0 ошибок; 8 страниц tonydzi.github.io, живое подтверждено curl'ом после деплоя.