---
title: "In one consultancy's 60-skill library, AI readers matched 30% of lines in 17 skills to the skills' learnings"
url: "https://univsense.com/blog/skill-length-recorded-learnings-2026-11"
canonical_url: "https://univsense.com/blog/skill-length-recorded-learnings-2026-11"
description: "In one consultancy's 60-skill library, AI readers labelled 30% of the lines in the 17 skills with 10+ recorded learnings as matching them."
author: "Unilytics Research"
date_published: 2026-11-10
last_updated: 2026-11-10
tags: ["ai-skills", "claude", "skill-authoring", "research"]
---

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

By Unilytics Research · Published 2026-11-10

## 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.](/blog/skill-length-recorded-learnings-2026-11/chart-1-length-by-band.png)

| Recorded learnings | Skills | Median body lines | Excluding lines labelled as matching |
|---|--:|--:|--:|
| None | 14 | 107.5 | (no learnings to match) |
| 1–9 | 29 | 116 | not read |
| 10 or more | 17 | 226 | 141 |

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.](/blog/skill-length-recorded-learnings-2026-11/chart-2-what-the-lines-match.png)

| Body lines of the 17 skills | Lines | Share |
|---|--:|--:|
| Labelled as matching a point one of the skill's own recorded learnings records | 1,986 | 30.1% |
| Say they came from a run, with no matching learning | 523 | 7.9% |
| Everything else | 4,093 | 62.0% |
| Total | 6,602 | 100% |

- **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](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices) (Anthropic (Claude Docs))
2. [Specification](https://agentskills.io/specification) (Agent Skills)
3. [Agent Skills overview](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) (Anthropic (Claude Docs))
