Monitors for topic drift - catches when multiple concepts are being explained in detail instead of one focused topic.
This skill ensures blog posts follow the "one topic per post" rule by detecting when writers start explaining sidequests or tangential concepts in detail.
Triggers:
Response:
⚠️ Blog Rule Violation: Multiple Topics
This post is explaining TWO things:
1. [Topic A]
2. [Topic B]
Which one are we writing? The other should be:
- A mention with a link, OR
- A separate post for later
Example:
This post is explaining TWO things:
1. How useEffect cleanup works (main topic)
2. How React's batching algorithm works (sidequest)
Which one are we writing? The batching explanation should be:
- A mention like "React batches updates (more on this later)", OR
- A separate post for later
Triggers:
Response:
⚠️ Blog Rule Violation: No Visual or Code
Every post needs at least one visual or working code snippet.
Suggestions:
- Add a Mermaid diagram for [concept]
- Include working code demonstrating [point]
- Create a visual metaphor for [idea]
Example:
⚠️ Blog Rule Violation: No Visual or Code
Every post needs at least one visual or working code snippet.
Suggestions:
- Add a Mermaid sequence diagram showing the cleanup lifecycle
- Include working code demonstrating the memory leak
- Show a before/after comparison with actual code
Triggers:
Response:
⚠️ Blog Rule Violation: Wrong Length
Current: ~[X] words (X min read)
This is in the awkward middle.
Pick one:
- Small block: Cut to 500-1000 words (focus on ONE thing)
- Brave piece: Expand to 2000+ words (go deep on why this matters)
Example:
⚠️ Blog Rule Violation: Wrong Length
Current: ~1400 words (7 min read)
This is in the awkward middle.
Pick one:
- Small block: Cut to 800 words (just the cleanup pattern)
- Brave piece: Expand to 2000+ words (why React designed it this way, the tradeoffs, alternatives)
Triggers:
Response:
⚠️ Blog Rule Violation: Google-able
Could readers get this from Google's first page?
Test: What unique insight/perspective are you adding?
- Personal experience?
- Counterintuitive discovery?
- Connecting two unrelated ideas?
If none: Why are you writing this?
Example:
⚠️ Blog Rule Violation: Google-able
Could readers get "how to use useEffect" from Google's first page? Yes - it's in React docs.
Test: What unique insight are you adding?
- Personal experience: "I spent 3 hours debugging this exact cleanup bug"
- Counterintuitive discovery: "Cleanup runs AFTER the next render, not before"
- Connecting ideas: "It's the same pattern as database transactions"
Add YOUR angle. Don't rehash the docs.
Triggers:
Response:
⚠️ Blog Rule Violation: Unclear Checkpoint
After reading this, what can someone do/say/understand that they couldn't before?
Current takeaway: [vague or unclear]
Make it specific: "You'll understand WHY [X]" or "You'll be able to [Y]"
Example:
⚠️ Blog Rule Violation: Unclear Checkpoint
After reading this, what can someone do/say/understand that they couldn't before?
Current: "You'll learn about useEffect cleanup"
Make it specific: "You'll understand WHY cleanup runs after the next render and how to avoid the stale closure bug"
Clear rule name, specific issue, actionable suggestion
Triggers when:
Does NOT trigger when:
Triggers when:
Does NOT trigger when:
Triggers when:
Does NOT trigger when:
Triggers when:
Does NOT trigger when:
Scenario 1: Topic drift detected
⚠️ Blog Rule Violation: Multiple Topics
This post is explaining THREE things:
1. useEffect cleanup (main - 600 words)
2. React's commit phase timing (sidequest - 400 words)
3. Closure behavior in JavaScript (sidequest - 300 words)
Pick ONE. The other two should be:
- Brief mentions: "React batches commits (see my other post)"
- Separate posts: "I'll write about closures separately"
Scenario 2: Missing visual detected
⚠️ Blog Rule Violation: No Visual or Code
This is 800 words of prose about async timing. Show it!
Suggestions:
- Timeline diagram: When does cleanup actually run?
- Working code: Minimal reproduction of the bug
- Console.log trace: Show the execution order
Scenario 3: Wrong length detected
⚠️ Blog Rule Violation: Wrong Length
Current: ~1600 words (8 min read)
You're in the awkward middle.
Pick one:
- Small block: Cut to 900 words
- Remove the deep dive into React's scheduler
- Link to that instead
- Brave piece: Expand to 2200+ words
- Add: Why did React design it this way?
- Add: What are the alternatives?
- Add: Tradeoffs and edge cases
Scenario 4: Google-able detected
⚠️ Blog Rule Violation: Google-able
"How to use useEffect hooks" → First 5 Google results cover this.
Your unique angle (buried in paragraph 8):
"I discovered cleanup runs AFTER the next render, not before"
LEAD WITH THAT. Make the post about the surprising timing, not the basics.