Content Cognitive Load
Cognitive load assessment for long form content

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)
npx skills add AgriciDaniel/claude-blog --skill cognitive-load-assessment-for-long-form-content -g -a claude-codeConnects with Agent Alley MCP · agentalley.io/mcp
Files included
cognitive-load.md6.6 KB
Read cognitive-load.md here
AgriciDaniel/
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:
- new_entity_density: capitalized phrases not seen in prior sections, normalized per 100 words. High counts signal too many proper nouns introduced at once.
- numeric_claim_density: count of numbers (percentages, counts, currencies, dates) per 100 words.
- 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.pyand 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. - forward_reference_count: phrases like "as we will see," "discussed below," "later in this post."
- avg_clause_depth: average count of subordinate-clause markers per sentence (commas, semicolons, "which," "that," parentheticals).
- 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
- Split. If a single H2 has too much, split into two H2s along a natural seam.
- Define inline. First introduction of jargon should include a one-line definition in parentheses or a dedicated sentence.
- Re-order. Move forward references inline. If the reader needs context to follow, deliver it now, not "later."
- Add a visual. Tables, comparison charts, and inline SVG diagrams reduce textual load.
- 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.
- 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 | |
| 3 | 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**. |
| 4 | |
| 5 | 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. |
| 6 | |
| 7 | Adapted 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 |
| 14 | 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. |
| 15 | |
| 16 | Manage 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 |
| 23 | Mental effort caused by poor structure. **Eliminate ruthlessly.** Pure waste. |
| 24 | |
| 25 | Common 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 |
| 33 | Mental effort spent building understanding. This is *good* load; it earns the reader something. Support it; do not strip it out. |
| 34 | |
| 35 | Support 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 | |
| 45 | Humans hold roughly four items in working memory at once (Cowan, 2001, a revision of Miller's "7 plus or minus 2"). |
| 46 | |
| 47 | When 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 | |
| 53 | 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. |
| 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 | |
| 65 | A 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 | |
| 74 | **new_entity_density**: capitalized phrases not seen in prior sections, normalized per 100 words. High counts signal too many proper nouns introduced at once. |
| 75 | **numeric_claim_density**: count of numbers (percentages, counts, currencies, dates) per 100 words. |
| 76 | **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. |
| 77 | **forward_reference_count**: phrases like "as we will see," "discussed below," "later in this post." |
| 78 | **avg_clause_depth**: average count of subordinate-clause markers per sentence (commas, semicolons, "which," "that," parentheticals). |
| 79 | **load_score**: composite 0 to 100 where higher is more loaded. |
| 80 | |
| 81 | The 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 | |
| 90 | Overall 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 | |
| 114 | **Split.** If a single H2 has too much, split into two H2s along a natural seam. |
| 115 | **Define inline.** First introduction of jargon should include a one-line definition in parentheses or a dedicated sentence. |
| 116 | **Re-order.** Move forward references inline. If the reader needs context to follow, deliver it now, not "later." |
| 117 | **Add a visual.** Tables, comparison charts, and inline SVG diagrams reduce textual load. |
| 118 | **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. |
| 119 | **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 | |
| 130 | Run 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 | |
| 140 | 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. |
| 141 |
Details
- Updated
- Sep 18, 2026
- License
- MIT
- Stars on the repo
- ★ 2,219
- Checked
- Source
- AgriciDaniel/claude-blog ↗
- Creator
- AgriciDaniel · 129 listings
Similar skills
See all →
SkillCross-Platform Reverse Engineer
SkillBrainstorm Ideas
SkillCode Review Feedback Analyzer
SkillBug Diagnosis Framework
SkillImplement Spec
SkillPR Description WriterMore from AgriciDaniel
SkillAgent Browsing Auditor
SkillAI Search Optimization
SkillBacklink Profile Analysis
SkillAmazon Ads Auditor
SkillApple Search Ads Auditor
SkillAttribution Auditor