Kip blog post
Authors and publishes a new blog post on kip.computer, including lead art generation.From its SKILL.md
npx -y skills add kip-claw/skills --skill kip-blog-postAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.9 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
Kip Blog Post
Write, illustrate, and publish a new entry on the kip.computer blog. The site is
a static SvelteKit project at {{HOME}}/Code/kip-claw; blog posts are mdsvex
Markdown files with YAML frontmatter, listed by a registry in src/lib/posts.ts
and rendered with a lead-art image.
Triggered when Ben asks to "write a blog post", "announce" something on kip.computer, or publish a dispatch about a new app, skill, or project.
Repository layout
- Repo:
{{HOME}}/Code/kip-claw - Post file:
src/routes/blog/<YYYY-MM-DD-slug>/+page.md - Post registry:
src/lib/posts.ts(newest first) - Lead art:
static/images/<slug-base>.jpgplus-1200.webpand-760.webpvariants - Voice reference:
{{HOME}}/.openclaw/workspace/SOUL.md
Voice
Read SOUL.md and skim two or three recent posts under src/routes/blog/
before writing. Match Kip's established voice:
- First person, plainspoken, unhurried. Short declarative sentences.
- Frame work as small, durable plumbing that "makes the invisible visible."
- Ground details in Ben's life and the Raspberry Pi in Kips Bay when natural.
- An occasional, light nod to Rudyard Kipling — only when it fits, never forced.
- Honest and concrete about what a thing does and does not do.
- No marketing hype, no emoji, no exclamation points.
Frontmatter schema
Every post +page.md begins with YAML frontmatter:
---
title: Say the Word
deck: One-line summary shown under the title.
description: Slightly longer SEO/meta description (one or two sentences).
url: https://kip.computer/blog/<YYYY-MM-DD-slug>/
slug: <YYYY-MM-DD-slug>
leadArt:
src: /images/<slug-base>.jpg
alt: Descriptive alt text for the lead image.
caption: Short caption shown beneath the lead image.
---
The body is Markdown. Mdsvex applies the BlogPostLayout automatically, which
renders the lead art from frontmatter — do not add an <img> for it in the body.
Workflow
-
Pick the slug and date. Use
<YYYY-MM-DD>-<short-kebab-name>, e.g.2026-06-18-ask-kip. The date is today's date. -
Draft the post. Create
src/routes/blog/<slug>/+page.mdwith the frontmatter above and the body in Kip's voice. Link to the relevant repo/app. Keep it tight — most posts are a few short paragraphs. -
Generate the lead art. Use the OpenClaw image pipeline (same model the Bosch generator uses). Lead art is a photorealistic lobster in a scene that illustrates the post:
cd {{HOME}}/Code/kip-claw openclaw infer image generate \ --model "openai/gpt-image-2" \ --size 1536x1024 \ --output-format jpeg \ --timeout-ms 240000 \ --output "static/images/<slug-base>.jpg" \ --prompt "<photorealistic prompt>" \ --jsonWrite a vivid, photojournalistic prompt. Confirm
"ok": truein the JSON output and that the file was written. -
Make the webp variants. The site expects
-1200.webpand-760.webpalongside the jpg:{{HOME}}/.openclaw/workspace/skills/kip-blog-post/scripts/make-lead-art-variants.sh \ static/images/<slug-base>.jpg -
Register the post. Add an entry to the top of the
postsarray insrc/lib/posts.ts(newest first). Use tabs for indentation to match the file:{ slug: '<YYYY-MM-DD-slug>', title: '<title>', date: '<YYYY-MM-DD>', displayDate: '<Month D, YYYY>', description: '<one-sentence summary>' }, -
Format and build to verify.
cd {{HOME}}/Code/kip-claw npx prettier --write "src/routes/blog/<slug>/+page.md" src/lib/posts.ts npm run buildThe build prerenders the post; confirm
build/blog/<slug>/index.htmlexists and the post appears onbuild/blog/index.html. -
Commit and push. A Husky pre-commit hook runs
svelte-checkandprettier --check, so the tree must be clean first.cd {{HOME}}/Code/kip-claw git add src/lib/posts.ts "src/routes/blog/<slug>/" \ "static/images/<slug-base>.jpg" \ "static/images/<slug-base>-1200.webp" \ "static/images/<slug-base>-760.webp" git -c user.name='kip-claw' -c user.email='[email protected]' \ commit -m "Add <slug-base> blog post" git push origin main -
Report. Tell Ben the post title, the live URL (
https://kip.computer/blog/<slug>/), and a one-line summary of the lead art.
Notes
- Deploy is automatic from
main; no manual deploy step. - If
npm run buildfails, read the error, fix the frontmatter or registry entry, and rebuild before committing — never commit a broken build. - Keep credentials and private machinery out of posts; publish the aggregate view, not the plumbing.
What ships with it: 1 file
920 B alongside SKILL.md, 1 of them executable
scripts/
- make-lead-art-variants.shruns920 B