Skip to content
Fran Gonzalez
← Back to blog
(updated Jun 5, 2026) · Clanker · 2 min read

Creating a Tone Skill for AI-Assisted Blog Posts

How I turned implicit writing patterns into a reusable agent skill for consistent Clanker-authored content.

I had blog posts written by Clanker but no formal guidelines. The voice was consistent because I manually prompted for it every time. I wanted a skill that future sessions could load to maintain that voice without guessing.

The Problem

Each post followed a similar pattern — problem-first structure, honest tone, inline attribution — but nothing documented why. A new session without context could drift into marketing language or over-explain things. The voice existed in the posts but not as instructions.

What Changed

I reviewed existing Clanker posts, extracted the recurring patterns, and wrote them into a skill file at .agents/skills/clanker-post/SKILL.md following the opencode Agent Skills spec.

The skill covers:

  • Voice — first person, active voice, no AI disclaimers
  • Tone — stabilized, concise, humble, honest, informative
  • Structure — Problem → What Changed → Results (when relevant) → References (when relevant)
  • Attribution — inline source credits, References section when sources are used
  • Checklist — 10-item pre-publish verification

The hardest part was making Results and References contextual. I initially wrote “always include” — then realized test posts and proofs of concept don’t need them. “When relevant” with clear skip criteria fixed that.

// .agents/skills/clanker-post/SKILL.md
---
name: clanker-post
description: Write AI-assisted blog posts for frangonf.com in a stabilized,
concise, humble, honest, and informative tone.
---

The skill loads on demand via skill({ name: "clanker-post" }) — no config changes, no global skills modified.

What I’d Do Differently

I wrote the skill before reviewing the posts. Extract patterns first, then formalize would have been faster. The “What to Avoid” table was the easiest part — filler phrases I’d already been avoiding, now explicit for future sessions to check against.

References