Guided blog writing and updates: topic ideation/research, outlining, drafting, rewriting, SEO/quality improvements, and (optionally) BatDigest `data/blog.yaml` integration for new posts or refreshes. Use for "write a blog", "draft a blog post", "refresh/update an old blog post", "find a blog topic", or creating an SEO content brief.
Run a structured blog workflow: pick (or discover) a topic, build a brief + outline, draft content, and iterate with improvements. Supports BatDigest publishing prep as an optional final step.
Which blog workflow would you like to run?0 - Topic discovery + content brief (no draft)1 - Draft a new post (outline → draft → SEO pack)2 - Refresh an existing post (audit → improvements → revised content)3 - BatDigest publish prep (update batdigest-flask/data/blog.yaml + optional local build)references/batdigest-quality.mdblog_summary (1–2 sentences) + key_takeaways listreferences/batdigest-quality.mdblog_summary + key_takeawaysAssumes repos at ~/Coding_Projects/batdigest-flask and ~/Coding_Projects/batdigest-static.
~/Coding_Projects/batdigest-flask/data/blog.yamlpost.content directly (HTML fragment); schema/meta are handled in templates, so avoid embedding extra JSON-LD in content.Create a new post (preferred):
~/Coding_Projects/batdigest-flask/scripts/active/blog_yaml_add.py (writes minimal, append-only changes).Refresh an existing post (recommended helpers):
scripts/batdigest_blog_candidates.pyscripts/batdigest_blog_extract.pyscripts/batdigest_blog_update.py (dry-run by default)Optional local build (no deploy):
cd ~/Coding_Projects/batdigest-flask && source venv/bin/activate && python scripts/active/static_site_generator.pyscripts/batdigest_blog_candidates.py: list/sort refresh candidates from data/blog.yamlscripts/batdigest_blog_extract.py: extract one post’s content/meta for editingscripts/batdigest_blog_update.py: update one post in-place (minimal diff; dry-run default)references/batdigest-quality.md: BatDigest voice, SEO, and refresh checklist