Twelve Skills Have a Placeholder Tagline — a Sign of What Breaks in Bulk Import
When an importer cannot find a description, it writes something plausible instead of failing. That is the most expensive kind of bug, because the output looks fine.
Three exact-duplicate tagline groups cover twelve skills in the directory:
| Tagline | Skills | Source |
|---|---|---|
| "A skill from the GitHub repository zenstory-ai/video-recap-skills." | 6 | zenstory-ai |
| "A skill from the GitHub repository jykim/claude-obsidian-skills." | 4 | jykim |
| "Automatically detect source types and build AI skills using Skill Seek…" | 2 | yusufkaraaslan |
None of these are descriptions. They are fallback strings produced by an import pipeline that could not extract a real one, and then published anyway.
Why this happens
A bulk importer has to make a decision for every file it encounters. When the frontmatter is missing a description, or uses a shape the parser does not recognise, it has two options: fail the entry, or substitute something.
Substitution is the friendlier choice in the moment and the worse choice over time, because it produces entries that look complete. The skill has a name, a category, a score, a page — everything except a description that tells anyone what it does. The failure is invisible in every aggregate.
The general pattern
We have found the same shape in two other places this week:
- 174 skills with three dimensions set to zero. The evaluation never ran, but the score field held a placeholder value that looked plausible.
- Taglines that start with "Use when" — 23% of the corpus — are fine. The 0.5% with a real boundary statement are rare. But the 1.6% with a placeholder tagline were not visible at all until we counted duplicates.
In every case, the defect is a silent default: a value that makes the record complete-looking without being true.
What we are changing
The import pipeline should treat a missing description as a hard failure rather than substituting a sentence. An entry that cannot describe itself should not be published; it should appear in an import report.
The same rule applies to dimensions: zero is a legitimate score, so it cannot double as "not evaluated". Missing dimensions need their own state.
What to check in your own pipeline
If you ingest structured content at volume, look for the places where your code does this:
description: parsed.description || `A skill from ${repo}`
score: parsed.score || 8
Both lines are reasonable at the moment they are written and both produce data that is wrong in a way no one will notice. The fix is to make the fallback loud: leave the field null, mark the record incomplete, and surface it.
The twelve placeholder taglines cost us a paragraph of embarrassment. The 174 zeroed dimensions cost more.
