content-documenter
Generate structured ContentSummary JSON from analyzed content. Use after media-reviewer to produce final output with all 16 fields.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Content Documenter Skill
Transforms media-reviewer analysis into structured JSON documentation.
What This Skill Does
Takes your media-reviewer analysis and produces ContentSummary JSON with all 16 required fields.
Input
You should have already used media-reviewer skill which provides:
- Deep understanding of content structure
- Core ideas and their connections
- Narrative flow analysis
- Key moments and quotes with timestamps
- Thematic patterns
Output Fields
Core Fields (7)
-
contentId (string)
- Copy from input file frontmatter id field
-
headline (string, 10-200 chars)
- One compelling sentence capturing the essence
- Should make someone want to read more
- Focus on the unique value or insight
-
tldr (string, 20-500 chars)
- 3-5 sentence summary
- Cover the main points concisely
- Answer: "What is this about and why does it matter?"
-
bullets (string[], 1-10 items)
- Key points as bullet list
- Each bullet = one distinct insight
- Ordered by importance or logical flow
-
tags (string[], 1-20 items)
- Topic tags for categorization
- Include broad tags (e.g., "AI") and specific (e.g., "Constitutional AI")
- Lowercase, no special characters
-
sentiment ("positive" | "neutral" | "negative")
- Overall tone of content
- Based on language and framing, not topic
-
category (string)
- Content type: article, video, podcast, tutorial, interview, etc.
-
score.relevanceToUser (number, 0-1)
- Based on user-profile.json topics
- 1.0 = perfectly matches user interests
- 0.0 = no relevance to user interests
- Calculate: sum(matched topic weights) / sum(all topic weights)
Documentary Fields (8)
-
overview (string, min 50 chars)
- 2-3 rich paragraphs introducing the material
- Write for someone unfamiliar with the content
- Cover: what it is, who it's for, why it matters
- Set the stage for detailed analysis
-
keyThemes (string[], 3-7 items)
- Main topics/themes identified
- Broader than tags, more conceptual
- Examples: "The tension between safety and capability"
-
detailedAnalysis (string, min 100 chars)
- Documentary-style breakdown
- Follow the content's structure
- Explain each major section/segment
- Include specific details and examples
-
narrativeFlow (string, min 50 chars)
- How the content progresses
- Explain the arc and transitions
- Show how ideas build on each other
- Note pacing and structure choices
-
coreIdeas (CoreIdea[], 1-10 items) Each item has:
- concept: string - the idea name
- explanation: string (min 10 chars) - what it means in this context
- examples?: string[] - specific examples from content
-
importantQuotes (Quote[], 0-20 items) Each item has:
- text: string - EXACT verbatim quote (never paraphrase!)
- timestamp?: string - HH:MM:SS or MM:SS format (for video/audio)
- context?: string - what was being discussed when this was said
-
context (string, min 20 chars)
- Background needed to understand the content
- Prerequisites or prior knowledge assumed
- Historical or situational context
- Related work or references mentioned
-
relatedConcepts (string[], 0-15 items)
- Related topics mentioned or implied
- Connections to other ideas or fields
- What someone might want to learn next
Timestamp Format
For video/audio content:
-
0:30- 30 seconds -
2:45- 2 minutes 45 seconds -
1:30:00- 1 hour 30 minutes - Always use the format from the source (don't normalize)
JSON Output Example
{
"contentId": "abc123",
"headline": "Constitutional AI introduces a novel approach to aligning language models through self-critique",
"tldr": "This video explains Constitutional AI, Anthropic's method for training helpful and harmless AI assistants. The approach uses a set of principles (a 'constitution') to guide the model's self-improvement, reducing the need for human feedback while maintaining safety.",
"bullets": [
"Constitutional AI uses self-critique guided by explicit principles",
"The method reduces reliance on human feedback for safety training",
"Models learn to identify and correct their own harmful outputs"
],
"tags": ["ai", "safety", "alignment", "constitutional-ai", "anthropic", "rlhf"],
"sentiment": "positive",
"category": "video",
"score": { "relevanceToUser": 0.85 },
"overview": "This comprehensive video from Anthropic introduces Constitutional AI...",
"keyThemes": [
"AI Safety and Alignment",
"Self-supervised learning for safety",
"Reducing human feedback requirements",
"Explicit principles for AI behavior"
],
"detailedAnalysis": "The video opens with a clear problem statement...",
"narrativeFlow": "The presentation follows a classic problem-solution structure...",
"coreIdeas": [
{
"concept": "Constitutional AI",
"explanation": "An alignment approach where AI models critique and revise their own outputs based on explicit principles",
"examples": ["A model generating a harmful response, then self-critiquing"]
}
],
"importantQuotes": [
{
"text": "The key insight is that we can use AI to supervise AI",
"timestamp": "12:34",
"context": "Explaining the core mechanism that makes Constitutional AI scalable"
}
],
"context": "This video builds on prior work in RLHF...",
"relatedConcepts": ["RLHF", "red teaming", "scalable oversight", "AI alignment"]
}
Quality Checklist
Before outputting, verify:
- All 16 fields are present
- All minimum lengths are met
- Quotes are exact (verbatim)
- Timestamps are included for video/audio
- contentId matches input file
- relevanceToUser is calculated from user profile
- JSON is valid
Important Rules
- Include ALL 16 fields - never omit any
- Use exact verbatim quotes - never paraphrase
- Include timestamps when source has them
- Meet all minimum character requirements
- Follow the JSON schema exactly
- Base relevanceToUser on actual user profile
- Never paraphrase quotes
- Never add interpretation beyond source
- Never omit required fields
- Never guess timestamps - only include if known
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!