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>
176 lines
5.0 KiB
Markdown
176 lines
5.0 KiB
Markdown
---
|
|
name: research-to-presentation
|
|
description: 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
|
|
|
|
```bash
|
|
# 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:
|
|
```python
|
|
# 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](references/research_patterns.md)
|
|
|
|
### Step 2: Content Synthesis
|
|
|
|
Analyze and structure content:
|
|
```python
|
|
synthesis = synthesize_content(extracted_data)
|
|
# Returns: executive_summary, key_topics, agenda_items, supporting_data
|
|
```
|
|
|
|
Topic prioritization guide: [references/agenda_templates.md](references/agenda_templates.md)
|
|
|
|
### Step 3: Presentation Planning
|
|
|
|
Create slide-by-slide structure:
|
|
```javascript
|
|
const slidePlan = generateSlidePlan(synthesis);
|
|
// Outputs: title, agenda, content slides with speaker notes
|
|
```
|
|
|
|
Layout options: [references/slide_layouts.md](references/slide_layouts.md)
|
|
|
|
### Step 4: Slide Generation
|
|
|
|
Convert to presentation format:
|
|
|
|
**PowerPoint Output:**
|
|
```javascript
|
|
node scripts/generate_pptx.js synthesis.json output.pptx
|
|
```
|
|
|
|
**Figma Output:**
|
|
```javascript
|
|
node scripts/export_to_figma.js synthesis.json --api-key [KEY]
|
|
```
|
|
|
|
### Step 5: Brand Application
|
|
|
|
Apply corporate styling:
|
|
```python
|
|
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](references/executive_template.md)
|
|
|
|
### Research Report
|
|
- Comprehensive findings (10-20 slides)
|
|
- Detailed methodology
|
|
- Data visualizations
|
|
- See [references/research_template.md](references/research_template.md)
|
|
|
|
### Meeting Prep
|
|
- Agenda-driven structure (5-10 slides)
|
|
- Discussion topics
|
|
- Decision points
|
|
- See [references/meeting_template.md](references/meeting_template.md)
|
|
|
|
## Customization
|
|
|
|
### Brand Configuration
|
|
Edit `assets/brand_config.json`:
|
|
```json
|
|
{
|
|
"colors": {
|
|
"primary": "#1a73e8",
|
|
"secondary": "#34a853"
|
|
},
|
|
"fonts": {
|
|
"heading": "Poppins",
|
|
"body": "Lora"
|
|
}
|
|
}
|
|
```
|
|
|
|
### Slide Templates
|
|
Modify HTML templates in `assets/templates/`:
|
|
- `title.html` - Title slide layout
|
|
- `content.html` - Content slide layout
|
|
- `data.html` - Data visualization slide
|
|
|
|
### Processing Rules
|
|
Adjust synthesis patterns in `scripts/config.py`:
|
|
- Topic extraction thresholds
|
|
- Agenda prioritization weights
|
|
- Content chunking sizes
|
|
|
|
## Best Practices
|
|
|
|
1. **Start broad**: Cast wide net in Notion search, then filter
|
|
2. **Validate sources**: Check last-edited dates for currency
|
|
3. **Chunk large content**: Process in batches for token efficiency
|
|
4. **Preview first**: Use `--preview` to check before final generation
|
|
5. **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
|
|
```bash
|
|
# 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](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
|