Skip Navigation

Scott Spence

The Claude Skills Month - November 2025

So, November was Claude Code skills, mainly! What started as frustration with skills that wouldn’t activate became an investigation into why they weren’t working, how to fix it, and eventually building tooling so others don’t have to go through the same ballache I did. šŸ˜…

Alongside this, client work continued at pace with some substantial infrastructure and performance work on the SvelteKit monorepo.

Looking at the numbers (yes, all my GitHub activity I slurp up and add to a db, then chuck it at Claude) - 415 commits across 53 repositories. Four blog posts all centred on Claude Code skills. Sometimes you find a topic that needs documenting because nobody else has, and this was one of those months.

Highlights

So, the standout work this month fell into two distinct categories: figuring out Claude Code skills for my own projects, and delivering performance optimisations for client work that genuinely moved the needle on load times and bundle sizes.

Claude Skills Activation

Right, so, Claude Code skills are powerful in theory - you write structured documentation and Claude should use it when relevant. In practice? I was getting about 50% success rates on skill activation. A coin toss! šŸ˜‚

I worked out that you could use a UserPromptSubmit hook to either call a script or directly add to the prompt, this was like a ā€œplease sir consider running a skill if you have oneā€ which was better than never activation the skills. Then there’s using keywords in the user prompt but I found this brittle. Claude Code Skills Don’t Auto-Activate (a workaround)

So I dug deeper. The follow up to that was How to Make Claude Code Skills Activate Reliably, where I made a test harness and run evaluations through the Claude Agent SDK to see what worked and what didn’t.

Claude Skills CLI

Did some more work on the claude-skills-cli as I’m using it for client work, it went through some iterations. Added --lenient and --loose flags letting Claude write more (I’m keeping the defaults for my work), a doctor command to fix multi-line description issues, and multiple hook type options.

Client Infrastructure and Performance Work

For client work I’ll be giving you a peek behind the curtain on this as I’ll be doing a talk at JSMonthly in December on ā€œhow I refactored 370 files in 11 hours!ā€ Using Claude Code! The work was spread over 11 days with some long needed refactoring and optimisation work on the main product. Essentially I cleared up a lot of Svelte 4 code, improved the state story on a really large component and sped up load times across the critical routes using SvelteKit remote functions and reducing overfetching data and db round trips.

There was also Terraform work for AWS infrastructure - ElastiCache migration, security group configurations, and KMS key management amongst other things.

Svelte Claude Skills Evaluation Framework

I built svelte-claude-skills as both a reference implementation and testing ground. It’s got an evaluation framework with activation tests, quality tests, cost tracking, and metrics collection. The idea is to systematically test whether skills activate when they should and produce accurate guidance. Early days, but it’s helping identify which hook configurations work reliably.

Blog Posts

Already detailed! But here’s some more detail!

Claude Code Skills Not Recognised? Here’s the Fix!

  • When skills aren’t showing up at all, it’s usually YAML formatting. Multi-line descriptions, wrong indentation, missing required fields.

Claude Code Skills Don’t Auto-Activate (a workaround)

  • This was a brittle workaround if you were relying on keywords for the skills. I did find that UserPromptSubmit calling a script was a good way to force activation though.

How to Make Claude Code Skills Activate Reliably

  • The real solution. Covers hook configuration, forced evaluation, and the testing framework I built to verify activation rates. This has had 14k views since I published it on the 16th - clearly a pain point for many!

Working with Claude Code! The Honest Version

  • A broader reflection on using AI coding assistants over two years on a large projects. What works, what doesn’t, and why the ā€œjust use AIā€ advice misses the nuance of real-world development.

Open Source

Beyond the Claude skills work, the MCP servers and other projects got maintenance attention this month.

MCP Server Updates - mcp-omnisearch saw refactoring to consolidate URL validation across providers and standardise error handling. Fixed an issue with the site: operator in Brave and Kagi queries - turns out parentheses were breaking the search syntax.

Sveltest Restructuring - Sveltest moved to a monorepo so that I could add a CLI for use by LLMs, yeah, not an MCP!

Devhub CRM Documentation - Added comprehensive migration patterns and troubleshooting documentation for SQLite, plus cleaned up the Claude skills for daisyUI v5 forms and SvelteKit remote functions. Good reference material for future projects.

Fin

That’s it for November! Hit me up on Bluesky or GitHub if you’ve had similar experiences with Claude Code skills or want to chat about any of this stuff!

Copyright Ā© 2017 - 2025 - All rights reserved Scott Spence