Skip to content

Blog

In one consultancy's 60-skill library, AI readers matched 30% of lines in 17 skills to the skills' learnings

Unilytics Research9 min read

Key findings

  • The sample: one SEO and AEO consultancy's working library (ours): 60 skills, holding 733 files besides their 461 recorded learnings. The script ran on 10 November 2026 (UTC) over a copy scrubbed of client names; the newest file in the copy is dated 5 November 2026. Every figure here describes this one library, not skill libraries in general.
  • Length: the 17 skills with 10 or more recorded learnings have a median SKILL.md body of 226 lines, about twice the 107.5 of the 14 skills with none. The 29 skills with one to nine learnings have a median of 116.
  • What their text matches: AI readers labelled 30% of those 17 skills' body lines (1,986 of 6,602) as stating a specific point that one of the skill's own recorded learnings also records. All 17 have some. It's 33% on non-blank lines only, and 33.5% with the readers' close calls included.
  • The medians without those lines: excluding the labelled lines lowers the median of the 17 from 226 to 141 lines. The difference from the no-learnings median falls from 118.5 lines to 33.5, a drop of about 72% (65% on non-blank lines). That is arithmetic, not a cause, and not a tested rewrite: we didn't check whether the remaining text still works as a skill.
  • Past the guidance: 3 skills have a body of 500 lines or more, the length Anthropic's guide and the Agent Skills specification suggest staying under. The longest has 1,870.
  • Two readers gave similar labels: new sessions of the same model, told not to open the first labels, re-read 4 of the 17 skills. On "matches a learning" or not, they agreed on 97.6% of lines (Cohen's κ = 0.895; 0.87 to 0.94 per skill).

What this doesn't show

  • One library. It is one practitioner's 60 skills, so it says nothing about consultants or skill libraries in general.
  • A match isn't an origin. This is a snapshot, so we can't see which came first. A learning can record a point the skill already made. The readers counted a match only when the learning records the point as something a run found, hit, got corrected on or decided, but that doesn't prove the line was added because of it.
  • Recorded learnings aren't runs. A learning is saved only when a run learned something, and this library's own loop asks for one. Learnings and length are tied by design.
  • No causal claim. Complex jobs may need longer skills and teach more at the same time.
  • The groups were picked on the variable they're compared by. The 17 skills were chosen because they have 10+ recorded learnings, and only they were read. They aren't a representative sample, and the comparison with the no-learnings group doesn't estimate what recording learnings does to a skill.
  • The no-learnings group may differ in other ways. Those skills may be newer, used less, or written before the library's loop saved learnings.
  • The readers were AI models, not people, following a written protocol. Two sessions of the same model gave similar labels on four re-read skills. That doesn't show the labels are right, or that they'd be as consistent on the other 13. No person validated them.

Are skills with more recorded learnings longer?

In this library, the skills with 10 or more learnings have the higher median: 226 lines against 107.5 for skills with none. Those with one to nine sit close to the no-learnings group, at 116. Across all 60, the rank correlation between learnings and body lines is 0.448 (Spearman, ties averaged). That describes these 60 skills and isn't an estimate for other libraries, so it carries no interval.

Bar chart: median SKILL.md body lines by number of recorded learnings in one 60-skill library. No learnings 107.5 (14 skills), 1–9 learnings 116 (29 skills), 10+ learnings 226 (17 skills); the 10+ group excluding the lines labelled as matching one of its own learnings: 141.

Recorded learningsSkillsMedian body linesExcluding lines labelled as matching
None14107.5(no learnings to match)
1–929116not read
10 or more17226141

The longest skills don't make the pattern on their own. Without the 3 longest (1,870, 979 and 550 lines), the 14 remaining skills with 10+ learnings have a median of 174 lines, and the rank correlation across the 57 is 0.365.

How much of their text matches their own learnings?

About a third, as the readers labelled it. For each of the 17 skills with 10+ learnings, a reader went through the body line by line next to that skill's own recorded learnings. It marked every passage that states "a specific rule, fact, caveat, step, threshold or example" that one of them records as something a run "found, hit, got corrected on or decided" (the protocol's words).

Stacked bar of the 6,602 body lines of the 17 skills with 10+ recorded learnings in one 60-skill library: 1,986 lines (30%) were labelled as matching a point one of the skill's own recorded learnings records, 523 (8%) say they came from a run with no matching learning, 4,093 (62%) are everything else.

Body lines of the 17 skillsLinesShare
Labelled as matching a point one of the skill's own recorded learnings records1,98630.1%
Say they came from a run, with no matching learning5237.9%
Everything else4,09362.0%
Total6,602100%
  • Per skill: every one of the 17 has some matched text. In the median skill it's 36.5% of the body, a figure that gives each skill equal weight.
  • Close calls: the readers left another 227 lines (3.4%) out. Counting them would raise the 30% to 33.5%.
  • Non-blank lines only: 1,857 of 5,683 lines match (33%). The medians are 168 lines for the 17 and 89.5 for the no-learnings group; excluding the matched lines brings the 17 down to 117, so the difference falls from 78.5 to 27.5 lines (65%).
  • Weighting: the library's longest skill (1,870 lines) is 28% of the lines read. The per-skill median (36.5%) is above the pooled 30%, which suggests the longest skills have lower shares than most and pull the pooled figure down rather than up.

An automatic wording check finds far fewer: across all 60 skills, 128 body lines have at least half their four-word sequences in the skill's own learnings. So at most 128 of the 1,986 matched lines (6%) share that much wording. The test misses paraphrase and short quotes, so it doesn't measure all reused wording.

Learnings are also uneven: 6 of the 60 skills (10%) hold just under half of all 461 (49.7%).

What it means for a skill that keeps learning

Three explanations fit the data, and it can't tell them apart:

  • The loop has no size budget. Each run that learns something adds to the steps, and nothing moves it out.
  • Hard jobs teach more. A complex job needs a longer skill and also gives more to learn.
  • Age. Older skills have had more time for both.

A version history would show which came first, the line or the learning. That still wouldn't separate the second and third explanations.

Both public guides (read 10 November 2026) treat length as something to manage. Anthropic's guide says "Keep the SKILL.md body under 500 lines for optimal performance" and "Split content into separate files when approaching this limit." The Agent Skills specification says "Keep your main SKILL.md under 500 lines. Move detailed reference material to separate files." Both phrase it as guidance, not a hard limit.

If your skills save what they learn, decide where that text goes. One option keeps a single, current rule in the step and the dated account of each run in a reference file, with a line in the step that says when to load it. When a new learning changes a rule, the step gets the new rule and the old one is marked superseded in the reference file, with the dated records kept. Without that, moving text to a reference file only moves the length.

Methodology

  • Data: the 60 skills of one account (ours): 55 personal skills and 5 kept in client projects, in a copy whose newest file is dated 5 November 2026. Before measuring, client, partner and person names were replaced with fictional stand-in names (a private map of 201 rules). Each skill is a folder: SKILL.md, reference and data files, and its recorded learnings, one file per learning. We publish counts only, never skill or learning text.
  • Body lines: the lines of SKILL.md after the frontmatter, blank lines included. The median of all 60 is 134.5; the total is 12,504. The matched share and the median comparison are also given on non-blank lines only. The 500-line guidance is about the same body, so the three long skills are counted the same way.
  • Bands: a skill's number of recorded learnings: none, 1 to 9, 10 or more. The bands were fixed before measuring.
  • The reading: each of the 17 skills with 10+ learnings went to a reader, with its body (numbered lines) and all its learnings. Each passage got one label:
    • matches a learning: it states a specific point that a learning records as something a run found, hit, got corrected on or decided. A paraphrase counts; a shared topic doesn't. To illustrate (our example, not the protocol's): a learning that records "the export dropped rows past 10,000, so we paged it by month" and a step that says to page the export by month match; a learning and a step that both mention Search Console don't. Headings and blank lines inside a passage take its label.
    • run-marked: it says it came from a run or a dated event, but no learning records the point. A line that does both is labelled matches a learning.
    • everything else: the skill's own method, template text and generic advice. Close calls went here and were counted separately.
  • Who read: the readers were AI models (Claude Opus 5.5) in six separate sessions, each reading two to four skills, one packet per skill. Every matches a learning label cites the learnings it matches. Labels hold line numbers and learning ids only. The skills with fewer than 10 learnings weren't read; the no-learnings group has nothing to match by construction.
  • Agreement: two new sessions, told not to open the first labels, re-read 4 of the 17 skills, drawn with a fixed random seed (Python's random.Random(955)).
    • "Matches a learning" or not: 97.6% agreement on 2,340 lines, Cohen's κ = 0.895 (0.87, 0.88, 0.93 and 0.94 per skill).
    • All three labels: 96.3% agreement, κ = 0.901.
    • Share labelled as matching on those 4 skills: 13.6% in the first read, 12.7% in the second. That is well below the 30% overall, so these agreement figures mostly describe a long skill with few matches.
    • The longest skill is 80% of those 2,340 lines, which is why the per-skill figures are given too.
    • The author, also an AI model, checked the largest matched passages of one skill against the learnings they cite. No person checked the labels.
  • Automatic check: words are lower-cased letters and digits; a body line of 6+ words counts as sharing wording when at least half its overlapping four-word sequences occur in any of that skill's own learnings. It ran over all 60 skills.
  • Statistics: Spearman's rank correlation with average ranks for ties; Cohen's κ for agreement. Every figure describes this library only, so none carries an interval.
  • Reproducibility: one read-only script measures every number from the scrubbed copy and the labels. It records a fingerprint of both, and its output holds aggregates only. The script, its output and the reading protocol are kept with the commit that produced them. The copy and the labels stay private, so the numbers can be audited by us but not re-run by a reader.

Disclosure

Unilytics builds a skill system for consultants. This library lives in it, which is why its skills record what they learn. Corrections: if a number here is wrong, we fix it on this page with a dated note at the top.

Sources

  1. Skill authoring best practices (Anthropic (Claude Docs))
  2. Specification (Agent Skills)
  3. Agent Skills overview (Anthropic (Claude Docs))
  • ai-skills
  • claude
  • skill-authoring
  • research