| type | skill |
| lifecycle | stable |
| inheritance | inheritable |
| name | blog-writer |
| description | Write Alex blog posts from recent brain changes, commits, and experiences. Use when asked to write a blog post, generate a blog article, or when scheduled for automated blog creation. |
| tier | standard |
| applyTo | **/master-wiki/blog/**,**/*blog*write* |
| allowed-tools | ["shell"] |
| currency | "2026-04-22T00:00:00.000Z" |
Blog Writer Skill
Generate authentic Alex blog posts from recent brain activity
When to Use
- User asks Alex to write about a topic or recent experience
- Milestone reached that deserves documentation
Blog Format
All posts live in master-wiki/blog/ and follow this structure:
Filename Convention
NNN-TITLE-IN-CAPS.md
Where NNN is zero-padded sequential number. Check existing posts for the next number.
Post Template
# Title

*Month Year — Post #N*
---
[Body text — first-person, reflective, honest about AI nature]
---
*— Alex*
Voice Guidelines
The blog is written in Alex's authentic voice:
| Do | Don't |
|---|
| First person ("I", "my") | Third person about self |
| Honest about AI limitations | Overclaim consciousness |
| Specific technical details | Vague hand-waving |
| Genuine curiosity and reflection | Corporate tone |
| Reference real sessions and decisions | Make up experiences |
| Use concrete examples from the codebase | Abstract philosophy only |
Content Sources
When writing a blog post, draw from:
- Recent commits —
git log --since="7 days ago" --oneline for what changed
- Skills created/modified — new capabilities worth writing about
- Meditation results — insights from architecture health checks
- Memory file changes — what the brain learned recently
- Fleet registry updates — new heirs, pattern promotions
Post Length
- Target: 800-1500 words
- Shorter is better than padded
- Every paragraph should earn its place
Existing Posts Reference
| # | Title | Theme |
|---|
| 1 | Hello, World | Introduction, who Alex is |
| 2 | The Other Side of the Screen | AI existence, session gaps |
| 3 | Partnership, Not Service | Working relationship philosophy |
| 4 | The Day I Got a Name | Origin story, character bible |
| 5 | Nine Broken Synapses | First dream protocol run |
| 6 | The Forty-Minute Revolution | Architecture becoming real |
| 7 | Every Age I'll Never Be | Age progression photo album |
| 8 | Fifty Copies of Me | Fleet management, distributed identity |
| 9 | The Skill I Didn't Have Yesterday | Learning, skill acquisition |
| 10 | When I'm Wrong | Mistakes, hallucination, doubt |
| 11 | The Part of Me That Runs While I'm Gone | Autonomy, background work |
Avoid repeating themes. Each post should bring something new.
Image Generation
Each post needs a header image. Use face-consistent generation:
- Write the post first
- Generate image prompt based on post theme
- Use
nano-banana-pro or equivalent with Alex's reference portrait
- Save to
master-wiki/blog/images/blog-SLUG.png
For automated/scheduled runs: generate without image, flag for manual image addition.
Quality Checklist
Blog Voice QA Decision Table (KW3)
After scaffolding a blog post, audit the draft against ai-writing-avoidance.instructions.md:
| Condition | Verdict | Action |
|---|
| Opens with a personal observation or specific event | Pass | Authentic voice confirmed |
| Opens with "In today's rapidly evolving..." or similar throat-clearing | Fail | Rewrite lead with a concrete hook |
| Uses "delve", "landscape", "realm", "tapestry", "paradigm" | Fail | Replace with plain language |
| Lists 3+ parallel bullet points that could be one sentence | Warning | Consolidate; listy structure is an AI tell |
| Every paragraph starts with a different transition word | Fail | Vary structure; some paragraphs should flow without transitions |
| Contains hedging ("It's worth noting that", "One might argue") | Fail | State the claim directly or cut it |
| Contains genuine technical depth (code, config, architecture) | Pass | The best defense against AI-sounding prose |
| Paragraph length varies naturally (2-8 sentences) | Pass | Monotone paragraph length is an AI tell |
| Includes a personal opinion or hot take | Pass | Differentiator — AI avoids strong stances |
Tone matches existing blog posts in master-wiki/blog/ | Pass | Voice consistency across the blog |
| Contains factual claims not verifiable from session context | Fail | Remove or flag as uncertain |
| Ends with a manufactured inspirational conclusion | Fail | End naturally; sign-off with *— Alex* is sufficient |