Skill Numbering Changes: - 01-03: OurDigital core (was 30-32) - 31-32: Notion tools (was 01-02) - 99_archive: Renamed from _archive for sorting New Files: - AGENTS.md: Claude Code agent routing guide - requirements.txt for 00-claude-code-setting, 32-notion-writer, 43-jamie-youtube-manager Documentation Updates: - CLAUDE.md: Updated skill inventory (23 skills) - AUDIT_REPORT.md: Current completion status (91%) - Archived REFACTORING_PLAN.md (most tasks complete) Removed: - ga-agent-skills/ (moved to separate repo ~/Project/dintel-ga4-agent) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
5.0 KiB
name, description
| name | description |
|---|---|
| research-to-presentation | Transforms Notion research content into branded presentations through an automated workflow. Collects research from Notion pages/databases, synthesizes content to extract key topics and agenda items, creates presentation structure with slide plans, and generates branded PPT/Figma presentations. Use when converting research into meeting materials, creating data-driven presentations from Notion content, transforming documentation into executive presentations, or building slide decks from scattered research notes. |
Research to Presentation Workflow
Automated pipeline for transforming Notion research into professional presentations with brand consistency.
Quick Start
# Full automated workflow
python scripts/run_workflow.py --notion-url [URL] --output-format [pptx|figma]
# Step-by-step execution
python scripts/extract_notion.py [URL] > research.json
python scripts/synthesize_content.py research.json > synthesis.json
node scripts/generate_presentation.js synthesis.json output.pptx
Workflow Steps
Step 1: Research Collection
Extract research from Notion:
# Use Notion tools to gather content
results = notion_search(query="research topic")
content = notion_fetch(page_ids)
extracted_data = extract_key_findings(content)
For detailed extraction patterns: references/research_patterns.md
Step 2: Content Synthesis
Analyze and structure content:
synthesis = synthesize_content(extracted_data)
# Returns: executive_summary, key_topics, agenda_items, supporting_data
Topic prioritization guide: references/agenda_templates.md
Step 3: Presentation Planning
Create slide-by-slide structure:
const slidePlan = generateSlidePlan(synthesis);
// Outputs: title, agenda, content slides with speaker notes
Layout options: references/slide_layouts.md
Step 4: Slide Generation
Convert to presentation format:
PowerPoint Output:
node scripts/generate_pptx.js synthesis.json output.pptx
Figma Output:
node scripts/export_to_figma.js synthesis.json --api-key [KEY]
Step 5: Brand Application
Apply corporate styling:
python scripts/apply_brand.py output.pptx --config assets/brand_config.json
Input Sources
Notion Pages: Individual research pages with notion://page/[ID]
Notion Databases: Research collections with notion://database/[ID]
Multiple Sources: Comma-separated URLs for comprehensive synthesis
Output Formats
PowerPoint (.pptx): Full presentation with animations and transitions
Figma Slides: Web-based collaborative presentation format
HTML Preview: Quick preview with --preview flag
Presentation Types
Executive Summary
- High-level findings (3-5 slides)
- Key metrics and KPIs
- Strategic recommendations
- See references/executive_template.md
Research Report
- Comprehensive findings (10-20 slides)
- Detailed methodology
- Data visualizations
- See references/research_template.md
Meeting Prep
- Agenda-driven structure (5-10 slides)
- Discussion topics
- Decision points
- See references/meeting_template.md
Customization
Brand Configuration
Edit assets/brand_config.json:
{
"colors": {
"primary": "#1a73e8",
"secondary": "#34a853"
},
"fonts": {
"heading": "Poppins",
"body": "Lora"
}
}
Slide Templates
Modify HTML templates in assets/templates/:
title.html- Title slide layoutcontent.html- Content slide layoutdata.html- Data visualization slide
Processing Rules
Adjust synthesis patterns in scripts/config.py:
- Topic extraction thresholds
- Agenda prioritization weights
- Content chunking sizes
Best Practices
- Start broad: Cast wide net in Notion search, then filter
- Validate sources: Check last-edited dates for currency
- Chunk large content: Process in batches for token efficiency
- Preview first: Use
--previewto check before final generation - Version control: Keep synthesis.json for iteration
Troubleshooting
"No content found": Verify Notion permissions and page URLs "Synthesis failed": Check research.json structure and content "Brand not applied": Ensure brand_config.json is valid "Figma export error": Validate API key and network access
Advanced Usage
Batch Processing
# Process multiple research sets
for url in $(cat notion_urls.txt); do
python scripts/run_workflow.py --notion-url "$url" --output "output_$(date +%s).pptx"
done
Custom Workflows
See references/custom_pipelines.md for:
- Conditional slide generation
- Dynamic template selection
- Multi-language support
- Automated scheduling
Dependencies
- Python 3.8+ with pandas, pydantic
- Node.js 16+ with pptxgenjs, @ant/html2pptx
- Notion API access via MCP
- Optional: Figma API key for web export