Текст, который человек понесёт дальше копипастой, отдавать моноширинным блоком — копируется одним тапом с телефона. Применять при словах «дай сообщением», «для копирования», «перешли ему», «черновик клиенту», а также к командам, реквизитам, адресам и ключам.
Installs into .claude/skills of the current project.
Are you the author of Copyblock?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/shakhruz-copyblock)
---
name: copyblock
description: "Текст, который человек понесёт дальше копипастой, отдавать моноширинным блоком — копируется одним тапом с телефона. Применять при словах «дай сообщением», «для копирования», «перешли ему», «черновик клиенту», а также к командам, реквизитам, адресам и ключам."
---
# copyblock — текст, который копируют одним тапом
Самый частый рабочий обмен с владельцем выглядит так: агент пишет текст,
владелец копирует и отправляет сам. Делает он это с телефона. Выделять абзац
пальцем на телефоне неудобно, поэтому текст для пересылки обязан быть
моноширинным блоком: тап по блоку копирует его целиком.
Черновик без блока — несработавший навык, даже если текст безупречен.
## Жёсткий триггер
Любая из этих формулировок означает копи-блок, без исключений:
«дай сообщением», «для копирования», «для пересылки», «перешли ему»,
«напиши ему/ей», «черновик клиенту», «текст для X».
Плюс всегда, независимо от слов, если в сообщении есть: команда, ключ или
плейсхолдер ключа, адрес, реквизиты, номер счёта, промт, шаблон ответа —
то есть всё, что человек понесёт дальше копипастой.
## Правило содержимого
**В блоке — только то, что уйдёт адресату.** Ни обращения к владельцу, ни
пояснений, ни «вот текст». Комментарии — обычным текстом до или после блока.
Если владелец скопирует блок и отправит не глядя, адресат должен получить
готовое сообщение.
**Одно сообщение — один блок.** Два черновика в одном сообщении заставляют
целиться пальцем; отправляй двумя сообщениями.
## Как отправить: два канала, две механики
### Канал сессии (плагин Telegram, инструмент reply)
Плагин по умолчанию шлёт обычный текст, и тройные бэктики уйдут сырыми
символами — человек увидит палочки вместо блока. Нужен `format: "markdownv2"`.
Собирать разметку глазами нельзя: одна неэкранированная точка роняет отправку
целиком с ошибкой `Character '.' is reserved`. Хелпер рядом с навыком:
```python
import sys; sys.path.insert(0, "<каталог этого навыка>")
from tg_md2 import esc, code_block, build
text = build(esc("Готово, копируйте целиком:"),
code_block("Добрый день! ..."),
esc("Отправляйте как есть."))
```
Затем `reply(chat_id=..., text=text, format="markdownv2")`.
Если разметка всё же упала с ошибкой разбора — фолбэк: отправить обычным
текстом, где копируемый кусок идёт **отдельным сообщением целиком**, без
единой посторонней строки. Такое сообщение копируется долгим нажатием.
### Канал агента флота (движок)
Механика уже в движке: тройные бэктики превращаются в моноширинный блок.
Агенту достаточно обернуть текст в ``` ``` — ничего настраивать не нужно.
## Проверка перед отправкой
- Блок содержит только текст адресата, без обращений к владельцу.
- Для канала сессии выставлен `format: "markdownv2"`, разметка собрана хелпером.
- В блоке нет плейсхолдеров вроде `{{имя}}` — грепнуть перед отправкой.
- Один блок на сообщение.
## Почему это правило жёсткое
Оно нарушается тихо: текст выглядит правильным, ошибку видит только человек,
которому неудобно на телефоне. Поэтому проверка идёт не по ощущению «вроде
оформил», а по списку выше.