
Repurposing long-form video content into engaging articles is a powerful way to improve your visibility through SEO and reach a broader audience (especially those who prefer reading over watching).
This approach aligns with the second stage in the Content Factory process: “Process.”

The 4 stages of the Content Factory
In this tutorial, you’ll learn:
- How to transcribe a pre-recorded video.
- How to structure an article that effectively captures all key points.
- How to ensure the content is optimized for both human readers and search engines.
Important note
This information applies to both Content Factory team members and external readers. However, some sections are only relevant to internal team members. Internal references are highlighted in orange. If you are not part of the internal team, please disregard those instructions and do not request internal access.
Task checklist
Information you’ll need:
- The client’s Goals, Content, and Targeting (GCT).
- The raw video file serving as the pillar content.
Tools you’ll need:
- Any text editor (e.g., Google Docs, MS Word)
- Descript (AI transcription software; internal team has access)
Step-by-step process
Estimated Time: A 60-minute video typically takes about 3 hours to repurpose into a post.
Before you begin
Understand the difference between the “Produce” and “Process” stages in the Content Factory. As a Content agent, your job is to repurpose (not to inject your own perspective or rewrite the message).
This ensures we remain compliant with Google’s EEAT standards; our authority stems from the industry expert featured in the video, not the agent writing the article.
Common mistake to avoid:
A common issue is when agents make the #1 VA mistake and mindlessly use ChatGPT to repurpose a video’s transcript into an article, without watching the video. This results in generic, vague articles that miss the point entirely.
Instead, follow the #GCT framework:
- Goal: What are we trying to achieve?
- Content: What supports the goal?
- Targeting: Who is this content meant for?
Watch this short video on #GCT and our 9 Triangles Framework for clarity.
Our content links together like a tree:
Another major issue is content duplication. Each video should not always result in a brand-new post. If an article on that topic already exists:
- Enhance it with new insights.
- Don’t duplicate keywords or ideas unnecessarily.
The most rampant vandalism that is occurring inside our company is agents that are gleefully posting items while being completely unaware of what we already have — and posting disconnected content that doesn’t add new value or build upon our existing tree of topics.
We’ve tried to solve this problem by clearly explaining in our SEO training that each page should focus on one unique keyword to avoid having many pages competing for the same keyword.
Step 1: Upload the video
After creating a task in Basecamp:
- Upload the video to the designated Google Drive folder.
- Upload to Descript as well.
Follow the file naming and folder organization guidelines mentioned in our Level 1 agent guide.




Step 2: Transcribe the video
Not all videos warrant full transcription. Reserve Descript and white-glove transcription for high-authority content (featuring figureheads, professionally filmed, clear messaging, etc.).
- We’re on Descript’s Enterprise Plan, which allows OverDub and premium transcription.
- Costs:
- White-glove: $2/minute.
- Self-serve: $0.07/minute with the $20/month plan.
Transcription steps
a. Confirm the video hasn’t already been transcribed.
b. Log into Descript with your team credentials.
c. Click + New Project, then select Video project.
d. Click Upload a file.
e. Rename the file to something descriptive.
f. Review the transcript—words underlined in blue need corrections.
g. Right-click and correct words manually.
h. When complete, go to File > Export > Text.
i. Save it to the proper Shared Drive folder.
Example of a transcript generated using Descript for TikTok Webinar with Perry Marshall

Step 3: Watch the video
At Perry Marshall’s summit, I shared the stage with Liana Ling (the brilliant CEO of AdSkills) her insights on AI and Facebook ads are indispensable.
Before writing, watch the full video to understand its GCT (Goals, Content, and Targeting).
Why watching the video matters
- It helps you catch errors in the Descript-generated transcript.
- You’ll better understand the context, tone, and intent of the speaker.
- You can verify spelling of names and correct any grammar or filler words.
- You’ll ensure the final article aligns with the actual message and timing of the video.
What to do during playback
- Use Descript’s Underlord feature to remove filler words (e.g., “uh,” “like,” “you know”).
- Manually fix:
- Grammar and spelling mistakes.
- Names of people, brands, or tools.
- Confusing or unclear phrasing.
Key questions to ask while watching
- What’s a compelling, attention-grabbing title for this content?
- What is the core message or takeaway of this video?
- Who is the intended audience for this video?
- How many edited clips or snippets can we create from this full video?
- Which sentence would make a strong, immediate connection in the article’s opening?
Step 4: Preparation – research, editing, timestamps & outline
a. Check for existing content first
- Search Google and our internal blog database for the target keyword.
- If we already have an article on the same topic:
- Do not create a new one.
- Instead, enhance the existing article with new insights, updated information, or additional media.
Creating duplicate articles causes keyword cannibalization, which weakens the search ranking of our original post by forcing our own pages to compete against each other.
b. Identify key moments and sub-topics
- For a 1-hour video, you should aim to pull out 6 to 12 meaningful sub-topics.
- Each sub-topic typically corresponds to about 5–10 minutes of content.
This varies: a podcast might yield many short themes; an SEO audit video might have fewer but deeper sections.
Preserve the full conversation whenever possible. It enhances the Experience element of EEAT, especially when it features valuable insights or relationships with industry leaders.
Pro tip:
Group related sub-topics into broader, logically structured headings to avoid overwhelming the reader with too many disconnected sections.
c. Add multimedia: Photos, videos & clips
Use your team access to find visual enhancements:
- Google Photos & Amazon Photos: Search for behind-the-scenes, speaker headshots, event photos, etc.
- Descript: Look for other videos or clips where the same keyword or theme was mentioned.
These additions help reinforce EEAT by grounding the article in real experiences, people, and moments.


Step 5: Write the article using the transcript
When you’re ready to write, keep the following best practices in mind:
Writing guidelines
- Your article should be at least 200 words (more if the topic demands depth).
- Write in a clear, active voice.
- Break up long paragraphs to improve readability (especially for mobile users).
- Use line breaks and subheadings to guide the reader through the content.
- Match the point of view (POV) to the website type. For personal brand websites (e.g., thedavidcarroll.com, dennisyu.com), always write in first person from that person’s perspective. For company or agency websites (e.g., blitzmetrics.com), third person is appropriate. This prevents the awkward situation where an article on someone’s personal site refers to them by name as if talking about themselves.
- Set the WordPress author to the person whose name is on the site. On personal brand websites, the post author must be set to the site owner (e.g., “Tanner Laycock” on tannerlaycock.com); never an admin account, team email, or generic username like “access@yourcontentfactory.com.” The byline visitors see should match the person the site represents. This applies to every post on the site, not just new ones.
Avoid including specific dates, events, or limited-time promotions. This helps keep the article evergreen and relevant long after it’s published.
Example
Refer to the formatting in the article “Building Relationships and Amplifying Reputation with AI Tools.”
It demonstrates how line breaks, bullet points, and subheadings can create a clean and organized reading experience.

Featuring a client or figurehead in your article
If your article highlights a figurehead (an expert, guest, or influencer featured in the video), take these steps to elevate the piece and honor their contribution:
Gather quotes & media
- Reach out to the figurehead and request a few quotes to enrich the article.
- Include:
- Their name and title.
- A professional headshot.
- A link to their personal website or business.
Visuals + quotes create stronger EEAT signals by showing real relationships and lived experience.
Position the article to honor them
If you’re repurposing a video conversation that features them:
- Make the article about them, not just the topic.
- Use their name in the article title (e.g., “Richard McClure on Smart HVAC Marketing”).
- Start the article with a sentence that makes it clear why they’re worth listening to.
Promote the article to their audience
After publishing:
- Tag them on Twitter, Facebook, or LinkedIn.
- Let them know the article is live (See Step 15 below).
- Encourage engagement so their followers also benefit, and your blog gains visibility.

Example: See how we honored Richard McClure of Fox Air & Heat in one of our featured pieces.

Step 6: Write a title that pops and headings that guide the reader
Crafting an effective title
Your article title should be:
- Sharp and specific.
- Keyword-rich (start with the main keyword).
- Written for real people, not just algorithms.
If you’re writing about a client, your title should highlight their wins or transformation; not their problems.
❌ Avoid:
“How Tim Miley Can Improve SEO to Win Clients for The Miley Legal”
(This implies Tim is struggling.)
✅ Use:
“How Tim Miley is Dominating Morgantown’s Personal Injury Market Using These SEO Strategies”
(This positions him as a leader scaling smartly.)
Always write titles with the client’s reputation in mind. We don’t write titles that make them look weak; we elevate them.
Using headings in WordPress
Use headings to structure your article cleanly:
- H1: Used once; it’s the article’s main title (usually added by WordPress automatically).
- H2: Main subheadings.
- H3: Sub-sections under H2s.
Best practices for headings
- Keep them brief and eye-catching.
- Accurately summarize the next section.
- Don’t overdo it; no “heading abuse.”
Heading abuse example:
Adding a new heading every 3–4 lines (a common issue with AI-generated articles).


Step 7: Start with a hook; then establish clear context
Your first line = the hook
- Must be engaging and immediately grab the reader’s attention.
- Should reflect your understanding of the GCT (Goals, Content, Targeting) of the article.
Set the context immediately
After the hook, give the reader a clear idea of:
- What the article is about.
- Who’s involved.
- Why the content matters.
Your intro should answer the question: “Why should I keep reading?”
Notes for internal team members (publishing to blitzmetrics.com or dennisyu.com)
If repurposing a video:
Start by explaining the background of the video:
- Who is featured in it?
- How do we know them?
- What is the context: event, call, webinar, etc.?
Example:

If writing a featured article honoring someone:
Begin by sharing:
- How we know the person.
- Why we’re featuring them.
- What makes their story or message worth sharing.
The goal is to make the reader care, right from the start; honor the person, clarify the purpose, and guide the reader forward.
Example:

Answer the question immediately in the first paragraph
If the article is built around a question (e.g., “How long does it take to build a pool in South Florida?”), the reader should not have to scroll or skim to find the answer. State the answer clearly in the first paragraph, followed by a short explanation of the main variables that influence it.
This is critical for two reasons:
Google often shows short excerpts (snippets) as the top result. Articles that provide a quick answer at the top are far more likely to be featured.
Readers expect fast, clear answers. Burying the answer reduces engagement and increases bounce rates.
No framework diagrams above the first H2
The Content Factory 4-stage diagram (PRODUCE → PROCESS → POST → PROMOTE) and similar framework visuals must never appear above the first H2 heading of any article or page. The first thing a reader sees after the title must be the answer to the question the title promises — not a framework diagram they did not come for.
The reader’s decision to keep reading happens in the first 3 seconds. If they see a generic process diagram instead of the answer to their question, they leave. This applies to every page type: definitive articles, task guides, landing pages, and meta-articles.
If the article is part of the Content Factory system and the diagram provides useful context, place it after the first major section of substantive content — typically after the first H2 and its supporting paragraphs. An acceptable placement is in a “How This Connects to the Content Factory” section near the bottom of the article, or inline where it contextually explains which stage the task belongs to.
The diagram should never be the lead visual. The lead visual must be something specific to the article’s topic — a screenshot, a video embed, a photo, or a topic-specific process diagram.
This rule also affects search snippets. When the diagram sits at the top of a page, Google pulls its text into the meta description — so search results show “This article is part of the Content Factory system. PRODUCE Record • Capture →” instead of what the article is actually about. Moving the diagram lower fixes this.
Step 8: Include interesting pictures and a featured image
Above-the-fold rule: Every page and article we publish must have a visual element visible without scrolling — whether that is a featured image, an embedded video, a process diagram, or an infographic. No BlitzMetrics page should load as a wall of text. Place your most important visual immediately after the opening paragraph.
What NOT to Use
- Do NOT use stock images.
- Do NOT pull random images from Google Image Search.
The Featured Image
- Every blog post must include a featured image.
- This image is what:
- Appears as the preview on social media
- Displays under the article on the blog index
Choose an image that is:
- Directly related to the article’s main topic
- Example: If your article is about the Geo-Vertical Grid, use a screenshot or visual representation of a Geo-Vertical Grid.
- If the article is repurposed from a video, use that video’s own thumbnail as the featured image (the same video you embed at the top). This ties the post, the blog index card, and the social preview back to the source video.
Lead visual above the fold
Every article must place its most important visual element — whether that is a diagram, chart, infographic, embedded video, key screenshot, or hero image — immediately after the opening hook, before any dense text blocks. Readers should see the primary visual before they need to scroll.
This rule exists because articles that open with multiple paragraphs of plain text look like walls of text on mobile and desktop alike. Readers scroll past them before reaching the content that would have made them stop. The lead visual is what earns the reader’s attention and signals that the article contains something worth reading.
What counts as a lead visual:
- An embedded source video (if repurposing a video, this is already required at the top per Step 10)
- A diagram, chart, or infographic that summarizes the article’s key finding
- A key screenshot that shows the subject of the article
- A professional photo of the figurehead or client being featured
What does NOT count:
- The featured image alone (it may not display in the article body depending on the theme)
- A decorative or generic image that does not directly relate to the article’s content
- Stock photos (which are already prohibited)
Placement rule: The lead visual should appear within the first two to three short paragraphs — after the hook and context sentence, but before any detailed analysis, data tables, or deep explanation. A reader landing on the article should see the visual without scrolling on a standard desktop viewport.
Why this matters for AI agents: When an AI agent generates or assembles an article, it will default to writing text first and placing visuals where they are topically referenced — often in the middle or bottom of the article. This rule overrides that default. The agent must move or generate the lead visual to the top of the article body as a final step before publishing. QA reviewers should flag any article where the first visual element requires scrolling to reach.
Images Within the Article
1. Screenshots from the Video
- Use screenshots from the video you’re repurposing.
- Make sure the screenshots:
- Illustrate what you’re describing
- Are relevant and clear
Here’s an example of an article about an SEO audit for a website, with video screenshots as images:

This is how images within your repurposed article should look like
Use colored boxes around important numbers to draw attention:
- Green = Positive (what something should look like or what to add)
- Red = Negative (what something shouldn’t look like or what to delete)

Real Photos from Dennis Yu’s Phone
Use real images related to the article.
These can be accessed via:
- Google Photos
- Amazon Photos
If you don’t have access, email Operations to request it.
Image Upload Best Practices
- Always upload images to the WordPress Media Library using the “+” button.

- Do NOT paste images directly from Google Docs or external sources—this causes:
- Broken links
- Display issues on the live site

Important: Add captions and alt text to every image, diagram, or embedded video for accessibility and SEO.
Process and Framework Diagrams
When your article covers a multi-step process, framework, or system with named components, include a visual diagram that shows the architecture at a glance. Place the diagram above the fold — immediately after the opening paragraph, before any H2 headings — so readers see the visual structure without scrolling. This applies to definitive articles about concepts like the Content Factory (four stages), the Social Amplification Engine (six stages), or the Nine Triangles framework.
The diagram should be clickable wherever possible — each component should link to its section within the article or to the definitive article for that sub-concept. This creates internal linking structure that reinforces the SEO Tree while giving readers an instant visual map of how the system works. Build these using HTML with inline styles so they render consistently and do not depend on external image files that can break.
Not every article needs a process diagram. If you are repurposing a single video into a blog post, screenshots from the video are sufficient. But if the article explains a system with multiple named stages or sub-components — especially a definitive article — a visual diagram is required per Requirement 8 of the definitive article standard.
Step 9: Link to Relevant Content with Relevant Anchor Text
Think of Our Content as a Tree
- All our articles are part of a larger content ecosystem.
- Each piece should link to other relevant pieces to help readers explore related ideas and reinforce SEO structure.
- Prioritize linking to:
- Our own content on blitzmetrics.com, yourcontentfactory.com, and dennisyu.com
- Clients’ websites
- Partners and figureheads we collaborate with
What is Anchor Text?
- Anchor text is the clickable, visible part of a hyperlink—often in blue.
- It provides context for:
- Readers: what they’ll get when they click
- Search engines: how to categorize the link
Strong anchor text:
- Is 3–6 words long
- Is specific, descriptive, and directly related to the linked page
Rules for Using Anchor Text
- ❌ Never use vague or short anchor text like: “digital” or“content” or “video”
- ❌ Never use generic phrases: “Click here” or “Read more”
- ✅ Link each entity on its first mention; it is fine to link the same URL again later when it genuinely helps the reader (just don’t stack duplicate links in one paragraph, and don’t repeat a link only to force a different keyword-rich anchor)
- ❌ Never link out unless it’s to:
- A specific blog post
- A client, partner, or figurehead’s page
- A verified affiliate URL (not random or spammy)
❌ Never link to:
- Top-level domains (like example.com) unless it’s a partner or client
- Files (e.g.,
.pdf,.mp4)—we only link to web pages
Proper Linking Practices
Throughout the article:
- Look for key phrases in the transcript or article draft that relate to existing content
- Link them using meaningful anchor text
At the end of the article: Add final contextual links to deeper or related articles
Examples:
If you’re writing about “Common Mistakes When Applying for a Job,” link to:
- The agent job application page
- Our article on the #1 agent mistake
- Our article on active listening
In an article on cross-posting, hyperlink “cross-posting content is good” to a blog post about Facebook, LinkedIn, and Twitter strategies.
Entity Linking Decision Tree: Where to Point Each Link
When writing about people, companies, tools, or concepts, use this decision tree to determine the correct link destination. The goal is to strengthen our own content ecosystem while honoring the people and brands we work with.
People (friends, partners, clients): When an article mentions someone by name — especially someone we have a relationship with — link to their personal brand website on the first mention. For example, if writing about Marko Sipila, link “markosipila.com” to his actual site at markosipila.com. This honors the person, strengthens their entity signals, and reflects the real relationship.
Companies and products within our network: If the company or product belongs to someone in our network (a client, partner, or figurehead), link to their actual site. For example, link HVACQuote.ai to hvacquote.ai, or link ethanvandehey.com to ethanvandehey.com. These are real sites run by real people we work with.
Companies and products outside our network: If the entity is not part of our network, do not link to their external site. Instead, link to our own BlitzMetrics article on that topic. For example, if we mention Rank Math SEO and we have an article at blitzmetrics.com about how we use Rank Math Pro, link to that BlitzMetrics article instead of rankmath.com. This keeps link equity within our ecosystem and drives readers deeper into our content.
Tools, concepts, and industry terms: Always prefer linking to a BlitzMetrics article that covers the topic. For example, link “WordPress” to our article on how to access Rank Math Pro in WordPress, link “Google Knowledge Panel” to our Knowledge Panel article, link “Content Factory” to our article on the 4 stages of the Content Factory, and link “Dollar a Day” to blitzmetrics.com/dad/. If no BlitzMetrics article exists on that topic, consider whether one should be created before linking externally.
Dennis Yu and internal figureheads: Link to the figurehead’s personal brand site (dennisyu.com for Dennis Yu). This reinforces the personal brand entity and is consistent with our personal branding strategy.
Link on first mention: Link each entity on its first meaningful mention in the article body. As a default, keep later mentions as plain text so the article stays readable — but it is fine to link the same entity again deeper in a long article when it genuinely helps the reader navigate. The old “first link only” rule — the idea that a second link to the same URL passes no juice — is outdated and was never a confirmed Google behavior; link for the reader, not to ration link equity, and never add a second link just to force a different keyword-rich anchor.
Real example — the Marko Sipila QA article: In How We QA’d Marko Sipila’s Personal Brand Site, we linked markosipila.com to his actual site, HVACQuote.ai to hvacquote.ai (his company, part of our network), Rank Math SEO to our BlitzMetrics article on Rank Math Pro, WordPress to our BlitzMetrics article on accessing Rank Math in WordPress, ethanvandehey.com to Ethan’s actual site (part of our network), BlitzMetrics Content Factory to our 4 Stages article, Google Knowledge Panel to our Knowledge Panel article, Lance Bachmann to our BlitzMetrics article featuring him, Dollar a Day to blitzmetrics.com/dad/, and Dennis Yu to dennisyu.com.
Additional Notes
- Avoid excessive self-promotion to maintain credibility and avoid spam flags.
- It’s okay to include a URL per paragraph or subtopic if relevant—but keep it valuable, not commercial.
- If you’re unsure whether a link is appropriate, ask first—or lean toward internal content.
- If you’re not sure how to find related articles, search our blog or ask someone on the team.

Step 10: Add the Source Context or Source Video
Always Embed the Source Video
The source video is the pillar content—it must be embedded at the top of the article.
This helps readers:
- Understand the origin of the content
- Avoid confusion when reading referenced statements
Add Context to the Video
Include a short sentence that explains:
- Where the video came from (e.g. a webinar, internal meeting, client training)
- Why it’s relevant to the article
Step 11: Proofread – Use Grammarly or ChatGPT for QA
Proofreading is Mandatory Before Submission
- You must quality-check (QA) your article before sharing it for review
- Run the entire post through a grammar/spell checker:
- Use the Grammarly browser extension
- Or use ChatGPT to intelligently proofread (paste in 5–6 lines at a time for best results)
If Drafting in Google Docs
Click the Grammarly icon in the bottom right corner to review suggestions

❌ Eliminate These Writing Issues:
No fluff or filler
- Don’t use vague or general statements not present in the original video
- Example of fluff: “Navigating the complexities of the digital world…”
No repetition
- Combine repeated video concepts into one concise paragraph
- Speech is repetitive—writing should be structured
- No long paragraphs: Keep paragraphs between 3 to 5 lines
- No run-on sentences: Split long sentences into 2–3 shorter, clearer ones
- No passive voice
- Use active voice for clarity
- ✅ “I reviewed the article.”
- ❌ “The article has been reviewed.”
- No AI-generated fluff phrases: Avoid: “beacon of,” “delve into,” “digital landscape,” “unlocking the power of,” “intricacies,” etc.
- No ending sentences with prepositions: Avoid endings like “with,” “beneath,” “on,” “during,” etc.
- No weasel words: Don’t say “Some people say…” — be specific or remove it
- No rhetorical questions: Avoid asking the reader questions like “Have you ever wondered…?”
- No heading abuse
- Don’t add headings every 3–4 lines (a common ChatGPT mistake)
- Ensure every H2 has substantial content beneath it
- Only include headings when they actually help the reader skim and navigate
Example of Misuse (Shown in the Image Below)
- Red boxes = Too many H2s with very little content in the paragraphs below = Heading Abuse
- Red-highlighted phrases = Fluff
- AI-generated content with too little depth = Low-quality output
Examples of ChatGPT Misuse
Use ChatGPT wisely—not to write the article, but to refine and improve your own work.
Step 12: Post on WordPress
- Creating a blog post on WordPress is simple.
- Follow the internal task guide to walk through each step.
- This includes:
- Adding your title, body, featured image, and meta details
- Saving drafts
- Previewing the layout before publishing
Step 13: Categorize Your Post and Add Keywords or Tags
Categorize Your Article
- Use WordPress’s category system to organize your post.
- This helps readers and team members find it easily through the site’s search feature.
Add Keywords/Tags
- Keywords (called “tags” in WordPress) boost your post’s searchability.
- You can add up to five relevant tags.
- Use important terms or proper nouns mentioned in your article.
- Example: “Content Factory,” “Dennis Yu,” “Facebook Ads,” “GCT,” etc.
- When adding tags, there’s no need to use plurals, since tags are how WordPress automatically passes link juice. For example, ‘Google Knowledge Panel’ should suffice as a tag. You don’t need to create a separate tag for ‘Google Knowledge Panels’.

✅ Tip: Tags help internal SEO and improve how readers discover content related to a specific topic
Step 14: Apply SEO Plugins
a) Use RankMath Plugin
- RankMath is located in the top right corner of the article edit screen

- It breaks your on-page SEO into four areas:
- Basic SEO
- Additional
- Title Readability
- Content Readability

Click each section’s dropdown to view and apply improvement suggestions

RankMath also includes a tool to recommend inbound links from other pages/posts on your site
Step 15: Email and DM the Client
How to Find the Client’s Contact Info
Search on Facebook, LinkedIn, or Google using the client’s name
Which Articles Should You Share?
- The article you just published
- The post explaining SEO benefits:
[“Hooray! Your SEO Improved With a DR63 Link From Us!”]
How to Write the Message (Template)
Send this via email and Facebook Messenger:
Hi [Client’s Name],
Great news! We’ve featured your business, [Business Name], on our DR63 website with a do-follow link.
To learn more about how this helps your SEO, read:
Hooray! Your SEO Improved With a DR63 Link From Us!
Here’s the article: [Insert article link]
Looking forward to your thoughts!
Best,
[Your Name]
Content Team – BlitzMetrics
Step 16: Tag the person featured when you post
Tag the person featured in the video or article, along with their company, using their actual account handle. Use @theirhandle on X, or select their profile from the dropdown on LinkedIn and Facebook. If the name is not clickable, it is not a tag.

A tag notifies them. They see it, they reshare it, and the post reaches their audience instead of only ours. Plain text does none of that. It also credits the expert whose authority the content rests on, which is the same reason we honor them in the article itself.

Verify the handle before posting. Never guess, and never tag someone who is not in the content.
Step 17: Post in Our Facebook Group
- Write a brief, descriptive post celebrating the client
- Include the link to the article
- Post it in our 44K Facebook group
- We also post updates when publishing new “how-to” or task tutorials
Step 18: Final Formatting & Considerations
Every article must:
- Have clear authorship listed beneath the headline.
- Use bold for key takeaways.
- Use italics for direct quotes.
- Be tight and fluff-free—cut anything that doesn’t add value.
- Use clear H2 headings, short paragraphs, and bullet points where applicable.
- Only use bullet lists when you have three or more items.
- Always end with a strong call to action.
e.g., “What are your thoughts?” or “Have you tried this in your agency?” or “We’d love to help you with ______________”
When Repurposing from Transcripts:
- Ensure logical flow—just because it made sense when spoken doesn’t mean it reads well
- Add context for readers who weren’t there
- Read it out loud to catch awkward or unclear phrasing
Writing for Offsite Publications
Before Writing:
- Research the publication’s tone, structure, and audience
- Review past articles and contributor guidelines (length, format, etc.)
- Identify value-aligned topics your client can speak to
While Writing:
Pull insights from:
- Client videos
- Blog posts
- Site content
- Focus on value for the publication’s audience
- Lead with helpfulness, not self-promotion
Blog Length & Placement
Length: Varies based on the topic
- Small: ~200 words
- Deep-dive: 1,500–2,500 words
Where to Post:
- blitzmetrics.com → Marketing + CoachYu expert content
- dennisyu.com → Personal stories, thought leadership content
Verification Checklist
- Confirm no previous transcription exists for the video.
- Video hasn’t been repurposed before.
- Checked for duplicate articles on same keyword.
- Watched video and corrected transcript (including spellings of proper nouns).
- File is properly named and stored in Descript’s Overdub Drive.
- Uploaded to Google Drive.
- Submitted to MarketScale for processing.
- Embedded source video in article.
- GCT (Goals, Content, Targeting) is clearly identified and applied.
- First line is engaging + context established.
- All images are original (no stock); captions and alt text added.
- Featured image is correctly set.
For homepage content, the visual design standards from the website QA audit apply: hero image required, at least one image per section, social proof photos, testimonial headshots, and no text-only viewport gaps. - Lead visual appears above the fold — the article’s primary visual (diagram, video, chart, key screenshot, or figurehead photo) is placed within the first 2–3 paragraphs, visible without scrolling.
- No framework diagrams above the first H2 — the Content Factory 4-stage diagram and similar framework visuals must not appear before the first substantive section. Place them after the first H2 or in a “How This Connects” section near the bottom.
- Relevant links used—no broken links (duplicate links to the same URL are fine when they genuinely help the reader).
- Avoided top-level domains unless affiliate/client.
- Anchor text is specific, descriptive and at least 3 words long.
- No naked links (e.g. www.blitzmetrics.com).
- Written in clear and simple language using active voice.
- Used Grammarly or ChatGPT to proofread and used Jennifer to grade.
- No dates/events included to keep post evergreen.
- Minimum 200 words.
- Proper heading structure (H2s), short paragraphs (max 5 lines).
- No heading abuse—checked manually or with Surfer.
- Catchy, clear title that reflects article content.
- Categories and tags added in WordPress.
- URL slug matches article title.
- Clear authorship beneath the headline.
- Client notified – sent the article link and what it means for them (DR 63 link).
- Article shared in the 44K Facebook group.
- Clear CTA at the end (take next step).
- Point of view (POV) matches site type: first person for personal brand sites, third person for company sites.
- WordPress author on every post is set to the site owner’s name (e.g., “Tanner Laycock” on tannerlaycock.com) — not an admin account, team email, or generic username.
That’s it. You’re done. Good job!
After publishing any article, we document how it was created using our meta-article prompt template. This process shows exactly how AI agents and human team members collaborate to produce guideline-compliant content at scale. For the full framework on how individual articles fit into the larger content architecture, see our guide on how to create a definitive article and the SEO Tree, which explains how every page on the site should strengthen every other page.
Every article you write from these guidelines should reference the concepts it touches. If you are repurposing an SEO audit video, the resulting article should link back to the SEO audit definitive article. If you are building a personal brand site, the case study you write should explain what Digital Plumbing was done first, and the site should pass the website QA audit before it goes live. If the content includes one-minute videos, explain how they fit the Learn-Do-Teach framework. And if the subject sent thank-you videos, reference the Thank You Machine process that produced them.
These guidelines are the quality standard for every asset the Content Factory produces. When linking entities in your articles, follow the Entity Linking decision tree — people link to their personal brand sites, BlitzMetrics concepts link to their definitive articles, and external entities link to their authoritative sources. Proper entity linking is what builds Knowledge Panels and strengthens the SEO Tree.
The skill files for this page
Every task on this page ships as a runnable skill file you can hand to an AI agent (our publishing standard). Expand any skill to copy its file, or download the whole Task Library pack. 21 skills:
email-and-dm-client-about-published-article.skill.md — Notify the client by email and direct message that their article is live (Step 15), with the links and a specific ask that turns them into the first amplifier.
START
---
name: email-and-dm-client-about-published-article
description: Notify the client by email and direct message that their article is live (Step 15), with the links and a specific ask that turns them into the first amplifier.
category: Content Factory — Post
stage: Post
definitive_article: /blog-posting-guidelines
status: complete
---
# Email and DM client about published article
**Use this when** the client's article has just gone live — Step 15 of the Blog Posting process; notification happens the same day as publication.
## Inputs
- Live article URL, headline, and distribution links (YouTube, Facebook, LinkedIn)
- Client's email address and the channel where you actually talk (Messenger, LinkedIn DM, text, Slack)
- The original customer question or video the article came from
## Steps
1. Send the **email** (the record): subject "Your article is live: <title>". Body: the link, two sentences on what it covers and where it sits on their site's SEO Tree, and what happens next (distribution done, promotion starting).
2. Make one **specific ask** in the email: share it to your network, comment on the Facebook/LinkedIn posts, and send it to the customer who originally asked the question — their share is the first organic amplification signal.
3. Send the **DM** (the attention): a short personal note on the channel the client actually checks — "Your article on <topic> just went live: <link>. Took a screenshot of my favorite line — would love your comment on the post."
4. Include the social post links in one of the messages so the client can engage natively rather than hunting for them.
5. Log the notification (date, channels) in the tracker; if the client hasn't responded in 48 hours, follow up once on the DM channel.
6. When the client replies happy, capture it: their reaction is testimonial raw material and a Thank You Machine trigger.
## Definition of done (QA checklist)
- [ ] Email sent with live link, context, and a specific share/comment ask
- [ ] DM sent on the client's real channel the same day
- [ ] Social post links included; notification logged; 48-hour follow-up scheduled
- [ ] Client response captured (testimonial / Thank You Machine trigger if positive)
- [ ] Linked back to the definitive article and relevant siblings
- [ ] Complies with Blog Posting Guidelines (if it publishes content)
## Example(s)
- Example needed — run the Meta-Article Prompt after first real run. Candidate: notifying Marko Sipila (HVAC Quote) that his customer-question article is live and logging his share.
## Run on a persistent agent (Fable 5)
A persistent agent (Fable 5, or a comparable OpenAI/Google model) sends the email and DM same-day from the publication record in memory, then keeps the task alive across the 48-hour window — following up, capturing the client's reply, and triggering the Thank You Machine on a positive response — because the Definition of done includes those later boxes, not just "messages sent."
It remembers each client's real channel and past response pattern, so every notification lands better than the last.
Each run logs a meta-article example so the library compounds.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines
- Related: /thank-you-machine (positive replies trigger gratitude videos) · /content-factory
- Run order (Post stage): distribution posts live → **email-and-dm-client-about-published-article** (Step 15) → share-in-44k-facebook-group (Step 16)
ENDshare-in-44k-facebook-group.skill.md — Post the new piece into the 44,000-member Facebook group as a lesson for the community (Step 16), generating the first wave of organic engagement signal.
START
---
name: share-in-44k-facebook-group
description: Post the new piece into the 44,000-member Facebook group as a lesson for the community (Step 16), generating the first wave of organic engagement signal.
category: Content Factory — Post
stage: Post
definitive_article: /blog-posting-guidelines
status: complete
---
# Share in 44K Facebook group
**Use this when** the article is live and the client has been notified (Step 15 done) — community amplification is Step 16 of the Blog Posting process.
## Inputs
- Published article URL and the client's name/handle
- Posting access to the 44,000-member Facebook group
- The customer question the article answers (its hook)
## Steps
1. Write the group post as a **lesson, not a promo**: lead with the question the article answers or the surprising result, in plain first-person language. Group members are practitioners — give them the takeaway up front.
2. Include one concrete detail or number from the piece so the post has standalone value, then link the article for the full process.
3. Tag the client and featured people if they are group members, so they can respond and share.
4. Attach a real image or the native video clip — no stock, no banner graphics.
5. Publish, then reply to **every** comment within 24 hours; questions raised here are future one-minute video topics (feed them back to the Topic Wheel).
6. Log engagement (reactions, comments, shares) after 48 hours — strong group response marks the piece as a boost candidate for Promote's top 3–5 shortlist.
## Definition of done (QA checklist)
- [ ] Post live in the group, framed as a lesson with standalone value, article linked
- [ ] Client/featured members tagged; real image or native video attached
- [ ] Every comment answered within 24 hours; new questions captured as future topics
- [ ] 48-hour engagement logged and fed to the Promote boost shortlist
- [ ] Linked back to the definitive article and relevant siblings
- [ ] Complies with Blog Posting Guidelines (if it publishes content)
## Example(s)
- Example needed — run the Meta-Article Prompt after first real run. Candidate: sharing a client win article (e.g., Zach Peyton, Superior Fence & Rail) and capturing the comment thread it generates.
## Run on a persistent agent (Fable 5)
A persistent agent (Fable 5 or comparable OpenAI/Google models) frames the post as a lesson using the hook from memory, then keeps the run open across the 24- and 48-hour marks — answering every comment, harvesting new questions into the Topic Wheel, and logging engagement — because the Definition of done includes those follow-ups, and the run isn't done until each box passes.
Captured questions and engagement numbers persist in memory, compounding into better topics and a sharper boost shortlist with every share.
A meta-article example is logged per run so the library compounds.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines
- Related: /social-amplification (Stage 5 boosts pull from this signal) · /topic-wheel (comments seed new topics)
- Run order (Post stage): email-and-dm-client-about-published-article (Step 15) → **share-in-44k-facebook-group** (Step 16) → step-17-final-formatting-and-qa-checks
ENDstep-12-post-article-on-wordpress.skill.md — Publish a finished Content Factory article on the client's WordPress site in the Gutenberg block editor with clean formatting, ready for categorization, SEO, and distribution.
START
---
name: step-12-post-article-on-wordpress
description: Publish a finished Content Factory article on the client's WordPress site in the Gutenberg block editor with clean formatting, ready for categorization, SEO, and distribution.
category: Content Factory — Post
stage: Post
definitive_article: /blog-posting-guidelines
status: complete
---
# Step 12: Post article on WordPress
**Use this when** an article has cleared Process (Steps 1–11: written, photographed, linked, video-embedded, proofread) and is ready to go onto the site.
## Inputs
- Final proofread article with title, headings, hook, photos, internal links, and embedded source video
- WordPress editor access to the target site with the Gutenberg block editor enabled
- Unique featured image file (real photo, never stock) plus all in-article photos
- The article's GCT (Goals, Content, Targeting) established in Step 3
## Steps
1. Create a new **Post** (not a Page) and build the article in the **Gutenberg block editor** — never Cornerstone or any proprietary builder; builder content is opaque to AI agents and hard to update programmatically.
2. Rebuild the structure in blocks: one H1 (the title), H2s for major sections, H3s for subsections, short paragraphs (2–4 sentences), active voice, no AI-fluff phrases.
3. Confirm the primary keyword appears in the first paragraph (Blog Posting Guidelines requirement).
4. Insert every image at its planned position with descriptive alt text; set the unique featured image. All photos real — zero stock imagery.
5. Embed the source video where Step 10 placed it and confirm it plays in preview.
6. Verify every internal link from Step 9 survived the paste: descriptive 3–6 word anchor text (never "click here"), targets per the entity-linking decision tree (people → personal sites, companies → company sites, concepts → definitive articles).
7. Set the permalink slug: short, lowercase, contains the focus keyword.
8. Save as **draft**, preview on desktop and mobile, fix any broken blocks or image overflow. Do not publish yet — Steps 13–14b, author check, SEO Tree placement, and the Blog Posting checklist gate publication.
## Definition of done (QA checklist)
- [ ] Post exists as a draft in Gutenberg with zero builder shortcodes; previews cleanly on desktop and mobile
- [ ] H1/H2/H3 hierarchy correct; paragraphs short; active voice; primary keyword in first paragraph
- [ ] All images real with alt text; unique featured image set; source video embedded and playing
- [ ] All internal links intact with 3–6 word descriptive anchors following the entity-linking decision tree
- [ ] Permalink contains the focus keyword
- [ ] Linked back to the definitive article and relevant siblings
- [ ] Complies with Blog Posting Guidelines (if it publishes content)
## Example(s)
- First documented run candidate: a Marko Sipila (HVAC Quote) one-minute-video article posted through this step. Example needed — run the Meta-Article Prompt after first real run.
## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5, or a comparable OpenAI/Google frontier model) builds the draft in Gutenberg and loops preview → fix → re-preview until every Definition-of-done box passes — one broken anchor or a keyword missing from the first paragraph means another pass, not "close enough."
It pulls the GCT, link map, and video placement from Steps 3/9/10 out of memory instead of re-deriving them, and writes the slug and block structure back for Steps 13–14b.
Each run it logs a meta-article example into Example(s), so the next article starts from a worked case.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines
- Related: /content-factory · /entity-linking · /one-minute-video-guide
- Run order (Post stage): **step-12-post-article-on-wordpress** → step-13-categorize-post-and-add-tags → step-14a-configure-rankmath-seo-plugin → step-14b-run-linkwhisper-for-internal-links
## Learned in the field
*Appended automatically by the self-improvement loop (Skill-Learnings/): dated lessons from real runs. Newest at the bottom.*
<!-- learning:2026-07-18-verify-published-not-just-posted -->
**July 18, 2026** (from: skill-pack-propagation follow-up session with Dennis, July 18, 2026)
After any REST publish, verify the LIVE rendered result, not just the 200 response: fetch the public URL cache-busted and confirm the new date/link/text actually renders (Elementor pages cache their own copy in _elementor_data and can ignore REST content writes; edge caches can serve stale HTML). A 200 from wp-json is a receipt that WordPress accepted the write — not proof a visitor sees it. July 18, 2026: standing rule promoted into this skill from the pack-propagation run.
ENDstep-13-categorize-post-and-add-tags.skill.md — Assign the WordPress post to its SEO Tree branch category and add attribute tags so readers, agents, and the REST API can pull it by topic, stage, and entity.
START
---
name: step-13-categorize-post-and-add-tags
description: Assign the WordPress post to its SEO Tree branch category and add attribute tags so readers, agents, and the REST API can pull it by topic, stage, and entity.
category: Content Factory — Post
stage: Post
definitive_article: /blog-posting-guidelines
status: complete
---
# Step 13: Categorize post and add tags
**Use this when** the article exists as a WordPress draft (Step 12 done) and its taxonomy must be set before SEO configuration.
## Inputs
- Draft post in WordPress
- The site's category taxonomy — categories are SEO Tree branches, established per /internal-linking Step 2
- The article's GCT and its intended position on the SEO Tree
## Steps
1. Identify the SEO Tree branch this article supports: which trunk topic, which branch subtopic? If no branch fits, stop — you may be about to create an orphan; resolve placement (see place-content-on-seo-tree-with-proper-links) before continuing.
2. In the Categories panel, check the one branch category that matches. One primary category; add a second only when the piece genuinely serves two branches. Never leave a post "Uncategorized."
3. Add tags as **attributes, not topics**: content stage (e.g., `Stage: Post` where the site uses Content Factory stage tags), format (one-minute video, case study, audit), people and companies featured, and cross-cutting `Topic:` tags.
4. Reuse existing tags via autocomplete. Never create near-duplicates ("dollar-a-day" vs "dollar a day") — duplicate tags fracture the taxonomy.
5. Open the category archive and confirm the post will sit beside true siblings; if the archive is empty or mismatched, re-check the taxonomy against /internal-linking Step 2 before publishing.
6. Save the draft and proceed to Step 14a (RankMath).
## Definition of done (QA checklist)
- [ ] Post assigned to exactly one correct SEO Tree branch category (two max) — not Uncategorized
- [ ] Tags are reused attributes (stage, format, people, companies, topics); zero new duplicate tags
- [ ] Category archive lists the post among genuine topical siblings
- [ ] An agent could retrieve this post via REST API by category + stage tag
- [ ] Linked back to the definitive article and relevant siblings
- [ ] Complies with Blog Posting Guidelines (if it publishes content)
## Example(s)
- Example needed — run the Meta-Article Prompt after first real run. Good first candidate: a Marko Sipila (HVAC Quote) article categorized under its service branch with `Stage: Post` tagging.
## Run on a persistent agent (Fable 5)
A persistent agent (Fable 5 or a comparable OpenAI/Google model) reads the site's full category and tag taxonomy via the REST API before touching the post, assigns the branch, then re-queries the archive to self-verify every Definition-of-done item — a non-sibling archive or a near-duplicate tag triggers a fix and a full re-check, not a partial pass.
It keeps the SEO Tree map and the canonical tag list in memory across runs, so taxonomy stays consistent article after article instead of drifting.
Each run it logs a meta-article example so the library compounds.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines
- Related: /seo-tree · /internal-linking
- Run order (Post stage): step-12-post-article-on-wordpress → **step-13-categorize-post-and-add-tags** → step-14a-configure-rankmath-seo-plugin
ENDstep-14a-configure-rankmath-seo-plugin.skill.md — Set the focus keyword, SEO title, and meta description in RankMath and tune the post until it scores 70+ so the article competes in search from day one.
START
---
name: step-14a-configure-rankmath-seo-plugin
description: Set the focus keyword, SEO title, and meta description in RankMath and tune the post until it scores 70+ so the article competes in search from day one.
category: Content Factory — Post
stage: Post
definitive_article: /blog-posting-guidelines
status: complete
---
# Step 14a: Configure RankMath SEO plugin
**Use this when** the draft post is categorized and tagged (Step 13 done) and needs its on-page SEO locked in before internal linking and publication.
## Inputs
- Draft post in WordPress with RankMath active
- The article's primary keyword (chosen in Step 6 when the title and headings were written)
- The article's GCT — who the post targets and what it should rank for
## Steps
1. Open the RankMath panel on the post and set the **focus keyword** to the article's primary keyword.
2. Write the **SEO title**: under 60 characters, focus keyword near the front, written for a human click — no clickbait, no truncation in the SERP preview.
3. Write the **meta description**: under 160 characters, contains the focus keyword, gives a concrete reason to click.
4. Verify keyword placement RankMath checks for: in the SEO title, the permalink, the first paragraph, at least one H2/subheading, and image alt text where it reads naturally.
5. Run the RankMath analysis and resolve flagged items until the score is **70 or higher**. Fix real issues (missing keyword placements, thin sections, missing links) — never keyword-stuff to game the score.
6. Confirm the snippet preview renders correctly for desktop and mobile, and that canonical/schema defaults are sane for a standard post.
7. Save the draft and proceed to Step 14b (LinkWhisper).
## Definition of done (QA checklist)
- [ ] Focus keyword set; RankMath score 70+ achieved without keyword stuffing
- [ ] SEO title under 60 characters with focus keyword; meta description under 160 characters with focus keyword
- [ ] Keyword present in permalink, first paragraph, and at least one subheading
- [ ] SERP snippet preview reads cleanly with no truncation
- [ ] Linked back to the definitive article and relevant siblings
- [ ] Complies with Blog Posting Guidelines (if it publishes content)
## Example(s)
- Example needed — run the Meta-Article Prompt after first real run. The /website-qa-audit Layer 2 check "Verify Rank Math score above 70 on every page" is the site-wide audit twin of this per-post step.
## Run on a persistent agent (Fable 5)
A persistent agent (Fable 5, or comparable OpenAI/Google models) works the RankMath loop mechanically — set keyword, write title and description, run analysis, fix flagged items, re-run — and does not stop at 68 or "mostly green"; it loops until the score is 70+ and every Definition-of-done box verifies, without keyword stuffing.
It remembers which fixes moved the score on prior posts (thin sections vs missing placements) and applies those first, then records this run's score path as a meta-article example so the library compounds.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines
- Related: /website-qa-audit · /seo-audit
- Run order (Post stage): step-13-categorize-post-and-add-tags → **step-14a-configure-rankmath-seo-plugin** → step-14b-run-linkwhisper-for-internal-links
ENDstep-14b-run-linkwhisper-for-internal-links.skill.md — Use LinkWhisper to surface and implement internal link suggestions in both directions, so the new post is woven into the SEO Tree instead of published as an orphan.
START
---
name: step-14b-run-linkwhisper-for-internal-links
description: Use LinkWhisper to surface and implement internal link suggestions in both directions, so the new post is woven into the SEO Tree instead of published as an orphan.
category: Content Factory — Post
stage: Post
definitive_article: /blog-posting-guidelines
status: complete
---
# Step 14b: Run LinkWhisper for internal links
**Use this when** RankMath is configured (Step 14a done) and the post needs its internal link web completed before publication.
## Inputs
- Draft post in WordPress with LinkWhisper active
- The site's SEO Tree map (which branch this post belongs to, from Step 13)
- The entity-linking decision tree: people → personal sites, companies → company sites, concepts → definitive articles
## Steps
1. Open LinkWhisper's suggestions for the post and review **outbound** candidates: links from this post to existing content.
2. Accept only suggestions that are topically real and respect SEO Tree direction — a leaf links up to its branch and across to true siblings; never link to a page that competes with an existing hub.
3. Rewrite every accepted anchor to 3–6 descriptive, keyword-relevant words. Reject generic anchors ("click here", "read more", bare URLs).
4. Review LinkWhisper's **inbound** suggestions: older related posts that should now link TO this post. Add links from the strongest, most relevant existing pages so the new post is not an orphan.
5. Check each link against the entity-linking decision tree — concept mentions go to the concept's definitive article, not to a random blog post about it.
6. Keep it contextual and restrained: a handful of links placed in body copy where they help the reader, not a link dump. Every post should link to at least one other post and one service page (the /website-qa-audit standard).
7. Preview, click-test every added link, and save the draft.
## Definition of done (QA checklist)
- [ ] Post links upward to its SEO Tree branch and to at least one other post and one service page
- [ ] At least one inbound link added from an existing relevant post (no orphan)
- [ ] All anchors 3–6 descriptive words; zero generic anchors
- [ ] Every link target follows the entity-linking decision tree; all links click-tested
- [ ] Linked back to the definitive article and relevant siblings
- [ ] Complies with Blog Posting Guidelines (if it publishes content)
## Example(s)
- The /internal-linking definitive article ("includes skill file for AI agents") documents the full 6-step linking process this step executes per-post. Example needed — run the Meta-Article Prompt after first real run.
## Run on a persistent agent (Fable 5)
A persistent agent (Fable 5 or comparable OpenAI/Google models) works LinkWhisper's full suggestion queue in both directions, rewrites every anchor to 3–6 descriptive words, then click-tests each link and re-checks the Definition of done — an orphaned post or one generic anchor sends it back through the loop, not into "done."
Because it holds the SEO Tree map and prior runs' accepted/rejected suggestions in memory, its accept/reject judgment sharpens with every post.
It closes each run by logging a meta-article example so the library compounds.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines
- Related: /internal-linking · /entity-linking · /seo-tree · /link-building
- Run order (Post stage): step-14a-configure-rankmath-seo-plugin → **step-14b-run-linkwhisper-for-internal-links** → set-wordpress-author-to-correct-person
ENDstep-17-final-formatting-and-qa-checks.skill.md — Run the final formatting, link, and quality pass across the live article and its distribution so the piece is verifiably done before handing off to the Promote stage.
START
---
name: step-17-final-formatting-and-qa-checks
description: Run the final formatting, link, and quality pass across the live article and its distribution so the piece is verifiably done before handing off to the Promote stage.
category: Content Factory — Post
stage: Post
definitive_article: /blog-posting-guidelines
status: complete
---
# Step 17: Final formatting and QA checks
**Use this when** the article is live, distributed, and the client notified — this is the closing gate of the Post stage before amplification launches.
## Inputs
- Live article URL plus its distribution URLs (YouTube, Facebook page, LinkedIn, 44K group)
- The Blog Posting checklist (sibling skill: verify-all-items-on-blog-posting-checklist)
- Editor access to fix anything found
## Steps
1. Open the live post on desktop **and** mobile. Check heading hierarchy, paragraph spacing, image rendering, and that no Gutenberg block broke after publish.
2. Click-test every link: internal links (anchors and targets per the entity-linking decision tree), external links, and any CTA. Fix or remove broken ones immediately.
3. Confirm the embedded video plays, the featured image renders in social share previews, and all images still carry alt text.
4. Re-check RankMath after any post-publish edits — score must still be 70+, SEO title under 60 characters, meta description under 160.
5. Verify housekeeping: author = site owner, category = correct SEO Tree branch, tags intact, permalink unchanged since indexing.
6. Verify the distribution loop is closed: article embeds the YouTube video; YouTube description links the article; Facebook, LinkedIn, and group posts are live and logged.
7. Run verify-all-items-on-blog-posting-checklist as the formal item-by-item gate, fix any failure at its owning step, then mark the piece **done** in the tracker and hand the post URL set to the Promote stage.
## Definition of done (QA checklist)
- [ ] Live post renders cleanly on desktop and mobile; zero broken links or blocks
- [ ] Video plays; featured image and alt text intact; RankMath still 70+
- [ ] Author, category, tags, and permalink verified correct
- [ ] Distribution loop closed and logged (YouTube ↔ article, FB, LinkedIn, 44K group)
- [ ] Full Blog Posting checklist passed; piece marked done and handed to Promote
- [ ] Linked back to the definitive article and relevant siblings
- [ ] Complies with Blog Posting Guidelines (if it publishes content)
## Example(s)
- Example needed — run the Meta-Article Prompt after first real run documenting a full Step 12→17 pass on one client article.
## Run on a persistent agent (Fable 5)
This closing gate is where a persistent agent (Fable 5, or comparable OpenAI/Google models) earns its keep: it re-opens the live post on desktop and mobile, click-tests every link, re-runs RankMath, verifies the distribution loop, and cycles fix → re-verify until every Definition-of-done box passes — six of seven is a failing grade, not a pass.
Because it ran Steps 12–16 itself, memory tells it exactly what to re-check and which step owns any failure it finds.
Each gate run is logged as a meta-article example so the library compounds.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines
- Related: /website-qa-audit (the site-wide audit this per-post QA rolls up into) · /content-factory
- Run order (Post stage): share-in-44k-facebook-group → **step-17-final-formatting-and-qa-checks** → Promote stage (boost-top-3-5-facebook-posts)
ENDverify-all-items-on-blog-posting-checklist.skill.md — Walk the complete Blog Posting verification checklist item by item as a binary gate, so nothing publishes (or ships to Promote) with a known miss.
START
---
name: verify-all-items-on-blog-posting-checklist
description: Walk the complete Blog Posting verification checklist item by item as a binary gate, so nothing publishes (or ships to Promote) with a known miss.
category: Content Factory — Post
stage: Post
definitive_article: /blog-posting-guidelines
status: complete
---
# Verify all items on Blog Posting checklist
**Use this when** a post is staged for publication, and again inside Step 17 — this checklist is the formal gate; every item is pass/fail, no judgment calls.
## Inputs
- The staged or live post URL
- The Blog Posting Guidelines checklist (hub: /blog-posting-guidelines)
- Access to fix failures or route them back to the owning step
## Steps
1. Verify the content items: SEO title under 60 characters with focus keyword · meta description under 160 characters · primary keyword in the first paragraph · H2/H3 structure · short paragraphs · active voice · no AI-fluff phrases.
2. Verify the media items: no stock images anywhere · descriptive alt text on every image · unique featured image · source video embedded and playing.
3. Verify the linking items: internal links follow the entity-linking decision tree (people → personal sites, companies → company sites, concepts → definitive articles) · anchors are 3–6 descriptive words · post links to at least one other post and one service page · upward SEO Tree link present.
4. Verify the WordPress items: built in Gutenberg (no builder) · category = SEO Tree branch · tags set · author = site owner · permalink contains focus keyword · RankMath score 70+.
5. Mark each item pass/fail in the tracker. A single fail blocks publication — fix it now or send it back to the step that owns it (12, 13, 14a, 14b, author, tree placement).
6. Re-run until every item passes, then record the completed checklist with date and operator so the audit trail exists.
## Definition of done (QA checklist)
- [ ] Every checklist item explicitly marked pass — zero skipped, zero "close enough"
- [ ] All failures fixed at their owning step and re-verified
- [ ] Completed checklist logged with date and operator
- [ ] Linked back to the definitive article and relevant siblings
- [ ] Complies with Blog Posting Guidelines (if it publishes content)
## Example(s)
- Example needed — run the Meta-Article Prompt after first real run. Candidate: a published checklist run on a Marko Sipila (HVAC Quote) article showing one caught failure and its fix.
## Run on a persistent agent (Fable 5)
This skill IS the self-verification loop a persistent agent (Fable 5 or comparable OpenAI/Google models) runs by default: every item binary pass/fail, any fail routed to its owning step, fixed, and the whole checklist re-run from the top — repeating until 100% pass, because "close enough" is exactly what this gate exists to block.
The agent keeps each completed checklist in memory as the audit trail, so recurring failure patterns surface across runs and get fixed upstream.
It logs a meta-article example per run so the library compounds.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines
- Related: /website-qa-audit · /entity-linking · /seo-tree
- Run order (Post stage): runs before publish and again inside **step-17-final-formatting-and-qa-checks** as the closing gate
ENDstep-1-upload-video-to-google-drive-and-descript.skill.md — Move a raw video into the designated Google Drive folder and a Descript project so the Content Factory Process stage can begin (Blog Posting Guidelines Step 1).
START
---
name: step-1-upload-video-to-google-drive-and-descript
description: Move a raw video into the designated Google Drive folder and a Descript project so the Content Factory Process stage can begin (Blog Posting Guidelines Step 1).
category: Content Factory — Process
stage: Process
definitive_article: /blog-posting-guidelines
status: complete
---
# Step 1: Upload video to Google Drive and Descript
**Use this when** a raw video from the Produce stage is ready to enter the 18-step blog posting pipeline.
## Inputs
- The raw video file (one-minute video, client story, talk, screen share, or team conversation)
- Access to the brand's Content Library Google Drive folder (`01-Raw` intake)
- Descript account access with permission to create projects
- The Content Library tracker
## Steps
1. Pull the next raw video from the Content Library `01-Raw` queue (oldest unprocessed first, unless the tracker flags a priority).
2. Verify the file plays end to end and the audio is intelligible before uploading anywhere — a bad file caught now saves the whole pipeline.
3. Confirm the filename follows convention (`YYYY-MM-DD-topic-person`); rename if intake missed it.
4. Upload the file to the designated Google Drive folder for this brand/client. Drive is the permanent archive; never let the only copy live on a phone or in Descript.
5. Create a new Descript project named to match the filename and upload the same file into it.
6. Wait for Descript's import to finish and spot-check that the media plays inside the project.
7. Update the Content Library tracker: status "In Process — Step 1 done," with links to both the Drive file and the Descript project.
8. Hand off to `step-2-transcribe-video-using-descript`.
## Definition of done (QA checklist)
- [ ] Video verified playable with intelligible audio before upload
- [ ] File in the correct Google Drive folder with convention-compliant name
- [ ] Descript project created, named to match, media imported and playing
- [ ] Tracker updated with both links and status
- [ ] Source row in the Produce queue marked as picked up (no double-processing)
- [ ] Linked back to the definitive article and relevant siblings
## Example(s)
- Every published Content Factory article began with this step; worked runs are linked from the hub at /blog-posting-guidelines.
- Example needed as a standalone meta-article — run the Meta-Article Prompt after first documented run.
## Run on a persistent agent (Fable 5)
This step is fully agent-runnable: a persistent agent (Claude Fable 5, or a comparable OpenAI/Google model that loops and holds memory) pulls the oldest raw file, verifies playback, fixes naming, uploads to Drive and Descript, and loops until both links sit in the tracker and the Produce row is marked picked up — every Definition-of-done box, not five of six. Memory holds the queue position, so the next run resumes exactly where intake left off with no double-processing. Log a meta-article example each documented run.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines (Step 1 of the 18-step SOP)
- Related: /content-factory, /one-minute-video-guide
- Sibling skills, in run order: `set-up-content-library` → this → `step-2-transcribe-video-using-descript`
ENDstep-10-embed-source-video.skill.md — Embed the original source video in the article so readers get the first-hand footage alongside the written version (Blog Posting Guidelines Step 10).
START
---
name: step-10-embed-source-video
description: Embed the original source video in the article so readers get the first-hand footage alongside the written version (Blog Posting Guidelines Step 10).
category: Content Factory — Process
stage: Process
definitive_article: /blog-posting-guidelines
status: complete
---
# Step 10: Embed source video
**Use this when** the article is linked and illustrated (Step 9 complete) and the source video is hosted somewhere embeddable.
## Inputs
- The article draft in progress
- The hosted source video (typically the brand's YouTube upload of the processed video; the Post stage's YouTube task handles hosting if not yet done)
- The Content Library tracker row linking article and video
## Steps
1. Confirm the source video is hosted on the brand's own channel (YouTube upload with proper title/description). If it is not yet hosted, trigger the Post-stage YouTube upload task first — do not embed from someone else's channel.
2. Embed the video into the article near the content it supports — usually directly after the hook/intro, so readers immediately see the real person behind the words.
3. Use the standard WordPress/Gutenberg embed block (paste the YouTube URL), not a custom player or builder widget — builder content is opaque to agents and breaks updates.
4. Add one line of context above or below the embed: who is speaking and what the clip covers ("Marko Sipila explains why the lowest HVAC quote cost the most").
5. Preview on mobile: the embed must render responsively and not block page load (lazy-load is WordPress default behavior; verify the page still feels fast).
6. Verify article and video reinforce each other: the article should reference the video naturally ("in the video above"), and the YouTube description should link back to the article.
7. Update the Content Library tracker so the article row and video row reference each other.
8. Update the tracker ("Step 10 done") and hand off to `step-11-proofread-with-grammarly-or-chatgpt`.
## Definition of done (QA checklist)
- [ ] Source video embedded from the brand's own channel
- [ ] Placed adjacent to the content it supports, with a line of context
- [ ] Standard Gutenberg embed block used (no proprietary builder)
- [ ] Plays and renders responsively on mobile without wrecking load time
- [ ] Article ↔ video cross-references in place (and logged in the tracker)
- [ ] Linked back to the definitive article and relevant siblings
## Example(s)
- Every Content Factory article embeds its source video per /blog-posting-guidelines; the homepage video-embed requirement in /website-qa-audit applies the same principle site-wide.
- Example needed as a standalone meta-article — run the Meta-Article Prompt after first documented run.
## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5, or comparable long-horizon OpenAI/Google models) verifies the video sits on the brand's own channel (triggering the Post-stage upload task if not), embeds via the standard block, checks mobile rendering, and loops until the article-video cross-references are live in both directions and logged — one-way linking is not done. Memory ties article rows to video rows across runs, so nothing orphans in the tracker. Close with a logged meta-article example.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines (Step 10 of the 18-step SOP)
- Related: /website-qa-audit (video-embed checks), /content-factory
- Sibling skills, in run order: `step-9-add-internal-links-with-proper-anchor-text` → this → `step-11-proofread-with-grammarly-or-chatgpt`
ENDstep-11-proofread-with-grammarly-or-chatgpt.skill.md — Run the finished draft through Grammarly or ChatGPT for grammar, tone, and readability — without letting the tools sand off the speaker's voice (Blog Posting Guidelines Step 11).
START
---
name: step-11-proofread-with-grammarly-or-chatgpt
description: Run the finished draft through Grammarly or ChatGPT for grammar, tone, and readability — without letting the tools sand off the speaker's voice (Blog Posting Guidelines Step 11).
category: Content Factory — Process
stage: Process
definitive_article: /blog-posting-guidelines
status: complete
---
# Step 11: Proofread with Grammarly or ChatGPT
**Use this when** the article is complete with links, images, and embed (Step 10 done) — the final Process-stage pass before the Post stage takes over.
## Inputs
- The complete article draft
- Grammarly or ChatGPT access
- The verified transcript (fact-check source) and the GCT statement
- The correct spellings list (Marko Sipila, Zach Peyton, George Paladichuk, NaiL AI, etc.)
## Steps
1. Run the draft through Grammarly or ChatGPT scoped to grammar, punctuation, readability, and tone consistency — explicitly instruct the tool NOT to rewrite voice, add content, or "enhance" phrasing.
2. Review every suggestion individually. Accept mechanical fixes; reject any change that genericizes the speaker's phrasing or injects AI-fluff vocabulary.
3. Fact-check against the transcript: every number, name, claim, and quote in the article must match what was actually said or the cited research.
4. Verify all proper nouns against the spellings list — proofreading tools routinely "correct" real names into wrong ones.
5. Read the article aloud (or via text-to-speech) top to bottom — the strongest catch for clunky sentences, repeated words, and broken flow.
6. Re-verify the load-bearing SEO elements survived editing: focus keyword still in the first paragraph, title under 60 characters, meta under 160, headings intact.
7. Check formatting hygiene: short paragraphs held, no double spaces, consistent capitalization in headings, captions present.
8. Update the tracker ("Step 11 done — Process stage complete") and hand off to the Post stage (`step-12-post-article-on-wordpress`).
## Definition of done (QA checklist)
- [ ] Grammar/readability pass completed with each suggestion reviewed, not bulk-accepted
- [ ] Speaker's voice intact — spot-check 3 passages against the transcript
- [ ] All facts, numbers, and names verified (spellings list applied)
- [ ] Keyword, title, and meta specs still satisfied post-edit
- [ ] Read-aloud pass completed with fixes applied
- [ ] Linked back to the definitive article and relevant siblings
## Example(s)
- The proofread gate is Step 11 of every run documented at /blog-posting-guidelines, immediately before WordPress posting.
- Example needed as a standalone meta-article — run the Meta-Article Prompt after first documented run.
## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5, or a comparable OpenAI/Google model that loops and holds memory) reviews every suggestion individually — never bulk-accepts — and loops the fact-check until each number, name, and quote matches the transcript and the SEO specs still hold after edits. Memory keeps the growing correct-spellings list, so every name a past run verified protects every future article. Log a meta-article example each run.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines (Step 11 of the 18-step SOP)
- Related: /website-qa-audit (the standards this pass pre-empts)
- Sibling skills, in run order: `step-10-embed-source-video` → this → `step-12-post-article-on-wordpress` (Post stage)
ENDstep-2-transcribe-video-using-descript.skill.md — Produce a clean, accurate verbatim transcript in Descript — correcting every blue-underlined low-confidence word — so the article is written from what was actually said (Blog Posting Guidelines Step 2).
START
---
name: step-2-transcribe-video-using-descript
description: Produce a clean, accurate verbatim transcript in Descript — correcting every blue-underlined low-confidence word — so the article is written from what was actually said (Blog Posting Guidelines Step 2).
category: Content Factory — Process
stage: Process
definitive_article: /blog-posting-guidelines
status: complete
---
# Step 2: Transcribe video using Descript
**Use this when** the video is loaded into its Descript project (Step 1 complete) and needs a transcript before any watching, outlining, or writing.
## Inputs
- The Descript project from `step-1-upload-video-to-google-drive-and-descript`
- Descript Enterprise transcription access
- Correct spellings of all people, companies, and product names likely mentioned (e.g., Marko Sipila, Zach Peyton, Superior Fence & Rail, NaiL AI)
- The Content Library tracker
## Steps
1. Run Descript's transcription on the project media.
2. Assign speaker labels correctly (interviewer vs. client, each team member by name).
3. Work through every blue-underlined word — Descript's low-confidence flags — playing the audio at each one and correcting to what was actually said.
4. Pay special attention to proper nouns: client names, company names, place names, and jargon are the most common mis-transcriptions ("Marco" for Marko Sipila, "nail AI" for NaiL AI). Fix against the provided spelling list.
5. Keep the transcript verbatim at this step — do not paraphrase, reorder, or "improve" the speech. Cleaning happens in Step 4; voice preservation depends on an honest source transcript.
6. Read the full transcript top to bottom once while the audio plays to catch errors Descript did not flag.
7. Update the tracker: "Step 2 done — transcript verified."
8. Hand off to `step-3-watch-video-and-identify-gct` (and run `use-descript-underlord-to-remove-filler-words` when filler cleanup is wanted before editing).
## Definition of done (QA checklist)
- [ ] Zero blue-underlined words remain unreviewed
- [ ] All names of people and companies spelled correctly throughout
- [ ] Speaker labels accurate for every segment
- [ ] Transcript is verbatim — no paraphrasing introduced
- [ ] Full-pass listen-through completed
- [ ] Linked back to the definitive article and relevant siblings
## Example(s)
- Transcription is Step 2 of every article run documented at /blog-posting-guidelines.
- Example needed as a standalone meta-article — run the Meta-Article Prompt after first documented run.
## Run on a persistent agent (Fable 5)
Zero blue underlines is a number an agent can verify: a persistent agent (Claude Fable 5, or comparable long-horizon OpenAI/Google models) works the low-confidence flags one by one and loops until none remain unreviewed and every proper noun matches the spellings list — "mostly corrected" ships wrong names. Memory compounds here: each new name a run verifies (client, company, product) joins the spelling list for every future transcript. Close the run with a logged meta-article example.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines (Step 2 of the 18-step SOP)
- Related: /content-factory
- Sibling skills, in run order: `step-1-upload-video-to-google-drive-and-descript` → this → `use-descript-underlord-to-remove-filler-words` → `step-3-watch-video-and-identify-gct`
ENDstep-3-watch-video-and-identify-gct.skill.md — Watch the full video and pin down Goals, Content, and Targeting — in that order — so every downstream writing decision serves a defined purpose (Blog Posting Guidelines Step 3).
START
---
name: step-3-watch-video-and-identify-gct
description: Watch the full video and pin down Goals, Content, and Targeting — in that order — so every downstream writing decision serves a defined purpose (Blog Posting Guidelines Step 3).
category: Content Factory — Process
stage: Process
definitive_article: /blog-posting-guidelines
status: complete
---
# Step 3: Watch video and identify GCT
**Use this when** the transcript is verified (Step 2 complete) and before a single word of the article is outlined or written.
## Inputs
- The full video and verified transcript in Descript
- The brand's mission and 90-day goals (from SAE Stage 2) for Goal alignment
- The Topic Wheel entry this video came from, if logged
- A working doc for the article (where the GCT statement will live)
## Steps
1. Watch the ENTIRE video, not a skim — tone, emphasis, and throwaway stories carry meaning the transcript alone loses.
2. Identify the **Goal** first: what business outcome should this content drive (rank for a question, prove expertise, support a service page, feed an ad)? Tie it to the brand's stated goals.
3. Identify the **Content** second: the single core insight, story, or answer actually present in the video. The article may only claim what the video supports.
4. Identify the **Targeting** third: exactly who this is for — which customer, at which funnel level (Audience, Engagement, or Conversion), asking which question in which words.
5. Keep the order strict: Goals → Content → Targeting. Content decisions made before goals produce orphan articles; targeting chosen before content produces clickbait.
6. Write a three-line GCT statement at the top of the working doc. Example shape: "G: rank for [customer question] and feed the [service] page. C: [the one insight]. T: [who, funnel level]."
7. Derive the primary keyword candidate from the Targeting line — the customer's own phrasing of the question.
8. Update the tracker ("Step 3 done — GCT set") and hand off to `step-4-research-edit-add-timestamps-and-outline`.
## Definition of done (QA checklist)
- [ ] Video watched in full (not transcript-skimmed)
- [ ] GCT statement written in Goals → Content → Targeting order, three concrete lines
- [ ] Goal traces to a real business outcome, not "post content"
- [ ] Content claim is supported by what is actually said in the video
- [ ] Primary keyword candidate captured in the customer's own words
- [ ] Linked back to the definitive article and relevant siblings
## Example(s)
- GCT-before-writing is the discipline behind every article documented at /blog-posting-guidelines; the framework itself is one of the Nine Triangles (/nine-triangles).
- Example needed as a standalone meta-article — run the Meta-Article Prompt after first documented run.
## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5, or a comparable OpenAI/Google model that loops and holds memory) watches the full video, drafts the GCT statement in strict Goals → Content → Targeting order, then self-verifies every Definition-of-done line — Goal tied to a real outcome, Content actually in the video, keyword in the customer's words — and loops until all pass. Memory holds the brand's Stage 2 goals across runs, so every video's Goal line stays consistent with the 90-day plan instead of being reinvented per article. Log a meta-article example each run.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines (Step 3 of the 18-step SOP)
- Related: /nine-triangles (GCT triangle), /topic-wheel (where the question came from)
- Sibling skills, in run order: `step-2-transcribe-video-using-descript` → this → `step-4-research-edit-add-timestamps-and-outline`
ENDstep-4-research-edit-add-timestamps-and-outline.skill.md — Research the topic, clean the transcript, mark timestamps at topic shifts, and build the H2/H3 outline that the article will be written into (Blog Posting Guidelines Step 4).
START
---
name: step-4-research-edit-add-timestamps-and-outline
description: Research the topic, clean the transcript, mark timestamps at topic shifts, and build the H2/H3 outline that the article will be written into (Blog Posting Guidelines Step 4).
category: Content Factory — Process
stage: Process
definitive_article: /blog-posting-guidelines
status: complete
---
# Step 4: Research, edit, add timestamps and outline
**Use this when** GCT is defined (Step 3 complete) and the raw transcript needs to become a structured writing plan.
## Inputs
- The verified transcript and the GCT statement from Step 3
- Access to the brand's site to survey existing related content (SEO Tree placement, internal-link candidates)
- Search access to see what currently answers this customer question
- The article working doc
## Steps
1. Research the topic: search the customer question (the Targeting phrasing) and note what already ranks — what they cover, what they miss, what only this video's first-hand experience can add.
2. Survey the brand's own site for related posts and the definitive articles this piece should link to later — note where this article fits on the SEO Tree (which trunk/branch it hangs from) before writing.
3. Clean the transcript: cut false starts, redundancies, and tangents that serve no point. Preserve the speaker's voice, phrasing, and stories — edit for clarity, never into generic AI-speak.
4. Add a timestamp marker at every topic shift in the transcript (e.g., `[02:14]` where the story starts). These drive the outline now and clip extraction later.
5. Build the outline: map each timestamped segment to a proposed H2 (or H3 under it), ordered for the reader rather than strictly chronologically if the spoken order rambles.
6. Check the outline against GCT: every section must serve the Goal and speak to the Target; cut sections that do neither.
7. Slot research findings into the outline as expansion notes ("add data here," "compare to X") — clearly separated from what the speaker said.
8. Update the tracker ("Step 4 done — outline ready") and hand off to `step-5-write-article-from-transcript`.
## Definition of done (QA checklist)
- [ ] Competing answers to the question reviewed and gaps noted
- [ ] SEO Tree placement and internal-link candidates identified before writing
- [ ] Transcript cleaned with speaker's voice intact (spot-check 3 passages against audio)
- [ ] Timestamps marked at every topic shift
- [ ] H2/H3 outline maps to timestamps and survives the GCT check
- [ ] Linked back to the definitive article and relevant siblings
## Example(s)
- Step 4 of every article run documented at /blog-posting-guidelines; the timestamp work also powers `extract-15-60-second-clips-from-long-form-video`.
- Example needed as a standalone meta-article — run the Meta-Article Prompt after first documented run.
## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5, or comparable OpenAI/Google models that loop and hold memory) runs the search research, surveys the site, cleans the transcript, timestamps every topic shift, then loops the outline against the GCT check until every section earns its place — an outline with one orphan section is not done. Memory makes this step compound: SEO Tree placement and internal-link candidates learned each run carry into the next, so research starts from accumulated site knowledge, not a blank page. Document the run with a meta-article example.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines (Step 4 of the 18-step SOP)
- Related: /seo-tree (placement), /internal-linking (link candidates)
- Sibling skills, in run order: `step-3-watch-video-and-identify-gct` → this → `step-5-write-article-from-transcript`
ENDstep-5-write-article-from-transcript.skill.md — Transform the cleaned transcript into a structured article that keeps the speaker's voice and stories while following GCT (Blog Posting Guidelines Step 5).
START
---
name: step-5-write-article-from-transcript
description: Transform the cleaned transcript into a structured article that keeps the speaker's voice and stories while following GCT (Blog Posting Guidelines Step 5).
category: Content Factory — Process
stage: Process
definitive_article: /blog-posting-guidelines
status: complete
---
# Step 5: Write article from transcript
**Use this when** the outline, timestamps, and GCT statement are ready (Step 4 complete) and the article body needs to be drafted.
## Inputs
- The cleaned, timestamped transcript and the H2/H3 outline
- The GCT statement and the primary keyword (the customer's phrasing)
- Research notes from Step 4
- The article working doc
## Steps
1. Write INTO the outline, section by section, using the transcript as the source of truth. The video is the experience; the article is its written form — not an AI essay on the same theme.
2. Keep the speaker's voice: first person, their phrasing, their stories, their numbers. If the speaker says "we lost the first three quotes," that line survives — specificity is the E-E-A-T.
3. Never let drafting tools invent claims, statistics, or anecdotes that are not in the video or the verified research notes. Everything stated must be traceable.
4. Place the primary keyword naturally in the first paragraph (the hook work in Step 7 will refine this paragraph — keyword presence is non-negotiable either way).
5. Write short paragraphs (2–4 sentences), active voice, plain language. No AI-fluff phrases — "in today's fast-paced world," "delve," "game-changer" and kin are banned by the guidelines.
6. Weave research in as support, clearly framed ("according to…"), keeping the speaker's first-hand experience as the spine.
7. Expand each section to fully answer its heading's promise — a reader landing on any H2 from search should get a complete answer.
8. Read the draft against the GCT statement once: does it serve the Goal, deliver the Content, speak to the Target? Fix or cut what fails. Update the tracker and hand off to `step-6-write-title-and-headings`.
## Definition of done (QA checklist)
- [ ] Every claim traces to the transcript or cited research — nothing invented
- [ ] First person, speaker's voice and stories preserved (spot-check against video)
- [ ] Primary keyword appears in the first paragraph
- [ ] Short paragraphs, active voice, zero AI-fluff phrases
- [ ] Each H2/H3 section fully answers its heading
- [ ] Linked back to the definitive article and relevant siblings
## Example(s)
- Articles produced for clients like Marko Sipila (HVAC Quote) and Zach Peyton (Superior Fence & Rail) follow this transcript-first drafting method; runs are linked from /blog-posting-guidelines.
- Example needed as a standalone meta-article — run the Meta-Article Prompt after first documented run.
## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5, or a comparable OpenAI/Google model that loops and holds memory) drafts section by section from the transcript, then self-audits the full Definition of done — every claim traceable, keyword in the first paragraph, zero banned fluff phrases — and rewrites until all checks pass, not until it "reads fine." Memory holds the speaker's voice patterns and the banned-phrase list from prior articles, so each draft starts closer to the standard. Log a meta-article example per run.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines (Step 5 of the 18-step SOP)
- Related: /one-minute-video-guide (the source asset), /seo-tree
- Sibling skills, in run order: `step-4-research-edit-add-timestamps-and-outline` → this → `step-6-write-title-and-headings`
ENDstep-6-write-title-and-headings.skill.md — Write an SEO title under 60 characters, a meta description under 160, and descriptive H2/H3 subheadings built on the focus keyword (Blog Posting Guidelines Step 6).
START
---
name: step-6-write-title-and-headings
description: Write an SEO title under 60 characters, a meta description under 160, and descriptive H2/H3 subheadings built on the focus keyword (Blog Posting Guidelines Step 6).
category: Content Factory — Process
stage: Process
definitive_article: /blog-posting-guidelines
status: complete
---
# Step 6: Write title and headings
**Use this when** the article body is drafted (Step 5 complete) and needs its search-facing title, meta description, and final heading pass.
## Inputs
- The drafted article and the GCT statement
- The primary/focus keyword (the customer's phrasing of the question)
- Character counter (RankMath previews these at publish time, but write to spec now)
## Steps
1. Write the SEO title: under 60 characters, containing the focus keyword, promising exactly what the article delivers. The customer's question phrasing usually beats a clever rewrite.
2. Reject clickbait and vague titles — the title must match the Content (GCT honesty test: would the video's speaker stand behind this promise?).
3. Write the meta description: under 160 characters, includes the focus keyword, states the concrete benefit of reading, written as one active-voice sentence or two short ones.
4. Pass over every H2/H3: each must be descriptive enough to stand alone in a table of contents — "How a $1/day budget gets read" beats "Budget."
5. Work the focus keyword and its natural variants into 2–3 headings where they fit honestly; never stuff every heading.
6. Verify heading hierarchy: H2s for major sections, H3s nested beneath, no skipped levels, no headings styled as bold paragraphs.
7. Confirm the H1 (post title) will be the only H1 on the page — headings start at H2 inside the body.
8. Record title and meta in the working doc header for Step 14a (RankMath), update the tracker, and hand off to `step-7-write-hook-and-establish-context`.
## Definition of done (QA checklist)
- [ ] SEO title under 60 characters with the focus keyword
- [ ] Meta description under 160 characters with the focus keyword and a concrete benefit
- [ ] Title promise matches what the article actually delivers
- [ ] Every H2/H3 is descriptive standing alone; hierarchy is clean with no skipped levels
- [ ] Title and meta recorded for the RankMath step
- [ ] Linked back to the definitive article and relevant siblings
## Example(s)
- Title and heading specs are enforced on every run documented at /blog-posting-guidelines and audited later by the Website QA Audit title/meta checks.
- Example needed as a standalone meta-article — run the Meta-Article Prompt after first documented run.
## Run on a persistent agent (Fable 5)
Character counts make this step machine-checkable: a persistent agent (Claude Fable 5, or comparable long-horizon OpenAI/Google models) loops title and meta drafts until the hard specs pass — under 60, under 160, keyword present, promise honest — then walks every heading for hierarchy, never stopping at "close enough." Memory recalls which title patterns worked on past runs, so each new title builds on evidence instead of taste. Close with a logged meta-article example.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines (Step 6 of the 18-step SOP)
- Related: /website-qa-audit (the downstream title/meta audits), /seo-tree
- Sibling skills, in run order: `step-5-write-article-from-transcript` → this → `step-7-write-hook-and-establish-context`
ENDstep-7-write-hook-and-establish-context.skill.md — Write an opening hook that earns the reader's next paragraph — establishing context, relevance, and the focus keyword in the first lines (Blog Posting Guidelines Step 7).
START
---
name: step-7-write-hook-and-establish-context
description: Write an opening hook that earns the reader's next paragraph — establishing context, relevance, and the focus keyword in the first lines (Blog Posting Guidelines Step 7).
category: Content Factory — Process
stage: Process
definitive_article: /blog-posting-guidelines
status: complete
---
# Step 7: Write hook and establish context
**Use this when** title and headings are set (Step 6 complete) and the article's opening must be rebuilt to hook the actual target reader.
## Inputs
- The drafted article with title and headings
- The GCT statement (especially the Targeting line — who is reading and why)
- The focus keyword
- The strongest specific moment from the video (a number, a story beat, a blunt statement)
## Steps
1. Lead with the most concrete thing the video offers: the result, the mistake, the number, the question itself. Specifics hook; generalities bounce.
2. Establish relevance in the first two or three sentences: the target reader should recognize their own situation ("you got three quotes and they're $4,000 apart").
3. Keep the focus keyword in the first paragraph, placed naturally inside the hook — not bolted on.
4. Establish who is speaking and why they have standing within the opening section: name, role, and the first-hand experience behind the answer. This is E-E-A-T, not throat-clearing.
5. Ban the AI-fluff openers outright: no "In today's digital landscape," no rhetorical-question stacks, no dictionary definitions of common words.
6. Set up the article's promise in one line — what the reader will know or be able to do by the end — matching the title's promise exactly.
7. Read the opening aloud. If the first sentence could open a hundred other articles, rewrite it until it could only open this one.
8. Update the tracker ("Step 7 done") and hand off to `step-8-add-photos-and-featured-image`.
## Definition of done (QA checklist)
- [ ] First sentence is specific to this video/story — fails the "could open any article" test
- [ ] Target reader's situation named within the first three sentences
- [ ] Focus keyword present and natural in the first paragraph
- [ ] Speaker's identity and first-hand standing established early
- [ ] No AI-fluff phrases or generic openers anywhere in the intro
- [ ] Linked back to the definitive article and relevant siblings
## Example(s)
- Hook standards are part of every run documented at /blog-posting-guidelines.
- Example needed as a standalone meta-article — run the Meta-Article Prompt after first documented run.
## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5, or a comparable OpenAI/Google model that loops and holds memory) rewrites the opener until it survives every checklist test — a first sentence that could open no other article, the reader's situation named within three sentences, keyword natural — looping until all five Definition-of-done boxes pass, not four. Memory holds the hooks already used across the brand's articles, so no two posts open the same way. Log a meta-article example each run.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines (Step 7 of the 18-step SOP)
- Related: /one-minute-video-guide (the source moment usually IS the hook)
- Sibling skills, in run order: `step-6-write-title-and-headings` → this → `step-8-add-photos-and-featured-image`
ENDstep-8-add-photos-and-featured-image.skill.md — Add real photos — never stock — and set a unique featured image so the article carries visual proof instead of decoration (Blog Posting Guidelines Step 8).
START
---
name: step-8-add-photos-and-featured-image
description: Add real photos — never stock — and set a unique featured image so the article carries visual proof instead of decoration (Blog Posting Guidelines Step 8).
category: Content Factory — Process
stage: Process
definitive_article: /blog-posting-guidelines
status: complete
---
# Step 8: Add photos and featured image
**Use this when** the article text is complete through the hook (Step 7) and needs its imagery before linking and embedding.
## Inputs
- The drafted article
- Real image sources: stills from the source video, client/job-site photos, screenshots of real dashboards or results, event photos from the Content Library
- Image editing/compression tool access
- The brand's WordPress media conventions (file naming, alt text)
## Steps
1. Inventory image needs: every major section should have a relevant visual; no text-only stretch should span a full viewport (per the Website QA Audit content checks).
2. Pull candidates from real sources only — video stills, the client's actual photos, screenshots of the actual work. Stock photography is banned: it signals fake experience and fails the audit.
3. Choose or create a unique featured image for this post. Never reuse another post's featured image; uniqueness is checked at audit.
4. Crop and compress every image for sub-3-second mobile load (web-sized files, not camera originals).
5. Name files descriptively (`marko-sipila-hvac-quote-jobsite.jpg`, not `IMG_2041.jpg`).
6. Write descriptive alt text for every image — what is actually shown, useful to a screen reader, naturally including the keyword only where true.
7. Place images at the sections they evidence; add captions where a sentence of context helps (who, where, what result).
8. Update the tracker ("Step 8 done") and hand off to `step-9-add-internal-links-with-proper-anchor-text`.
## Definition of done (QA checklist)
- [ ] Zero stock images — every photo traceable to the real person, job, or screen
- [ ] Featured image is unique to this post
- [ ] Every image has descriptive alt text
- [ ] Files descriptively named and compressed for mobile speed
- [ ] No full-viewport text-only sections remain
- [ ] Linked back to the definitive article and relevant siblings
## Example(s)
- The no-stock and unique-featured-image rules are enforced on every run at /blog-posting-guidelines and re-verified by /website-qa-audit checks.
- Example needed as a standalone meta-article — run the Meta-Article Prompt after first documented run.
## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5, or comparable OpenAI/Google models that loop and hold memory) inventories every section, pulls real images from the Content Library, writes alt text, compresses, and loops until zero stock, zero missing alt text, and no full-viewport text walls remain. Memory is what makes the uniqueness rule enforceable: the agent remembers every featured image already used, so duplicates get caught before publish, not at audit. Document the run with a meta-article example.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines (Step 8 of the 18-step SOP)
- Related: /website-qa-audit (image and alt-text audits), /content-factory
- Sibling skills, in run order: `step-7-write-hook-and-establish-context` → this → `step-9-add-internal-links-with-proper-anchor-text`
ENDstep-9-add-internal-links-with-proper-anchor-text.skill.md — Insert internal links using the entity-linking decision tree — people to personal sites, companies to company sites, concepts to definitive articles — with descriptive 3–6 word anchors (Blog Posting Guidelines Step 9).
START
---
name: step-9-add-internal-links-with-proper-anchor-text
description: Insert internal links using the entity-linking decision tree — people to personal sites, companies to company sites, concepts to definitive articles — with descriptive 3–6 word anchors (Blog Posting Guidelines Step 9).
category: Content Factory — Process
stage: Process
definitive_article: /blog-posting-guidelines
status: complete
---
# Step 9: Add internal links with proper anchor text
**Use this when** the article text and images are in place (Step 8 complete) and the piece must be wired into the entity graph and SEO Tree.
## Inputs
- The drafted article
- The link-candidate list from Step 4 (related posts, definitive articles, service page)
- The entity-linking decision tree and the site's SEO Tree map
- List of every person, company, and concept mentioned in the article
## Steps
1. List every entity the article mentions: people, companies, and concepts. Each is a link decision, not an afterthought.
2. Apply the decision tree per entity: **people → their personal site** (e.g., a mention of Dennis Yu links to dennisyu.com), **companies → the company site** (Superior Fence & Rail to its own domain), **concepts → the concept's definitive article** (Dollar a Day to /dad, the pipeline to /content-factory).
3. Link UP the SEO Tree: this article (leaf) links to its branch/trunk pages and the relevant service page — at minimum one other post and one money page.
4. Write anchor text of 3–6 descriptive words that say where the link goes ("the Dollar a Day strategy," "Blog Posting Guidelines SOP"). "Click here," "this post," and bare URLs are banned.
5. Place links in body sentences where the entity naturally appears — contextual placement, not a link dump at the end.
6. Link each entity on first meaningful mention only; do not re-link the same target repeatedly.
7. Verify every URL resolves (no drafts, no typos, no redirects to the homepage when a hub exists).
8. Update the tracker ("Step 9 done") and hand off to `step-10-embed-source-video`. (LinkWhisper in Step 14b adds machine-suggested links later; this step is the human/agent judgment pass.)
## Definition of done (QA checklist)
- [ ] Every person, company, and concept mention resolved through the decision tree
- [ ] Article links to ≥1 other post and ≥1 service/money page, upward along the SEO Tree
- [ ] All anchors are 3–6 descriptive words — zero generic anchors
- [ ] Links placed contextually in body copy, first mention only
- [ ] Every link tested and resolving
- [ ] Linked back to the definitive article and relevant siblings
## Example(s)
- The decision tree and anchor standards are documented at /blog-posting-guidelines and in depth at /internal-linking (whose hub ships its own skill file — the model this library copies).
- Example needed as a standalone meta-article — run the Meta-Article Prompt after first documented run.
## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5, or a comparable OpenAI/Google model that loops and holds memory) lists every entity, resolves each through the decision tree, and loops until every anchor is descriptive and every URL actually resolves — one untested link fails the run. Memory compounds the entity-to-URL map with every article processed, so linking gets faster and stays consistent across the site instead of being re-researched per post. Log a meta-article example each run.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines (Step 9 of the 18-step SOP)
- Related: /internal-linking, /entity-linking, /seo-tree, /link-building
- Sibling skills, in run order: `step-8-add-photos-and-featured-image` → this → `step-10-embed-source-video`
ENDuse-descript-underlord-to-remove-filler-words.skill.md — Use Descript's Underlord to strip filler words (uh, um, like, you know) from the video and transcript while preserving natural human cadence.
START
---
name: use-descript-underlord-to-remove-filler-words
description: Use Descript's Underlord to strip filler words (uh, um, like, you know) from the video and transcript while preserving natural human cadence.
category: Content Factory — Process
stage: Process
definitive_article: /blog-posting-guidelines
status: complete
---
# Use Descript Underlord to remove filler words
**Use this when** a transcribed Descript project (Step 2 complete) is headed for clip extraction, YouTube upload, or article writing and the raw speech is filler-heavy.
## Inputs
- The transcribed, speaker-labeled Descript project
- Descript Underlord access
- 10–15 minutes for review — the removals must be checked, not blind-applied
## Steps
1. Open the transcribed project and run Underlord's filler-word removal across the full transcript (targets: uh, um, like, you know, sort of, I mean).
2. Review the flagged removals as a list BEFORE applying. Watch for false positives: "like" as a comparison ("a quote like that") and "you know" as a direct address are real speech, not filler.
3. Apply the approved removals, then play the affected sections and listen for jump cuts — audio that stutters where words were cut needs the edit loosened or smoothed.
4. Protect cadence over cleanliness: a few fillers in an emotional or emphatic moment can stay. Over-scrubbed speech sounds robotic and kills the authenticity the Produce stage was built on.
5. Confirm the cleaned transcript still reads true to the speaker — this version feeds Step 4's editing and Step 5's article drafting.
6. Export/save the cleaned composition so clip extraction (`extract-15-60-second-clips-from-long-form-video`) and the YouTube upload inherit the cleaned cut.
7. Update the Content Library tracker: "Underlord pass done" with a note of anything intentionally left in.
## Definition of done (QA checklist)
- [ ] Filler-word pass run across the entire project
- [ ] Removal list reviewed item-by-item; false positives restored
- [ ] No audible jump cuts on playback of edited sections
- [ ] Speaker still sounds like themselves (cadence check on 2–3 passages)
- [ ] Cleaned composition saved and downstream steps pointed at it
- [ ] Linked back to the definitive article and relevant siblings
## Example(s)
- Filler removal is part of the Descript workflow documented at /blog-posting-guidelines.
- Example needed as a standalone meta-article — run the Meta-Article Prompt after first documented run.
## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5, or comparable OpenAI/Google models that loop and hold memory) reviews the removal list item by item, restores false positives, then loops the playback check until no audible jump cuts remain and the speaker still sounds like themselves — clean-but-robotic fails the checklist. Memory learns each speaker's verbal patterns (when their "like" is real speech, not filler), so review gets sharper every run. Document the pass with a meta-article example.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines (Descript processing within the 18-step SOP)
- Related: /one-minute-video-guide (the authenticity standard that limits over-editing)
- Sibling skills, in run order: `step-2-transcribe-video-using-descript` → this → `step-3-watch-video-and-identify-gct` / `extract-15-60-second-clips-from-long-form-video`
ENDfollow-entity-linking-decision-tree.skill.md — Route every entity mentioned in a piece of content to its correct destination — people to personal sites, companies to company sites, concepts to definitive articles — so links build the entity graph instead of noise.
START
---
name: follow-entity-linking-decision-tree
description: "Route every entity mentioned in a piece of content to its correct destination — people to personal sites, companies to company sites, concepts to definitive articles — so links build the entity graph instead of noise."
category: SEO & Content Architecture
stage: —
definitive_article: /blog-posting-guidelines
status: complete
---
# Follow entity linking decision tree
**Use this when** writing or editing any content that names people, companies, or concepts — which is every piece worth publishing.
## Inputs
- The draft, with every named entity identifiable
- The entity-linking decision tree (/entity-linking)
- Knowledge of which concepts already have definitive articles (the SEO Tree map)
## Steps
1. With the draft in hand, list every entity mentioned: people, companies, concepts and frameworks.
2. Route each by the decision tree: **person** → their personal website; **company** → the company's site; **concept** → its definitive article.
3. Link the first meaningful in-body mention of each entity; do not re-link the same entity on every occurrence.
4. Set the anchor as the entity's actual name or a 3–6 word descriptive phrase — never a generic anchor.
5. If a concept has no definitive article yet, flag it as a gap (a future hub) rather than linking to a weak substitute page — that protects the eventual hub from competition.
6. QA the finished piece: every named entity routed correctly, anchors descriptive, all links in body copy.
## Definition of done (QA checklist)
- [ ] Every entity in the piece routed per the decision tree (person / company / concept)
- [ ] Zero generic anchors; first-mention linking only
- [ ] No concept linked to a non-hub page; missing hubs flagged as gaps
- [ ] Complies with Blog Posting Guidelines (this is Requirement 6 territory)
- [ ] Linked back to the definitive article (/blog-posting-guidelines) and relevant siblings
## Example(s)
- The /entity-linking definitive article is the standalone hub for the decision tree itself; /website-qa-audit carries the matching site-wide check ("Verify entity linking follows decision tree").
- Example needed — run the Meta-Article Prompt (/meta-article-prompt-template) after the next fully-routed article.
## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5 or a comparable OpenAI/Google model) routes every named entity in every draft and loops until zero entities are unrouted and zero anchors generic — and where a concept has no definitive article, it logs the gap rather than settling for a weak substitute link.
Its memory grows an entity → destination table across runs, so routing gets faster, stays consistent, and the gap list feeds the gaps-to-create queue.
Each fully-routed article logs a meta-article example via /meta-article-prompt-template.
See `boil-the-ocean.md` for the full operating principles.
## Definitive article & links
- Hub: /blog-posting-guidelines
- Related: /entity-linking · step-4-create-links-with-proper-anchor-text-and-placement (/internal-linking) · use-proper-anchor-text-3-6-words-descriptive · build-external-backlinks-from-authoritative-sources (/link-building)
END
