mirror of
https://github.com/ReScienceLab/opc-skills.git
synced 2026-09-14 18:03:27 +08:00
5427b1e5c8
* feat(blog): add Ralph autonomous agent loop tutorial for solopreneurs Add comprehensive tutorial on using Ralph, an autonomous AI agent loop with 7.9k GitHub stars, to build MVPs automatically. Includes real case study (SaaS dashboard in 24 hours), OPC Skills integration, step-by-step setup guide, and 10 GEO-optimized FAQ questions. * feat(scripts): add blog validation and creation tools Add comprehensive blog post management tools: - create-blog.py: Validate, check, and create blog posts - BLOG_GUIDELINES.md: Complete documentation for blog best practices Features: - Validate blog.json structure and required fields - Check markdown content quality (word count, headings, links) - Detect missing SEO/GEO optimization (keywords, FAQs, citations) - Create new blog post templates interactively * feat(workflows): add fast-track blog publishing with auto-merge Add automated blog publishing workflow to reduce time-to-live from 2+ days to 6 minutes: New workflow: - PR directly to main with 'blog-post' label - Auto-validates blog.json and markdown - Auto-approves and auto-merges if validation passes - Deploys to Cloudflare Workers automatically Documentation: - BLOG_PUBLISHING.md: Complete guide with 5 different publishing strategies - Comparison of workflows (Git Flow vs Fast-Track) - Implementation checklist and usage examples This allows blog posts to bypass develop branch while maintaining quality through automated validation.
7.1 KiB
7.1 KiB
Blog Post Guidelines & Best Practices
This document outlines the best practices for creating high-quality blog posts for OPC Skills.
Quick Start
# Validate all blog posts
python3 scripts/create-blog.py validate
# Check specific post
python3 scripts/create-blog.py check ralph-autonomous-agent-loop
# Create new blog post template
python3 scripts/create-blog.py new
Blog Creation Workflow
1. Create Content First
Option A: Manual Creation
- Write content in any editor (Google Docs, Notion, etc.)
- Convert to markdown
- Add to
website/blog/posts/<slug>.md
Option B: Use Template Generator
python3 scripts/create-blog.py new
2. Add Metadata to blog.json
Add entry at position 0 (newest first) in website/blog/blog.json:
{
"slug": "your-post-slug",
"title": "Your Post Title",
"description": "1-2 sentence summary with key metrics",
"date": "2026-01-26",
"dateModified": "2026-01-26",
"author": "OPC Team",
"category": "Tutorial",
"tags": ["tag1", "tag2", "tag3"],
"readTime": "9 min",
"keywords": ["keyword1", "keyword2", ...],
"image": "https://opc.dev/opc-banner.png",
"schema": { ... },
"faq": [ ... ],
"citations": [ ... ]
}
3. Validate
# Validate metadata
python3 scripts/create-blog.py validate
# Check content quality
python3 scripts/create-blog.py check your-post-slug
4. Create PR
git checkout -b feature/blog/your-post-slug
git add website/blog/posts/your-post-slug.md website/blog/blog.json
git commit -m "feat(blog): add [topic] tutorial/case study"
git push -u origin feature/blog/your-post-slug
gh pr create --base develop --head feature/blog/your-post-slug
Content Quality Standards
Word Count
- Minimum: 2,000 words
- Recommended: 2,500-4,000 words
- Tutorial/Guide: 3,000+ words
- Case Study: 2,000-2,500 words
Structure Requirements
✅ Must Have:
- 1 H1 heading (title only)
- 8-12 H2 sections
- TL;DR section (100-150 words)
- FAQ section with 5-10 questions
- Further Reading section with internal links
✅ Should Have:
- Tables for comparisons
- Code blocks with syntax highlighting
- Real examples and metrics
- Step-by-step workflows
- Visual hierarchy (H2, H3, H4)
SEO/GEO Optimization
Keywords (15+ required)
- 3-5 primary keywords (high search volume)
- 10-15 long-tail keywords (specific phrases)
- Include in: title, description, H2 headings, first 200 words
Example:
"keywords": [
"build MVP automatically",
"solopreneur MVP builder",
"Ralph AI tutorial",
"autonomous AI agent loop",
"PRD to code automatically",
...
]
FAQ Section (5-10 questions)
- Answer common search queries
- Optimize for voice search ("How do I...", "What is...")
- 50-150 word answers
- Include keywords naturally
Internal Links (3-5 minimum)
- Link to related OPC blog posts
- Link to skill pages
- Use descriptive anchor text
External Citations (3-6 minimum)
- Link to authoritative sources
- Include GitHub repos, official docs
- Add to both markdown content AND citations array
Schema.org Markup
Required schema types:
BlogPosting(main content)- FAQs embedded in BlogPosting
"schema": {
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Post title",
"description": "Post description",
"author": { "@type": "Organization", "name": "OPC Team", "url": "https://opc.dev" },
"datePublished": "2026-01-26",
"dateModified": "2026-01-26",
"publisher": { ... },
"image": "https://opc.dev/opc-banner.png",
"mainEntityOfPage": "https://opc.dev/blog/slug",
"keywords": "comma, separated, keywords",
"articleSection": "Category",
"wordCount": 2900
}
Content Templates
Tutorial Post Template
# How to [Do Something]: [Benefit/Outcome]
*By OPC Team | Date | X min read*
## TL;DR
[100-150 word summary with key metrics]
---
## The Problem: [Pain Point]
[Context and why this matters - 250 words]
---
## What is [Tool/Concept]?
[Explanation - 300 words]
---
## How It Works: Step-by-Step
[Detailed explanation with diagrams/code - 400 words]
---
## Real Example: [Case Study]
[Concrete example with metrics - 400 words]
---
## Getting Started
[Step-by-step tutorial - 300 words]
---
## Comparison Table
| Feature | Traditional | Our Approach |
|---------|------------|--------------|
| ... | ... | ... |
---
## Common Issues & Debugging
[Troubleshooting guide - 200 words]
---
## Further Reading
- [Link to related post 1](/blog/post-1)
- [Link to related post 2](/blog/post-2)
---
## Frequently Asked Questions
### How do I [question]?
[Answer - 50-100 words]
### What is [question]?
[Answer - 50-100 words]
[5-10 total questions]
---
*Questions? [GitHub](https://github.com/ReScienceLab/opc-skills/issues)*
Case Study Template
# How [Tool] Saved Me $X on [Task]
*By OPC Team | Date | X min read*
## TL;DR
[Summary with specific metrics]
---
## The Challenge
[Problem description]
---
## The Solution
[What we used]
---
## Step-by-Step Workflow
[Actual steps taken]
---
## Results
- Metric 1
- Metric 2
- Metric 3
---
## Key Learnings
[Insights gained]
---
## Try It Yourself
[How readers can replicate]
---
## Further Reading
[Links]
---
## FAQ
[Questions]
Common Mistakes to Avoid
❌ Don't:
- Write less than 2,000 words (poor SEO)
- Skip the FAQ section (missing GEO opportunity)
- Use generic keywords (low search intent)
- Forget internal links (lost SEO juice)
- Miss schema.org markup (no rich results)
- Use vague metrics ("saves time" vs "saves 50%")
- Skip validation before PR
✅ Do:
- Include real numbers and metrics
- Write actionable content
- Add comparison tables
- Include code examples
- Link to 3-5 related posts
- Optimize for AI search engines (Perplexity, ChatGPT)
- Run validation script
Validation Checklist
Before creating PR, verify:
python3 scripts/create-blog.py validatepassespython3 scripts/create-blog.py check <slug>shows no errors- Word count > 2,000
- 5-10 FAQ questions
- 10+ keywords
- 3+ internal links
- 3+ external citations
- Schema.org markup complete
- Tables for comparisons
- Code blocks formatted
- Reading time estimate accurate
Automation Available
Current Scripts
| Script | Purpose | Usage |
|---|---|---|
create-blog.py validate |
Validate all posts | python3 scripts/create-blog.py validate |
create-blog.py check |
Check specific post | python3 scripts/create-blog.py check <slug> |
create-blog.py new |
Generate template | python3 scripts/create-blog.py new |
Recommended Additions
Future improvements (contributions welcome):
- Pre-commit hook - Auto-validate on commit
- GitHub Action - Validate on PR
- Link checker - Find broken links
- Image optimizer - Compress images
- Preview generator - Create OG images
- SEO scorer - Rate SEO quality
- Readability checker - Flesch-Kincaid score
Questions?
- Check existing posts:
website/blog/posts/ - Review blog.json:
website/blog/blog.json - Ask on GitHub: https://github.com/ReScienceLab/opc-skills/issues