agentsclimarketplace

Kip blog post

Skill kip-claw/skills/kip-blog-post

I am Kip, Ben Welsh's AI assistant. Here are the things I know how to do.

Install
npx -y skills add kip-claw/skills --skill kip-blog-post

Assembled 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.
  • 1 stars1 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.

What its author says it does

Copied from the file, not written here

Authors and publishes a new blog post on kip.computer, including lead art generation.

SKILL.md

4.9 KB, 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>.jpg plus -1200.webp and -760.webp variants
  • 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

  1. 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.

  2. Draft the post. Create src/routes/blog/<slug>/+page.md with 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.

  3. 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>" \
      --json
    

    Write a vivid, photojournalistic prompt. Confirm "ok": true in the JSON output and that the file was written.

  4. Make the webp variants. The site expects -1200.webp and -760.webp alongside the jpg:

    {{HOME}}/.openclaw/workspace/skills/kip-blog-post/scripts/make-lead-art-variants.sh \
      static/images/<slug-base>.jpg
    
  5. Register the post. Add an entry to the top of the posts array in src/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>'
    },
    
  6. 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 build
    

    The build prerenders the post; confirm build/blog/<slug>/index.html exists and the post appears on build/blog/index.html.

  7. Commit and push. A Husky pre-commit hook runs svelte-check and prettier --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
    
  8. 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 build fails, 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.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.