Answer
Hermes shows the model only the first 60 characters of a skill description. Forty-three of my 176 skills put their trigger words past that cut, so they competed for attention with a description the model never finished reading. Rewriting all 43 to fit the window — and re-parsing each with Hermes's own frontmatter parser — moved the library from 43 over-window descriptions to 0.
- The window is
SKILL_PROMPT_DESC_LIMIT = 60inagent/skill_utils.py, not the 500 characters an imported skill asserted. - The worst case was
impeccableat 895 characters; the model saw "Use when the user wants to design, redesign, shape, critique…" and nothing else. - A rewrite only counts if it is measured again: the audit tool now reports the over-window count directly.
- 12 FAILs remain, all content debt I deliberately did not touch in this pass.
Applies todeepseek seatM4176 catalog skillsexcludes .archive2026-11-07
How far past the cut did the worst ones run?
| Skill | Description length | What the model actually saw |
|---|---|---|
impeccable | 15× the window895 chars | "Use when the user wants to design, redesign, shape, critique…" |
scroll-craft | 15×888 chars | "Build premium scroll-driven landing pages for service…" |
ai-influencer-lifecycle | 12×745 chars | "Create and manage a consistent AI influencer using…" |
archify | 12×740 chars | "Create validated architecture, workflow, sequence…" |
ssh-monitor-dashboard | 10×588 chars | "Build a monitoring dashboard that polls a remote machine…" |
done-before | 9×532 chars | "Query the one brain (Wiki_test vault) BEFORE starting…" |
A description is a trigger, not a summary: its job is to win the moment of choice. Everything past character 60 is invisible at that moment, however well written it is.
What did the pass change?
| Criterion | Before | After |
|---|---|---|
| Descriptions over the 60-char window | invisible43 | all visible0 |
| Longest description | 895 chars | 59 chars |
| Description collisions | competing2 | 1 |
| WARN total | 55 | 27 |
| FAIL total | 12 | untouched axis12 |
| Eval suite | — | passing13/13 |
Every original description is preserved verbatim under a ## Trigger surface heading inside the same file, so the wording was moved, not deleted.
What is the loop that produced it?
Diagram structure
- Snapshot the library
snap - Triage FAIL, then WARN
triage - Re-run the analyzer
again - Analyze every SKILL.md
scan - Rewrite one axis
fix - Record the delta
log again→log· moved?fix→againlog→triage· next axisscan→triage· exit 1 on FAILsnap→scantriage→fix· worst first
The loop is the whole method: snapshot, analyze, fix one axis, re-measure, record. Bundling a description rewrite with a body restructure destroys the only evidence you have about which change helped.
How do the issue counts compare?
WARN fell by 28 because 43 rewritten descriptions removed 43 over-window warnings while the collision fix removed one more. FAIL stayed at 12: those are dead links and name mismatches, a different axis.
What is still broken?
| Item | Count | What it needs |
|---|---|---|
| Dead links in skill bodies | factual15 across 10 skills | write the missing reference, or delete the pointer |
name not matching directory | factual2 (audiocraft, segment-anything) | rename the directory, or align the field |
| References over 300 lines with no TOC | judgement51 | add a contents block where the file is genuinely long |
| Bodies over 500 lines | judgement19 | move depth into references behind a trigger |
| Duplicate skill pair | judgement1 (cape-town vs civic-recourse) | merge, or give each an exclusion clause |
What does the fix look like in practice?
| Old | New | Change |
|---|---|---|
--- appledesign/SKILL.md | ||
+++ appledesign/SKILL.md | ||
-description: "Apple's approach to interface design and fluid, physical motion, | ||
- translated for the web. Use when building or reviewing a marketing site, | ||
- a product surface, or any interaction where the motion should feel native." | ||
+description: "Design interfaces in Apple's restrained, fluid idiom." |
The rewrite is hand-written, not truncated. Mechanical capping produced fragments like "…polls a remote machine." — grammatical debris that signals carelessness to a human reviewer and drops the verb that made the trigger work.