Testing Claude Code Skills in CI — pulser eval + GitHub Action
A missing name field in one skill file silently disabled 14 skills across our shared repository. Nobody noticed for a week — users just assumed Claude "didn't know how to do that." I built pulser t...

Source: DEV Community
A missing name field in one skill file silently disabled 14 skills across our shared repository. Nobody noticed for a week — users just assumed Claude "didn't know how to do that." I built pulser to make sure that never happens again, then wrapped it in a GitHub Action so CI catches breakage before merge. Here's the full setup. TL;DR: pulser eval is a CLI that checks Claude Code skill files for structural correctness, frontmatter validity, and common antipatterns. Run it locally in under a second or add the GitHub Action to your CI pipeline. We went from "manually eyeball the YAML" to "CI rejects broken skills automatically" — catching 23 issues in the first week that would have shipped silently. Zero dependencies, sub-200ms execution for 40+ skills. The Problem: Skills Break Silently Claude Code skills are markdown files with YAML frontmatter — and they fail silently when malformed. A skill file looks like this: --- name: my-skill description: Use when the user asks to refactor a func