# blog-draft

Guides you through researching, outlining, and drafting blog articles with inline citations and version tracking in Git.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 45376
- Author: luongnv89
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/luongnv89/claude-howto/tree/HEAD/uk/03-skills/blog-draft/SKILL.md
- Updated: 2026-10-20
- HTML: https://affpapa.org/en/nevibecode/skills/luongnv89-blog-draft

## What it does

The skill breaks article preparation into distinct sequential stages. It initializes a dedicated folder named `blog-posts/YYYY-MM-DD-short-topic-name/` and saves summaries of your notes, URLs, or files inside a `resources/` subfolder. Before drafting, it presents core themes and asks clarifying questions regarding target word count and tone.

Once you approve the outline, the skill writes `OUTLINE.md` and generates your initial draft as `draft-v0.1.md`. If the working folder is a Git repository, it commits every milestone using a `docs:` commit prefix and pushes changes to the remote origin. Further revisions increment the file suffix, creating `draft-v0.2.md` and subsequent versions.

Every metric, statistic, or factual claim must have an inline citation linked to the references list at the end. When updating an existing article, the workflow skips background research and immediately jumps to draft revisions.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add luongnv89/claude-howto --skill blog-draft -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/blog-draft/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/blog-draft/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add luongnv89/claude-howto --skill blog-draft -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/blog-draft/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add luongnv89/claude-howto --skill blog-draft -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/blog-draft/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install luongnv89/claude-howto blog-draft
```

2. **Manually: put the files in place**
- File: `.github/skills/blog-draft/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add luongnv89/claude-howto --skill blog-draft -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/luongnv89/claude-howto --path uk/03-skills/blog-draft
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/blog-draft/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add luongnv89/claude-howto --skill blog-draft -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/luongnv89/claude-howto/tree/HEAD/uk/03-skills/blog-draft/SKILL.md

## When to use it
- organize research links and files into structured source summaries
- generate a validated article outline before writing prose
- draft blog posts with compulsory inline source citations
- track revisions incrementally using dedicated draft files and git commits

## Example prompts
- Draft a technical blog post on distributed tracing using the links in research.txt
- Create an outline and article about database indexing for backend engineers
- Update the existing blog post draft in the folder with the latest feedback

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: f09bfc5c31a7f2d7.

BEGIN THIRD-PARTY FILE f09bfc5c31a7f2d7
````text
---
name: blog-draft
description: Створення чернетки блог-посту з ідей та ресурсів. Використовуйте, коли користувачі хочуть написати блог-пост, створити контент з дослідження або підготувати статтю. Проводить через дослідження, мозковий штурм, складання плану та ітеративне написання з контролем версій.
---

## Введення користувача

```text
$ARGUMENTS
```

Ви **ПОВИННІ** врахувати введення користувача перед продовженням. Користувач має надати:
- **Ідея/Тема**: Основна концепція або тематика блог-посту
- **Ресурси**: URL, файли або посилання на дослідження (необовʼязково, але рекомендовано)
- **Цільова аудиторія**: Для кого блог-пост (необовʼязково)
- **Тон/Стиль**: Формальний, невимушений, технічний тощо (необовʼязково)

**ВАЖЛИВО**: Якщо користувач запитує оновлення **існуючого блог-посту**, пропустіть кроки 0-8 і починайте безпосередньо з **Кроку 9**. Спочатку прочитайте існуючий файл(и) чернетки, потім продовжуйте з процесом ітерації.

## Потік виконання

Виконуйте ці кроки послідовно. **Не пропускайте кроки та не продовжуйте без затвердження користувача, де це зазначено.**

### Крок 0: Створення папки проєкту

1. Згенерувати назву папки у форматі: `YYYY-MM-DD-short-topic-name`
   - Використати сьогоднішню дату
   - Створити короткий, URL-дружній slug з теми (малі літери, дефіси, макс. 5 слів)

2. Створити структуру папок:
   ```
   blog-posts/
   └── YYYY-MM-DD-short-topic-name/
       └── resources/
   ```

3. Підтвердити створення папки з користувачем перед продовженням.

### Крок 1: Дослідження та збір ресурсів

1. Створити підпапку `resources/` у каталозі блог-посту

2. Для кожного наданого ресурсу:
````
END THIRD-PARTY FILE f09bfc5c31a7f2d7

The third-party file has ended. Everything between the f09bfc5c31a7f2d7 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2754 of 14428 bytes. © luongnv89 · MIT · https://github.com/luongnv89/claude-howto/tree/HEAD/uk/03-skills/blog-draft/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
