Articles now have an explicit draft lifecycle in the shared Post runtime, so incomplete work is editable by the author without leaking into the public blog or sitemap.
- `src/app/api/articles/route.ts`
- `src/app/api/articles/[articleId]/route.ts`
- `src/app/app/articles/**`