Ensure accessibility in UI components including semantic HTML, ARIA attributes, keyboard navigation, and WCAG 2.2 AA compliance.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when analyzing published content (blog posts, social media, newsletters) for sentiment, structural quality, hook effectiveness, readability, topic classification, and engagement correlation. Invoke for daily post analysis, content audits, or engagement driver identification.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Multi-dimensional content analysis skill that transforms published text into actionable engagement intelligence. The analysis pipeline covers six dimensions: sentiment detection, readability scoring, structural analysis, hook classification, topic identification, and engagement correlation.
Core principle: Content quality is measurable. Every post has structural attributes that correlate with engagement outcomes. This skill quantifies those attributes and tracks them over time.
Skill({ skill: 'content-analyzer' });
Invoke when:
Do NOT invoke for:
seo-optimization)Classify the emotional tone of the content across three axes:
Polarity: Positive / Negative / Neutral / Mixed Emotion: Inspiration, Urgency, Curiosity, Empathy, Authority, Humor, Fear Intensity: 1 (subtle) to 5 (intense)
Scoring method:
Output:
{
"sentiment": {
"polarity": "positive",
"dominantEmotion": "curiosity",
"intensity": 3,
"tonalShifts": ["negative->positive at paragraph 4"],
"emotionBreakdown": {
"curiosity": 0.45,
"authority": 0.3,
"urgency": 0.15,
"empathy": 0.1
}
}
}
Quantify how easy the content is to read and understand:
| Metric | Formula / Method | Target Range |
|---|---|---|
| Flesch-Kincaid Grade | 0.39(words/sentences) + 11.8(syllables/words) - 15.59 | Grade 6-9 for general |
| Average Sentence Length | Total words / total sentences | 15-20 words |
| Vocabulary Complexity | % of words > 3 syllables | < 15% |
| Paragraph Length | Average words per paragraph | 40-80 words |
| Passive Voice % | Passive constructions / total sentences | < 10% |
Output:
{
"readability": {
"fleschKincaidGrade": 7.2,
"avgSentenceLength": 16.4,
"vocabularyComplexity": 0.11,
"avgParagraphLength": 58,
"passiveVoicePercent": 0.06,
"rating": "GOOD"
}
}
Evaluate the architectural quality of the content:
Elements to analyze:
Hook Classification Taxonomy:
| Hook Type | Description | Example Pattern |
|---|---|---|
| Question | Opens with a direct question | "Have you ever wondered why...?" |
| Statistic | Leads with a surprising number | "78% of readers abandon posts after..." |
| Story | Begins with a narrative or anecdote | "Last Tuesday, I discovered..." |
| Contrarian | Challenges conventional wisdom | "Everything you know about X is wrong." |
| Pain Point | Names a specific frustration | "Tired of writing posts nobody reads?" |
| Bold Claim | Makes a strong, specific assertion | "This framework will triple your output" |
| How-To Promise | Promises a specific transformation | "How to go from 0 to 10K followers" |
| Current Event | Ties to a trending topic or recent development | "With the latest Google update..." |
Output:
{
"structure": {
"hookType": "statistic",
"hookText": "78% of content marketers...",
"headingCount": 6,
"headingHierarchy": "h1->h2->h3 (consistent)",
"visualBreaks": { "lists": 4, "blockquotes": 1, "images": 2, "codeBlocks": 0 },
"ctaCount": 2,
"ctaPositions": ["mid-article", "closing"],
"ctaStrength": "medium",
"closingType": "question",
"wordCount": 1847,
"estimatedReadTime": "8 min"
}
}
Identify what the content is about and how it fits into topic clusters:
Output:
{
"topics": {
"primary": "content marketing strategy",
"secondary": ["SEO optimization", "audience engagement"],
"topKeywords": [
{ "keyword": "content", "count": 24, "density": 0.013 },
{ "keyword": "engagement", "count": 18, "density": 0.01 }
],
"cluster": "content-strategy"
}
}
Analyze the specific language choices that drive engagement:
Output:
{
"wording": {
"powerWordCount": 14,
"powerWordDensity": 0.008,
"transitionWordCount": 22,
"jargonLevel": "low",
"personalPronounDensity": 0.032,
"actionVerbRatio": 0.78,
"topPowerWords": ["discover", "proven", "essential", "transform"]
}
}
Map content attributes to engagement outcomes (requires engagement data):
Correlation analysis:
For each content attribute (hook type, length, sentiment, topic):
1. Group posts by attribute value
2. Calculate average engagement per group
3. Rank groups by engagement
4. Identify statistically significant differences
Output:
{
"engagement": {
"metrics": {
"views": 4521,
"likes": 234,
"comments": 47,
"shares": 89,
"bookmarks": 156,
"engagementRate": 0.116
},
"correlations": {
"hookType": { "statistic": 1.4, "question": 1.2, "story": 1.0, "howTo": 0.8 },
"lengthBucket": { "1500-2000": 1.3, "1000-1500": 1.1, "2000+": 0.9, "<1000": 0.7 },
"sentimentTone": { "curiosity": 1.5, "authority": 1.2, "urgency": 0.9 }
},
"confidenceLevel": "medium",
"sampleSize": 23
}
}
Run the analysis via the post-analyzer CLI tool:
# Analyze a single URL
node .claude/tools/cli/post-analyzer.cjs --url "https://example.com/post" --output json
# Analyze from local text file
node .claude/tools/cli/post-analyzer.cjs --file "./content.txt" --output json
# Generate daily report
node .claude/tools/cli/post-analyzer.cjs --url "https://example.com/post" --report daily
After analysis, generate a daily report using the template:
.claude/templates/reports/daily-content-report.md
Output to:
.claude/context/reports/backend/daily-content-report-{YYYY-MM-DD}.md
All analysis results are appended to:
.claude/context/data/content-analytics.json
Schema:
{
"analyses": [
{
"id": "analysis-{timestamp}",
"url": "https://example.com/post",
"analyzedAt": "2026-03-21T10:00:00Z",
"title": "Post Title",
"sentiment": {},
"readability": {},
"structure": {},
"topics": {},
"wording": {},
"engagement": {}
}
],
"trends": {
"7day": {},
"30day": {}
},
"lastUpdated": "2026-03-21T10:00:00Z"
}
content-analytics.json after every analysis -- trend detection requires complete historical data.| Anti-Pattern | Why It Fails | Correct Approach |
|---|---|---|
| Analyzing sentiment without readability | Sentiment alone does not explain engagement | Always run all six dimensions together |
| Reporting "best hook type" from 3 posts | Statistically meaningless; random variation dominates | Require minimum 5 posts per category before drawing conclusions |
| Ignoring historical baseline | Cannot detect improvement or regression | Always compare against 7-day and 30-day averages |
| Treating all engagement metrics equally | Comments indicate depth; likes indicate breadth | Weight metrics by type: shares > comments > likes > views for depth |
| Scraping entire site without URL filtering | Overwhelms analysis with non-article pages | Target only published article URLs, skip navigation/utility pages |
This skill is used by:
post-analyzer-agent -- Primary: daily content analysis and reportingfeedback-synthesizer -- Supporting: when content feedback intersects with customer feedbackresearcher -- Supporting: when content research needs quantitative analysisBefore starting:
node .claude/lib/memory/memory-search.cjs "content analysis engagement hooks sentiment"
Read .claude/context/memory/learnings.md
Check for:
content-analytics.jsonAfter completing:
.claude/context/memory/learnings.md.claude/context/memory/issues.md.claude/context/memory/decisions.mdASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Ensure accessibility in UI components including semantic HTML, ARIA attributes, keyboard navigation, and WCAG 2.2 AA compliance.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when you want to improve response quality through meta-cognitive reasoning. Applies 15+ reasoning methods to reconsider and refine initial outputs.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
N-round opposing-stance debates for trade-off analysis. Assigns pro/con roles to agents, runs structured debate rounds with quality scoring, and produces a moderator synthesis with confidence-rated recommendation. Generalizable to architecture, technology, security, and design decisions.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Force adversarial code review stance that eliminates confirmation bias — reviewer must find issues or re-analyze
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Creates specialized AI agents on-demand when no existing agent matches a request. Use when the Router cannot find a suitable agent for a task. Enables self-evolution by generating persistent agents.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
LLM-as-judge evaluation framework with 5-dimension rubric (accuracy, groundedness, coherence, completeness, helpfulness) for scoring AI-generated content quality with weighted composite scores and evidence citations
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.