# New Post To-Do Template

**Last Updated:** 2026-03-23

Reusable to-do template for new blog posts. Copy and adapt for each post.

**Jump:** [Checklist](#checklist) · [References](#references) · [CONTENT_SYSTEM_INDEX.md](../../CONTENT_SYSTEM_INDEX.md)

<a id="checklist"></a>

## Checklist

1. **Backup** – `python3 scripts/blog/backup-blog-content.py --manual`
2. **Scaffold + pipeline** – `create-new-blog-post.php` → `run-new-post-pipeline.php --post=slug --category=lexikon|ratgeber`
3. **Validate competitor completeness (Firecrawl)** – `php v2/scripts/blog/validate-blog-competitor-data-completeness.php --post=slug --category=lexikon --top=5`
4. **Firecrawl:** Pipeline auto-remediates sparse top 7. For 3k plan: enable proactive in firecrawl-api-key.php. Budget: 5–15 credits/post.
5. **Serper MCP (PAA)** – Search primary keyword for PAA, featured snippets
6. **SERP review (30 min)** – Browser review per [SERP_REVIEW_CHECKLIST.md](../../SERP_REVIEW_CHECKLIST.md)
7. **Outline + section briefs** – CONTENT_OUTLINE.md (**100%** competitive-depth target); **default:** `synthesize-outline-scaffold.php` → merge `data/outline-scaffold.generated.md` when `competitive-depth-analysis.md` exists (skip only with reason in CREATION_NOTES); `generate-section-briefs.php`
8. **Outline gate** – `make blog-outline-gate POST=slug CAT=lexikon` (or equivalent PHP validators; `--strict-evidence` for new posts)
9. **Content creation** – Write via `update-post-content.php`; `compare-content-to-competitors.php` (use `--strict` before finalize if policy requires). **Apply + validate:** `make blog-apply-validate POST=slug CAT=lexikon HTML=docs/content/blog/posts/lexikon/slug/content-draft.html` (or `--strict` variant before publish).
10. **Post-body validation** – `make blog-post-validate POST=slug CAT=lexikon` (section-depth, completeness, geo, AEO capsules, FAQ, overlap, validate-new-post --strict)
11. **Pre-publish** – `make blog-post-validate-strict POST=slug CAT=lexikon`. **FAQ-only edits:** `make blog-post-validate-faq POST=slug CAT=lexikon` then strict if body changed. [BLOG_WORKFLOW_EFFICIENCY.md](../../BLOG_WORKFLOW_EFFICIENCY.md)

<a id="references"></a>

## References

- [BLOG_WORKFLOW_EFFICIENCY.md](../../BLOG_WORKFLOW_EFFICIENCY.md)
- [CONTENT_SYSTEM_INDEX.md](../../CONTENT_SYSTEM_INDEX.md)
- [LEXIKON_POST_CREATION_TODO_TEMPLATE.md](LEXIKON_POST_CREATION_TODO_TEMPLATE.md) (full lexikon micro-checklist)
- [LEXIKON_NEW_POST_CHECKLIST.md](../../lexikon-inventory/LEXIKON_NEW_POST_CHECKLIST.md)
- [BLOG_POST_IMPROVEMENT_PROCESS.md](../../BLOG_POST_IMPROVEMENT_PROCESS.md)
- [blog-new-post-creation.mdc](../../../../.cursor/rules/blog-new-post-creation.mdc)
