content-author
Write quality content for HTML documents. Use when writing text content, prose, descriptions, or any human-readable content in HTML files. Ensures spelling and style quality.
When & Why to Use This Skill
The Content Author skill is a specialized tool designed to enhance the quality, readability, and SEO performance of text within HTML documents. It automates the enforcement of professional writing standards, including advanced spell-checking via cspell, active voice transitions, and the elimination of vague 'weasel words.' By integrating Flesch-Kincaid readability scoring, it ensures content is perfectly tailored to either general or technical audiences. Additionally, it optimizes web accessibility and search engine visibility by enforcing descriptive link text and proper semantic HTML hierarchies.
Use Cases
- Case 1: Optimizing technical documentation by adjusting the reading level to a Grade 12 threshold for developers while maintaining clear, active-voice instructions.
- Case 2: Improving website SEO and accessibility by auditing HTML files to replace non-descriptive links like 'click here' with keyword-rich, descriptive anchor text.
- Case 3: Maintaining brand consistency in large-scale web projects by using custom dictionaries to prevent spelling errors in technical terms and product-specific nomenclature.
- Case 4: Enhancing web page semantics and machine readability by correctly implementing <abbr>, <time>, and <code> tags according to modern HTML5 standards.
- Case 5: Automating content quality assurance during the CI/CD process to ensure all prose meets specific style guidelines before deployment.
| name | content-author |
|---|---|
| description | Write quality content for HTML documents. Use when writing text content, prose, descriptions, or any human-readable content in HTML files. Ensures spelling and style quality. |
| allowed-tools | Read, Write, Edit |
Content Author Skill
This skill ensures all written content meets quality standards for spelling, grammar, and style.
Spelling Awareness
This project uses cspell for spell checking with a custom dictionary.
Known Project Terms
These terms are in project-words.txt and won't trigger spell errors:
Technical:
- XHTML, WCAG, htmlhint, pa11y, cspell, textlint, linkinator
Custom Elements:
- product-card, icon-element, user-avatar, status-badge, data-table, nav-menu
HTML Terms:
- doctype, tbody, thead, fieldset, hgroup, blockquote
Check project-words.txt for the full list.
Adding New Terms
When using a new product name or technical term:
- Use slash command:
/add-word TermName - Or edit directly: Add to
project-words.txt(one word per line)
Style Guidelines
Avoid Passive Voice
<!-- Passive (avoid) -->
The form was submitted by the user.
Errors were found in the document.
<!-- Active (prefer) -->
The user submitted the form.
The validator found errors in the document.
Avoid Weasel Words
Remove vague qualifiers:
| Avoid | Use Instead |
|---|---|
| various | (be specific) |
| many | (give number) |
| very | (remove or be specific) |
| somewhat | (remove) |
| fairly | (remove) |
| quite | (remove) |
Link Text
Use descriptive link text:
<!-- Bad -->
<a href="/docs">Click here</a>
<a href="/pricing">Learn more</a>
<a href="/features">Read more</a>
<!-- Good -->
<a href="/docs">Read the documentation</a>
<a href="/pricing">View pricing plans</a>
<a href="/features">Explore all features</a>
Headings
Follow logical hierarchy:
<h1>Page Title</h1> <!-- One per page -->
<h2>Major Section</h2>
<h3>Subsection</h3>
<h4>Detail</h4>
<h2>Another Section</h2>
Reading Level Guidelines
This project enforces reading level thresholds using Flesch-Kincaid scoring.
Grade Level Thresholds
| Content Type | Max Grade Level | Audience |
|---|---|---|
| General | 8 | General public |
| Technical | 12 | Technical audience |
Marking Content Style
For technical documentation, add one of these:
<!-- In <head> -->
<meta name="content-style" content="technical"/>
<!-- Or on html/body -->
<html lang="en" data-content-style="technical">
<body data-content-style="technical">
Available content styles:
technical- Technical documentation, API references (threshold: grade 12)- Default (no attribute) - General content (threshold: grade 8)
Writing for Readability
Use shorter sentences:
<!-- Hard to read (grade 12+) -->
The implementation of the aforementioned functionality requires
consideration of various architectural constraints that may
impact the overall system performance.
<!-- Easier to read (grade 8) -->
This feature needs careful planning. We must consider how it
affects system speed.
Use simpler words:
| Complex Word | Simpler Alternative |
|---|---|
| utilize | use |
| implement | build, create |
| functionality | feature |
| subsequently | then, later |
| facilitate | help, enable |
| approximately | about |
| demonstrate | show |
| modification | change |
Break up long paragraphs: Aim for 3-4 sentences per paragraph.
Use lists: Convert complex sentences into bullet points when possible.
Checking Reading Level
# Check readability
npm run lint:readability
# Check all content quality
npm run lint:content
Content Checklist
Before finalizing content:
- Spelling checked (run
npm run lint:spelling) - No weasel words or vague language
- Links have descriptive text
- Headings follow hierarchy
- Alt text provided for images
- Proper capitalization for product names
- Reading level within threshold (run
npm run lint:readability)
Running Quality Checks
# Check spelling
npm run lint:spelling
# Check grammar/style (advisory)
npm run lint:grammar
# Check reading level
npm run lint:readability
# Run all content checks
npm run lint:content
Special Content
Code Examples
Wrap code in appropriate elements:
<code>const x = 1</code> <!-- Inline code -->
<pre><code> <!-- Code block -->
function example() {
return true;
}
</code></pre>
<kbd>Ctrl+S</kbd> <!-- Keyboard input -->
<samp>Output text</samp> <!-- Sample output -->
Abbreviations
Define abbreviations on first use:
<abbr title="HyperText Markup Language">HTML</abbr>
<abbr title="Web Content Accessibility Guidelines">WCAG</abbr>
Dates and Times
Use semantic time element:
<time datetime="2024-01-15">January 15, 2024</time>
<time datetime="14:30">2:30 PM</time>
Related Skills
- xhtml-author - Write valid XHTML-strict HTML5 markup
- fake-content - Generate realistic fake content for HTML prototypes
- accessibility-checker - Ensure WCAG2AA accessibility compliance
- markdown-author - Write quality markdown content