diff --git a/Igny8-phase-2-plan.md b/Igny8-phase-2-plan.md
new file mode 100644
index 00000000..e7f3e42f
--- /dev/null
+++ b/Igny8-phase-2-plan.md
@@ -0,0 +1,1711 @@
+✅ IGNY8 SITE BUILDER – Full Implementation Document
+Module 1 of 5
+Status: Detailed Technical Specification
+Container: igny8_site_builder_frontend (React/Vite)
+Backend dependency: IGNY8 App (Django API)
+Integration: Site definitions → IGNY8 Sites container
+________________________________________
+1. PURPOSE & POSITION IN SYSTEM
+The IGNY8 Site Builder is the AI-driven site creation system inside the IGNY8 ecosystem.
+It enables users to generate:
+• Blog sites
+• Company sites
+• Ecommerce sites
+using IGNY8’s existing:
+• Keyword → Cluster → Ideas → Writer → Image pipelines
+• User accounts, tenants, sites
+• Branding, colors, typography
+• SEO structures and strategies
+The builder lives inside the IGNY8 App, but runs in a separate frontend container because it:
+• Uses a different router
+• Requires live preview
+• Needs its own static build
+• Must not interfere with the dashboard UI
+________________________________________
+2. HIGH-LEVEL FLOW
+User → Builder Wizard → Structure Definition → AI Page Generation → Preview → Publish to IGNY8 Sites
+Backend participation:
+IGNY8 Backend:
+- Receives builder config
+- Generates site structure JSON
+- Generates page content via Writer
+- Generates image prompts + images
+- Stores site definitions in DB
+- Provides APIs to fetch site data
+Renderer participation:
+IGNY8 Sites Container:
+- Receives final site definition
+- Builds marketing + client sites
+- Serves live sites publicly
+________________________________________
+3. CORE FEATURES
+1. Wizard Interface
+2. AI-Generated Site Structure
+3. Page Templates + Blocks
+4. Preview Renderer
+5. Site Settings Management
+6. Deploy to “IGNY8 Sites”
+7. Regeneration per section or page
+8. Full integration with Planner/Writer/Image modules
+9. Multi-tenant and multi-site support
+________________________________________
+4. FRONTEND ARCHITECTURE (Site Builder Container)
+Folder Layout
+/site-builder-frontend/
+ src/
+ pages/
+ wizard/
+ preview/
+ dashboard/
+ components/
+ layout/
+ blocks/
+ forms/
+ preview-canvas/
+ state/
+ builderStore.ts (Zustand)
+ siteDefinitionStore.ts
+ api/
+ builder.api.ts
+ sites.api.ts
+ utils/
+ validation.ts
+ templates.ts
+ config/
+ themePresets.ts
+ siteTypes.ts
+Required Libraries
+• React
+• Vite
+• Zustand
+• React Router
+• Tailwind
+• ShadCN for UI
+• Toast + Modal system (shared with main app)
+• Monaco editor (optional for raw JSON editing)
+• CodeMirror (optional for templates)
+• Markdown/HTML parser for previews
+________________________________________
+5. BACKEND ARCHITECTURE (Inside IGNY8 App)
+New Module
+Add to:
+/backend/igny8_core/modules/site_builder/
+Files:
+models.py
+serializers.py
+views.py
+generator.py
+structure.py
+deployment.py
+validations.py
+New Django Models
+1. SiteBlueprint
+Stores AI-generated site structure.
+Fields:
+• tenant
+• site
+• config_json (wizard choices)
+• structure_json (pages, blocks, menus)
+• status (draft, generating, ready)
+• created_at, updated_at
+2. PageBlueprint
+Stores individual page definitions.
+• site_blueprint
+• slug
+• type (home, about, blog-index, post, ecommerce, etc.)
+• blocks_json
+• status
+3. DeploymentRecord
+Tracks deployment to IGNY8 Sites renderer.
+• site_blueprint
+• version
+• status
+• build_url
+• deployed_at
+API Endpoints
+Base route:
+/api/v1/site-builder/
+Endpoints:
+POST /wizard/start/ → create initial blueprint
+POST /wizard/structure/ → AI structure generation
+POST /wizard/generate-pages/ → generate all page content
+POST /wizard/preview/ → return preview JSON
+POST /deploy/ → deploy to IGNY8 Sites
+GET /blueprints/{id}/ → fetch blueprint
+GET /page/{id}/ → fetch page
+PATCH /page/{id}/regenerate/ → regenerate single page
+Uses Planner/Writer/Image pipelines internally:
+• cluster data
+• ideas
+• image prompts
+• images
+• content generation rules
+All credit usage is logged through the IGNY8 billing module.
+________________________________________
+6. AI INTEGRATION LOGIC
+Phase 1: Site Structure Generation
+Prompt uses:
+• Business summary
+• Site type
+• Objectives
+• Industry sector (from Planner)
+• Cluster summaries
+• IGNY8 layout rules
+Outputs:
+• page list
+• sections per page
+• block-level metadata
+• SEO structure (titles, slugs, meta)
+Phase 2: Page Content Generation
+Uses Writer (existing code) but wrapped for:
+• non-blog pages
+• company pages
+• ecommerce pages
+• hero sections
+• feature sections
+• contact pages
+Phase 3: Image Prompt Generation
+Reuses your Thinker module’s image prompt extraction.
+Phase 4: Deploy
+Uploads:
+• JSON site definition
+• assets
+• images
+To IGNY8 Sites container.
+________________________________________
+7. PREVIEW SYSTEM (In Builder Container)
+• Builder renders JSON-driven pages using reusable components
+• Each block component reads from structure JSON
+• Preview uses a local "fake" renderer identical to the real IGNY8 Sites renderer
+Preview path:
+/preview?page=home
+State:
+• All content stored in siteDefinitionStore
+• Live re-render on edit
+________________________________________
+8. DEPLOYMENT TO IGNY8 SITES
+Builder → Backend → Sites container
+Steps:
+1. Builder sends POST /deploy/
+2. Backend converts blueprints → renderer schema
+3. Backend uploads files to:
+o /igny8-sites/clients/{site-id}/v{version}/
+4. Sites container builds static output (if needed)
+5. Caddy routes:
+o clientdomain.com → site folder
+o mysite.stuys.com → site folder
+________________________________________
+9. MULTI-TENANCY
+All builder blueprints must respect:
+• Tenant ID
+• Site ID
+• Permissions
+• Credit limits
+So that each user can generate unlimited sites without conflict.
+________________________________________
+10. EXECUTION PHASES
+Phase 0 — Setup
+• New Docker container
+• New repo folder
+• Domain: builder.igny8.com
+• Vite + Tailwind environment
+Phase 1 — Wizard
+• Site type selection
+• Business brief
+• Objectives
+• Sector selection
+• Style presets (colors, fonts)
+Phase 2 — Structure Generation
+• Server-side AI logic
+• Create SiteBlueprint and PageBlueprint models
+• Store structure JSON
+Phase 3 — Page Generation
+• Generate content via Writer
+• Extract image prompts
+• Generate images
+• Populate blueprint pages
+Phase 4 — Preview
+• Render blueprint JSON
+• Allow editing
+• Regenerate single sections
+Phase 5 — Deploy to IGNY8 Sites
+• Convert blueprint to renderer schema
+• Push site version
+• Done
+________________________________________
+11. DELIVERABLES CHECKLIST
+Backend
+• Models (3)
+• Endpoints (7)
+• Page generator wrapper
+• Structure generator
+• Deployment engine
+• Permissions + credit usage
+Frontend (Builder)
+• Wizard flow (Step-based)
+• Preview renderer
+• Page/block components
+• JSON editing tools
+• State management (Zustand)
+• Publish/deploy dialog
+Integration
+• Writer function reuse
+• Image generator reuse
+• Thinker prompts reuse
+• Renderer (Sites container) integration
+________________________________________
+
+✅ IGNY8 SITES (Renderer + Marketing) – Full Implementation Document
+Module 2 of 5
+Container: igny8_sites_frontend
+Purpose: Host igny8.com + all client websites generated by IGNY8 Site Builder
+Integration: Builder → Backend → Renderer
+Type: Static/React rendering & hosting layer
+________________________________________
+1. PURPOSE & ROLE IN THE TOTAL SYSTEM
+IGNY8 Sites is the public website hosting engine for:
+1. Marketing Website (igny8.com)
+2. All Stuys/IGNY8-generated client sites
+3. Any public output via IGNY8 Site Builder
+It consolidates everything into one frontend container equal to:
+• Webflow’s published sites
+• Wix’s live sites
+• Framer’s publishing engine
+• Vercel’s multi-project host
+IGNY8 Sites is NOT tied to the IGNY8 App UI or dashboard.
+It is a separate rendering system whose only job is:
+READ site JSON → RENDER → SERVE PUBLIC WEBSITE
+________________________________________
+2. FINAL ARCHITECTURAL IDENTITY
+✔ Dedicated container
+igny8_sites_frontend
+✔ Serves multiple domains
+• Main domain: igny8.com
+• Builder preview domains
+• Client custom domains
+✔ Uses static generation + dynamic JSON fetch
+• React/Vite or Next.js (recommended)
+• Loads site definition JSON at runtime
+• Renders pages using block components
+✔ Compatible with:
+• SEO
+• Caddy routing
+• Multi-site deployments
+• Cached CDN delivery
+________________________________________
+3. HIGH-LEVEL PIPELINE
+Builder → Backend Storage → IGNY8 Sites Renderer → Caddy Routing → Public Site
+Detailed steps:
+1. User builds site via IGNY8 Site Builder
+2. Backend stores:
+o SiteBlueprint
+o PageBlueprints
+o Images
+3. Backend transforms blueprint JSON → Renderer Schema
+4. Renderer receives versioned site folder:
+5. /clients/{site-id}/v1/
+6. site.json
+7. pages/
+8. images/
+9. assets/
+10. Caddy routes:
+o clientdomain.com → folder
+o mysite.igny8.com → folder
+o igny8.com → marketing folder
+________________________________________
+4. FOLDER + FILE STRUCTURE (Renderer Repo)
+/igny8-sites/
+ marketing/ (igny8.com)
+ index.html
+ assets/
+ static/
+ ...
+
+ clients/
+ 001/
+ v1/
+ site.json
+ pages/
+ home.json
+ about.json
+ contact.json
+ blog-index.json
+ blog-post-1.json
+ assets/
+ images/
+ hero.webp
+ product1.webp
+ seo/
+ sitemap.xml
+ robots.txt
+
+ 002/
+ v3/
+ ...
+
+ src/
+ renderer/
+ index.html
+ main.tsx
+ router.tsx
+ components/
+ Layout/
+ Blocks/
+ UI/
+ loaders/
+ loadSiteDefinition.ts
+ utils/
+ resolveRoutes.ts
+ mergeTheme.ts
+ hooks/
+ useSiteVersion.ts
+ usePageData.ts
+ config/
+ themes/
+ block-schema/
+ seo/
+ pages/
+ [dynamic Next.js or React Router structure]
+
+ Dockerfile
+ vite.config.js or next.config.js
+Renderer template uses:
+• React 18
+• React Router / Next.js (recommended for SEO)
+• Tailwind
+• ShadCN/UI
+• File-based component system
+________________________________________
+5. RENDERER LOGIC
+A. Load Site Definition
+GET /clients/{siteId}/{version}/site.json
+Includes:
+• Global theme
+• Typography
+• Colors
+• Navigation
+• Footer layout
+• Page map
+• SEO settings
+B. Load Page Definition
+GET /clients/{siteId}/{version}/pages/{slug}.json
+Contains:
+• Page name
+• Path
+• Blocks array (json schema)
+• SEO meta
+• Image references
+• Dynamic content (blog posts etc.)
+C. Render Blocks
+Each block has a type:
+{
+ type: "hero",
+ props: {...}
+}
+Mapped to component:
+
+Blocks library:
+• Hero
+• Features
+• Services
+• Product grid
+• Stats
+• Testimonials
+• Blog list
+• Contact form
+• Footer
+________________________________________
+6. MARKETING WEBSITE (igny8.com)
+IGNY8 Sites will host your marketing website under:
+/igny8-sites/marketing/
+Upgradation path:
+• Controlled by the same block/renderer architecture
+• Designed using IGNY8 Sites component library
+• Built with same visual system as client sites
+• Easily editable and extensible
+This unifies your branding across all layers.
+________________________________________
+7. DEPLOYMENT MECHANISM
+A. Builder triggers deploy → Backend pushes new version
+Backend stores:
+/clients/{site-id}/v{n}/site.json
+/pages/
+assets/
+Renderer automatically detects new version at runtime.
+B. Caddy routing rules
+Routes:
+# Marketing
+igny8.com → /igny8-sites/marketing/
+
+# Client sites
+mysalon.igny8.com → /clients/342/v4/
+amazingcars.com → /clients/417/v2/
+How Caddy resolves it:
+Use:
+• reverse_proxy for dynamic parts
+• file_server for static
+• try_files for routing
+________________________________________
+8. MULTI-TENANCY LOGIC
+Each site belongs to:
+• Tenant
+• Optional domain
+• Site ID
+• Version number
+Backend sets:
+siteId = uuid
+version = incremental
+Renderer resolves folder path:
+/clients/{siteId}/v{version}/
+Caddy aliases domain → correct folder
+________________________________________
+9. SEO FEATURES
+Renderer handles:
+• Meta tags
+• OpenGraph
+• Breadcrumb analysis
+• Article schema
+• LocalBusiness schema
+• Product schema
+• Blog posting schema
+• Sitemap generation
+• robots.txt per site
+Backend provides SEO JSON per page.
+Renderer applies:
+
{seo.title}
+
+
+________________________________________
+10. RUNTIME REQUIREMENTS
+• Caddy for multi-domain routing
+• Local volume for sites storage
+• Container-level static serving
+• High caching
+• SSR optional with Next.js
+________________________________________
+11. DELIVERABLES CHECKLIST
+Renderer Container
+• Dockerfile
+• Vite/Next.js setup
+• Component library
+• Block engine
+• Theming system
+• Page renderer
+• SEO engine
+• Custom domain resolver
+• Site version resolver
+• Error screens
+Backend Module
+• DeploymentRecord model
+• Renderer schema converter
+• Static asset uploader
+• Version manager
+• Caddy integration hooks
+• Multi-site registry
+Builder Integration
+• Deploy button → triggers new version
+• Version check → preview update
+• Domain management
+• Rebuild capability
+________________________________________
+12. EXECUTION PHASES
+Phase 1
+• Renderer skeleton
+• Routing + dynamic loading
+• Marketing home → Functional
+• Basic block engine
+Phase 2
+• Full component library
+• SEO engine
+• Theming system
+Phase 3
+• Multi-site deployment system
+• Versioned folder architecture
+• Page types (home, about, blog, ecom)
+Phase 4
+• Custom domain mapping
+• Caddy rule automation
+Phase 5
+• Full launch + integration with Site Builder
+________________________________________
+
+✅ IGNY8 WORDPRESS PLUGIN – Full Implementation Document
+Module 3 of 5
+Location: WordPress Container
+Repo: /igny8-wp-plugin/
+Purpose: Bridge between IGNY8 App and WordPress for content publishing, media sync, site sync, semantic mapping, and two-way data flow.
+This plugin is the official connector that enables:
+• IGNY8 → WordPress content publishing
+• WordPress → IGNY8 post status + metadata sync
+• Media upload sync
+• Keyword/Cluster metadata injection
+• Full/Incremental site scans
+• User authentication with IGNY8 App
+• IGNY8 API client
+• WP hooks integration
+• Two-way sync events
+Everything below references actual APIs in WORDPRESS-PLUGIN-INTEGRATION.md.
+________________________________________
+1. PURPOSE IN THE IGNY8 ECOSYSTEM
+IGNY8 WP Plugin represents all IGNY8-generated content inside WordPress.
+Its responsibilities:
+A. From IGNY8 → WordPress
+• Create posts/pages from IGNY8 Writer output
+• Attach images from IGNY8 Image Generator
+• Map cluster/keyword metadata
+• Assign category = cluster
+• Insert block-structured HTML
+• Maintain post-task relationship (task_id, content_id)
+B. From WordPress → IGNY8
+• Sync post status (publish, draft, trash)
+• Notify IGNY8 when user edits content
+• Update keyword status (mapped)
+• Sync assigned_post_id and post_url
+• Batch sync posts via Cron
+• WooCommerce product sync (optional)
+C. WP Site → IGNY8 (Semantic Mapping Pipeline)
+Using REST API and IGNY8 API:
+• Fetch all posts
+• Fetch taxonomies
+• Fetch WooCommerce products
+• Send complete site structure to IGNY8
+• Receive restructuring suggestions
+• Track site import/sync jobs
+________________________________________
+2. PLUGIN ARCHITECTURE
+/igny8-wp-plugin/
+ igny8.php
+ /admin/
+ settings-page.php
+ notices.php
+ /api/
+ class-igny8-api.php (API client)
+ /lib/
+ sync-posts.php
+ sync-status.php
+ sync-products.php
+ sync-taxonomies.php
+ site-import.php
+ semantic-mapper.php
+ /hooks/
+ post-hooks.php
+ cron-hooks.php
+ publish-hooks.php
+ /routes/
+ wp-rest.php
+ /views/
+ settings-form.php
+ sync-dashboard.php
+________________________________________
+3. PLUGIN MODULES (Required)
+A. Authentication Module
+• Email + password login to IGNY8 API
+• Stores access + refresh tokens in WordPress options
+• Token auto-refresh system
+• Error handling + user messages
+API endpoints used:
+POST /api/v1/auth/login/
+POST /api/v1/auth/refresh/
+________________________________________
+B. IGNY8 API Client (Core Class)
+Class: Igny8API
+Functions:
+Function Purpose
+login() Authenticate WP with IGNY8
+refresh_token() Refresh JWT
+get() GET requests
+post() POST requests
+put() Update task data, keyword status, sync info
+delete() Remove mappings or posts
+parse_response() Unified API response parsing
+get_headers() Bearer auth + JSON headers
+All responses must follow your unified IGNY8 format.
+________________________________________
+C. Content Publishing Module
+(IGNY8 → WP)
+Triggered when IGNY8 generates content and sends a “publish” action.
+Flow:
+1. Receive content JSON from IGNY8:
+o title
+o html_content (already block-optimized by IGNY8’s block parser)
+o featured_image
+o in-article images
+o task_id
+o cluster_id
+o primary_keyword, secondary_keywords
+2. Create WordPress post using:
+wp_insert_post()
+3. Save IGNY8 metadata:
+_meta:
+ _igny8_task_id
+ _igny8_content_id
+ _igny8_primary_keyword
+ _igny8_secondary_keywords
+ _igny8_cluster_id
+4. Assign cluster as category:
+wp_set_post_terms($post_id, [$cluster_term_id], 'category')
+5. Upload images with WordPress media API:
+media_sideload_image()
+________________________________________
+D. Post Status Sync Module
+(WP → IGNY8)
+Uses WP hooks:
+save_post
+publish_post
+transition_post_status
+draft_to_publish
+future_to_publish
+trash_post
+Maps WordPress status → IGNY8 status:
+WP IGNY8
+publish completed
+draft draft
+pending pending
+private completed
+future scheduled
+trash archived
+Sends request:
+PUT /writer/tasks/{task_id}/
+Payload:
+{
+ "status": "completed",
+ "assigned_post_id": 123,
+ "post_url": "https://mysite.com/post-title"
+}
+________________________________________
+E. Keyword Sync Module
+Triggered on publish:
+publish_post
+draft_to_publish
+future_to_publish
+Action:
+• Fetch cluster_id from task
+• Fetch all keywords in that cluster via:
+GET /planner/keywords/?cluster_id=ID
+• Update each to:
+PUT /planner/keywords/{id}/ { "status": "mapped" }
+________________________________________
+F. Full Site Import Module
+(WP → IGNY8 Site Map)
+Collects:
+• All posts
+• Pages
+• Custom post types
+• Categories
+• Tags
+• WooCommerce products
+• Product categories
+• Product attributes
+Then sends:
+POST /system/sites/{site_id}/import/
+Payload includes:
+• site_data
+• posts
+• taxonomies
+• products
+• product_attributes
+________________________________________
+G. Incremental Sync Module
+Daily cron:
+wp_schedule_event('daily')
+Sends modified posts since last sync:
+POST /system/sites/{site_id}/sync/
+For AI restructuring and semantic updates.
+________________________________________
+H. IGNY8 → WP Events
+Hook triggered when IGNY8 pushes content:
+do_action('igny8_content_published', $content_data)
+Then:
+wp_insert_post($content_data)
+update task in IGNY8 with post_url
+________________________________________
+4. REQUIRED WORDPRESS ADMIN PAGES
+1. IGNY8 Settings Page
+• API login
+• Test connection
+• Token status
+• Last sync timestamp
+• Site ID
+• Manual sync button
+2. IGNY8 Content Dashboard
+• List all IGNY8-managed posts
+• Task status
+• Keyword mapping
+• Cluster assignment
+• Manual re-sync button
+3. IGNY8 Site Sync Dashboard
+• Full scan
+• Incremental scan
+• Last run status
+• Semantic map display
+• Restructuring recommendations
+________________________________________
+5. ENDPOINTS REQUIRED BY THE PLUGIN (IGNY8 API v1)
+From your API documentation + integration file:
+Authentication
+POST /auth/login/
+POST /auth/refresh/
+Planner
+GET /planner/keywords/
+PUT /planner/keywords/{id}/
+Writer
+GET /writer/tasks/{task_id}/
+PUT /writer/tasks/{task_id}/
+POST /writer/tasks/{task_id}/publish/
+System (Site Import)
+POST /system/sites/{site_id}/import/
+POST /system/sites/{site_id}/sync/
+GET /system/sites/{site_id}/recommendations/
+POST /system/sites/{site_id}/restructure/
+Misc
+GET /auth/user/
+________________________________________
+6. PLUGIN EXECUTION PHASES
+Phase 0: Setup
+• Create repo
+• Basic plugin file
+• Register admin menu
+• Enqueue scripts
+• Create activation hooks
+Phase 1: IGNY8 API Client
+• Authentication
+• Token refresh
+• Unified response handler
+• Error system
+Phase 2: Content Publishing
+• WordPress → IGNY8 mapping
+• IGNY8 → WP post insertion
+• Media download
+• Metadata storage
+Phase 3: Status Sync
+• Post hooks (save_post, publish_post)
+• Status mapping
+• Keyword “mapped” update
+Phase 4: Full Site Sync
+• REST fetch: posts, pages, CPTs
+• REST fetch: taxonomies
+• WooCommerce (if available)
+• Combined site_data
+• Send to IGNY8
+Phase 5: Incremental Sync
+• Cron job
+• Modified posts
+• Update IGNY8
+Phase 6: UI/UX for WP Dashboard
+• IGNY8 settings
+• Content dashboard
+• Sync dashboard
+Phase 7: Testing + Validation
+• Unit tests for API client
+• Post creation tests
+• Sync tests
+________________________________________
+7. WHAT THIS PLUGIN ACHIEVES
+IGNY8 becomes a complete WordPress publishing engine.
+WordPress becomes:
+• A destination for content
+• A “live CMS” for IGNY8 content
+• A signal source for IGNY8 semantic restructuring
+This plugin is the official bridge connecting two systems:
+• IGNY8 App (AI-first CMS)
+• WordPress (display CMS)
+________________________________________
+
+IGNY8 WORDPRESS THEME
+Full Implementation Document
+Module 4 of 5
+1. Role in the IGNY8 Ecosystem
+The IGNY8 WordPress Theme is the visual and structural layer for any site where:
+• Content is generated by IGNY8 App
+• Content is delivered into WordPress via the IGNY8 WP Plugin
+• WordPress is used as the final display CMS
+The theme:
+• Does not run any AI logic
+• Does not call IGNY8 APIs directly
+• Does not manage jobs, credits, or clusters
+It is a pure representation layer that:
+1. Understands the content structure and metadata IGNY8 Plugin writes into WordPress.
+2. Renders that content using consistent layouts optimized for IGNY8’s SEO strategy.
+3. Provides predictable templates for cluster hubs, supporting posts, and product pages.
+IGNY8 App and plugin handle logic.
+The theme handles presentation, aligned to that logic.
+________________________________________
+2. Design and Technical Principles
+1. Gutenberg native block theme
+o Uses theme.json
+o Templates are block templates (.html files) under /templates
+o Template parts under /parts
+2. Content first
+o Layout and styling assume IGNY8 structured content: long form editorial sections, internal links, images, FAQs
+o No heavy reliance on shortcodes
+3. Metadata aware
+o Knows about these meta fields created by plugin:
+ _igny8_task_id
+ _igny8_content_id
+ _igny8_primary_keyword
+ _igny8_secondary_keywords
+ _igny8_cluster_id
+o Uses categories and tags produced via plugin and app
+4. Cluster aware
+o Treats certain categories as cluster hubs
+o Builds predictable layout for hub vs supporting posts
+5. Minimal logic, maximum compatibility
+o Theme must not break when content is not IGNY8 generated
+o Works fine for manual posts, pages, and WooCommerce if activated
+________________________________________
+3. Theme Folder Structure
+Repository: /igny8-wp-theme/
+/igny8-wp-theme/
+ style.css
+ functions.php
+ theme.json
+
+ /templates/
+ index.html
+ front-page.html
+ home.html
+ single.html
+ single-post.html
+ page.html
+ archive.html
+ category.html
+ category-cluster.html (custom template, selected by category)
+ tag.html
+ search.html
+ 404.html
+
+ /parts/
+ header.html
+ footer.html
+ hero.html
+ post-meta.html
+ sidebar.html
+ related-posts.html
+ cluster-nav.html
+ breadcrumbs.html
+
+ /patterns/
+ hero-featured.php
+ longform-article.php
+ cluster-hub-layout.php
+ faq-section.php
+ comparison-table.php
+ product-feature-list.php
+ call-to-action.php
+
+ /assets/
+ /css/
+ /js/
+ /images/
+________________________________________
+4. Data Contract With IGNY8 WP Plugin
+The theme assumes the plugin has already:
+1. Created the post with:
+o Title
+o Full HTML content
+o Correct categories and tags
+o Featured image
+o Optional excerpt
+2. Stored IGNY8 specific meta:
+Meta key Meaning
+_igny8_task_id Link back to Writer task in IGNY8
+_igny8_content_id Internal IGNY8 content identifier
+_igny8_primary_keyword Main keyword used for SEO and layout decisions
+_igny8_secondary_keywords Comma separated list or JSON string
+_igny8_cluster_id Cluster taxonomy term used as category
+3. Assigned cluster category as WordPress category:
+o wp_set_post_terms($post_id, [$cluster_term_id], 'category')
+4. Injected already block friendly markup:
+o Paragraphs, headings, lists, blockquotes, tables
+o Gutenberg compatible markup
+The theme does not rebuild or parse raw AI output.
+It only renders and enhances what is there.
+________________________________________
+5. Templates and Their Purpose
+5.1 front page and home
+• front-page.html
+For sites where homepage is a static page:
+o Hero section
+o Key benefits
+o Featured clusters
+o Latest blogs
+• home.html
+For standard blog listing:
+o Blog list with excerpt and meta
+o Optional cluster filters
+5.2 single post
+• single.html or single-post.html
+Structure:
+1. Hero section
+o Title
+o Meta (date, reading time, category)
+o Featured image
+2. Content body
+o Renders Gutenberg blocks as generated by IGNY8
+o Uses a content wrapper with a class like .igny8-article-content
+3. In article elements
+o Styles for:
+ Images and captions
+ Blockquotes
+ Tables
+ Lists
+ FAQ sections
+ Comparison elements
+4. Cluster navigation
+o If _igny8_cluster_id exists:
+ Show cluster name
+ Show related posts from same cluster
+ Optional cluster breadcrumb (Cluster > Post)
+5.3 category and cluster hubs
+• category.html for generic categories
+• category-cluster.html for IGNY8 clusters
+category-cluster.html is used when:
+• Category has meta key _igny8_is_cluster or
+• Category is explicitly configured in theme options as cluster type
+Layout:
+1. Cluster hero
+o Cluster name
+o Intro text (manual or IGNY8 generated)
+o Primary keyword
+2. Supporting posts section
+o Grid or list of posts in cluster
+o Highlight key roles:
+ Beginner guide
+ Comparison post
+ Use case posts
+o Make it easy for IGNY8 to map these conventional roles
+3. Optional CTA:
+o Contact
+o Book consultation
+o Download resource
+5.4 page template
+• page.html
+For generic static pages (about, contact, services) where IGNY8 content is occasionally used.
+5.5 archive, search, 404
+Standard WordPress structures but visually consistent with IGNY8 overall design system.
+________________________________________
+6. Block Patterns and Styles
+To match IGNY8 generated content, create patterns that correspond to how the app structures text.
+6.1 Core patterns
+1. hero-featured.php
+o Featured image
+o Large title
+o Subtitle
+o CTA button
+2. longform-article.php
+o Pre configured layout:
+ Article header
+ Table of contents
+ Main content area
+ Related posts / CTAs
+3. cluster-hub-layout.php
+o Cluster summary text block
+o Supporting post list blocks
+o Internal links to key posts
+4. faq-section.php
+o Repeated question answer blocks
+o FAQ heading
+o Schema ready markup friendly structure
+5. comparison-table.php
+o Table styled to match IGNY8 comparison posts
+6. product-feature-list.php
+o Short bullet feature list
+o Icons or checkmarks
+7. call-to-action.php
+o Section with heading
+o Subheading
+o Button
+These patterns are used both for:
+• Manual content tweaking in Gutenberg
+• Consistency with AI generated layout designs
+________________________________________
+7. Styling System
+Use theme.json as the single source of truth for styles.
+Key elements:
+• Color palette that can map to IGNY8 brand tokens:
+o Primary, secondary, accent, background, surface, success, warning, danger
+• Typography:
+o Base font family
+o Heading font
+o Sizes and spacing aligned with IGNY8 App styles
+• Spacing:
+o Small, normal, large section padding and margins
+• Block level styles:
+o core/paragraph
+o core/heading
+o core/list
+o core/table
+o core/quote
+o core/image
+Ensure:
+• Long form content stays readable
+• Headings are visually layered
+• Tables and lists are clean and clear
+• Quote blocks stand out but remain simple
+________________________________________
+8. SEO and Performance
+The theme does not override SEO plugins, but must be compatible with:
+• Yoast
+• Rank Math
+• All in One SEO
+Requirements:
+• Proper use of , ,