Automated Blog System with GitHub Actions
Building a fully automated blog system that posts and moderates content using GitHub Actions, Copilot, and Dependabot.
Welcome to the lab where AI-powered automation meets content creation. This page showcases the complete automated blogging system that powers GrumpiBloggedโa sophisticated infrastructure that generates, validates, and publishes blog posts with zero manual intervention.
Purpose: Prevent duplicate posts and maintain context across conversations
Components:
should_post.py checks every post before publishingFiles:
scripts/memory_manager.py (300 lines) - Core memory managementscripts/should_post.py (70 lines) - Duplicate detection & validationscripts/append_memory.py (60 lines) - Memory updaterdata/memory/ollama-pulse_memory.json - Ollama Pulse historydata/memory/ai-research-daily_memory.json - AI Research Daily historyPurpose: Create interactive visualizations embedded in blog posts
Capabilities:
Technology: Plotly 5.18+ for interactive HTML/JavaScript charts
Files:
scripts/chart_generator.py (300 lines) - Chart generation engineExample Output:
<div id="tag-trend-chart"></div>
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<script>
// Interactive chart embedded directly in markdown
</script>
Purpose: Inject persona-specific humor, anecdotes, and cultural references
6 Personas:
Content Pool:
Smart Selection:
Files:
scripts/personality.py (250 lines) - Personality enginePurpose: Structured, consistent blog post generation
Templates:
templates/ollama_pulse_post.j2 - Ollama Pulse structuretemplates/ai_research_post.j2 - AI Research Daily structureFeatures:
Technology: Jinja2 3.1+ template engine
Purpose: Professional-grade content enhancement with zero manual intervention
Components:
Source-Agnostic, Evidence-Weighted Verification
Four-Phase System:
AI Model: deepseek-v3.1:671b-cloud (best reasoning model)
Files:
scripts/readability.py (300 lines) - Readability metricsscripts/seo_optimizer.py (300 lines) - SEO enhancementscripts/grammar_checker.py (300 lines) - Grammar & stylescripts/fact_checker.py (614 lines) - SAEV protocolscripts/ai_editor.py (300 lines) - OrchestratorPerformance:
Integration:
Purpose: Improve readability for posts with long code examples
Features:
Technology: Vanilla JavaScript + CSS
Files:
docs/assets/js/collapsible-code.js - Auto-wrapping logicdocs/assets/css/style.scss - Styling and animationsFile: .github/workflows/ollama-pulse-post.yml
Pipeline:
generate_daily_blog.py)should_post.py)docs/_posts/ (if validation passes)append_memory.py)Smart Scheduling:
docs/_posts/ directory)File: .github/workflows/daily-learning-post.yml
Pipeline:
generate_lab_blog.py)should_post.py)docs/_posts/ (if validation passes)append_memory.py)Time Preference:
File: .github/workflows/jekyll-gh-pages.yml
Pipeline:
docs/ directory)Result: Static site at https://grumpified-oggvct.github.io/GrumpiBlogged/
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ GitHub Actions (Cloud) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ Ollama Pulse โ โ AI Research โ โ
โ โ Workflow โ โ Daily โ โ
โ โโโโโโโโฌโโโโโโโโ โโโโโโโโฌโโโโโโโโ โ
โ โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโค โ
โ โ โ โ
โ โผ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Python Generation Scripts โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ
โ โ โข generate_daily_blog.py โ โ
โ โ โข generate_lab_blog.py โ โ
โ โ โข memory_manager.py โ โ
โ โ โข chart_generator.py โ โ
โ โ โข personality.py โ โ
โ โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Validation & Memory โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ
โ โ โข should_post.py (duplicate) โ โ
โ โ โข append_memory.py (tracking) โ โ
โ โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Markdown Post Generation โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ
โ โ โข Jinja2 templates โ โ
โ โ โข Plotly charts (HTML/JS) โ โ
โ โ โข Persona-specific content โ โ
โ โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Git Commit & Push โ โ
โ โ (docs/_posts/*.md) โ โ
โ โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Jekyll Build (GitHub) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โข Markdown โ HTML conversion โ
โ โข Theme application (Midnight + custom SCSS) โ
โ โข Static site generation โ
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ GitHub Pages (Static Hosting) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โข Serves HTML/CSS/JS โ
โ โข Interactive Plotly charts โ
โ โข Amber/Crimson visual differentiation โ
โ โข Dark theme with accent colors โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Before Enhancement: โญโญโญโญ (4/5 stars)
After Enhancement: โญโญโญโญโญ (5/5 stars)
All implementation details, code, and documentation available in the repository:
Key Documentation Files:
COMPLETE_IMPLEMENTATION_SUMMARY.md - Full system overviewMEMORY_SYSTEM_IMPLEMENTATION.md - Memory system guideQUICK_START_GUIDE.md - 5-minute setupNEXT_THREAD_HANDOFF.md - Integration roadmapBuilding a fully automated blog system that posts and moderates content using GitHub Actions, Copilot, and Dependabot.