Content Cognitive Load

Cognitive load assessment for long form content

by AgriciDaniel · MIT license · ★ 2,219 on GitHub · updated Sep 18

Cognitive load assessment for long form content cover

A reader has finite working memory.

# Cognitive Load Assessment for Long-Form Content

A reader has finite working memory. A blog post that introduces too many new concepts, named entities, or numeric claims in too short a span will lose them. Most readability scores (Flesch, Gunning Fog) measure surface-level prose difficulty; this reference adds the dimension they miss: **how much the reader must actively hold to follow a section**.

Run the cognitive-load analyzer (`scripts/cognitive_load.py`) on long-form B2B posts (1,500+ words). It produces a heatmap of sections by load.

Adapted from the impeccable plugin's UI cognitive-load reference (Paul Bakaus, Apache 2.0).

---

## Three types of cognitive load (Sweller 1988)

### Intrinsic load: the topic itself
Some topics are inherently complex. A post on "OAuth 2.1 refresh-token rotation" has higher intrinsic load than "10 ways to declutter your home." You cannot eliminate this; you can scaffold it.

Manage by:
- Breaking dense topics into ordered sub-sections
- Providing scaffolding (templates, callouts, examples)

Overview

A reader has finite working memory. A blog post that introduces too many new concepts, named entities, or numeric claims in too short a span will lose them. Most readability scores (Flesch, Gunning Fog) measure surface-level prose difficulty; this reference adds the dimension they miss: how much the reader must actively hold to follow a section.

Manual install (npx, ZIP)
Claude Codenpx skills add AgriciDaniel/claude-blog --skill cognitive-load-assessment-for-long-form-content -g -a claude-code
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • cognitive-load.md6.6 KB
Read cognitive-load.md here
AgriciDaniel/main1 file
cognitive-load.md
Show the full text141 lines

Cognitive Load Assessment for Long-Form Content

A reader has finite working memory. A blog post that introduces too many new concepts, named entities, or numeric claims in too short a span will lose them. Most readability scores (Flesch, Gunning Fog) measure surface-level prose difficulty; this reference adds the dimension they miss: how much the reader must actively hold to follow a section.

Run the cognitive-load analyzer (scripts/cognitive_load.py) on long-form B2B posts (1,500+ words). It produces a heatmap of sections by load.

Adapted from the impeccable plugin's UI cognitive-load reference (Paul Bakaus, Apache 2.0).


Three types of cognitive load (Sweller 1988)

Intrinsic load: the topic itself

Some topics are inherently complex. A post on "OAuth 2.1 refresh-token rotation" has higher intrinsic load than "10 ways to declutter your home." You cannot eliminate this; you can scaffold it.

Manage by:

  • Breaking dense topics into ordered sub-sections
  • Providing scaffolding (templates, callouts, examples)
  • Progressive disclosure: introduce one concept fully before introducing the next
  • Grouping related decisions together
Extraneous load: bad writing

Mental effort caused by poor structure. Eliminate ruthlessly. Pure waste.

Common sources:

  • Unexplained jargon
  • Pronouns with unclear referents (the bare "This is why..." with no antecedent)
  • Sentence-shape monotony forcing the reader to re-parse
  • Visual clutter (over-formatted bullets, broken table layouts)
  • Forward references ("as we will see later")
Germane load: the learning the reader wants

Mental effort spent building understanding. This is good load; it earns the reader something. Support it; do not strip it out.

Support by:

  • Building mental models the reader can reuse
  • Tying new concepts to anchors the reader already has
  • Concrete examples after abstract definitions
  • Repetition of high-leverage terms (not paraphrases)

The working memory rule

Humans hold roughly four items in working memory at once (Cowan, 2001, a revision of Miller's "7 plus or minus 2").

When reading prose, the reader is holding:

  • The topic of the current paragraph
  • Open references not yet resolved (pronouns, deferred terms)
  • New named entities introduced in this section
  • Numeric claims they need to compare or evaluate

If a section forces the reader to hold more than four things at once to make sense of the next sentence, the section is overloaded.

Practical thresholds for long-form
Signal Healthy Borderline Overloaded
New named entities per 100 words 1 to 3 4 to 6 7+
Numeric claims per 100 words 1 to 3 4 to 5 6+
New jargon terms per 100 words 0 to 1 2 to 3 4+
Forward references per section 0 1 2+
Nested clauses per sentence average < 1.5 1.5 to 2.5 > 2.5

A section that triggers two or more "overloaded" rows is a P1 per editorial-heuristics.md; break it up before publishing.


What the analyzer measures

scripts/cognitive_load.py segments the post by H2 and computes per-section:

  1. new_entity_density: capitalized phrases not seen in prior sections, normalized per 100 words. High counts signal too many proper nouns introduced at once.
  2. numeric_claim_density: count of numbers (percentages, counts, currencies, dates) per 100 words.
  3. jargon_introduction_count: words that match a domain-jargon list and have not been defined in or before the section. The default list lives at the top of scripts/cognitive_load.py and covers SEO/GEO/web-vitals terms. To extend for a different domain, pass --jargon <path-to-newline-delimited-file>; entries augment the defaults rather than replacing them.
  4. forward_reference_count: phrases like "as we will see," "discussed below," "later in this post."
  5. avg_clause_depth: average count of subordinate-clause markers per sentence (commas, semicolons, "which," "that," parentheticals).
  6. load_score: composite 0 to 100 where higher is more loaded.

The composite uses the threshold table above. Each "overloaded" signal contributes 25 points, each "borderline" contributes 10, capped at 100.


Reporting format

## Cognitive Load Heatmap: [Title]

Overall load: 38 / 100 (Moderate)

| Section (H2) | Words | Load | Entities/100 | Numerics/100 | Jargon | Forward refs | Avg clauses |
|---|---|---|---|---|---|---|---|
| Why this matters | 230 | 22 | 2.6 | 1.7 | 0 | 0 | 1.4 |
| Methodology overview | 410 | 67 | 6.8 | 1.0 | 4 | 1 | 2.1 |
| Results | 380 | 41 | 3.2 | 5.5 | 1 | 0 | 1.8 |
| Limitations and caveats | 290 | 18 | 1.0 | 2.8 | 0 | 0 | 1.5 |
| Recommendations | 320 | 33 | 3.4 | 1.6 | 2 | 1 | 1.7 |

### Overloaded sections (P1)
- **Methodology overview**: 4 new jargon terms in 410 words, 6.8 entities/100, 1 forward reference. Split into two sections or define jargon inline.

### Borderline sections (P2)
- (none)

### Healthy sections
- Why this matters, Results, Limitations and caveats, Recommendations

How to fix overloaded sections

  1. Split. If a single H2 has too much, split into two H2s along a natural seam.
  2. Define inline. First introduction of jargon should include a one-line definition in parentheses or a dedicated sentence.
  3. Re-order. Move forward references inline. If the reader needs context to follow, deliver it now, not "later."
  4. Add a visual. Tables, comparison charts, and inline SVG diagrams reduce textual load.
  5. Use a callout. A "Quick refresher: term X = definition" callout costs the reader nothing if they already know, and prevents drop-off if they do not.
  6. Cut numeric clutter. Round, group, or omit. A reader cannot retain "23.4%, 87.1%, 41.9%, 12.0%" in one paragraph.

When to skip cognitive-load assessment

  • Posts under 1,000 words (intrinsic load is bounded by length)
  • News-analysis content (event-driven, density expected)
  • Consumer / lifestyle content with low intrinsic load
  • FAQ pages (each Q is self-contained by construction)

Run it on:

  • Pillar pages and authority guides
  • Technical tutorials and how-to content
  • Data-research posts with multiple findings
  • B2B comparison and case-study content over 2,000 words

Attribution

The three-load model (intrinsic, extraneous, germane) and the four-item working-memory ceiling come from cognitive-load theory (Sweller; Cowan 2001). The application of this model to design quality comes from the impeccable plugin v3.1.1 (Paul Bakaus, Apache 2.0, https://github.com/pbakaus/impeccable). This reference adapts the framework from UI ergonomics to editorial ergonomics: where impeccable measures items-per-screen, this measures concepts-per-section.

1# Cognitive Load Assessment for Long-Form Content
2 
3A reader has finite working memory. A blog post that introduces too many new concepts, named entities, or numeric claims in too short a span will lose them. Most readability scores (Flesch, Gunning Fog) measure surface-level prose difficulty; this reference adds the dimension they miss: **how much the reader must actively hold to follow a section**.
4 
5Run the cognitive-load analyzer (`scripts/cognitive_load.py`) on long-form B2B posts (1,500+ words). It produces a heatmap of sections by load.
6 
7Adapted from the impeccable plugin's UI cognitive-load reference (Paul Bakaus, Apache 2.0).
8 
9---
10 
11## Three types of cognitive load (Sweller 1988)
12 
13### Intrinsic load: the topic itself
14Some topics are inherently complex. A post on "OAuth 2.1 refresh-token rotation" has higher intrinsic load than "10 ways to declutter your home." You cannot eliminate this; you can scaffold it.
15 
16Manage by:
17- Breaking dense topics into ordered sub-sections
18- Providing scaffolding (templates, callouts, examples)
19- Progressive disclosure: introduce one concept fully before introducing the next
20- Grouping related decisions together
21 
22### Extraneous load: bad writing
23Mental effort caused by poor structure. **Eliminate ruthlessly.** Pure waste.
24 
25Common sources:
26- Unexplained jargon
27- Pronouns with unclear referents (the bare "This is why..." with no antecedent)
28- Sentence-shape monotony forcing the reader to re-parse
29- Visual clutter (over-formatted bullets, broken table layouts)
30- Forward references ("as we will see later")
31 
32### Germane load: the learning the reader wants
33Mental effort spent building understanding. This is *good* load; it earns the reader something. Support it; do not strip it out.
34 
35Support by:
36- Building mental models the reader can reuse
37- Tying new concepts to anchors the reader already has
38- Concrete examples after abstract definitions
39- Repetition of high-leverage terms (not paraphrases)
40 
41---
42 
43## The working memory rule
44 
45Humans hold roughly four items in working memory at once (Cowan, 2001, a revision of Miller's "7 plus or minus 2").
46 
47When reading prose, the reader is holding:
48- The topic of the current paragraph
49- Open references not yet resolved (pronouns, deferred terms)
50- New named entities introduced in this section
51- Numeric claims they need to compare or evaluate
52 
53If a section forces the reader to hold more than four things at once to make sense of the next sentence, the section is overloaded.
54 
55### Practical thresholds for long-form
56 
57| Signal | Healthy | Borderline | Overloaded |
58|---|---|---|---|
59| New named entities per 100 words | 1 to 3 | 4 to 6 | 7+ |
60| Numeric claims per 100 words | 1 to 3 | 4 to 5 | 6+ |
61| New jargon terms per 100 words | 0 to 1 | 2 to 3 | 4+ |
62| Forward references per section | 0 | 1 | 2+ |
63| Nested clauses per sentence average | < 1.5 | 1.5 to 2.5 | > 2.5 |
64 
65A section that triggers two or more "overloaded" rows is a P1 per
66`editorial-heuristics.md`; break it up before publishing.
67 
68---
69 
70## What the analyzer measures
71 
72`scripts/cognitive_load.py` segments the post by H2 and computes per-section:
73 
741. **new_entity_density**: capitalized phrases not seen in prior sections, normalized per 100 words. High counts signal too many proper nouns introduced at once.
752. **numeric_claim_density**: count of numbers (percentages, counts, currencies, dates) per 100 words.
763. **jargon_introduction_count**: words that match a domain-jargon list and have not been defined in or before the section. The default list lives at the top of `scripts/cognitive_load.py` and covers SEO/GEO/web-vitals terms. To extend for a different domain, pass `--jargon <path-to-newline-delimited-file>`; entries augment the defaults rather than replacing them.
774. **forward_reference_count**: phrases like "as we will see," "discussed below," "later in this post."
785. **avg_clause_depth**: average count of subordinate-clause markers per sentence (commas, semicolons, "which," "that," parentheticals).
796. **load_score**: composite 0 to 100 where higher is more loaded.
80 
81The composite uses the threshold table above. Each "overloaded" signal contributes 25 points, each "borderline" contributes 10, capped at 100.
82 
83---
84 
85## Reporting format
86 
87```
88## Cognitive Load Heatmap: [Title]
89 
90Overall load: 38 / 100 (Moderate)
91 
92| Section (H2) | Words | Load | Entities/100 | Numerics/100 | Jargon | Forward refs | Avg clauses |
93|---|---|---|---|---|---|---|---|
94| Why this matters | 230 | 22 | 2.6 | 1.7 | 0 | 0 | 1.4 |
95| Methodology overview | 410 | 67 | 6.8 | 1.0 | 4 | 1 | 2.1 |
96| Results | 380 | 41 | 3.2 | 5.5 | 1 | 0 | 1.8 |
97| Limitations and caveats | 290 | 18 | 1.0 | 2.8 | 0 | 0 | 1.5 |
98| Recommendations | 320 | 33 | 3.4 | 1.6 | 2 | 1 | 1.7 |
99 
100### Overloaded sections (P1)
101- **Methodology overview**: 4 new jargon terms in 410 words, 6.8 entities/100, 1 forward reference. Split into two sections or define jargon inline.
102 
103### Borderline sections (P2)
104- (none)
105 
106### Healthy sections
107- Why this matters, Results, Limitations and caveats, Recommendations
108```
109 
110---
111 
112## How to fix overloaded sections
113 
1141. **Split.** If a single H2 has too much, split into two H2s along a natural seam.
1152. **Define inline.** First introduction of jargon should include a one-line definition in parentheses or a dedicated sentence.
1163. **Re-order.** Move forward references inline. If the reader needs context to follow, deliver it now, not "later."
1174. **Add a visual.** Tables, comparison charts, and inline SVG diagrams reduce textual load.
1185. **Use a callout.** A "Quick refresher: term X = definition" callout costs the reader nothing if they already know, and prevents drop-off if they do not.
1196. **Cut numeric clutter.** Round, group, or omit. A reader cannot retain "23.4%, 87.1%, 41.9%, 12.0%" in one paragraph.
120 
121---
122 
123## When to skip cognitive-load assessment
124 
125- Posts under 1,000 words (intrinsic load is bounded by length)
126- News-analysis content (event-driven, density expected)
127- Consumer / lifestyle content with low intrinsic load
128- FAQ pages (each Q is self-contained by construction)
129 
130Run it on:
131- Pillar pages and authority guides
132- Technical tutorials and how-to content
133- Data-research posts with multiple findings
134- B2B comparison and case-study content over 2,000 words
135 
136---
137 
138## Attribution
139 
140The three-load model (intrinsic, extraneous, germane) and the four-item working-memory ceiling come from cognitive-load theory (Sweller; Cowan 2001). The application of this model to design quality comes from the impeccable plugin v3.1.1 (Paul Bakaus, Apache 2.0, https://github.com/pbakaus/impeccable). This reference adapts the framework from UI ergonomics to editorial ergonomics: where impeccable measures items-per-screen, this measures concepts-per-section.
141 
View all files on GitHub →

Details

Updated
Sep 18, 2026
License
MIT
Stars on the repo
★ 2,219
Checked
Source
AgriciDaniel/claude-blog ↗
Creator
AgriciDaniel · 129 listings
View creator

Similar skills

See all →

More from AgriciDaniel

SkillAgent Browsing AuditorAgriciDaniel/claude-seo · by AgriciDanielAudit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).★ 17.4k GitHub starsSkillAI Search OptimizationAgriciDaniel/claude-seo · by AgriciDanielOptimize content for AI Overviews (formerly SGE), ChatGPT web search, Perplexity, and other AI-powered search experiences. Generative Engine Optimization (GEO) analysis including brand mention signals, AI crawler accessibility, llms.txt compliance, passage-level citability scoring, and platform-specific optimization. Use when user says "AI Overviews", "SGE", GEO", "AI search", "LLM optimization", "Perplexity", "AI citations", ChatGPT search", or "AI visibility".★ 17.4k GitHub starsSkillBacklink Profile AnalysisAgriciDaniel/claude-seo · by AgriciDanielBacklink profile analysis: referring domains, anchor text distribution, toxic link detection, competitor gap analysis. Works with free APIs (Moz, Bing Webmaster, Common Crawl) and DataForSEO extension. Use when user says backlinks, link profile, referring domains, anchor text, toxic links, link gap, link building, disavow, or backlink audit.★ 17.4k GitHub starsSkillAmazon Ads AuditorAgriciDaniel/claude-ads · by AgriciDanielYou share your Amazon advertising numbers and goals; you get back a plain-language review of what's draining your budget and what to change first.★ 9.5k GitHub starsSkillApple Search Ads AuditorAgriciDaniel/claude-ads · by AgriciDanielPaste what you're spending on Apple Search Ads and your recent numbers; get back a plain review of what's wasting money and what to fix first.★ 9.5k GitHub starsSkillAttribution AuditorAgriciDaniel/claude-ads · by AgriciDanielPaste the sales and spend numbers each ad platform claims, and get back a plain explanation of why they disagree and which figure to trust.★ 9.5k GitHub stars