Building a writing-style skill for my blog
The question that started it
Recently, I asked Claude a simple question: when did I first use AI on my blog? I expected a quick answer from memory, and I got one. It was wrong.
The first answer pointed to a Bing image in November 2024 and ChatGPT in January 2025. That sounded plausible, but plausible is not the same as checked. So I asked Claude to go through my posts instead of guessing.
The real timeline looks different. My first AI-generated title image (made with Bing Create) is from April 30, 2023. The first post with AI-assisted text is from November 25, 2024.
That small correction is what this post is about. It started a longer project: teaching an LLM to write like me, and making sure the result is based on my real pre-AI posts and not on what the model assumes about them.
Why a skill, and why the whole corpus
My goal was a description of my writing style that an LLM can use. I then realized it would be a good idea to package the result as a skill, following the agent skills standard. This puts the instructions in my blog repo, right next to the posts they describe.
The first version was built from about 45 posts that Claude read in the browser. That is a small sample for 15 years of writing. When I attached my locally checked-out repo folder, we could do it properly.
The baseline became all 231 posts that I wrote myself, from 2011 to November 24, 2024. Guest posts and anything with AI-written text were left out. For phrase analysis, we used the 141 posts from 2014 on. Claude measured things like:
- sentence and paragraph length
- how often I use “I”, “we” and “you”
- contractions, parentheses and exclamation marks
- recurring phrases, counted by the share of posts that contain them
- heading levels, sign-offs and callouts
I like this part because it replaces “sounds like Marco” with numbers I can check. Let’s have a look at what those numbers changed.
What the corpus corrected
The first style guide was a solid start, but it contained claims that did not survive the full corpus. Some were small, some were not.
The AI timeline
I already mentioned the first mistake. The guide also listed a post from December 19, 2024 as a good style sample, and it is AI-assisted. The recap post from December 28, 2024 was also AI-assisted, which the first guide described as unconfirmed. Both are now excluded as models.
Phrases that did not come from me
A few phrases in the first guide came from a guest post on my blog, and one example was simply invented. They were replaced after Claude checked the sources again. This confirms one of the most important lessons when using AI: always double check the results!
Other errors
Contractions looked rare in my older posts. The reason was an apostrophe: older posts use the typographic one (´), which a simple search missed. Sign-offs looked like they disappeared after 2021, but that was a cleaning step that stripped the headings they are written in. Once we became aware of these things and fixed the counting, the picture was different. Also, “Sure,” and “Well,” turned out to be rare, so they are not part of my style at all.
Repo conventions
The repo itself taught Claude more than my posts did. I had an SEO report in my local repo copy that says recent posts start sections at ####, which keeps them out of the table of contents. It also says that my newest posts use date-prefixed permalinks without a leading slash. The skill now tells an LLM to use ## for sections and /slug/ permalinks, and to keep my #### sign-off.
In the end, about ten statements in the skill were softened or removed because my data could not back them up.
The skill in the repo
The skill lives in my blog repo under .claude/skills/msicc-blog-style/. Because not every agent reads the .claude folder, there is also a symlink at .agents/skills/msicc-blog-style that points to it. If you are following my recent posts, you know I prefer provider-agnostic implementations, so that was a no-brainer.
The structure is simple:
SKILL.mdhas the voice, the measured mechanics, the closers by post type, the transparency rules and a list of things not to do. It also contains a routing table that tells the agent which reference to read first.references/has one note per post type (tutorial and series, editorial, year review, book and course review, short posts), plus Jekyll conventions and notes on how the corpus was analyzed.- Each reference links to real posts in
_posts/, so the agent can read the original instead of trusting a summary.
The skill describes how I wrote until November 2024 - my personal “pre-AI era”. It is a first version, and it leaves intentionally out how my writing has changed since then. The ultimate goal of this skill is to write in my style - the already AI-infused posts since then would probably influence the skill in a negative way.
What I learned
- Give the AI real data (if possible and not sensitive), not just a task. The best results came after the repo folder was attached, because dates, front matter and the local SEO report settled questions that no prompt could.
- Check every claim that sounds like you. A style guide full of plausible statements is easy to write and hard to trust. Measuring the full corpus removed the wrong ones.
- Keep your own AI timeline honest. If you write with and about AI on your blog, you need to know which of your posts are AI-assisted. I did not know mine as well as I thought, to be honest.
- Treat the first version as a rough draft. Other reviewers, human or AI, will find things you missed - and the findings may even surprise you.
Would I do anything differently? I would have attached the repo folder right away, and I would have asked for the corpus check before the first style guide.
I am curious how you handle this. Do you write down your own style for an LLM, and do you check it against your posts? Let me know in the comments or on social media.
As always, I hope this post is helpful for some of you.
Until the next post, happy coding, everyone!
AI disclosure: The first draft of this post was written by Claude using the skill I described above as the final step of the process. I reviewed and edited it before publishing.
The title image was created with ChatGPT based on a prompt Claude created as part of this process.
