# Pre-Launch System Audit **Date:** December 25, 2025 **Purpose:** Identify functional workflow gaps and improvements for pre-launch QA **Scope:** Non-cosmetic, professional, workflow-based issues only --- ## Table of Contents 1. [Dashboard](#1-dashboard) 2. [SETUP Modules](#2-setup-modules) 3. [WORKFLOW Modules](#3-workflow-modules) 4. [ACCOUNT Modules](#4-account-modules) 5. [HELP Module](#5-help-module) 6. [Sidebar & Navigation](#6-sidebar--navigation) 7. [Summary & Prioritization](#7-summary--prioritization) --- ## 1. Dashboard **Route:** `/` **Files:** `pages/Dashboard/Home.tsx`, `components/dashboard/*` ### Current Functionality - Workflow Progress: 6-step pipeline visualization (Sites → Keywords → Clusters → Ideas → Content → Published) - Quick Actions: 5 navigation shortcuts - Key Metrics: 4 cards (Keywords, Articles, Images, Completion %) - Credit Usage: Monthly allowance and usage bar - Workflow Modules Guide: 8 info cards explaining modules - Onboarding: Site creation wizard for new users ### Critical Gaps | Issue | Impact | Details | |-------|--------|---------| | **No aggregated API endpoint** | Performance | Makes 6+ sequential API calls with 120ms delays to avoid rate limiting | | **Published content count incorrect** | Data accuracy | Cannot distinguish published vs draft content | | **Usage Summary is hardcoded** | Misleading | Shows fake "547 credits / $0.34" data | | **Recent Activity is hardcoded** | Misleading | Static mock activity that never updates | | **No real-time updates** | Stale data | Only refreshes on manual action | ### Missing Professional Features | Feature | Why Important | |---------|---------------| | **Needs Attention section** | Users don't know what requires action | | **Recent content activity** | No real list of recently created/published content | | **Error/warning alerts** | No indication of failed syncs, low credits, config issues | | **Pipeline queue depth** | No visibility into items waiting at each stage | | **Automation status** | No run status, last run time, or items processed | | **Site health/sync status** | No WordPress sync health indicator | ### Workflow Issues 1. **Quick Actions don't adapt to user state** - Shows same 5 actions regardless of workflow stage 2. **Workflow Completion % is misleading** - Formula doesn't reflect real content-from-keywords ratio 3. **Modules Guide not dismissible** - 8 large cards always shown, no way to hide 4. **Chart widget code exists but unused** - Dead code, no trend visualization ### Recommendations **Priority 1 - Must Fix:** - [ ] Create `/v1/dashboard/summary/` aggregated endpoint - [ ] Fix published content count (separate published vs draft) - [ ] Replace hardcoded usage data with real billing data - [ ] Remove or implement real recent activity **Priority 2 - High Value:** - [ ] Add "Needs Attention" section (pending reviews, failed syncs, low credits) - [ ] Add actionable pending task count per pipeline stage - [ ] Add automation run status display - [ ] Add WordPress sync health indicator **Priority 3 - UX Polish:** - [ ] Make Quick Actions contextual based on workflow state - [ ] Add loading skeleton - [ ] Make Workflow Modules Guide dismissible - [ ] Fix or remove trend chart code --- ## 2. SETUP Modules ### 2.1 Add Keywords **Route:** `/setup/add-keywords` **Files:** `pages/Setup/AddKeywords.tsx` **Tabs:** None (single page) #### Current Functionality - Displays global seed keywords filtered by active site's industry/sector - Browse pre-populated keyword database (admin-imported CSV) - Add selected keywords to Planner workflow - Tracks already-added keywords - Bulk selection and bulk add - Filters: Search, Country, Difficulty - Admin CSV upload capability #### Functional Gaps | Issue | Impact | |-------|--------| | **Sector requirement unclear** | Buttons disabled with no tooltip explaining why | | **No keyword research integration** | Can only browse pre-imported seeds, no external discovery | | **No manual keyword entry** | Cannot add custom keywords not in seed database | | **No keyword details/preview** | No SERP features, trends, or related keywords visible | | **No "already added" filter** | Cannot filter to show only not-yet-added keywords | #### Workflow Issues - No "Next Step" CTA after adding keywords → users don't know to go to Planner - No keyword count summary (X in workflow, Y available) #### Recommendations - [ ] Add "Next: Plan Your Content →" button after keywords added - [ ] Add "Show not-yet-added only" filter - [ ] Add manual keyword entry form - [ ] Add tooltip explaining disabled state when no sector selected - [ ] Add keyword count summary --- ### 2.2 Content Settings **Route:** `/account/content-settings` **Files:** `pages/account/ContentSettingsPage.tsx` **Tabs:** Content Generation, Publishing, Image Settings #### Current Functionality - **Content Generation:** Append to prompt, default tone, default length - **Publishing:** Auto-publish toggle, keep updated toggle - **Image Settings:** Quality, style, sizes, format (DALL-E 2/3/Runware) #### Critical Gaps | Issue | Impact | Severity | |-------|--------|----------| | **Content Generation NOT PERSISTED** | Settings appear to save but don't - TODO comments in code | 🔴 Critical | | **Publishing NOT PERSISTED** | Same issue - no backend API implemented | 🔴 Critical | | **Only Image Settings work** | Only tab with actual API integration | 🔴 Critical | | **No per-site settings** | Global only, but multi-site users need site-specific | 🟠 High | #### Workflow Issues - **False confidence**: Users see "Settings saved successfully" but nothing is saved - No indication that Content Generation/Publishing tabs are non-functional - Disconnected from Thinker prompts (which also affect content generation) #### Recommendations - [ ] 🔴 **CRITICAL:** Implement backend endpoints for Content Generation settings - [ ] 🔴 **CRITICAL:** Implement backend endpoints for Publishing settings - [ ] Either hide non-functional tabs or mark as "Coming Soon" - [ ] Add relationship explanation to Thinker prompts - [ ] Consider per-site overrides --- ### 2.3 Sites **Route:** `/sites` **Files:** `pages/Sites/List.tsx`, `pages/Sites/SiteSettings.tsx`, `pages/Sites/SiteDashboard.tsx` **Tabs:** Site Settings has 3 tabs (General, Integrations, Content Types) #### Current Functionality - List all sites with filtering (search, type, hosting, status) - Create sites via WorkflowGuide (requires industry + sectors) - Activate/deactivate sites - Navigate to site dashboard, content, settings - Settings: Name, URL, SEO, WordPress integration, content type mapping #### Functional Gaps | Issue | Impact | |-------|--------| | **Dashboard stats are mock data** | `getSiteDashboardStats` returns hardcoded zeros | | **No inline editing** | Must navigate to settings to change site name | | **No site cloning** | Cannot duplicate site configuration | | **Duplicate pages** | List.tsx and Manage.tsx overlap functionality | | **No bulk operations** | Cannot bulk activate/delete sites | #### Workflow Issues - Complex site creation requires industry/sector upfront (users may not know yet) - Integration tab default after creation confuses non-technical users - No setup progress indicator showing what's configured vs pending #### Recommendations - [ ] Add site setup checklist/progress indicator on cards - [ ] Allow site creation without immediate WordPress setup - [ ] Add inline editing for site name from list - [ ] Remove or merge Manage.tsx if redundant - [ ] Implement real site statistics endpoint - [ ] Add "Skip integration for now" option --- ### 2.4 Thinker (Admin Only) **Route:** `/thinker/prompts` **Files:** `pages/Thinker/Prompts.tsx`, `pages/Thinker/AuthorProfiles.tsx`, `pages/Thinker/Strategies.tsx`, `pages/Thinker/ImageTesting.tsx` **Tabs:** Prompts, Author Profiles, Strategies (Coming Soon), Image Testing (Coming Soon) #### Current Functionality - **Prompts:** View/edit AI prompt templates (Clustering, Ideas, Content, Images, etc.) - **Author Profiles:** CRUD for author profiles (name, description, tone, language) - **Strategies:** Coming Soon placeholder - **Image Testing:** Coming Soon placeholder #### Functional Gaps | Issue | Impact | |-------|--------| | **50% Coming Soon** | Strategies + Image Testing are placeholders | 🟠 High | | **No prompt testing** | Cannot preview prompt output before saving | | **No prompt versioning** | No history or rollback capability | | **No per-site prompts** | All prompts global, no site-specific variations | | **Author Profiles not connected** | Unclear how/where they're used in workflow | | **No variable reference** | Placeholders like `[IGNY8_KEYWORDS]` undocumented | #### Workflow Issues - Admin-only with no explanation of relationship to Content Settings (user-accessible) - No prompt categories in UI (hardcoded grouping) - Strategies/Image Testing pages offer no value #### Recommendations - [ ] Either complete or hide Strategies and Image Testing - [ ] Add prompt testing capability (preview with sample data) - [ ] Add prompt version history - [ ] Document relationship between Content Settings and Thinker Prompts - [ ] Show where Author Profiles are used - [ ] Add prompt variable reference documentation --- ### SETUP Cross-Module Issues | Issue | Impact | |-------|--------| | **No guided flow** | After setup tasks, no clear path to start content workflow | | **Scattered settings** | Content settings split across 3 locations | | **No onboarding checklist** | No unified "Setup Complete" indicator | #### Setup Completion Checklist Needed: - [ ] Site created - [ ] Industry/Sectors selected - [ ] Integration configured (or skipped) - [ ] Keywords added - [ ] Content settings configured --- ## 3. WORKFLOW Modules ### 3.1 Planner **Route:** `/planner/keywords` **Files:** `pages/Planner/Keywords.tsx`, `pages/Planner/Clusters.tsx`, `pages/Planner/ClusterView.tsx`, `pages/Planner/Ideas.tsx`, `pages/Planner/KeywordOpportunities.tsx` **Tabs:** Keywords, Clusters, Ideas (in-page navigation) #### Current Functionality - **Keywords:** CRUD, bulk status updates, auto-cluster AI, filters - **Clusters:** CRUD, bulk operations, auto-generate ideas AI - **Ideas:** CRUD, bulk queue to writer, filters - **Flow:** Keywords → Auto-Cluster → Clusters → Auto-Generate Ideas → Ideas → Queue to Writer #### Functional Gaps | Issue | Impact | Severity | |-------|--------|----------| | **KeywordOpportunities hidden** | Page exists at `/planner/keyword-opportunities` but NOT in navigation tabs | 🟠 High | | **No "Add to Existing Cluster"** | Auto-cluster creates new clusters only, can't add to existing | 🟡 Medium | | **No cluster merge/split** | Cannot combine or split clusters | 🟡 Medium | | **No cluster progress indicator** | Can't see which clusters already have ideas generated | 🟠 High | | **Ideas missing queued count** | No indicator of how many are pending vs processed | 🟡 Medium | #### Workflow Issues - Seed keyword system (KeywordOpportunities) is orphaned from main workflow - Cluster → Ideas transition unclear (which clusters need ideas?) - No return path from Ideas to source cluster #### Recommendations - [ ] **Add KeywordOpportunities to Planner tabs** (Critical for onboarding) - [ ] Add "Assign to Cluster" bulk action for existing clusters - [ ] Add Ideas Count badge on Clusters table - [ ] Make cluster name clickable on Ideas page --- ### 3.2 Writer **Route:** `/writer/tasks` **Files:** `pages/Writer/Tasks.tsx`, `pages/Writer/Drafts.tsx`, `pages/Writer/ContentView.tsx`, `pages/Writer/Images.tsx`, `pages/Writer/Review.tsx`, `pages/Writer/Published.tsx` **Tabs:** Queue, Drafts, Images, Review, Published #### Current Functionality - **Tasks:** CRUD, generate content (row action only), generate images bulk - **Drafts:** List drafts, view details, status updates - **Images:** Grouped by content, image generation - **Review:** Status=review filter, publish to WordPress - **Published:** Status=published, WordPress sync status #### Functional Gaps | Issue | Impact | Severity | |-------|--------|----------| | **No bulk content generation** | Must click each row individually, `generate_content` removed from bulk | 🔴 Critical | | **No content editing** | ContentView is read-only, no inline editing | 🔴 Critical | | **No manual task creation** | Must go through Ideas, can't create task directly | 🟠 High | | **No content regeneration** | Can't regenerate with different params, must delete & re-queue | 🟠 High | | **Review → Published manual only** | No simple "Mark as Published" for non-WordPress | 🟡 Medium | #### Workflow Issues - Status progression confusion (Draft → Review → Published requires different pages) - ContentView missing actions bar (must return to list for actions) - Images detached from content workflow - No `send_to_linker` action (only `send_to_optimizer`) #### Recommendations - [ ] 🔴 **CRITICAL:** Add bulk content generation with rate limiting - [ ] 🔴 **CRITICAL:** Implement inline content editing in ContentView - [ ] Add content action bar (Edit, Regenerate, Add Images, Optimize, Link, Publish) - [ ] Add `send_to_linker` row action - [ ] Add manual task creation capability --- ### 3.3 Automation **Route:** `/automation` **Files:** `pages/Automation/Dashboard.tsx` **Tabs:** None (single page) #### Current Functionality - Pipeline overview (7 stages: Keywords→Clusters→Ideas→Tasks→Content→Image Prompts→Images) - Schedule configuration (frequency, time, enable/disable) - Run controls (Run Now, Pause, Resume) - Real-time progress polling - Metrics display and activity log #### Functional Gaps | Issue | Impact | |-------|--------| | **No stage-by-stage control** | All-or-nothing, can't run individual stages | | **No review gate config** | Stage 7 "Review Gate" has no UI to configure rules | | **No error recovery** | If stage fails, must rerun entire pipeline | | **No batch size config** | Can't throttle items per run | | **No dry run/preview** | Can't see what WOULD process before running | | **Activity log not filterable** | Can't filter by stage, status, or date | #### Workflow Issues - Credit estimation unclear (labeled "content pieces" but shows credits?) - Run history depth unknown, no pagination - No indication of manual vs automated items #### Recommendations - [ ] Add stage toggles (enable/disable individual stages) - [ ] Add preview mode (show items that will process) - [ ] Add retry for failed items (per-item or per-stage) - [ ] Add activity log filters - [ ] Clarify credit vs content labeling --- ### 3.4 Linker **Route:** `/linker/content` **Files:** `pages/Linker/Content.tsx`, `pages/Linker/Dashboard.tsx` (not routed) **Tabs:** Content only (Dashboard exists but hidden) #### Current Functionality - Content list with link count and version - Single-item "Add Links" button - Batch linking capability (code exists, UI unclear) - Recent results display (last 3) #### Functional Gaps | Issue | Impact | |-------|--------| | **Dashboard not exposed** | Dashboard.tsx exists but not in navigation | | **No content filtering** | Can't filter by status, cluster, or link count | | **No bulk selection UI** | `handleBatchLink` exists but no checkboxes | | **No link preview/management** | Shows count but can't view/edit actual links | | **No "Needs Linking" filter** | Can't find content with 0 links easily | #### Workflow Issues - Completely separate from Writer, requires manual navigation - Link results only show "last 3" in session, no persistent history - No cluster-based linking #### Recommendations - [ ] Add content filters (status, cluster, "needs linking") - [ ] Add bulk selection checkboxes - [ ] Add link details modal (show/manage individual links) - [ ] Add "Link All New Content" action - [ ] Integrate into Writer ContentView --- ### 3.5 Optimizer **Route:** `/optimizer/content` **Files:** `pages/Optimizer/Content.tsx`, `pages/Optimizer/AnalysisPreview.tsx` (orphaned), `pages/Optimizer/Dashboard.tsx` (not routed) **Tabs:** Content only (Dashboard exists but hidden) #### Current Functionality - Content list with optimization scores - Entry point selection (auto, writer, wordpress, external, manual) - Single-item and batch optimize - Score display (overall, SEO, readability, engagement) #### Functional Gaps | Issue | Impact | |-------|--------| | **Dashboard not exposed** | Dashboard.tsx exists but not in navigation | | **AnalysisPreview orphaned** | Route exists but no UI link to it | | **Limited filtering** | Only source/search, no score range filter | | **No optimization history** | No before/after comparison | | **No optimization settings** | Can't configure what aspects to optimize | | **No suggested actions** | Scores show but no recommendations | #### Workflow Issues - Must navigate to Optimizer separately (disconnected from Writer) - Analysis vs Optimize confusion (analyze never used) - No re-optimization control #### Recommendations - [ ] Add Analysis Preview link ("Preview Scores" action) - [ ] Add score-based filters ("Score < 70", "Needs SEO") - [ ] Add optimization recommendations - [ ] Add "Optimize All Below Threshold" bulk action - [ ] Integrate into Writer (auto-analyze during draft) --- ### WORKFLOW Cross-Module Issues | Issue | Impact | |-------|--------| | **No Planner → Writer visibility** | After queuing, must manually switch modules | | **No Writer → Linker integration** | No "Add Links" button in content view | | **No Writer → Optimizer integration** | Optimize exists but no score preview | | **No cross-module notifications** | User doesn't know when AI tasks complete | | **No breadcrumb navigation** | Can't see full workflow path (Cluster → Idea → Task → Content) | #### Cross-Module Recommendations - [ ] Add global notification system for completed tasks - [ ] Add breadcrumb navigation showing workflow path - [ ] Add "Next Step" suggestions after each action - [ ] Unify content detail view with ALL actions available - [ ] Add workflow progress indicator --- ## 4. ACCOUNT Modules ### 4.1 Account Settings **Route:** `/account/settings` **Files:** `pages/account/AccountSettingsPage.tsx` **Tabs:** Account, Profile, Team #### Current Functionality - **Account Tab:** Organization name, billing email, full billing address, tax ID/VAT - **Profile Tab:** First/last name, email, phone, timezone, language, notifications, security - **Team Tab:** List team members, invite via email, remove members, role display #### Functional Gaps | Issue | Impact | Severity | |-------|--------|----------| | **Profile NOT connected to API** | Form saves nowhere - fake save with timeout | 🔴 Critical | | **No role assignment on invite** | Only email/name collected, no role dropdown | 🟠 High | | **No role editing for members** | Cannot change Member to Admin or vice versa | 🟠 High | | **Change Password does nothing** | Static button with no functionality | 🔴 Critical | | **No email verification** | Can change email without verification | 🟠 High | | **No 2FA option** | Security section minimal | 🟡 Medium | | **No account deletion** | Cannot close account | 🟡 Medium | | **No session management** | Cannot view/revoke active sessions | 🟡 Medium | #### Workflow Issues - Orphaned `TeamManagement.tsx` file exists (395 lines, not routed) - Inconsistent role system (shows Admin/Member but backend returns `is_admin` boolean) - No pending invitation status or resend capability - No team member limit enforcement display #### Recommendations - [ ] 🔴 **CRITICAL:** Implement profile API and connect Profile tab - [ ] 🔴 **CRITICAL:** Implement password change functionality - [ ] Add role selection to team invitation - [ ] Add invitation management (resend, cancel pending) - [ ] Show team member count vs plan limit - [ ] Delete orphaned `TeamManagement.tsx` --- ### 4.2 Plans & Billing **Route:** `/account/plans` **Files:** `pages/account/PlansAndBillingPage.tsx`, `pages/Billing/CreditPurchase.tsx` **Tabs:** Current Plan, Upgrade Plan, History #### Current Functionality - **Current Plan:** Plan name, status, credits, balance, renewal date, features - **Upgrade:** Pricing table, plan comparison, change policy - **History:** Invoices with PDF download, payments, payment methods #### Functional Gaps | Issue | Impact | |-------|--------| | **No proration preview** | Doesn't show prorated amount before upgrade | | **Credit purchase not linked** | `/billing/credits` exists separately but not linked | | **Cancellation is immediate** | No reason collection, no retention offers | | **No payment failure retry** | If payment fails, no retry UI | | **No downgrade proration display** | Policy exists but no calculation shown | #### Workflow Issues - Throttling errors surface directly to users ("Request was throttled. Retrying...") - Cancel flow has no confirmation dialog - Payment method supports bank_transfer, manual, stripe, paypal but UI only shows some - No billing cycle visualization (renewal date not prominent) #### Recommendations - [ ] Add proration preview before plan changes - [ ] Add confirmation dialog for cancellation - [ ] Link credit purchase from this page - [ ] Add cancellation reason collection - [ ] Clean up throttling messages (use spinner) --- ### 4.3 Usage **Route:** `/account/usage` **Files:** `pages/account/UsageAnalyticsPage.tsx`, `pages/account/UsageLimits.tsx`, `pages/account/CreditActivity.tsx` **Tabs:** Your Limits & Usage, Credit History, API Activity #### Current Functionality - **Quick Stats:** Credits left, used this month, monthly limit, usage % - **Limits:** Hard limits (sites, users, keywords, clusters) + Monthly limits - **Credit History:** Transaction log with type, amount, description - **API Activity:** Call statistics, endpoint breakdown #### Critical Gaps | Issue | Impact | Severity | |-------|--------|----------| | **API Activity is HARDCODED** | Shows fake static values (1,234, 567, 342) not real data | 🔴 Critical | | **Success rate is fake** | Hardcoded 98.5% | 🔴 Critical | | **No usage alerts** | No notification when approaching limits | 🟠 High | | **No per-site usage** | Can't see which site consumed what | 🟠 High | | **No per-user usage** | Can't see team member individual usage | 🟠 High | | **No usage export** | Cannot download usage report | 🟡 Medium | | **No usage forecasting** | No "you'll run out in X days" | 🟡 Medium | #### Workflow Issues - No actionable insights (doesn't suggest upgrade when hitting limits) - Credit history lacks context (no link to what was generated) - Disconnected from billing (separate page to upgrade) #### Recommendations - [ ] 🔴 **CRITICAL:** Implement actual API activity tracking or hide tab - [ ] Add usage alerts configuration (email at 80%, 90%, 100%) - [ ] Add per-site/per-user usage breakdown - [ ] Add "Upgrade" CTA when limits approaching - [ ] Add usage export functionality --- ### 4.4 AI Models (Admin Only) **Route:** `/settings/integration` **Files:** `pages/Settings/IntegrationPage.tsx` **Sections:** OpenAI Integration, Runware Integration, Image Generation, Site Integrations #### Current Functionality - **OpenAI:** Enable/disable, model selection, connection testing, validation - **Runware:** Enable/disable, model selection, connection testing - **Image Generation:** Service selection, model selection, image settings - **Testing:** Generate test images with preview - **Site Integrations:** Connected site management #### Functional Gaps | Issue | Impact | Severity | |-------|--------|----------| | **Fictional GPT model names** | Shows GPT-5.1, GPT-5.2 which don't exist | 🔴 Critical | | **No fallback configuration** | If OpenAI fails, no automatic Runware fallback | 🟠 High | | **No cost tracking** | Can't see integration costs | 🟡 Medium | | **No integration health history** | Only current status, no uptime history | 🟡 Medium | | **No API key rotation** | Can't rotate keys without disabling | 🟡 Medium | | **No audit log** | No record of when settings changed | 🟠 High | #### Workflow Issues - Admin-only but affects all users (no scope clarification) - Page mixes LLM models, image generation, AND site integrations - Complex modal nesting (settings, details, form all separate) - No preview of cost impact when changing models #### Recommendations - [ ] 🔴 **CRITICAL:** Fix GPT model names to actual models (gpt-4-turbo, gpt-4, gpt-3.5-turbo) - [ ] Add integration change audit logging - [ ] Add cost estimation when changing models - [ ] Consider separating site integrations to own page - [ ] Add fallback configuration --- ### ACCOUNT Cross-Module Issues | Issue | Impact | |-------|--------| | **Multiple credit balance sources** | Plans, Usage, billingStore all fetch independently | | **Fragmented billing pages** | PlansAndBillingPage, CreditPurchase, legacy routes | | **Legacy routes still exist** | `/billing/overview`, `/team`, `/profile` all redirect | | **No audit log across modules** | No record of who changed what when | | **No notification preferences** | Cannot configure billing/usage email alerts | --- ## 5. HELP Module ### 5.1 Help & Docs **Route:** `/help` **Files:** `pages/Help/HelpCenter.tsx`, `pages/Help/Documentation.tsx` (placeholder), `pages/Help/SystemTesting.tsx` (placeholder), `pages/Help/FunctionTesting.tsx` (placeholder) **Routes:** `/help`, `/help/docs`, `/help/system-testing`, `/help/function-testing` #### Current Functionality - Table of Contents with jump-to-section navigation - Getting Started: Quick Start Guide, Workflow Overview - Planner Module: Keywords, Clusters, Ideas documentation - Writer Module: Tasks, Content, Images documentation - Automation Setup overview - FAQ section (~20 questions) - Support CTA buttons (non-functional) #### Critical Gaps | Issue | Impact | Severity | |-------|--------|----------| | **Support dropdown link broken** | Goes to `/profile` which has NO route - 404 | 🔴 Critical | | **Contact Support button does nothing** | `