name: new-post description: "Create, write, and refine blog posts for p.umputun.com in the author's Russian conversational style. Helps with brainstorming, structuring, drafting, image management, and publishing. This skill should be used when user wants to create a new blog post or work on an existing draft." user-invocable: true
new-post skill
Create and write blog posts for p.umputun.com — a personal blog in Russian by Umputun.
Quick Start
/new-post <topic>— start a new post on the given topic/new-post— interactive brainstorm session to find a topic
Writing Style
Read references/writing-style.md before writing any content. It contains extracted patterns from 48 existing posts: tone, structure, conventions, and representative examples.
Key points:
- Language: Russian, conversational, first person
- Tone: direct, opinionated, honest, dry humor
- No emoji, no clickbait, no "dear readers"
- Section headers in lowercase Russian
- Abbreviations: "т.е.", "т.к.", "т.д."
Workflow
Phase 1: Topic & Brainstorm
If the user provides a topic, discuss:
- What angle to take (technical how-to, project story, opinion piece, practical guide)
- Target audience (fellow developers, general readers, podcast listeners)
- Key points to cover
- Rough length estimate
If no topic provided, help brainstorm by asking:
- What have you been working on recently?
- Any problems solved that others might find useful?
- Any opinions on recent tech/events worth sharing?
Phase 2: Create Post File
Generate the slug from the topic (English, lowercase, hyphenated). Use today's date:
make new_post POST_NAME=YYYYMMDD-slug
This creates content/posts/YYYYMMDD-slug.md with Hugo frontmatter scaffolding.
Set up the frontmatter:
---
title: "Title in Russian"
slug: english-slug
date: YYYY-MM-DDTHH:MM:SS-06:00
draft: true
tags: ["для гиков"]
---
Tag selection guide:
["для гиков"]— technical posts, programming, tools, services (~45% of posts)["разное"]— general topics, opinions, non-tech (~31%)["назад в прошлое"]— nostalgia, historical (~10%)- Multiple tags possible:
["технические темы", "для гиков"]
Phase 3: Outline
Propose a structure based on post type:
Technical project story:
- Opening: problem/context that led to the project
<!--more-->(for long posts)## TL;DR(optional, for long posts)## история вопроса/## с чего все началось## подход к решению/## детали реализации## результаты- Optional italic closing remark
Opinion/commentary:
- Opening: state the thesis directly
<!--more-->(for long posts)- Main arguments as
##sections ## выводыor closing paragraph- Optional italic caveat
_text_
Service/tool review:
- Opening: one-line summary verdict
## TL;DR## с чего все началось— why you looked at this- Feature sections with
## ## странности и сложности— honest problems## выводы
Practical guide:
- Opening: why this guide exists
- Numbered or sectioned instructions
- Practical recommendations with personal experience
- Closing caveat about subjectivity
Phase 4: Draft
Write sections iteratively, presenting each for review before continuing.
Draft rules:
- Follow
references/writing-style.mdstrictly - Write in Russian, matching the author's voice
- Use characteristic phrases naturally (don't force them)
- Keep paragraphs focused — one idea per paragraph
- Use
##and###for structure (lowercase headers) - Include code blocks with language tags where relevant
- Add links to referenced tools/projects
- Place
<!--more-->after the first paragraph for longer posts
After each section, ask:
- Does this match what you had in mind?
- Should I expand, compress, or change the angle?
- Any specific details or anecdotes to add?
Phase 5: Images
When images are needed:
Single image per post:
- Copy to
static/images/posts/filename.png - Reference:

Multiple images:
- Create directory:
static/images/posts/<slug>/ - Copy images there
- Reference:

Float image (decorative, alongside text):

Collapsible image gallery:
<details>
<summary>Caption describing the images</summary>


</details>
If the user provides images that need resizing, use Python/Pillow:
python3 -c "from PIL import Image; img=Image.open('input.png'); img.thumbnail((1200, 1200)); img.save('output.png', optimize=True)"
Phase 6: Review & Refine
Before marking as ready:
- Re-read the full draft for flow and tone consistency
- Check that section headers follow conventions (lowercase Russian)
- Verify all links work
- Ensure code blocks have language tags
- Check image references point to correct paths
- Verify frontmatter is complete and correct
Phase 7: Preview & Publish
Preview:
hugo server -D
The draft post will be visible at http://localhost:1313/. If agent-browser is available, use it to screenshot and verify the post renders correctly.
Publish:
- Set
draft: falsein frontmatter - Generate English translation using the
translate-postskill — run/translate-post <filename>to create the.en.mdversion - Remind the user to commit:
The post and its English translation are ready. When you're satisfied, commit and push to master — Cloudflare Pages will deploy automatically.
Working with Existing Drafts
If the user wants to work on an existing draft:
- List drafts: search
content/posts/for files withdraft: true - Read the draft
- Discuss what needs work
- Apply the relevant phase (outline, draft, refine, images, publish)