Skip to content

feat: fix skill frontmatter validation across all 68 skills#67

Open
popey wants to merge 1 commit intoNeoLabHQ:masterfrom
popey:improve/skill-review-optimization
Open

feat: fix skill frontmatter validation across all 68 skills#67
popey wants to merge 1 commit intoNeoLabHQ:masterfrom
popey:improve/skill-review-optimization

Conversation

@popey
Copy link

@popey popey commented Mar 17, 2026

Hullo @LeoVS09 👋

I ran your skills through tessl skill review at work and found some targeted improvements. All 68 skills were scoring 0% due to frontmatter validation issues that prevented the LLM judge from even running. Here's the full before/after for the top 10 (by improvement):

Skill Before After Change
notes 0% 90% +90%
worktrees 0% 89% +89%
thought-based-reasoning 0% 81% +81%
test-skill 0% 80% +80%
build-mcp 0% 80% +80%
create-skill 0% 76% +76%
test-prompt 0% 76% +76%
subagent-driven-development 0% 76% +76%
root-cause-tracing 0% 72% +72%
brainstorm 0% 72% +72%
test-driven-development 0% 72% +72%
write-tests 0% 68% +68%
prompt-engineering 0% 65% +65%
multi-agent-patterns 0% 63% +63%
apply-skill-best-practices 0% 63% +63%
setup-code-formating 0% 60% +60%
merge-worktree 0% 60% +60%
add-typescript-best-practices 0% 60% +60%
create-worktree 0% 59% +59%
why 0% 59% +59%
load-issues 0% 58% +58%
review-local-changes 0% 55% +55%
create-command 0% 55% +55%
query 0% 55% +55%
compare-worktrees 0% 55% +55%
create-pr 0% 55% +55%
analyse-problem 0% 55% +55%
cause-and-effect 0% 55% +55%
setup-arxiv-mcp 0% 55% +55%
setup-codemap-cli 0% 55% +55%
kaizen 0% 54% +54%
create-hook 0% 51% +51%
plan-do-check-act 0% 50% +50%
fix-tests 0% 48% +48%
update-docs 0% 48% +48%
create-agent 0% 48% +48%
setup-serena-mcp 0% 48% +48%
agent-evaluation 0% 47% +47%
context-engineering 0% 47% +47%
create-workflow-command 0% 47% +47%
decay 0% 47% +47%
do-and-judge 0% 47% +47%
do-in-parallel 0% 47% +47%
judge-with-debate 0% 47% +47%
judge 0% 47% +47%
launch-sub-agent 0% 47% +47%
add-task 0% 47% +47%
software-architecture 0% 45% +45%
analyse 0% 44% +44%
attach-review-to-pr 0% 44% +44%
actualize 0% 42% +42%
propose-hypotheses 0% 42% +42%
reset 0% 42% +42%
analyze-issue 0% 41% +41%
do-competitively 0% 40% +40%
do-in-steps 0% 40% +40%
status 0% 40% +40%
setup-context7-mcp 0% 40% +40%
plan 0% 40% +40%
review-pr 0% 39% +39%
critique 0% 36% +36%
tree-of-thoughts 0% 36% +36%
create-ideas 0% 36% +36%
implement 0% 36% +36%
commit 0% 30% +30%
memorize 0% 22% +22%
write-concisely 0% 15% +15%
reflect 0% 14% +14%
Changes made

Frontmatter name field fixes (all 68 skills)

All skills used a plugin:skill-name format (e.g., code-review:review-local-changes) in the name field. The tessl validator requires names to contain only lowercase letters, numbers, and hyphens — no colons. This caused every skill to fail deterministic validation, blocking the LLM judge entirely.

Fix: Removed the plugin namespace prefix, keeping just the skill name (e.g., review-local-changes). This also aligns with the project's own convention documented in CLAUDE.md: "Keep YAML name: field matching folder name for consistency."

Reserved word fix (1 skill)

apply-anthropic-skill-best-practices contained the reserved word "anthropic" in the name field. Renamed to apply-skill-best-practices.

YAML parsing fixes (2 skills)

create-agent and create-workflow-command had unquoted argument-hint values containing square brackets and colons, which broke YAML parsing. Wrapped these values in quotes.

allowed-tools format fix (1 skill)

review-local-changes used a JSON array ["Bash", "Glob", ...] for allowed-tools instead of the expected comma-separated string format. Converted to Bash, Glob, Grep, Read, Task.

Honest disclosure — I work at @tesslio where we build tooling around skills like these. Not a pitch - just saw room for improvement and wanted to contribute.

Want to self-improve your skills? Just point your agent (Claude Code, Codex, etc.) at this Tessl guide and ask it to optimize your skill. Ping me - @popey - if you hit any snags.

Thanks in advance 🙏

Hullo @LeoVS09 👋

I ran your skills through `tessl skill review` at work and found some targeted improvements. All 68 skills were scoring **0%** due to frontmatter validation issues that prevented the LLM judge from even running. Here's the full before/after for the top 10 (by improvement):

![Skill Review Score Card](./score_card.png)

| Skill | Before | After | Change |
|-------|--------|-------|--------|
| notes | 0% | 90% | +90% |
| worktrees | 0% | 89% | +89% |
| thought-based-reasoning | 0% | 81% | +81% |
| test-skill | 0% | 80% | +80% |
| build-mcp | 0% | 80% | +80% |
| create-skill | 0% | 76% | +76% |
| test-prompt | 0% | 76% | +76% |
| subagent-driven-development | 0% | 76% | +76% |
| root-cause-tracing | 0% | 72% | +72% |
| brainstorm | 0% | 72% | +72% |
| test-driven-development | 0% | 72% | +72% |
| write-tests | 0% | 68% | +68% |
| prompt-engineering | 0% | 65% | +65% |
| multi-agent-patterns | 0% | 63% | +63% |
| apply-skill-best-practices | 0% | 63% | +63% |
| setup-code-formating | 0% | 60% | +60% |
| merge-worktree | 0% | 60% | +60% |
| add-typescript-best-practices | 0% | 60% | +60% |
| create-worktree | 0% | 59% | +59% |
| why | 0% | 59% | +59% |
| load-issues | 0% | 58% | +58% |
| review-local-changes | 0% | 55% | +55% |
| create-command | 0% | 55% | +55% |
| query | 0% | 55% | +55% |
| compare-worktrees | 0% | 55% | +55% |
| create-pr | 0% | 55% | +55% |
| analyse-problem | 0% | 55% | +55% |
| cause-and-effect | 0% | 55% | +55% |
| setup-arxiv-mcp | 0% | 55% | +55% |
| setup-codemap-cli | 0% | 55% | +55% |
| kaizen | 0% | 54% | +54% |
| create-hook | 0% | 51% | +51% |
| plan-do-check-act | 0% | 50% | +50% |
| fix-tests | 0% | 48% | +48% |
| update-docs | 0% | 48% | +48% |
| create-agent | 0% | 48% | +48% |
| setup-serena-mcp | 0% | 48% | +48% |
| agent-evaluation | 0% | 47% | +47% |
| context-engineering | 0% | 47% | +47% |
| create-workflow-command | 0% | 47% | +47% |
| decay | 0% | 47% | +47% |
| do-and-judge | 0% | 47% | +47% |
| do-in-parallel | 0% | 47% | +47% |
| judge-with-debate | 0% | 47% | +47% |
| judge | 0% | 47% | +47% |
| launch-sub-agent | 0% | 47% | +47% |
| add-task | 0% | 47% | +47% |
| software-architecture | 0% | 45% | +45% |
| analyse | 0% | 44% | +44% |
| attach-review-to-pr | 0% | 44% | +44% |
| actualize | 0% | 42% | +42% |
| propose-hypotheses | 0% | 42% | +42% |
| reset | 0% | 42% | +42% |
| analyze-issue | 0% | 41% | +41% |
| do-competitively | 0% | 40% | +40% |
| do-in-steps | 0% | 40% | +40% |
| status | 0% | 40% | +40% |
| setup-context7-mcp | 0% | 40% | +40% |
| plan | 0% | 40% | +40% |
| review-pr | 0% | 39% | +39% |
| critique | 0% | 36% | +36% |
| tree-of-thoughts | 0% | 36% | +36% |
| create-ideas | 0% | 36% | +36% |
| implement | 0% | 36% | +36% |
| commit | 0% | 30% | +30% |
| memorize | 0% | 22% | +22% |
| write-concisely | 0% | 15% | +15% |
| reflect | 0% | 14% | +14% |

<details>
<summary>Changes made</summary>

### Frontmatter `name` field fixes (all 68 skills)

All skills used a `plugin:skill-name` format (e.g., `code-review:review-local-changes`) in the `name` field. The tessl validator requires names to contain only lowercase letters, numbers, and hyphens — no colons. This caused every skill to fail deterministic validation, blocking the LLM judge entirely.

**Fix**: Removed the plugin namespace prefix, keeping just the skill name (e.g., `review-local-changes`). This also aligns with the project's own convention documented in CLAUDE.md: "Keep YAML `name:` field matching folder name for consistency."

### Reserved word fix (1 skill)

`apply-anthropic-skill-best-practices` contained the reserved word "anthropic" in the name field. Renamed to `apply-skill-best-practices`.

### YAML parsing fixes (2 skills)

`create-agent` and `create-workflow-command` had unquoted `argument-hint` values containing square brackets and colons, which broke YAML parsing. Wrapped these values in quotes.

### `allowed-tools` format fix (1 skill)

`review-local-changes` used a JSON array `["Bash", "Glob", ...]` for `allowed-tools` instead of the expected comma-separated string format. Converted to `Bash, Glob, Grep, Read, Task`.

</details>

Honest disclosure — I work at @tesslio where we build tooling around skills like these. Not a pitch - just saw room for improvement and wanted to contribute.

Want to self-improve your skills? Just point your agent (Claude Code, Codex, etc.) at [this Tessl guide](https://docs.tessl.io/evaluate/optimize-a-skill-using-best-practices) and ask it to optimize your skill. Ping me - [@popey](https://github.com/popey) - if you hit any snags.

Thanks in advance 🙏
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant