Skip to content
Back to skills

Seo Writing

ASecurity

Контент-план (hub-and-spoke, KPI-90d) и написание текстов под Entity Map (Phases 5–6): tone of voice, стоп-слова, AEO-абзац, stock-first, fact-check, изображения с alt/caption, NW evaluate, draft-quality-gate через loop. Используй когда просят «контент-план», «напиши статью по брифу» — отдельно или как стадию цикла.

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 19, 2026
ai-agentsrustgobash

Works with

  • cli

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 19, 2026

npx -y skills add turvodnik/seo-cycle --skill seo-writing --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Seo Writing?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Seo Writing
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/turvodnik-seo-writing/badge)](https://www.skillsdirectory.com/skills/turvodnik-seo-writing)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: seo-writing
description: Контент-план (hub-and-spoke, KPI-90d) и написание текстов под Entity Map (Phases 5–6): tone of voice, стоп-слова, AEO-абзац, stock-first, fact-check, изображения с alt/caption, NW evaluate, draft-quality-gate через loop. Используй когда просят «контент-план», «напиши статью по брифу» — отдельно или как стадию цикла.
---

# Content Plan + Writing — контент-план и тексты

Модуль seo-cycle v2 · **Фазы: 5–6** · запуск **отдельно** или **стадией конвейера**.

## Контракт модуля

- **Входы:** `04-entity-maps/*`, `page-outline-v3` брифы (`copywriter-ready/*.md`), RAG-контекст
- **Конвейер:** `_state.json` цикла (`scripts/cycle-state.py`) — предыдущая фаза `done`; **standalone:** state нет → `seo-cycle cycle init --topic "<тема>"`, работай по этому файлу, state обнови на выходе.
- **Выходы:** `05-content-plan.md`; `06-drafts/*.publish.md` (+ `fact_check_log` frontmatter)
- **Gate:** `seo-cycle loop draft <draft.md> --outline <outline.json>` — exit 0; стоп-слова, fact-check, alt/caption — блокеры
- **Делегаты:** `delegate.content_strategy` (default `seo-content-strategist`), `delegate.content_writer` (default `seo-content-writer`)
- **Общие правила:** `../_shared/policy-intake.md` (политики/бюджеты проекта — прочитать до платных действий), `../_shared/scorecard.md` (самооценка после задачи), `../_shared/rag-usage.md` (переиспользуй накопленное).

---

## Phase 5 — Content Plan

**Цель:** roadmap публикаций с приоритетами.

**Делегировать:** `delegate.content_strategy` (по умолчанию `seo-content-strategist`).

**Структура плана:**
- Что: тип страницы (hub/spoke), URL, главный ключ
- Когда: дата, статус (TODO/Drafting/QA/Published)
- Зависимости: какие entity-maps готовы, какие источники собраны
- KPI: целевые impressions / clicks через 90 дней
- Bandwidth: блог N статей/неделю, категории M/месяц

**Выход:** `05-content-plan.md`.

---

## Phase 6 — Writing

**Цель:** написать тексты под Entity Map'ы.

**Делегировать:** `delegate.content_writer` (по умолчанию `seo-content-writer`).

**Перед написанием:** запроси накопленный контекст из локального RAG — `seo-cycle rag query "<primary keyword>" --top-k 5 --source-type source_pack --source-type distillate` (цитаты и факты из проверенных source packs; `--global` для пересечений с другими проектами). Брифы с подмешанными пассажами: `page-outline-v3.py --rag`.

**Универсальные правила (config-driven):**
- Tone of voice — из `tone.*` config
- Stop-words check — если `quality_gates.stop_words_check.enabled`
- AEO абзац в первые 400 символов — если `content_rules.aeo.enabled`
- Stock-first — если `content_rules.stock_first.enabled`
- Brand name discipline (user-facing vs technical) — `project.brand_name_*`
- Локальные сигналы ≥ `content_rules.local_signals.min_per_page`

**QA после написания (обязательная последовательность):**
1. **Stop-words check** (`scripts/check-stop-words.py`)
2. **Fact-check** — обязательно через Perplexity prompts (режим **Deep Research**) + Antigravity CLI cross-check для фактов, сущностей, интентов и спорных формулировок. Результаты записывай в `fact_check_log` frontmatter (claim/source/url/verdict/checked/tool). Если один из инструментов недоступен, не публикуй без записи blocker/exception в лог.
3. **Image visual + alt/caption check** — изображения создаются config-driven из `images.*`. Для фото-подготовки используй `scripts/wp-photo-image.py`: локальное фото/URL → crop по `images.aspect_ratios.*` → WebP по `images.output.*` → WordPress upload через SSH/WP-CLI при необходимости. Inline images должны быть чистыми тематическими фото/визуалами в `images.visual_style`. Не добавляй видимый текст на изображение, если `images.allow_visible_text=false` (SEO/AEO/GEO, схемы, подписи, описания товаров, дисклеймеры каталога) и не используй товарные карточки/коллажи как основной визуал, если пользователь явно не попросил. У каждого недекоративного изображения должен быть естественный `alt`; inline caption обязателен, если `images.captions.inline_required=true`: featured, inline, OG/schema, product/category visuals. Alt и caption описывают изображение и сущность, без переспама ключами и без служебных объяснений. Изображение без alt или inline image без обязательного caption = публикационный blocker.
4. **Stock-first проверка** (если ecommerce)
5. **NW evaluate** (если `sources.neuronwriter.enabled`) — target `quality_gates.neuronwriter_score.min_score`

**E-E-A-T trust-блок (если есть `fact_check_log`):** сгенерируй видимый блок «Источники» в конец статьи —
```bash
seo-cycle run script eeat-render 06-drafts/<name>.publish.md
```
Рендерятся только источники с verdict достоверно/частично; спорные — править формулировку в тексте, а не «подтверждать». Это прямой Trust-сигнал.

**После черновика:** валидация через автоцикл, не разовым гейтом: `seo-cycle loop draft <draft.md> --outline <page-outlines-v3/slug.json>` (exit 3 = переработай по instructions и `--resume`; лимит попыток не превышать).

Публикация только после прохождения всех гейтов.

**Выход:** `06-drafts/` — `*.publish.md`.

Files in this skill

  • SKILL.md6.8 KB
  • prompts/fact-check.md4.4 KB
  • templates/cycle-plan.template.md4.6 KB
  • templates/stock-inventory.template.yaml7 KB
  • templates/stop-words.md4.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.