diff --git a/docs/examples/skill-benchmark/from-the-web.md b/docs/examples/skill-benchmark/from-the-web.md index aa202db..b4d4073 100644 --- a/docs/examples/skill-benchmark/from-the-web.md +++ b/docs/examples/skill-benchmark/from-the-web.md @@ -33,9 +33,10 @@ finding and scores the skill. Pinned in [`tests/test_precision.py`](../../../tests/test_precision.py) (`test_invalid_yaml_frontmatter_scores_not_crashes`). -## Case study — invalid frontmatter: 50 → 100 +## Case study — `annotate`: 50 → 100 -A real-world bug class: a `description` with an unquoted colon. +[`annotate`](https://github.com/glebis/claude-skills) (from glebis/claude-skills) — a real +published skill whose `description` has an unquoted colon, scored verbatim: | | Score | Grade | Verdict | Finding | |---|------:|-------|---------|---------| diff --git a/docs/examples/skill-benchmark/improved/web-frontmatter.after.json b/docs/examples/skill-benchmark/improved/web-frontmatter.after.json index d8a5516..e459cf2 100644 --- a/docs/examples/skill-benchmark/improved/web-frontmatter.after.json +++ b/docs/examples/skill-benchmark/improved/web-frontmatter.after.json @@ -89,9 +89,9 @@ }, "findings": [], "provenance": { - "source": "community/claude-skills/annotate", + "source": "github.com/glebis/claude-skills \u00b7 annotate", "kind": "dir", - "resolved_path": "community/claude-skills/annotate" + "resolved_path": "github.com/glebis/claude-skills \u00b7 annotate" }, "metadata": { "mode": "structural-only", @@ -101,7 +101,7 @@ "confidence": "medium", "also": [] }, - "timestamp": "2026-06-23T01:49:56Z", + "timestamp": "2026-06-23T10:59:29Z", "skipped_dimensions": [ "D2", "D3", diff --git a/docs/examples/skill-benchmark/improved/web-frontmatter.after.md b/docs/examples/skill-benchmark/improved/web-frontmatter.after.md index 7c5d0ff..f49903c 100644 --- a/docs/examples/skill-benchmark/improved/web-frontmatter.after.md +++ b/docs/examples/skill-benchmark/improved/web-frontmatter.after.md @@ -1,5 +1,5 @@ # Skill Scorecard — `annotate` -Source: community/claude-skills/annotate · mode: structural-only +Source: github.com/glebis/claude-skills · annotate · mode: structural-only Type: task (confidence: medium) ## ██████████████ 100 / 100 Grade: A Verdict: Ship diff --git a/docs/examples/skill-benchmark/improved/web-frontmatter.before.json b/docs/examples/skill-benchmark/improved/web-frontmatter.before.json index b61ca59..ae93c8a 100644 --- a/docs/examples/skill-benchmark/improved/web-frontmatter.before.json +++ b/docs/examples/skill-benchmark/improved/web-frontmatter.before.json @@ -115,9 +115,9 @@ } ], "provenance": { - "source": "community/claude-skills/annotate", + "source": "github.com/glebis/claude-skills \u00b7 annotate", "kind": "dir", - "resolved_path": "community/claude-skills/annotate" + "resolved_path": "github.com/glebis/claude-skills \u00b7 annotate" }, "metadata": { "mode": "structural-only", @@ -127,7 +127,7 @@ "confidence": "medium", "also": [] }, - "timestamp": "2026-06-23T01:49:56Z", + "timestamp": "2026-06-23T10:59:29Z", "skipped_dimensions": [ "D2", "D3", diff --git a/docs/examples/skill-benchmark/improved/web-frontmatter.before.md b/docs/examples/skill-benchmark/improved/web-frontmatter.before.md index 2609326..6b04e2e 100644 --- a/docs/examples/skill-benchmark/improved/web-frontmatter.before.md +++ b/docs/examples/skill-benchmark/improved/web-frontmatter.before.md @@ -1,5 +1,5 @@ -# Skill Scorecard — `annotate` -Source: community/claude-skills/annotate · mode: structural-only +# Skill Scorecard — `claude-skills · annotate` +Source: github.com/glebis/claude-skills · annotate · mode: structural-only Type: task (confidence: medium) ## ███████░░░░░░░ 50 / 100 Grade: D Verdict: Revise diff --git a/docs/examples/skill-benchmark/improved/web-frontmatter.change.md b/docs/examples/skill-benchmark/improved/web-frontmatter.change.md index 5baf97a..c280bf2 100644 --- a/docs/examples/skill-benchmark/improved/web-frontmatter.change.md +++ b/docs/examples/skill-benchmark/improved/web-frontmatter.change.md @@ -1,24 +1,26 @@ # web-frontmatter — the fix -A bug class found in **real published skills** on GitHub: the `description` contains an -unquoted colon, so the YAML frontmatter is invalid and the skill has no usable -name/description (it won't trigger or load correctly). +A real published skill: **`annotate`** from +[glebis/claude-skills](https://github.com/glebis/claude-skills). Its `description` contains an +unquoted colon (`… Local-only: synthetic or consented data only …`), so the YAML frontmatter +is invalid and the skill has no usable name/description — it won't trigger or load correctly. +Scored verbatim, before and after the one-line fix. **Before** (invalid YAML — the colon after `Local-only` starts a YAML mapping): ```yaml --- name: annotate -description: Build a PII gold set. Local-only: synthetic data only, nothing leaves the machine. +description: Build and verify a PII gold set … Local-only: synthetic or consented data only; … --- ``` -**After** (skval's finding applied — quote the description so the colon is safe): +**After** (skval's finding applied — wrap the description in quotes so the colon is safe): ```yaml --- name: annotate -description: "Build a PII gold set. Local-only: synthetic data only, nothing leaves the machine. Use when labeling PII spans or measuring inter-annotator agreement (kappa)." +description: "Build and verify a PII gold set … Local-only: synthetic or consented data only; …" --- ``` diff --git a/docs/index.html b/docs/index.html index 6523d99..53104c5 100644 --- a/docs/index.html +++ b/docs/index.html @@ -190,8 +190,8 @@

Benchmark

The upgrade: score → fix → re-score

skval doesn't just grade — its ranked findings drive the fix. The biggest real-world turnarounds:

-

web skill · invalid frontmatter · 50100

-

A real published skill whose unquoted colon broke its YAML — it used to crash skval, and now scores. One-line fix: quote the description. compare.py: +50, Revise → Ship. case study →

+

annotate · invalid frontmatter · 50100

+

A real published skill (glebis/claude-skills) whose unquoted colon broke its YAML — it used to crash skval, and now scores. One-line fix: quote the description. compare.py: +50, Revise → Ship. case study →

bad-skill · 73100

Four findings fixed one-for-one — kebab name, drop <>, broken ref, stray key. compare.py: +27, Revise → Ship. case study →