282 lines
17 KiB
Markdown
282 lines
17 KiB
Markdown
# IGNY8 V2 — Master Execution Plan
|
||
|
||
**Version:** 1.1 | March 23, 2026
|
||
**Status:** Active — Execution Reference
|
||
**Author:** Salman (Alorig Systems) + Claude Opus
|
||
**Execution Tool:** Claude Code (SSH to VPS)
|
||
**Source of Truth:** Codebase at `/data/app/igny8/` — all technical claims verified against actual code
|
||
|
||
---
|
||
|
||
## 1. What This Is
|
||
|
||
This is the single master document governing the complete IGNY8 V2 build — from infrastructure migration through SAG engine, all modules, WordPress ecosystem, business layer, and multi-app deployment. Every sub-phase references a dedicated build doc in this folder that Claude Code can pick up and execute independently.
|
||
|
||
## 2. Current State (Verified Against Codebase — March 23, 2026)
|
||
|
||
**IGNY8 v1.8.4** is healthy and functionally production-ready.
|
||
|
||
### 2.1 Functional Status
|
||
|
||
| Area | Status |
|
||
|------|--------|
|
||
| Settings save (content, publishing, profile) | ✅ Working |
|
||
| Password change | ✅ Working |
|
||
| Payments (Stripe/PayPal live, credits) | ✅ Working |
|
||
| Publishing flow (IGNY8 → WordPress) | ✅ Working |
|
||
| Security (Jan 2026 audit items) | ✅ Fixed |
|
||
| API Activity tracking | ⚠️ Placeholder data — only open item |
|
||
| `/system/ping/` & `/system/sites/{id}/status/` | Backend exists, frontend removed — wire when needed |
|
||
| `/writer/tasks/{id}/brief/` | No current use case — v2 scope |
|
||
| Taxonomy sync, Linker/Optimizer, webhooks | Correctly scoped as v2 features, not bugs |
|
||
|
||
### 2.2 Verified Codebase Baseline
|
||
|
||
| Component | Verified Value |
|
||
|-----------|---------------|
|
||
| Django | >=5.2.7 (requirements.txt) |
|
||
| Python | 3.11-slim (Dockerfile) |
|
||
| Node | 18-alpine (Dockerfile.dev) |
|
||
| React | ^19.0.0 |
|
||
| TypeScript | ~5.7.2 |
|
||
| Vite | ^6.1.0 |
|
||
| Zustand | ^5.0.8 |
|
||
| Tailwind CSS | ^4.0.8 |
|
||
| Celery | >=5.3.0 |
|
||
| WP Plugin | IGNY8 WordPress Bridge v1.5.2 |
|
||
| Primary Key Strategy | BigAutoField (integer, NOT UUID) |
|
||
| AUTH_USER_MODEL | igny8_core_auth.User |
|
||
| DEFAULT_AUTO_FIELD | django.db.models.BigAutoField |
|
||
| Installed Apps | 34 Django apps |
|
||
| Middleware Stack | 13 middleware classes |
|
||
| Celery Beat Tasks | 14 scheduled tasks |
|
||
| AI Functions | 7 (auto_cluster, generate_ideas, generate_content, generate_images, generate_image_prompts, optimize_content, generate_site_structure) |
|
||
|
||
### 2.3 Container Inventory (docker-compose.app.yml — 7 containers)
|
||
|
||
| Container | Image | Host Port | Role |
|
||
|-----------|-------|-----------|------|
|
||
| igny8_backend | igny8-backend:latest | 8011 | Django + Gunicorn (4 workers, 120s timeout) |
|
||
| igny8_frontend | igny8-frontend-dev:latest | 8021 | Vite dev server (port 5173 internal) |
|
||
| igny8_marketing_dev | igny8-marketing-dev:latest | 8023 | Marketing site dev server (port 5174 internal) |
|
||
| igny8_celery_worker | igny8-backend:latest | — | Celery worker (concurrency=4) |
|
||
| igny8_celery_beat | igny8-backend:latest | — | Celery beat scheduler |
|
||
| igny8_flower | igny8-backend:latest | 5555 | Celery monitoring |
|
||
|
||
*Plus shared infra containers (external to app compose): postgres, redis, caddy, portainer, pgadmin, filebrowser*
|
||
|
||
### 2.4 Existing Django Apps (34 in INSTALLED_APPS)
|
||
|
||
**Business layer:** automation, notifications, optimization, publishing, integration
|
||
**Module layer:** planner (keywords/clusters/ideas), writer (tasks/content/images), billing, system, linker (inactive), optimizer (inactive), publisher, integration
|
||
**Auth & core:** auth (Account, Site, Sector, User, Plan), ai, plugins, admin
|
||
|
||
### 2.5 Existing Models (key entities)
|
||
|
||
| App | Models |
|
||
|-----|--------|
|
||
| auth | Account, Plan, Subscription, Site, Sector, Industry, IndustrySector, SeedKeyword, User, SiteUserAccess |
|
||
| planning | Clusters (status: new/mapped), Keywords, ContentIdeas |
|
||
| content | Tasks, Content (content_type: post/page/product/taxonomy), ContentTaxonomy, ContentTaxonomyRelation, Images, ImagePrompts |
|
||
| automation | DefaultAutomationConfig, AutomationConfig (per-site), AutomationRun |
|
||
| integration | SiteIntegration, SyncEvent, PublishingSettings |
|
||
| publishing | PublishingRecord, DeploymentRecord |
|
||
| billing | CreditTransaction, CreditUsageLog, CreditCostConfig, AccountPaymentMethod, Payment, Invoice |
|
||
| system | IntegrationProvider, AIPrompt, IntegrationSettings, AuthorProfile |
|
||
| ai | AITaskLog |
|
||
| plugins | Plugin, PluginVersion, PluginDownload |
|
||
| notifications | Notification |
|
||
| optimization | OptimizationTask |
|
||
|
||
### 2.6 7-Stage Automation Pipeline
|
||
|
||
| Stage | Function | AI | Batch Size |
|
||
|-------|----------|-----|-----------|
|
||
| 1 | Keywords → Clusters | Yes (auto_cluster) | 50 |
|
||
| 2 | Clusters → Ideas | Yes (generate_ideas) | 1 |
|
||
| 3 | Ideas → Tasks | No | 20 |
|
||
| 4 | Tasks → Content | Yes (generate_content) | 1 |
|
||
| 5 | Content → Image Prompts | Yes (generate_image_prompts) | 1 |
|
||
| 6 | Image Prompts → Images | Yes (generate_images) | 1 |
|
||
| 7 | Auto-approval → Publish | No | — |
|
||
|
||
### 2.7 What Does NOT Exist (common misconceptions from planning docs)
|
||
|
||
- **No `sag/` app** — no SAGBlueprint, SAGAttribute, SAGCluster, or SectorAttributeTemplate models
|
||
- **No UUID primary keys** — all models use BigAutoField (integer)
|
||
- **No `sag_blueprint` field on Site model**
|
||
- **No `blueprint_context` field on Content or Tasks models**
|
||
- **No `self_hosted_ai` provider** in IntegrationProvider
|
||
- **No `/sag/site-analysis` endpoint** in the WordPress plugin
|
||
- **Content already has** `content_type` (post/page/product/taxonomy) and `content_structure` (article/guide/comparison/review/listicle/landing_page/etc) — these are not new fields
|
||
- **Linker & Optimizer modules** exist in code but are **inactive** (behind feature flags)
|
||
|
||
**Conclusion:** Phase 0 is pure migration. No bug-fixing sprint needed. Current environment stays untouched — all new work on new server with zero downtime.
|
||
|
||
## 3. Architecture Overview
|
||
|
||
**Current:** Single VPS running IGNY8 app containers + shared Alorig infrastructure containers. App-level: 7 containers in `docker-compose.app.yml` (backend, frontend, marketing_dev, celery_worker, celery_beat, flower) + shared infra containers (postgres, redis, caddy, portainer, pgadmin, filebrowser). Of the 7 app containers, `marketing_dev` and `flower` are non-essential for production. Gitea self-hosted for git, no staging environment, no GitHub.
|
||
|
||
**Target:** New Hostinger KVM 4 (4 vCPU, 16GB RAM, 200GB NVMe) with shared Alorig infrastructure stack (PG, Redis, Caddy, Portainer). IGNY8 app runs 3 core containers (backend, celery_worker, celery_beat) + frontend served via Caddy. Same pattern for all other Alorig apps. Production + staging environments, GitHub for all repos, Cloudflare DNS, self-hosted AI on Vast.ai GPU.
|
||
|
||
**IGNY8 v2 Transformation:** From keyword-driven content generator → structure-first SAG-powered site architecture engine. Attributes first, not keywords first. Keywords emerge from attribute intersections across 45 industries, 449 sectors.
|
||
|
||
## 4. Technology Stack
|
||
|
||
| Layer | Current (v1.8.4) — Verified | V2 Addition |
|
||
|-------|-------------------|-------------|
|
||
| Backend | Django >=5.2.7, DRF, PostgreSQL (external), Redis (external), Celery >=5.3.0, Python 3.11 | SAG models, new module APIs |
|
||
| Frontend | React ^19.0.0, TypeScript ~5.7.2, Zustand ^5.0.8, Tailwind ^4.0.8, Vite ^6.1.0, Node 18 | Blueprint UI, wizard, dashboards |
|
||
| AI (Cloud) | OpenAI (via IntegrationProvider), Anthropic (via IntegrationSettings), Runware (images), DALL-E (images) | — |
|
||
| AI (Self-hosted) | — | Qwen3 (text), FLUX/SD (images), Wan 2.1 (video) via Vast.ai |
|
||
| WordPress | IGNY8 WordPress Bridge v1.5.2 | Plugin v2 (14 modules), Companion Theme, Toolkit |
|
||
| Infrastructure | Single VPS, Gitea self-hosted, no staging, Caddy reverse proxy | KVM 4 + Vast.ai GPU, GitHub, Cloudflare, prod + staging |
|
||
| DevOps | Manual | Claude Code via SSH |
|
||
|
||
## 5. Complete Execution Map
|
||
|
||
### Phase 0 — Infrastructure & Migration
|
||
*Goal: Healthy IGNY8 running on new server with staging, all repos on GitHub, legacy killed.*
|
||
|
||
| Sub | Doc | What | Depends On |
|
||
|-----|-----|------|------------|
|
||
| 0A | `00A-github-repo-consolidation.md` | All repos → 1 GitHub account, linked to Source-Codes/, remove Gitea | — |
|
||
| 0B | `00B-vps-provisioning.md` | New KVM 4, Cloudflare DNS, shared Docker infra (PG/Redis/Caddy/Portainer) | 0A |
|
||
| 0C | `00C-igny8-production-migration.md` | pg_dump → new server, Docker Compose, DNS cutover, zero downtime | 0B |
|
||
| 0D | `00D-staging-environment.md` | Staging environment: backend + celery_worker + celery_beat + frontend, separate DB (`igny8_staging_db`) + Redis DB 1 | 0C |
|
||
| 0E | `00E-legacy-cleanup.md` | Kill Gitea + non-essential containers (marketing_dev, flower, pgadmin, filebrowser), decommission old VPS | 0C |
|
||
| 0F | `00F-self-hosted-ai-infra.md` | Vast.ai GPU (2×RTX 3090) + SSH tunnel + LiteLLM + Ollama/Qwen3 + ComfyUI | 0B |
|
||
|
||
### Phase 1 — SAG Core Engine
|
||
*Goal: IGNY8 generates full site architectures from industry/sector selection (Case 2) and reverse-engineers existing sites (Case 1).*
|
||
|
||
| Sub | Doc | What | Depends On |
|
||
|-----|-----|------|------------|
|
||
| 1A | `01A-sag-data-foundation.md` | SAGBlueprint, SAGAttribute, SAGCluster, SectorAttributeTemplate — models + CRUD APIs | 0D |
|
||
| 1B | `01B-sector-attribute-templates.md` | Template loading, multi-sector merge, AI generation for 45 industries/449 sectors | 1A |
|
||
| 1C | `01C-cluster-formation-keyword-engine.md` | AI attribute intersection → clusters, type classification (7 types), 300-500+ keywords/site | 1B |
|
||
| 1D | `01D-setup-wizard-case2-new-site.md` | Wizard Step 3 (Site Structure), attribute review UI, blueprint preview, quick/detailed mode | 1C |
|
||
| 1E | `01E-blueprint-aware-pipeline.md` | Stage 0 (blueprint check), type-specific prompts, auto taxonomy assignment, priority ordering | 1D |
|
||
| 1F | `01F-existing-site-analysis-case1.md` | Plugin site crawl, AI attribute extraction, gap analysis, user confirmation, auto-tagging | 1E |
|
||
| 1G | `01G-sag-health-monitoring.md` | Health score (0-100), weekly Celery automation, blueprint evolution triggers, dashboard widget | 1F |
|
||
|
||
### Phase 2 — Module Builds
|
||
*Goal: All IGNY8 modules operational — content types, GSC, linking (internal + external), optimization, schema, social, video.*
|
||
|
||
| Sub | Doc | What | Depends On |
|
||
|-----|-----|------|------------|
|
||
| 2A | `02A-content-types-extension.md` | Pages, products, services, company, comparison, brand pages — each with own presets + prompts | 1E |
|
||
| 2B | `02B-taxonomy-term-content.md` | Term landing pages as first-class SEO pages, cluster mapping, rich content generation | 2A |
|
||
| 2C | `02C-gsc-integration.md` | OAuth, URL Inspection API (2K/day), auto-indexing, re-inspection schedule, search analytics, plugin sync | 1A *(parallel)* |
|
||
| 2D | `02D-linker-internal.md` | 7 link types, scoring algorithm (5 factors), anchor strategy, density rules, audit + new content mode | 1G |
|
||
| 2E | `02E-linker-external-backlinks.md` | FatGrid API, PRNews.io, Linking News, EIN, campaign gen from blueprints, T1-T5 tiers, tipping point detection | 2D + 2C |
|
||
| 2F | `02F-optimizer.md` | Cluster-aligned rewriting, keyword coverage, heading restructure, schema gaps, before/after scoring, batch | 2B |
|
||
| 2G | `02G-rich-schema-serp.md` | 10 JSON-LD types, on-page elements (TL;DR, TOC, tables, definitions, PAA), retroactive enhancement engine | 2A |
|
||
| 2H | `02H-socializer.md` | Native Django, 5 platforms (LinkedIn/Twitter/FB/IG/TikTok), OAuth, platform-specific adaptation, Stage 8, credits | 1E |
|
||
| 2I | `02I-video-creator.md` | Script gen from articles, TTS (cloud + self-hosted), FFmpeg composition, auto-subtitles, Stage 9 | 2H + 0F |
|
||
|
||
### Phase 3 — WordPress Ecosystem
|
||
*Goal: Complete WordPress product suite — standalone SEO plugin, connected premium mode, SAG-optimized theme, toolkit.*
|
||
|
||
| Sub | Doc | What | Depends On |
|
||
|-----|-----|------|------------|
|
||
| 3A | `03A-wp-plugin-standalone.md` | 10 modules: SEO meta, schema, sitemap, redirects, intelligence, linker, socializer, analytics, SMTP, import | 2D + 2G |
|
||
| 3B | `03B-wp-plugin-connected.md` | API client, content sync, blueprint sync, taxonomy creation, cluster manager, structure visualization | 3A + 1G |
|
||
| 3C | `03C-companion-theme.md` | 7 CPTs, 9 taxonomies, term landing pages, cluster hub templates, 15 section types, 50+ block patterns, 5 site-type starters | 3B |
|
||
| 3D | `03D-toolkit-plugin.md` | Performance (cache, critical CSS, image optimization), forms, security (firewall, hardening), SMTP, WooCommerce enhancements | 3C |
|
||
|
||
### Phase 4 — Business Layer
|
||
*Goal: Monetization infrastructure — managed services, agency tools, pricing aligned to feature releases.*
|
||
|
||
| Sub | Doc | What | Depends On |
|
||
|-----|-----|------|------------|
|
||
| 4A | `04A-managed-services.md` | Lite ($100/site/mo), Pro ($399/site/mo), backlink packages ($800-$8K/mo), client onboarding automation | 2E + 3B |
|
||
| 4B | `04B-whitelabel-reporting.md` | Agency dashboards, branded reports, white-label via Linking News | 4A |
|
||
| 4C | `04C-pricing-launch.md` | Plan pricing increase, WordPress.org plugin submission, go-to-market | 4B |
|
||
|
||
### Phase 5 — Multi-App Deployment
|
||
*Goal: Remaining 6 apps deployed on shared infrastructure, one at a time, monitoring RAM after each.*
|
||
|
||
| Sub | Doc | What | Depends On |
|
||
|-----|-----|------|------------|
|
||
| 5 | `05-other-apps-deployment.md` | Psydge → Snapify → Site Builder → Observer OS → AstroTiming → ASMS | Phase 4 complete |
|
||
|
||
### Reference Documents (Appendices — not build docs)
|
||
|
||
| Doc | What | Source |
|
||
|-----|------|--------|
|
||
| `REF-sag-methodology.md` | Pure SAG theory, dimensional framework, clustering rules | SAG-Master-Document.md |
|
||
| `REF-industry-sector-list.md` | 45 industries, 449 sectors, validation criteria | IGNY8-Industry-Sector-Master-List.md |
|
||
| `REF-niche-definition-process.md` | Template generation quality reference, hard constraints | SAG-Niche-Definition-Process.docx |
|
||
| `REF-current-state-v1.8.4.md` | Frozen baseline snapshot of v1.8.4 | IGNY8-Current-State.md + Platform Features docx |
|
||
| `SAGIndustry01HealthcareMedical.xlsx` | Healthcare SAG Excel template (formatting reference) | As-is |
|
||
|
||
## 6. Doc Structure Standard
|
||
|
||
Every build doc (00A through 05) follows this structure:
|
||
|
||
```
|
||
# [Phase.Sub] — Title
|
||
## 1. Current State
|
||
What exists today relevant to this sub-phase.
|
||
## 2. What to Build
|
||
Complete scope with acceptance criteria.
|
||
## 3. Data Models & APIs
|
||
New/modified models, endpoints, serializers.
|
||
## 4. Implementation Steps
|
||
Ordered steps Claude Code executes.
|
||
## 5. Dependencies & Cross-References
|
||
Which other docs this reads from or feeds into.
|
||
## 6. Acceptance Criteria
|
||
How to verify this sub-phase is complete.
|
||
## 7. Claude Code Instructions
|
||
Specific commands, file paths, test procedures.
|
||
```
|
||
|
||
Each doc is self-contained. Claude Code picks up one doc, reads it, executes it, verifies it — without needing to read the entire plan.
|
||
|
||
## 7. Source Doc Consolidation
|
||
|
||
After all V2-Execution-Docs are built, the following source locations get archived to `Igny8/Archive/`:
|
||
|
||
| Source Location | What's There | Action |
|
||
|-----------------|-------------|--------|
|
||
| `temp/IGNY8-Project-Files/` | All planning docs (duplicates) | Archive entire folder |
|
||
| `Igny8 V2 New Final Plans/` | SAG docs, plugin/theme plans, schema, linker, AI infra | Archive entire folder |
|
||
| `Live Docs on Server/igny8-app-docs/plans/` | Future module plans, dev guides, GSC, socializer | Archive plans/ subfolder only |
|
||
| `Live Docs on Server/igny8-wp-plugin-docs/` | Fix logs, audits, implementation plans | Keep as historical reference |
|
||
| `IGNY8-Complete-Platform-Features.docx` | Current feature inventory | Absorbed into REF-current-state, archive original |
|
||
| `Old plans November/` | Superseded plans | Already archived, no action |
|
||
|
||
**Live Docs operational folders stay untouched:** 00-SYSTEM, 10-MODULES, 20-API, 30-FRONTEND, 40-WORKFLOWS, 50-DEPLOYMENT, 60-PLUGINS, 90-REFERENCE, audits.
|
||
|
||
## 8. Key Principles
|
||
|
||
1. **Codebase is the single source of truth** — every technical claim in execution docs verified against actual code, not planning/reference docs
|
||
2. **Nothing working breaks** — nullable fields, feature flags, staging first
|
||
3. **SAG is attribute-first** — keywords are output, not input
|
||
4. **Same container pattern everywhere** — backend + celery_worker + celery_beat per app, shared infra (PG/Redis/Caddy) across all Alorig apps
|
||
5. **Current environment never touched** — all new work on new server
|
||
6. **All development via Claude Code** — SSH to VPS, timelines compressed vs manual dev
|
||
7. **Each doc is self-contained** — Claude Code executes one doc at a time without losing context
|
||
8. **Coexistence with existing models** — new SAG models must define migration path for existing Clusters/Keywords/Content, not ignore them
|
||
9. **Monitor real usage** — upgrade decisions are data-driven, not speculative
|
||
|
||
## 9. Timeline Estimate (Claude Code Execution)
|
||
|
||
| Phase | Scope | Estimated Duration |
|
||
|-------|-------|-------------------|
|
||
| 0 | Infrastructure & Migration | 3-5 days |
|
||
| 1 | SAG Core Engine (7 sub-phases) | 2-3 weeks |
|
||
| 2 | Module Builds (9 modules) | 4-5 weeks |
|
||
| 3 | WordPress Ecosystem (4 products) | 3-4 weeks |
|
||
| 4 | Business Layer | 1 week |
|
||
| 5 | Other Apps | Ongoing, post-IGNY8 |
|
||
| **Total (Phase 0-4)** | **IGNY8 complete** | **~8-12 weeks** |
|
||
|
||
*Timelines assume focused execution without context-switching to client work.*
|
||
|
||
---
|
||
|
||
*This document is the single source of truth for IGNY8 V2 execution. All 34 sub-phase docs in this folder implement the plan defined here.*
|