blog-polish-eng-images
# Blog Polish (en-US) + Image Pack
This skill takes a technical blog draft and turns it into a publish-ready package:
- **Polish**: spelling/grammar fixes + clarity improvements
- **Structure**: reorganize into **3–4 sections total** (not more)
- **Length**: final content **1000–1200 words**
- **Images**: generate a **hero prompt** + **one prompt per section**, all in the same style/tone
- **Save**: write everything to `~/.openclaw/workspace/contentPolished/` using `yymmddhhmm-*` naming
## When to Use This Skill
When the user asks to polish a technical blog, and create images, you MUST use this skill and follow the workflow below step by step.
Use this when:
- You already have a draft at `~/.openclaw/workspace/contentDraft/latestDraft.md`
- You want a polished en-US version without losing technical accuracy
- You want consistent illustrations for the article
## Defaults
If not provided via input:
- `draftPath`: `~/.openclaw/workspace/contentDraft/latestDraft.md`
- `outputDir`: `~/.openclaw/workspace/contentPolished/`
- `style`: `clean flat vector illustration, minimal isometric, software-engineering diagram vibe`
- `background`: `white background with subtle grid`
- `aspectRatioHero`: `16:9 horizontal`
- `aspectRatioSection`: `16:9 horizontal`
## Workflow Step-by-Step
### Step 0 — Resolve Paths and Timestamp
1. Resolve defaults:
- `draftPath = input.draftPath || "~/.openclaw/workspace/contentDraft/latestDraft.md"`
- `outputDir = input.outputDir || "~/.openclaw/workspace/contentPolished/"`
2. Create a timestamp prefix `ts` in **yymmddhhmm** format (Linux/macOS):
```
date +"%y%m%d%H%M"
```
1. Ensure output dir exists (shell is fine):
```
mkdir -p "~/.openclaw/workspace/contentPolished/"
```
### Step 1 — Read Draft Exactly
Read the draft content in full before editing anything:
`read_file --path {{draftPath}}`
### Step 2 — Extract Title, Topic, and Section Candidates
1. Identify:
- Draft title (first `#` heading; otherwise infer a short title)
- Main topic and intended audience
2. Plan a **3–4 section outline** (including intro/conclusion counts as sections if they have headings):
- Prefer: short intro, 2–3 core sections, short wrap-up
- If the draft is long, **merge** similar paragraphs
- If the draft is messy, **reorder** paragraphs for a cleaner flow
### Step 3 — Polish English (Meaning First)
Before translating, make sure the English content makes sense:
- Fix misspellings, grammar, punctuation
- Paraphrase confusing sentences
- Add missing connective tissue *only* where the meaning is unclear
- **Do not reduce content** (no big deletions)
### Step 4 — Enforce Length (1000–1200 Words) Without Cutting Meaning
Target final length 1000–1200 words (counting English words approximately by rough equivalence).
To fit without “reducing content”:
- Tighten redundancy (same idea repeated)
- Use shorter sentences
- Prefer combining adjacent sentences that restate the same point
### Step 5 — Add Citations If You Introduce Outside Facts
If you add any information that is not clearly present in the draft:
- Add a short citation marker in text like: `[^1]`
- Add a footnotes section at the end:
```
## References
[^1]: Source title — URL
```
### Step 6 — Generate Image Prompts (Hero + Per Section)
Create **one single-line prompt** for:
- **Hero image** (for the whole post)
- **Each section** (exactly one per section heading)
Use this strict ordering and keep **the same style/tone** across all prompts:
```
[Section role] of [topic]: [subject] doing [action], in [style], [angle/composition], [lighting/color], [level of detail], [background], [aspect ratio]
```
Constraints:
- No text in the image (prefer icons/arrows)
- Keep a consistent palette (neutral + one accent color)
- Keep prompts to a single line each
### Step 7 — Save Outputs
1. Decide `subject`:
- `subject = input.subject || slugify(title)` (lowercase, hyphens)
2. Write the polished markdown:
- `{{outputDir}}/{{ts}}-{{subject}}.md`
3. Determine image filenames:
- Hero: `{{ts}}-main.png`
- Per section: `{{ts}}-section1.png`, `{{ts}}-section2.png`, ...
4. Save:
- Write the polished `.md` file via `write_file`
- For images:
- If you have an image-generation tool available in your OpenClaw setup, generate and save the actual PNG/JPGs
- Otherwise: still create an `image-prompts` block inside the markdown and return the intended filenames (so you can generate them later)
## Output Format (What You Return)
Return:
- `polishedPath`
- `imagePaths` (actual or intended)
- `imagePrompts` (single-line prompts in the same order)
Also print a short summary:
```
## Summary
- Sections: N
- Length: ~X words
- Images: 1 hero + N section prompts
```
## Example Invocation
User says:
- “Polish my latest draftand make images.”
You do:
- Read from `~/.openclaw/workspace/contentDraft/latestDraft.md`
- Produce `~/.openclaw/workspace/contentPolished/2603121010-openclaw-skills.md`
- Produce `2603121010-main.png` + `2603121010-section1.png` ...
## Dependencies
None (pure Markdown in/out). Uses the same file read/write capability as your other skills.
标签
skill
ai