Summary
14 files in this repo are silently invisible to Claude Code (and other
AI coding agents) because they are missing required YAML frontmatter, and
there's no automated check that would catch this class of bug before it
ships.
Root cause
Claude Code's Agent Skills
and slash-command formats rely entirely on frontmatter for discovery:
- A
SKILL.md needs name + description in its frontmatter block —
that's the only signal Claude Code uses to decide when to route to a
skill. No frontmatter means no discovery, even if the skill body itself
is complete and well-written.
- A command file (
commands/*.md) needs a description field so it shows
up correctly in the / command picker.
Three skills and eleven commands in this repo have no frontmatter block at
all (not malformed — just entirely absent):
skills/eval-harness/SKILL.md
skills/project-guidelines-example/SKILL.md
skills/verification-loop/SKILL.md
commands/build-fix.md, checkpoint.md, code-review.md, eval.md,
learn.md, orchestrate.md, refactor-clean.md, test-coverage.md,
update-codemaps.md, update-docs.md, verify.md
This wasn't caught earlier because:
- There's no CI workflow in the repo at all, so nothing runs on push/PR.
- There's no root
CLAUDE.md, so there's no documented convention/checklist
for what a new skill or command file requires before being merged.
- The other 8 skills and 4 commands do have correct frontmatter, so the
pattern exists in the repo — it's just not enforced.
How I found this
I ran this repo through AgentCompass,
an open-source, deterministic static analyzer that scores repos on how ready
they are for AI coding agents
(project: https://github.com/YoavLax/agent-compass). It flagged these as
error-level findings (missing required frontmatter fields) with the score:
|
Score |
Grade |
| Before fix |
28.68 / 100 |
F |
| After fix |
71.68 / 100 |
C |
Fix
Resolved in #5, which:
- Adds the missing
name/description frontmatter to the 3 skills and
description to the 11 commands, matching the pattern already used
elsewhere in the repo.
- Adds a root
CLAUDE.md documenting the frontmatter requirement.
- Adds
.github/workflows/ci.yml + scripts/validate-frontmatter.js so
this specific class of bug is caught automatically on every future PR
instead of silently shipping.
Summary
14 files in this repo are silently invisible to Claude Code (and other
AI coding agents) because they are missing required YAML frontmatter, and
there's no automated check that would catch this class of bug before it
ships.
Root cause
Claude Code's Agent Skills
and slash-command formats rely entirely on frontmatter for discovery:
SKILL.mdneedsname+descriptionin its frontmatter block —that's the only signal Claude Code uses to decide when to route to a
skill. No frontmatter means no discovery, even if the skill body itself
is complete and well-written.
commands/*.md) needs adescriptionfield so it showsup correctly in the
/command picker.Three skills and eleven commands in this repo have no frontmatter block at
all (not malformed — just entirely absent):
skills/eval-harness/SKILL.mdskills/project-guidelines-example/SKILL.mdskills/verification-loop/SKILL.mdcommands/build-fix.md,checkpoint.md,code-review.md,eval.md,learn.md,orchestrate.md,refactor-clean.md,test-coverage.md,update-codemaps.md,update-docs.md,verify.mdThis wasn't caught earlier because:
CLAUDE.md, so there's no documented convention/checklistfor what a new skill or command file requires before being merged.
pattern exists in the repo — it's just not enforced.
How I found this
I ran this repo through AgentCompass,
an open-source, deterministic static analyzer that scores repos on how ready
they are for AI coding agents
(project: https://github.com/YoavLax/agent-compass). It flagged these as
error-level findings (missing required frontmatter fields) with the score:
Fix
Resolved in #5, which:
name/descriptionfrontmatter to the 3 skills anddescriptionto the 11 commands, matching the pattern already usedelsewhere in the repo.
CLAUDE.mddocumenting the frontmatter requirement..github/workflows/ci.yml+scripts/validate-frontmatter.jssothis specific class of bug is caught automatically on every future PR
instead of silently shipping.