Idea Page Creation Skill
Convert a MongoDB fastlane.previews record into a production-ready Jekyll HTML
content idea page for pullcontent.com.
Workflow Overview
- Query — fetch the record from MongoDB
- Inspect — understand the record’s structure and content
- Transform — build the Jekyll front matter with high-quality FAQ and content ideas
- Write — save to
content-ideas/{tag1-slug}/{tag2-slug}.html - Validate — confirm YAML parses cleanly
Step 1: Query MongoDB
Use mcp__mongodb-mcp__find on fastlane.previews:
database: fastlane
collection: previews
filter: { "_id": "<source_url>" } # or use another field to locate the record
limit: 1
The record’s _id field is the source URL (e.g. a YouTube URL). If the user
gives you a topic rather than a URL, query by tag or title, or ask for the URL.
MongoDB Record Structure
_id : source URL (string) — also used as source_url in front matter
image : thumbnail URL
content : long-form description (may contain markdown)
updated_at : ISO date
summary:
title : page title
tags : [tag1, tag2] — two-element array
read_time : "X min Ys"
summary:
audience : target audience
summary : short paragraph summary
key_insights : array of insight strings
ideas : array of "Platform: description" strings (raw, lower quality)
The summary.summary.ideas field contains raw idea seeds — do not copy them
verbatim. They are starting points only. Your job is to write significantly
better content ideas following the quality standards in this skill.
Step 2: Build the Front Matter
The output file is plain HTML with YAML front matter (Jekyll). See
references/front-matter-template.md for the complete field list and an example.
Key derived values:
| Front matter field | Source |
|---|---|
layout |
Always preview |
title |
summary.title |
description |
content field, strip markdown, truncate to ~500 chars |
permalink |
/content-ideas/{tag1-slug}/{tag2-slug}/ |
tag1 / tag2 |
summary.tags[0] / summary.tags[1] |
audience |
summary.summary.audience |
read_time |
summary.read_time |
source_url |
_id |
source_label |
"{domain} — {title[:50]}" |
image / og_image |
image field, or YouTube thumbnail if YouTube URL |
youtube_id / video_id |
Extract from YouTube URL if applicable |
video_platform |
youtube, ted, tiktok, or omit |
summary |
summary.summary.summary (short paragraph) |
key_insights |
summary.summary.key_insights array |
faq |
Build from scratch — see FAQ standards below |
content_ideas |
Write from scratch — see content idea standards below |
progressive_disclosure |
Set to true when all ideas have full_post |
YAML Escaping Rules
The description and other text fields often contain single quotes. Use YAML block
scalars (| or >) for multiline text, or use double-quoted strings. If you use
single-quoted YAML strings, every literal ' inside the string must be doubled
to ''.
Step 3: Write High-Quality FAQ
The FAQ drives Google’s FAQ rich results. Every question must be something a real person would type into Google — never extract H2 section headings.
Read references/faq-standards.md for the full quality guide, intent angles
table, and examples of wrong vs. right questions.
Quick checklist:
- 6–8 questions covering: urgency, how-it-works, prerequisites, monetization, AI/future, comparison, getting-started, results
- Answers: 3–5 sentences, substantive, source from
key_insights - Never start with “Great question!” or restate the question verbatim
Step 4: Write High-Quality Content Ideas
Write 6 content ideas — one per platform: Twitter/X, LinkedIn, Instagram, YouTube Shorts, TikTok, Newsletter (or Blog Post if the source doesn’t suit video-first platforms).
Read references/content-ideas-standards.md for the full guide including
platform-specific format requirements.
Quick checklist for each idea:
idea: Strategy-level description — include format specifics (tweet count, word count, slide count, video length), hook strategy, engagement mechanic, and platform-specific logic. 3–5 sentences minimum.draft: A single ready-to-paste opening line ending with:or.... Must be a real hook (curiosity gap, bold claim, or specific number). Never repeat the idea description.full_post: Complete, publish-ready content. Use YAML literal block scalar (|). Must open with the same hook asdraft. Follow platform format exactly (tweet thread, LinkedIn essay, carousel slides, video script, etc.).
Set progressive_disclosure: true in the front matter when all 6 ideas have a
full_post field.
Step 5: Write and Validate
- Check if the file already exists:
content-ideas/{tag1-slug}/{tag2-slug}.html— if so, confirm with the user before overwriting. - Ensure the category directory exists:
content-ideas/{tag1-slug}/ - Write the file using the
Writetool. - Validate the YAML with a quick Python check:
python3 -c "
import yaml, re
with open('content-ideas/{tag1-slug}/{tag2-slug}.html') as f:
content = f.read()
m = re.search(r'^\-\-\-\s*$', content[3:], re.MULTILINE)
fm = content[3:3+m.start()]
yaml.safe_load(fm)
print('YAML OK')
"
If validation fails, inspect the error location and fix the escaping issue —
most commonly an unescaped ' inside a single-quoted string.
Reference Files
references/front-matter-template.md— complete field list and annotated examplereferences/faq-standards.md— FAQ quality guide (copied from workflow doc)references/content-ideas-standards.md— content idea quality guide (copied from workflow doc)