← Back to Skills Marketplace
j3ffyang

blog-polish-enus-images

by Jeff Yang · GitHub ↗ · v1.0.1 · MIT-0
cross-platform ⚠ suspicious
112
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install blog-polish-enus-images
Description
Polish a technical blog draft into an 1000–1200 word, 4-5 section en-US article, preserve technical terms/code, and generate consistent hero + per-section im...
README (SKILL.md)

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.

Usage Guidance
This skill appears to be a template/stub rather than a functional blog polisher: it creates placeholder markdown and builds image prompts/file-names but does not actually rewrite the draft to 1000–1200 words or call any image API. Before installing or using it: (1) inspect SKILL.md yourself — it will read the draft file (default: ~/.openclaw/workspace/contentDraft/latestDraft.md) and write output files to the outputDir; (2) ensure jq and other CLI tools used by the script are available on the host, or the skill may fail; (3) do not rely on this skill for production publishing without verifying its output on sample drafts; (4) ask the author for clarification or a working implementation that actually performs polishing (calls an LLM or polishing routine) and/or image generation, and for a declared list of required binaries. If you only need prompts/filenames, this could be useful; if you need real rewriting and image generation, this skill as-is is not sufficient.
Capability Analysis
Type: OpenClaw Skill Name: blog-polish-enus-images Version: 1.0.1 The skill bundle contains a significant shell injection vulnerability in SKILL.md. User-provided inputs such as 'draftPath' and 'outputDir' are directly interpolated into shell commands (e.g., 'cat', 'mkdir', and 'echo') without sanitization, which could allow an attacker to execute arbitrary commands or read sensitive files outside the intended workspace. While the logic aligns with the stated purpose of blog polishing and image prompt generation, the insecure handling of file paths and shell execution warrants a suspicious classification.
Capability Assessment
Purpose & Capability
The skill's declared purpose is to polish a technical blog into a 1000–1200 word, 4–5 section article while preserving technical terms/code and generate hero + per-section images. The SKILL.md implementation only writes a simple placeholder polished markdown (static template text like 'Content polished and restructured...' and summary lines) and only builds text prompts and intended image file paths; it does not call any polishing engine/LLM or any image-generation API. That is a substantive mismatch between claimed capability and actual behavior (appears to be a stub/template rather than a working polisher).
Instruction Scope
Instructions read the draft markdown at a user-supplied path (default ~/.openclaw/workspace/contentDraft/latestDraft.md), count words/sections, and write outputs to an output directory (default ~/.openclaw/workspace/contentPolished). It does not transmit data externally or request credentials. This file I/O is expected for the purpose, but users should note the skill will read the specified file path and write files under the output directory. Also the polishing step is a placeholder and will not produce a real rewritten article as advertised.
Install Mechanism
No install spec (instruction-only), which is low risk. However, the workflow depends on command-line tools (jq, sed, grep, wc, tr, date, mkdir, cat, printf, seq) — jq in particular is not universally available — but the skill declares no required binaries. The absence of declared dependencies may cause runtime failures or unexpected behavior.
Credentials
The skill declares no environment variables, no credentials, and no config paths. The instructions do not access other environment variables beyond typical shell variables and inputs. This is proportionate to the stated (file-based) functionality.
Persistence & Privilege
always is false and the skill is user-invocable. The skill writes files only under the resolved output directory and reads the specified draft file; it does not attempt to modify other skills, agent-wide settings, or request persistent privileges. No additional persistence privileges are requested.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install blog-polish-enus-images
  3. After installation, invoke the skill by name or use /blog-polish-enus-images
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.1
No functional or workflow changes in this version. - Version bump from 1.0.0 to 1.0.1. - No file or content changes detected.
Metadata
Slug blog-polish-enus-images
Version 1.0.1
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is blog-polish-enus-images?

Polish a technical blog draft into an 1000–1200 word, 4-5 section en-US article, preserve technical terms/code, and generate consistent hero + per-section im... It is an AI Agent Skill for Claude Code / OpenClaw, with 112 downloads so far.

How do I install blog-polish-enus-images?

Run "/install blog-polish-enus-images" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is blog-polish-enus-images free?

Yes, blog-polish-enus-images is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does blog-polish-enus-images support?

blog-polish-enus-images is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created blog-polish-enus-images?

It is built and maintained by Jeff Yang (@j3ffyang); the current version is v1.0.1.

💬 Comments