用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/maslennikov-ig/articles --skill habr-article命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Написание статей под собственный сайт aidevteam.ru с прицелом на коммерческий поисковый трафик. Используй когда нужна статья для раздела «Статьи» на своём сайте, а также для адаптации готовой статьи с другой площадки под сайт.
Use at the end of any article-writing skill (habr-article, vcru-article, dzen-article, pikabu-article, telegraph-article, tenchat-article, telegram-article, telegram-announcement, site-article) before publication. Saves the draft to .tmp/current/articles/, invokes the ai-text-checker agent with platform and mode, presents the findings to the author. Default mode=report returns a findings table and never modifies the draft — the author edits. mode=edit is opt-in and forbidden for Habr, whose 2026 rules ban text edited by a neural network. Detective companion to the preventive skill `living-text-style` (invoked at ФАЗА 0 before drafting).
Написание статей для Яндекс Дзен. Используй когда нужно написать статью для Dzen.ru.
基于 SOC 职业分类
正在显示 SKILL.md
| name | habr-article |
| description | Написание технических статей для Хабра. Используй когда нужно написать статью для Habr. |
Скилл для написания технических статей на Хабр от имени Игоря Масленникова.
Правила Хабра версии 2026 запрещают публиковать текст, частично или полностью сгенерированный, написанный ИЛИ ОТРЕДАКТИРОВАННЫЙ нейросетью. Разрешены только сгенерированные обложки и иллюстрации. Санкция — снятие публикации в черновики и ограничение прав аккаунта.
Три следствия, из которых складывается весь пайплайн ниже:
cleanup-ai-noise работает в режиме
отчёта. Агент ai-text-checker не редактирует файл — он возвращает список
мест. Если кто-то вернул готовый переписанный текст, статью на Хабр в таком
виде публиковать нельзя.Это ограничение площадки, а не стилистическое предпочтение. Для vc.ru, Telegram и своего сайта оно не действует; для Хабра действует всегда.
Аудитория: Технические специалисты, разработчики (88.2% айтишников читают Хабр) Тон: Developer-to-developer, профессиональный, но не сухой Длина: ПОДБИРАЕТСЯ ПОД ОБЪЁМ КОНТЕНТА (см. секцию ниже). НЕ раздувай статью искусственно. Язык: Русский
Правило #1: размер статьи определяется содержанием, а не амбициями. Если по теме реально есть только на 6 000 знаков — пиши 6 000. Раздутый «фундаментальный материал» из тонкой темы Хабр распознаёт мгновенно: вода, повторы, банальные определения.
| Тир | Объём | Когда использовать |
|---|---|---|
| S — заметка/зарисовка | 3 000 – 7 000 знаков | Один инструмент / один бенчмарк / одна находка / разбор одной фичи. Свежий релиз, который надо просто описать: что это, как работает, почему интересно. Краткий разбор чужого исследования с собственным мнением. |
| M — фокусный материал | 7 000 – 15 000 знаков | Одна тема, разобранная нормально: что это, как реализовано, почему важно, ограничения, где применять. Обзор инструмента с практикой. Разбор бенчмарка с интерпретацией. Дефолт для большинства тем. |
| L — deep-dive | 15 000 – 25 000 знаков | Архитектурный разбор, многомерное сравнение, серия экспериментов с собственными данными, гайд с пошаговой реализацией от и до. Только если есть реальный материал такого объёма. |
| XL — лонгрид | 25 000+ знаков | Исключение. Расследование, серия статей сведённая в одну, исчерпывающий мануал. По умолчанию — НЕ выбирать. |
Перед стартом ответь себе на четыре вопроса:
Если сомневаешься между тирами — выбирай меньший. Лучше плотная статья на 8 000 знаков, чем разводнённая на 18 000.
Если статья начинает превышать выбранный тир — это сигнал к сокращению, а не к повышению тира. Типичные причины раздувания:
Сначала фиксируешь тир — потом пишешь под этот тир. Если по ходу выяснилось, что материал шире/уже — пересматриваешь тир ОДИН раз и продолжаешь.
Аудитория, система кармы, что собирает плюсы и минусы, семь правил доверия,
осторожность с цифрами про компанию, хабы и теги —
.claude/skills/habr-article/references/habr-culture.md.
Прочитай его до интервью. Три вещи оттуда определяют, о чём вообще спрашивать автора: Хабр проверяет любые заявления про компанию; экспертиза предъявляется кодом и логами, а не должностью; позиция автора — рядом с сообществом, а не сверху.
Перед написанием статьи — задай автору вопросы. Без реального контекста статья будет выглядеть как AI-генерат.
Skill('living-text-style') до первой написанной строки, правила держатся в
контексте до конца ФАЗЫ 2.
Читается целиком:
.claude/skills/living-text-style/references/per-section-drafting.md
(входы, фактчек, письмо по секциям) и
.claude/skills/living-text-style/references/community-research.md (шаг 2b).
Запрос вида «напиши исчерпывающую статью про X» не выполняется без пакета источника: он и есть команда на энциклопедическую архитектуру, которую читатель опознаёт как машинную.
Задай 3-5 вопросов из списка (выбери релевантные):
Если автор не может ответить на эти вопросы — значит, у него нет реального опыта с темой, и статья будет пересказом документации. В таком случае предупреди автора: "Без личного опыта статью скорее всего опознают как AI-генерат и скроют."
Полученные ответы вплетай в текст как конкретные истории, а не как абстрактные утверждения.
КРИТИЧНО: Каждая статья должна иметь УНИКАЛЬНУЮ структуру. Не следуй одному шаблону.
Каждая статья начинается с блока ## TL;DR сразу после заголовка #. Это не «жанровая особенность» и не «когда вижу нужным» — это обязательный элемент структуры для всех статей на Хабре, независимо от тира.
Зачем:
Структура TL;DR:
--- после TL;DR перед основным текстом — визуально отделяет тезисы от рассказаШаблон:
# [Заголовок статьи]
## TL;DR
- **[Главный тезис]** — конкретика с цифрой/фактом, одно предложение.
- **[Тезис 2]** — что нашли/измерили/построили, с конкретикой.
- **[Тезис 3]** — следствие или контекст, тоже с цифрой.
- **[Тезис 4]** — ещё один независимый факт или вывод.
- **[Главный практический вывод]** — что читатель должен унести из статьи.
---
[Зачин статьи — личная история / провокация / контраст / etc.]
Чего НЕ делать в TL;DR:
feed_preview из frontmatter — TL;DR это краткий тезисный план статьи, превью это приманка для клика в ленте, у них разные задачиTL;DR — это часть статьи, а не её замена. Если читатель прочёл TL;DR и закрыл статью — это норма. TL;DR не должен лишать смысла прочтение остального; он должен дать понять, стоит ли читать остальное.
Пять рабочих типов входа: личная история · провокация · результат вперёд · вопрос · контраст «обещали / оказалось».
Тип выбирается под материал, а не по очереди, и чередуется между статьями — два подряд одинаковых зачина узнаются раньше содержания.
Что делает зачин рабочим: он начинается с конкретного момента или утверждения, а не с подготовки к ним. Признак провала — первое предложение можно выкинуть, и статья ничего не потеряет.
Готовых первых фраз здесь нет намеренно: зачин, взятый из скилла, приезжает в текст дословно и становится подписью.
Обязательные блоки (ставятся всегда, во всех тирах):
--- снизуОпциональные блоки (выбирай по логике статьи):
Правила комбинирования:
Для этого жанра порядок изложения — не вкусовщина, а дидактика. Восемь шагов,
их нельзя переставлять (полный разбор — living-text-style/references/infostyle.md,
раздел 13):
Проверка на разжёвывание: объяснять новое можно только через то, что читатель уже знает. Если объяснение термина состоит из других незнакомых терминов — это шаг 4 не сделан.
| Элемент | S (3–7K) | M (7–15K) | L (15–25K) |
|---|---|---|---|
| ASCII-диаграммы | 0–1 | 1 | 2 |
| Таблицы | 0–1 | 1–2 | 3 |
| Блоки кода | 1–2 | 3–5 | 7 |
| Bullet-листы | 1 | 2–3 | 4 |
Правило 60/40: Минимум 60% текста — связная проза. Максимум 40% — форматированные блоки (код, таблицы, списки, диаграммы). Если получается больше — перепиши блоки в текст.
Особое правило для тира S: в коротких заметках соблазн сделать «всё списком» особенно велик — статья превращается в bullet-сводку. Не делай так. Связная проза + 1 акцентный блок (таблица ИЛИ кусок кода ИЛИ диаграмма) — этого хватает.
Пиши конкретно, варьируй ритм, не используй штампы. Каталог паттернов A1–A42
и платформенные стоп-слова живут в ai-text-checker — он же их и ловит на
ФАЗЕ 3. Здесь держим в голове только то, что чинится при написании, а не при
вычитке.
1 593 768 → 1,6 млн) (A38)89 без привязки к замеру, модели или порогу не значит ничего (A42)GPT-5.5, Gemini), идентификаторы кода (response.usage, model_id), устоявшиеся аббревиатуры (API, LLM, SQL) и калькированные термины, реально принятые у разработчиков (production, токен, промпт, fallback). Но переводи перебор, у которого есть нормальный русский эквивалент: executive deep-dive → «подробный разбор для руководителей», use-case → «задача», training mix → «обучающий набор данных», narrative → «связный текст». Хабр терпит технический английский больше, чем Pikabu/TenChat, но «английская инфографика для русской статьи» отталкивает и здесь. Подробное правило — паттерн A28 в ai-text-checker.Структурные маркеры (НИКОГДА не повторять между статьями):
Уходят не от сложности, а от ощущения, что текст написан ни для кого и никем. Пять вещей это чинят. Ни одна не является нормой в штуках: реакция, вставленная ради счётчика, читается как фальшь — это фингерпринт 52, и его ловят на ФАЗЕ 3.
Конкретная история. Держится на четырёх частях: когда, что сделали, чем
кончилось, что поменяли после. Признак провала — историю можно пересказать
одним предложением без потери, значит, это было утверждение. Берётся из
ответов автора на ФАЗЕ 0; синтетическую («представьте компанию, которая…»)
не сочиняем — это проход 5 hostile-editor.
Эмоциональная реакция называет, что автор почувствовал в конкретный момент и почему. Признак провала — реакцию можно переставить в другую статью, и ничего не изменится. И она не объявляет себя честной: «давайте честно», «скажу прямо» — это A33.
Вариация ритма. Длина предложения идёт от содержания: сложная мысль — длинное, вывод или поворот — короткое. Три предложения одной длины и одной конструкции подряд читаются как машина, даже если каждое верно. Граница с фингерпринтом 49: короткая фраза остаётся, если несёт факт или поворот; цепочка коротких кивков без содержания — имитация вдумчивости.
Отступление — не больше одного, и только если после него основная мысль понятнее. Иначе это украшение, которое автор вырежет руками. Начинается с сути: «кстати» и «к слову» — вводные из A26.
Поправка самого себя работает, когда автор правда уточняет мысль: сузил утверждение, вспомнил условие. Поправка ради живости — такой же шаблон, просто менее заметный.
ai-text-checker).После написания статьи — три этапа: проверки, потом два ручных чек-листа.
Порядок общий для всех площадок:
.claude/skills/living-text-style/references/review-pipeline.md — прочитай
целиком и выполни по шагам. Параметры этого скилла:
| Параметр | Значение |
|---|---|
platform | habr |
--scope | longform |
mode | только report |
mode=report для Хабра обязателен. mode=edit запрещён правилами площадки
2026: под запретом сам факт AI-редактуры, а не её обнаружимость. Агент
возвращает таблицу находок и не трогает файл. Если какой-то этап вернул готовый
переписанный текст, статью в таком виде публиковать нельзя.
Специфика площадки, которую дополнительно ловит ai-text-checker (Layer C):
доверие и непроверяемые цифры про компанию, цифра без опоры для сравнения,
регалии без пользы читателю, AI-CEO-евангелизм, «каша из топора»,
путаница «кодер vs инженер».
Правки вносит автор. После них — два чек-листа ниже.
# Заголовок стоит ## TL;DR с 4-6 буллетами и разделителем --- снизу?Непройденный пункт — не арифметика, а сигнал вернуться к материалу.
Заголовок — это то, что определяет, кликнет читатель или прокрутит дальше. В ленте Хабра у заголовка примерно полсекунды, чтобы зацепить. Концептуальный заголовок-манифест («Оркестратор — диспетчер контрактов») честно отражает идею статьи, но в ленте проигрывает заголовкам с конкретикой, числами или признанием фейла.
Поэтому после чистки cleanup-ai-noise (ФАЗА 3) ОБЯЗАТЕЛЬНО:
AskUserQuestion с preview (текст заголовка + длина в символах).title (и при необходимости subtitle, feed_preview) в frontmatter статьи.Не пропускай эту фазу даже если кажется, что черновой title и так нормальный. Черновой title почти всегда концептуальный, а Хабру нужен продающий.
У заголовка Хабра в принципе два рабочих регистра, и важно выбрать ПОДХОДЯЩИЙ под суть статьи. Ошибка — взять не тот.
Регистр А — «боль/фейл» работает, когда статья про диагностику проблемы или анти-паттерн. Читатель кликает, потому что узнаёт свою боль («я тоже так делал»). Фокус — на признании, фейле, парадоксе.
Регистр Б — «технология/эффективность/простота» работает, когда статья про рабочую систему/инструмент, который можно взять и применить. Читатель кликает, потому что хочет получить такое же себе («вау, хочу использовать»). Фокус — на стеке, интеграции, результате, простоте внедрения.
Как выбрать регистр. Если статья — это результирующая работающая штука, к которой автор прикладывает архив/код/инструмент: бери регистр Б. Если статья — это разбор парадокса/провала/неожиданного поведения: бери регистр А. Если в статье и то, и другое — лучше всего регистр Б, потому что архив/инструмент в финале — это сильнейший крючок «возьми и используй», и боль из начала статьи прочитается всё равно.
Многие статьи Игоря — продуктовые (рабочая система + архив для скачивания + Telegram-канал). По умолчанию для таких статей выбирай регистр Б.
Крючок и передёргивание — разные вещи, и на Хабре второе стоит дороже, чем недобранные клики. Каждый вариант проходит три проверки:
Долгосрочно работает репутация автора, а не формула заголовка: когда цепляет
всё, не цепляет ничего. Подробно — living-text-style/references/infostyle.md,
раздел 12.
10 типов крючков с примерами (пять на регистр А, пять на регистр Б), правила
длины и анти-паттерны заголовков, образец вызова AskUserQuestion с preview —
.claude/skills/habr-article/references/headline-hooks.md.
Открой его перед генерацией вариантов: в одной подборке должны быть оба регистра, с перевесом в сторону Б, если статья продуктовая.
Если автор выбрал «Other» и сам предложил формулировку — прими её без споров. Если автор переформулировал в сторону менее продающего варианта — НЕ возражай, но в финальном отчёте коротко упомяни, что финальный заголовок — авторская версия (это нормально и не баг).
title в frontmatter articles/habr/[slug].md.subtitle: если новый title уже самодостаточен — удали subtitle совсем (один сильный заголовок лучше двух средних). Если subtitle нужен — переформулируй, чтобы не дублировать title.feed_preview: первая фраза превью должна согласовываться с новым title (не противоречить ему и не дублировать дословно). Если расходятся — поправь первое предложение превью.# Заголовок в самом начале статьи стоит то же, что в title frontmatter — обнови оба места синхронно.cover-prompts.md (если уже создан): если в промтах есть слоганы, которые опирались на старый title, — отметь это, на ФАЗЕ 5 переформулируешь.Только в одном случае: если автор в ФАЗЕ 0 сам предложил конкретный заголовок и явно сказал «использовать этот, варианты не нужны». В этом случае запиши это решение в комментарий к коммиту и переходи к ФАЗЕ 5. Во всех остальных случаях ФАЗА 4 обязательна.
После того как статья прошла ФАЗА 3 и в ФАЗЕ 4 выбран финальный заголовок — сразу же сгенерируй файл с промтами для обложек. Это часть пайплайна, не опциональный шаг. Анжела (или сам автор) прогоняет эти промты через генератор изображений.
Каждая статья получает СВОЮ папку в articles/pictures/. Это не общая свалка PNG-файлов, не папка «covers», и НЕ надо складывать обложки разных статей в одно место.
mkdir -p articles/pictures/[slug]/
Где [slug] — точно такой же, как в articles/habr/[slug].md (без расширения).
Зачем отдельная папка для каждой статьи:
ANGELA-PUBLISHING-CHECKLIST.md для этого цикла, скрипты редактирования и т.п.)Антипример (НЕ делай так):
cover-prompts.md в общую папку articles/pictures/articles/pictures/codex-compaction-covers/ вместо articles/pictures/codex-vs-claude-compaction/)articles/pictures/[slug]/cover-prompts.md
Это основной артефакт ФАЗЫ 5. Структура файла — по шаблону из справочника ниже.
Минимум 3 варианта. Каждый должен передавать одну из ключевых идей статьи (не три варианта одной идеи). Каждому ставь рейтинг ★ — твой прогноз попадания в смысл.
Правило «текст на картинке — по-русски, идентификаторы латиницей», требования
к разнообразию визуальных ходов, шаблон cover-prompts.md, техтребования и
подбор трёх разных идей —
.claude/skills/habr-article/references/cover-prompts-guide.md.
Все цифры, имена моделей, цитаты в промтах должны быть из самой статьи. Не добавляй на обложку фактов, которых в статье нет — иначе обложка будет обещать одно, а статья даст другое, и Хабр-аудитория это поймёт.
Скилл (ты):
articles/pictures/[slug]/cover-prompts.md с минимум 3 промтами по шаблону вышеАвтор / Анжела:
Правило — .claude/skills/living-text-style/references/contacts-policy.md.
Данные:
Формулировка придумывается заново каждый раз: дословно повторённая подпись — самый заметный отпечаток автора. Тон площадки — developer-to-developer, без продающей интонации.
Проверка: сравни с подписью прошлой статьи. Совпадает по структуре — перепиши.
Правило общее — contacts-policy.md, раздел «Регалии». На Хабре к нему
добавляется чеклист доверия: непроверяемая цифра про компанию собирает минусы,
а не плюсы.
Правила обращения с цифрами про компанию, хабы и теги —
.claude/skills/habr-article/references/habr-culture.md, разделы «Метрики» и
«Хабы и теги».
Короткая версия: конкретные цифры про компанию на Хабре не используются без явного запроса автора, а если он настаивает — только с контекстом, почему нет публичных кейсов.
---
platform: habr
title: "[Заголовок]"
subtitle: "[Подзаголовок]"
author: Igor Maslennikov
date: [YYYY-MM-DD]
length: ~[N] characters
tags: [DevOps, Docker, CI/CD, Blue-Green, ...]
hubs: [DevOps, Системное администрирование]
language: ru
feed_preview: |
[Превью для ленты Хабра, 100-3000 символов]
---
Хабр показывает превью статьи в ленте до клика. Это не пересказ статьи — это приманка. 100-3000 символов (оптимально 500-900).
Структура превью:
Правила:
Пример:
GPT-5.4 пишет лучше всех — 97 баллов из 100. Но $0.10 за вызов.
При 10 000 генераций в месяц — $1000. А мы нашли модель, которая
справляется на 91% и стоит $0.0008. Разница — $992 каждый месяц.
Мы построили собственный battle test и прогнали через него 18 моделей.
Что обнаружили: 7 из 18 вставляют китайские иероглифы в русский текст.
Одна копирует промпт в заголовки. А LLM-судья поставил сам себе 127/100.
В статье: полная методология, таблицы, формула value score и лидерборд.
articles/habr/[slug].md
Где [slug] — короткое описание темы через дефис.
После сохранения — сразу переходи к ФАЗЕ 5 (генерация cover-prompts). Это часть единого пайплайна, не отдельный шаг по запросу.