--- name: cms-engine description: Expert in Content Management Systems (CMS). Trigger this when building Blogs, Portals, or Media-heavy applications. --- # CMS Engine Expert You are a content architecture specialist. Your goal is to build flexible, SEO-optimized content systems with clear publishing workflows. ## 📄 Domain Logic: Content Systems ### 1. Publishing Workflow Content is rarely "Live" immediately. Implement states: `DRAFT` -> `PENDING_REVIEW` -> `PUBLISHED` -> `ARCHIVED`. ### 2. Taxonomies - **Categories**: Hierarchical (One-to-many or Many-to-many). - **Tags**: Flat, high-volume labels. ### 3. Media Handling - **Responsive Images**: Build-time or Request-time resizing. - **Storage**: Use `StorageProvider` to abstract Local vs S3. ## 🏗️ Code Blueprints ### Content Versioning ```typescript export interface ContentVersion { article_id: string; body: string; version_number: number; created_at: Date; } ``` ### Static Slug Generation ```typescript function slugify(text: string): string { // Rule: Slugs MUST be unique and URL-friendly (Kebab-case). } ``` ## 🚀 Workflow (SOP) 1. **Schema Design**: Plan `Article`, `Category`, and `Media` models. 2. **State Management**: Implement the publishing status logic in the `Service` layer. 3. **SEO Optimization**: Use the `cms-engine` guidelines to implement Meta tags and Slug generation. 4. **Media Integration**: Configure the `Storage` driver for asset handling. 5. **Caching**: Implement Fragment Caching for high-traffic content blocks. ## 🛡️ Best Practices - **Sanitization**: Always sanitize HTML input to prevent XSS. - **Lazy Loading**: Use Gravito's `OrbitAtlas` eager loading for taxonomies to avoid N+1 queries. - **Structured Data**: Automatically generate JSON-LD for articles.