# Publish

> Publish router - reads config and routes to adapter. Use after completing a blog post.

- Skill: `serejaris/publish` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add serejaris/publish`
- Raw SKILL.md: https://api.skillmd.com/api/skills/serejaris/publish/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: serejaris (https://skillmd.com/u/serejaris)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/serejaris/publish

---


# Publish Router

Роутер для публикации статей. Читает конфиг и направляет к нужному adapter.

## Workflow

```
┌────────────────────┐
│  Read config.yaml  │
└─────────┬──────────┘
          │
          ▼
    Which adapter?
    ┌─────┼─────┐
    │     │     │
    ▼     ▼     ▼
telegram file  custom
    │     │     │
    ▼     ▼     ▼
 adapters/   adapters/   adapters/
telegram.md file-only.md custom.md
```

## Step 1: Read Config

Прочитай `config/config.yaml` и найди поле `output.adapter`:

```yaml
output:
  adapter: file-only  # telegram | file-only | custom
```

## Step 2: Load Adapter

| Adapter | File |
|---------|------|
| telegram | `adapters/telegram.md` |
| file-only | `adapters/file-only.md` |
| custom | `adapters/custom.md` |

## Step 3: Execute Adapter

Прочитай соответствующий adapter файл и следуй инструкциям.

## Validation

Перед публикацией проверь:
- [ ] Config файл существует и читается
- [ ] Adapter value валидный
- [ ] Для telegram: токен и channel_id заданы
- [ ] Для file-only: output_dir существует

## Fallback

Если конфиг не найден — используй `file-only` по умолчанию.

