tg-post-writer
Use when the user asks "напиши пост в тг / оформи это для телеграма / сделай tg-пост про X".
Skill by tsergeytovarov
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/tsergeytovarov-tg-post-writer
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/tg-post-writer
What's inside
- Skill name
tg-post-writer- Description
- Use when the user asks "напиши пост в тг / оформи это для телеграма / сделай tg-пост про X". Target: personal channel or group Telegram posts in Russian, in the channel's established voice. SKIP: posts for other platforms (Twitter, LinkedIn, Habr — use separate skills), formal press releases.
- License
- MIT
- Instructions
- 100 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (16)
- CHANGELOG.md
- README.md
- SKILL.md
- LICENSE.txt · assets/fonts/
- Literata-SemiBold.ttf · assets/fonts/
- Literata-Variable.ttf · assets/fonts/
- examples.md · references/
- style-guide.md · references/
- .gitignore · tools/
- render.ts · tools/lib/
- title.ts · tools/lib/
- package-lock.json · tools/
- package.json · tools/
- render-cover.ts · tools/
- title.test.ts · tools/tests/
- tsconfig.json · tools/
SKILL.md (first lines)
# Purpose
Compose a Telegram post in Russian from a rough idea, transcript, or technical draft.
The channel has an established voice (product engineer, direct, conversational, opinion-forward, self-ironic). Calibrate to it via the reference material below.
# Required reading before writing
1. `references/style-guide.md` — full channel style guide: voice, hooks, structure, rhythm, lexicon, quotation rules, endings, pre-send checklist.
2. `references/examples.md` — 10 reference posts across genres (news + analysis, thought / provocation, reflection, short emotional note).
Read both at least once per session. Do not copy phrases — reproduce logic, rhythm, intonation.
# Process
1. Read the input (idea, bullets, transcript, link).
2. Determine the angle — a single clear thesis. If the input contains multiple ideas — ask the user which to focus on.
3. **Generate 3 opening hook variants** — one per genre, 1–2 sentences each:
- **А — провокация / гипербола:** резкое утверждение или намеренное преувеличение; сразу за ним — более взвешенный тезис.
- **Б — факт / сценарий:** конкретный факт или узнаваемый сценарий из жизни читателя — без абстракций.
- **В — вопрос / проблема:** вопрос, который читатель уже задаёт себе, или проблема, которую он узнаёт как свою.
Present all three and wait: "Какой хук берём — А, Б или В? Или дай свой вариант." Use the chosen hook as the opening line of the post.
4. Pick format based on material (see `style-guide.md` section 3):
- News + analysis (most common): facts → «Почему это важно?» pivot → 2–4 theses → personal take.
- Thought / provocation: thesis opener → 3–5 short paragraphs → explicit position («Итак, мысль.»).
- Short note / emotion: 1–2 lines, often self-ironic.
- List: em-dash bullets, 3–5 items, one thought per item.
5. Write with channel's rhythm:
- Mixed sentence length (short — long — medium, never uniform).
- Paragraphs of 1–3 sentences.
- Author present throughout («на мой взгляд», «я считаю», «кажется»).
- Fact vs hypothesis explicitly marked.
6. Format for Telegram:
- Paragraphs separated by blank lines.
- Markdown only in Telegram's supported subset (`**bold**`, `__italic__`, `` `code` ``, triple-backtick code blocks).
- Em-dash (—) for pauses, not hyphens.
- Emoji: zero in most posts. At most one as a closing intonation beat in explicitly playful context.
7. Length (see `style-guide.md` section 7):
- Short note: 20–100 chars.
- News + take: 700–1500 chars.
- Reflection / analysis: 1500–3000 chars.
- Hard ceiling: ~3500 chars — above that, split into a series.
8. Run the pre-send checklist (`style-guide.md` section 11) before returning. If any item fails — rewrite.
9. **Cover image (опционально).** Если пост длиннее 100 символов — спроси пользователя: «Сгенерить обложку для поста?». Если да:
- Сформулируй `cover_title` по правилам в секции "Cover title rules" ниже.
- Покажи `cover_title` пользователю: «Обложка будет с заголовком: `<title>`. Так ок или поправить?». Пользователь может утвердить, попросить переделать или дать свой вариант.
- После подтверждения вызови скрипт:
```
cd tools && npx tsx render-cover.ts \
--title "<cover_title>" \
--out /tmp/meridian-tg-$(date +%Y%m%d-%H%M%S).png
```
- Верни путь к PNG пользователю в формате `file:///tmp/...` для быстрого открытия.
Если пост короче 100 символов — не предлагай, короткие заметки обходятся без обложки.
# Hard rules (do not violate)
- No emoji as bullet markers. No hashtags. No «подписывайтесь / лайк / репост». No «дорогие друзья / коллеги».
- No quotation marks for terms, product names, or scare quotes. Quotation marks ONLY for direct speech citations.
- No canceliarit («в рамках», «осуществлять», «данный»), no inforbiz («взрывной рост», «прорывное решение»).
- No exclamation marks in the first line.
- No openers from the banned list («В современном мире», «Сегодня я хочу рассказать», «Все мы знаем»).
# Output
The post text, ready to paste into Telegram.
If the angle is ambiguous — offer **2 variants** with a one-sentence rationale for each.
If the checklist fails any item — fix and re-check before returning; do not return a draft you know is off-voice.
# Cover title rules
Title для обложки формулируется **отдельно** от текста поста. В текст поста не попадает — живёт только на картинке.
**Формальные требования:**
- 3-8 слов
- не предложение, не хук-фраза — **тезис**
- третье лицо, нейтральный падеж (не «Смотрите сами…», не «Я думаю…»)
- первая буква заглавная, остальные как в обычном предложении
- без завершающих знаков (`.`, `!`, `?`, `…`)
- без кавычек (правило Meridian: кавычки только для прямой речи)
- без эмоджи, без хэштегов
**Калибровочные примеры:**
| Жанр поста | cover_title |
|---|---|
| Новость про модель | `Claude 4.7: тихий апгрейд в reasoning` |
| Размышление про найм | `AI ломает воронку найма` |
| Разбор инструмента | `Cursor больше не единственный выбор` |
| Опыт / ретроспектива | `Год на AI-агентах: что сломалось` |
**Анти-примеры:**
- «Смотрите сами, Claude 4.7 умнее Opus» — хук-фраза, не тезис
- «Что я думаю про AI-найм» — первое лицо, пустой смысл
- «Claude 4.7 — это новый король reasoning!» — восклицательный
- «Новая модель от Anthropic доступна в API с ценой 3/15 долларов за миллион токенов и контекстом 1 миллион» — не тезис, а простыня
Если пользователь просит переделать — перегенерировать по тем же правилам, не спорить. Если пользователь даёт свой title — использовать как есть (правила — для автогенерации, не для пользовательского ввода).From tsergeytovarov/ai-settings, MIT.
More from tsergeytovarov/ai-settings
- 0.643score
using-superpowers
tsergeytovarov
Use when starting a conversation or deciding whether a Superpowers workflow matches the current task.
SkillAFreshness: A★ 15Claude Code +9 - 0.643score
product-spec-pipeline
tsergeytovarov
Turn a raw product idea, feature request, improvement, or small product task into a proportionate, verified, and independently reviewed product specification.
SkillAFreshness: A★ 15Claude Code +9 - 0.643score
ru-commit-message
tsergeytovarov
Use when the user asks "напиши коммит / сгенерь commit message / опиши этот diff as commit".
SkillAFreshness: A★ 15Claude Code +9 - 0.643score
subagent-driven-development
tsergeytovarov
Use when the user requests delegated implementation or multiple substantial tasks are genuinely independent without shared state.
SkillAFreshness: A★ 15Claude Code +9 - 0.643score
brainstorming
tsergeytovarov
Use when a request leaves material product, architecture, behavior, or scope decisions unresolved.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
finishing-a-development-branch
tsergeytovarov
Use when verified implementation is ready and the user must choose whether to keep, merge, or publish the branch.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
executing-plans
tsergeytovarov
Use when implementing an approved written plan with dependent tasks in the current session.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
requesting-code-review
tsergeytovarov
Use when a completed change is high-risk, crosses subsystem boundaries, or the user explicitly requests independent review.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
feature-architecture
tsergeytovarov
Use when proposing the architecture for a NEW feature on top of an existing codebase — after discovery/recon, when you must commit to one design with a…
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
boilerplate
tsergeytovarov
Use when starting a new project from scratch.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
changelog-entry
tsergeytovarov
Use when the user asks "обнови changelog / добавь запись в changelog", or after a user-visible change is committed.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
dispatching-parallel-agents
tsergeytovarov
Use when 2 or more substantial tasks are independent, have disjoint state, and parallel execution will save meaningful time.
SkillAFreshness: A★ 15Claude Code +9
Signals
- Stars
- 15
- Forks
- 4
- Open issues
- 2
- Last commit (this folder)
- Apr 19, 2026 (6 months ago)
- Last release
- Oct 12, 2026 (17 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/tsergeytovarov/ai-settings
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from tsergeytovarov
- 0.643score
product-spec-pipeline
tsergeytovarov
Turn a raw product idea, feature request, improvement, or small product task into a proportionate, verified, and independently reviewed product specification.
SkillAFreshness: A★ 15Claude Code +9 - 0.643score
subagent-driven-development
tsergeytovarov
Use when the user requests delegated implementation or multiple substantial tasks are genuinely independent without shared state.
SkillAFreshness: A★ 15Claude Code +9 - 0.643score
using-superpowers
tsergeytovarov
Use when starting a conversation or deciding whether a Superpowers workflow matches the current task.
SkillAFreshness: A★ 15Claude Code +9 - 0.643score
brainstorming
tsergeytovarov
Use when a request leaves material product, architecture, behavior, or scope decisions unresolved.
SkillAFreshness: A★ 15Claude Code +9 - 0.643score
ru-commit-message
tsergeytovarov
Use when the user asks "напиши коммит / сгенерь commit message / опиши этот diff as commit".
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
boilerplate
tsergeytovarov
Use when starting a new project from scratch.
SkillAFreshness: A★ 15Claude Code +9
Cite this page
tg-post-writer skill. Agent Mart. https://agentmart.dev/skills/tsergeytovarov-tg-post-writer (last updated 2026-10-24)