final docs for final audit implemenation

This commit is contained in:
IGNY8 VPS (Salman)
2025-12-27 00:34:22 +00:00
parent 277ef5c81d
commit 7a9fa8fd8f
12 changed files with 2565 additions and 1590 deletions

View File

@@ -1,380 +0,0 @@
# IGNY8 Development Rules & Standards
**Project:** IGNY8 - AI-Powered Content Platform
**Version:** v1.0.0
**Last Updated:** December 12, 2025
---
## 📋 General Development Principles
### 1. **Always Read Documentation First**
Before making changes, consult these critical docs:
- `ARCHITECTURE-KNOWLEDGE-BASE.md` - System architecture and design patterns
- `CHANGELOG.md` - Recent changes and version history
- `IGNY8-COMPLETE-FEATURES-GUIDE.md` - Complete feature set and capabilities
- `docs/00-SYSTEM/` - Core system architecture
- `docs/10-BACKEND/` - Backend models, services, APIs
- `docs/20-API/` - API endpoint documentation
- `docs/30-FRONTEND/` - Frontend components and architecture
- `docs/40-WORKFLOWS/` - Business workflows and processes
### 2. **Maintain Consistency**
- **API Design:** Follow existing RESTful patterns in `backend/igny8_core/*/views.py`
- **Models:** Use existing base classes (`SoftDeletableModel`, `AccountBaseModel`, `SiteSectorBaseModel`)
- **Services:** Follow service pattern in `backend/igny8_core/business/*/services/`
- **AI Functions:** Use AI framework in `backend/igny8_core/ai/` (not legacy `utils/ai_processor.py`)
- **Frontend Components:** Use existing component library in `frontend/src/components/`
- **Styling:** Use TailwindCSS classes, follow existing design system in `frontend/DESIGN_SYSTEM.md`
- **State Management:** Use Zustand stores in `frontend/src/store/`
### 3. **Multi-Tenancy Rules**
- **ALWAYS scope by account:** Every query must filter by account
- **Site/Sector scoping:** Use `SiteSectorBaseModel` for site-specific data
- **Permissions:** Check permissions via `IsAuthenticatedAndActive`, `HasTenantAccess`, role-based permissions
- **No cross-tenant access:** Validate account ownership before operations
### 4. **API Endpoint Rules**
- **Use existing API structure:** All user-facing endpoints under `/api/v1/<module>/`, admin endpoints under `/api/v1/<module>/admin/`
- **No parallel API systems:** Register all endpoints in module's `urls.py`, test via Swagger at `/api/docs/` before documenting
- **Document in Swagger:** Ensure drf-spectacular auto-generates docs; verify endpoint appears at `/api/docs/` and `/api/schema/`
---
## 📝 Change Management & Versioning
alwys udpated changelog with incremental updates, as fixed aded or modified for each version update, dotn remove or modify teh exsitng version changes
### Versioning Scheme: `v<MAJOR>.<MINOR>.<PATCH>`
**Example:** v1.2.5
- `MAJOR when asked` (1.x.x): Breaking changes, major features, architecture changes
- `MAJOR` (x.2.x): New features, modules, significant enhancements
- `MINOR/PATCH` (x.x.5): Bug fixes, small improvements, refactors
### Changelog Update Rules
#### **For EVERY Change:**
1. **Update version number** in `CHANGELOG.md`
2. **Increment PATCH** (v1.0.x → v1.0.1) for:
- Bug fixes
- Small improvements
- Code refactors
- Documentation updates
- UI/UX tweaks
3. **Increment MINOR** (v1.x.0 → v1.1.0) for:
- New features
- New API endpoints
- New components
- New services
- Significant enhancements
4. **Increment MAJOR** (vx.0.0 → v2.0.0) for:
- Breaking API changes
- Database schema breaking changes
- Architecture overhauls
- Major refactors affecting multiple modules
#### **Changelog Entry Format:**
```markdown
## v1.2.5 - December 12, 2025
### Fixed
- User logout issue when switching accounts
- Payment confirmation modal amount display
### Changed
- Updated session storage from database to Redis
- Enhanced credit balance widget UI
### Added
- Plan limits enforcement system
- Monthly reset task for usage tracking
```
### **For Major Refactors:**
1. **Create detailed TODO list** before starting
2. **Document current state** in CHANGELOG
3. **Create implementation checklist** (markdown file in root or docs/)
4. **Track progress** with checklist updates
5. **Test thoroughly** before committing
6. **Update CHANGELOG** with all changes made
7. **Update version** to next MINOR or MAJOR
---
## 🏗️ Code Organization Standards
### Backend Structure
```
backend/igny8_core/
├── auth/ # Authentication, users, accounts, plans
├── business/ # Business logic services
│ ├── automation/ # Automation pipeline
│ ├── billing/ # Billing, credits, invoices
│ ├── content/ # Content generation
│ ├── integration/ # External integrations
│ ├── linking/ # Internal linking
│ ├── optimization/ # Content optimization
│ ├── planning/ # Keywords, clusters, ideas
│ └── publishing/ # WordPress publishing
├── ai/ # AI framework (NEW - use this)
├── utils/ # Utility functions
├── tasks/ # Celery tasks
└── modules/ # Legacy modules (being phased out)
```
### Frontend Structure
```
frontend/src/
├── components/ # Reusable components
├── pages/ # Page components
├── store/ # Zustand state stores
├── services/ # API service layer
├── hooks/ # Custom React hooks
├── utils/ # Utility functions
├── types/ # TypeScript types
└── marketing/ # Marketing site
```
---
## 🔧 Development Workflow
### 1. **Planning Phase**
- [ ] Read relevant documentation
- [ ] Understand existing patterns
- [ ] Create TODO list for complex changes
- [ ] Identify affected components/modules
- [ ] Plan database changes (if any)
### 2. **Implementation Phase**
- [ ] Follow existing code patterns
- [ ] Use proper base classes and mixins
- [ ] Add proper error handling
- [ ] Validate input data
- [ ] Check permissions and scope
- [ ] Write clean, documented code
- [ ] Use type hints (Python) and TypeScript types
### 3. **Testing Phase**
- [ ] Test locally with development data
- [ ] Test multi-tenancy isolation
- [ ] Test permissions and access control
- [ ] Test error cases
- [ ] Verify no breaking changes
- [ ] Check frontend-backend integration
### 4. **Documentation Phase**
- [ ] Update CHANGELOG.md
- [ ] Update version number
- [ ] Update relevant docs (if architecture/API changes)
- [ ] Add code comments for complex logic
- [ ] Update API documentation (if endpoints changed)
---
## 🎯 Specific Development Rules
### Backend Development
#### **Models:**
```python
# ALWAYS inherit from proper base classes
from igny8_core.auth.models import SiteSectorBaseModel
class MyModel(SoftDeletableModel, SiteSectorBaseModel):
# Your fields here
pass
```
#### **Services:**
```python
# Follow service pattern
class MyService:
def __init__(self):
self.credit_service = CreditService()
self.limit_service = LimitService()
def my_operation(self, account, site, **kwargs):
# 1. Validate permissions
# 2. Check limits/credits
# 3. Perform operation
# 4. Track usage
# 5. Return result
pass
```
#### **API Views:**
```python
# Use proper permission classes
class MyViewSet(viewsets.ModelViewSet):
permission_classes = [IsAuthenticatedAndActive, HasTenantAccess]
def get_queryset(self):
# ALWAYS scope by account
return MyModel.objects.filter(
site__account=self.request.user.account
)
```
#### **Migrations:**
- Run `python manage.py makemigrations` after model changes
- Test migrations: `python manage.py migrate --plan`
- Never edit existing migrations
- Use data migrations for complex data changes
### Frontend Development
#### **Components:**
```typescript
// Use existing component library
import { Card } from '@/components/ui/card';
import Button from '@/components/ui/button/Button';
// Follow naming conventions
export default function MyComponent() {
// Component logic
}
```
#### **State Management:**
```typescript
// Use Zustand stores
import { useAuthStore } from '@/store/authStore';
const { user, account } = useAuthStore();
```
#### **API Calls:**
```typescript
// Use fetchAPI from services/api.ts
import { fetchAPI } from '@/services/api';
const data = await fetchAPI('/v1/my-endpoint/');
```
#### **Styling:**
```typescript
// Use TailwindCSS classes
<div className="p-6 bg-white dark:bg-gray-800 rounded-lg shadow">
<h1 className="text-2xl font-bold text-gray-900 dark:text-white">
My Heading
</h1>
</div>
```
---
## 🚫 Common Pitfalls to Avoid
### **DON'T:**
- ❌ Skip account scoping in queries
- ❌ Use legacy AI processor (`utils/ai_processor.py`) - use `ai/` framework
- ❌ Hardcode values - use settings or constants
- ❌ Forget error handling
- ❌ Skip permission checks
- ❌ Create duplicate components - reuse existing
- ❌ Use inline styles - use TailwindCSS
- ❌ Forget to update CHANGELOG
- ❌ Use workarounds - fix the root cause
- ❌ Skip migrations after model changes
### **DO:**
- ✅ Read documentation before coding
- ✅ Follow existing patterns
- ✅ Use proper base classes
- ✅ Check permissions and limits
- ✅ Handle errors gracefully
- ✅ Return valid errors, not fallbacks
- ✅ Update CHANGELOG for every change
- ✅ Test multi-tenancy isolation
- ✅ Use TypeScript types
- ✅ Write clean, documented code
---
## 🔍 Code Review Checklist
Before committing code, verify:
- [ ] Follows existing code patterns
- [ ] Properly scoped by account/site
- [ ] Permissions checked
- [ ] Error handling implemented
- [ ] No breaking changes
- [ ] CHANGELOG.md updated
- [ ] Version number incremented
- [ ] Documentation updated (if needed)
- [ ] Tested locally
- [ ] No console errors or warnings
- [ ] TypeScript types added/updated
- [ ] Migrations created (if model changes)
---
## 📚 Key Architecture Concepts
### **Credit System:**
- All AI operations cost credits
- Check credits before operation: `CreditService.check_credits()`
- Deduct after operation: `CreditService.deduct_credits()`
- Track in `CreditUsageLog` table
### **Limit System:**
- Hard limits: Persistent (sites, users, keywords, clusters)
- Monthly limits: Reset on billing cycle (ideas, words, images)
- Track in `PlanLimitUsage` table
- Check before operation: `LimitService.check_limit()`
### **AI Framework:**
- Use `ai/engine.py` for AI operations
- Use `ai/functions/` for specific AI tasks
- Use `ai/models.py` for tracking
- Don't use legacy `utils/ai_processor.py`
### **Multi-Tenancy:**
- Every request has `request.user.account`
- All models scope by account directly or via site
- Use `AccountBaseModel` or `SiteSectorBaseModel`
- Validate ownership before mutations
---
## 🎨 Design System
### **Colors:**
- Primary: Blue (#0693e3)
- Success: Green (#0bbf87)
- Error: Red (#ef4444)
- Warning: Yellow (#f59e0b)
- Info: Blue (#3b82f6)
### **Typography:**
- Headings: font-bold
- Body: font-normal
- Small text: text-sm
- Large text: text-lg, text-xl, text-2xl
### **Spacing:**
- Padding: p-4, p-6 (standard)
- Margin: mt-4, mb-6 (standard)
- Gap: gap-4, gap-6 (standard)
### **Components:**
- Card: `<Card>` with padding and shadow
- Button: `<Button>` with variants (primary, secondary, danger)
- Input: `<Input>` with proper validation
- Badge: `<Badge>` with color variants
---
## 📞 Support & Questions
- Architecture questions → Check `ARCHITECTURE-KNOWLEDGE-BASE.md`
- Feature questions → Check `IGNY8-COMPLETE-FEATURES-GUIDE.md`
- API questions → Check `docs/20-API/`
- Recent changes → Check `CHANGELOG.md`
---
**Remember:** Quality over speed. Take time to understand existing patterns before implementing new features.

151
.rules Normal file
View File

@@ -0,0 +1,151 @@
# IGNY8 AI Agent Rules
**Version:** 1.1.0 | **Updated:** December 27, 2025
---
## 🚀 Quick Start for AI Agents
**BEFORE any change, read these docs in order:**
1. [docs/INDEX.md](docs/INDEX.md) - Quick navigation to any module/feature
2. Module doc for the feature you're modifying (see INDEX.md for paths)
3. [CHANGELOG.md](CHANGELOG.md) - Recent changes and version history
---
## 📁 Project Structure
| Layer | Path | Purpose |
|-------|------|---------|
| Backend | `backend/igny8_core/` | Django REST API |
| Frontend | `frontend/src/` | React + TypeScript SPA |
| Docs | `docs/` | Technical documentation |
| AI Engine | `backend/igny8_core/ai/` | AI functions (use this, NOT `utils/ai_processor.py`) |
**Module → File Quick Reference:** See [docs/INDEX.md](docs/INDEX.md#module--file-quick-reference)
---
## 🐳 Docker Commands (IMPORTANT!)
**Container Names:**
| Container | Name | Purpose |
|-----------|------|---------|
| Backend | `igny8_backend` | Django API server |
| Frontend | `igny8_frontend` | React dev server |
| Celery Worker | `igny8_celery_worker` | Background tasks |
| Celery Beat | `igny8_celery_beat` | Scheduled tasks |
**Run commands INSIDE containers:**
```bash
# ✅ CORRECT - Run Django management commands
docker exec -it igny8_backend python manage.py migrate
docker exec -it igny8_backend python manage.py makemigrations
docker exec -it igny8_backend python manage.py shell
# ✅ CORRECT - Run npm commands
docker exec -it igny8_frontend npm install
docker exec -it igny8_frontend npm run build
# ✅ CORRECT - View logs
docker logs igny8_backend -f
docker logs igny8_celery_worker -f
# ❌ WRONG - Don't use docker-compose for commands
# docker-compose exec backend python manage.py migrate
```
---
## ✅ Rules (One Line Each)
### Before Coding
1. **Read docs first** - Always read the relevant module doc from `docs/10-MODULES/` before changing code
2. **Check existing patterns** - Search codebase for similar implementations before creating new ones
3. **Use existing components** - Never duplicate; reuse components from `frontend/src/components/`
### During Coding
4. **Scope by account** - Every query must filter by `account` (use `AccountBaseModel` or `SiteSectorBaseModel`)
5. **Use AI framework** - Use `backend/igny8_core/ai/` for AI operations, NOT legacy `utils/ai_processor.py`
6. **Follow service pattern** - Business logic in `backend/igny8_core/business/*/services/`
7. **Check permissions** - Use `IsAuthenticatedAndActive`, `HasTenantAccess` in views
8. **Use TypeScript types** - All frontend code must be typed
9. **Use TailwindCSS** - No inline styles; follow `frontend/DESIGN_SYSTEM.md`
### After Coding
10. **Update CHANGELOG.md** - Every commit needs a changelog entry with git reference
11. **Increment version** - PATCH for fixes, MINOR for features, MAJOR for breaking changes
12. **Update docs** - If you changed APIs or architecture, update relevant docs in `docs/`
13. **Run migrations** - After model changes: `docker exec -it igny8_backend python manage.py makemigrations`
---
## 📝 Changelog Format
```markdown
## v1.1.1 - December 27, 2025
### Fixed
- Description here (git: abc1234)
### Added
- Description here (git: def5678)
### Changed
- Description here (git: ghi9012)
```
---
## 🔗 Key Documentation
| I want to... | Go to |
|--------------|-------|
| Find any module | [docs/INDEX.md](docs/INDEX.md) |
| Understand architecture | [docs/00-SYSTEM/ARCHITECTURE.md](docs/00-SYSTEM/ARCHITECTURE.md) |
| Find an API endpoint | [docs/20-API/ENDPOINTS.md](docs/20-API/ENDPOINTS.md) |
| See all models | [docs/90-REFERENCE/MODELS.md](docs/90-REFERENCE/MODELS.md) |
| Understand AI functions | [docs/90-REFERENCE/AI-FUNCTIONS.md](docs/90-REFERENCE/AI-FUNCTIONS.md) |
| See frontend pages | [docs/30-FRONTEND/PAGES.md](docs/30-FRONTEND/PAGES.md) |
| See recent changes | [CHANGELOG.md](CHANGELOG.md) |
---
## 🚫 Don't Do
- ❌ Skip reading docs before coding
- ❌ Create duplicate components
- ❌ Use `docker-compose` for exec commands (use `docker exec`)
- ❌ Use legacy `utils/ai_processor.py`
- ❌ Skip account scoping in queries
- ❌ Forget to update CHANGELOG
- ❌ Use inline styles (use TailwindCSS)
- ❌ Hardcode values (use settings/constants)
---
## 📊 API Base URLs
| Module | Base URL |
|--------|----------|
| Auth | `/api/v1/auth/` |
| Planner | `/api/v1/planner/` |
| Writer | `/api/v1/writer/` |
| Billing | `/api/v1/billing/` |
| Integration | `/api/v1/integration/` |
| System | `/api/v1/system/` |
| Publisher | `/api/v1/publisher/` |
**API Docs:** http://localhost:8000/api/docs/
---
## 🎯 Quick Checklist Before Commit
- [ ] Read relevant module docs
- [ ] Used existing components/patterns
- [ ] Account scoped all queries
- [ ] Updated CHANGELOG.md with git reference
- [ ] Updated version number
- [ ] Ran migrations if model changed
- [ ] Tested locally

View File

@@ -1,7 +1,7 @@
# IGNY8 Change Log # IGNY8 Change Log
**Current Version:** 1.1.0 **Current Version:** 1.1.1
**Last Updated:** December 25, 2025 **Last Updated:** December 27, 2025
--- ---
@@ -9,6 +9,7 @@
| Version | Date | Summary | | Version | Date | Summary |
|---------|------|---------| |---------|------|---------|
| 1.1.1 | Dec 27, 2025 | Simplified AI agent rules file |
| 1.1.0 | Dec 25, 2025 | UX overhaul, page consolidation, pre-launch audit | | 1.1.0 | Dec 25, 2025 | UX overhaul, page consolidation, pre-launch audit |
| 1.0.5 | Dec 12, 2025 | Purchase Credits tab, UI reorganization | | 1.0.5 | Dec 12, 2025 | Purchase Credits tab, UI reorganization |
| 1.0.4 | Dec 12, 2025 | Credit Activity tab, Cost Reference panel | | 1.0.4 | Dec 12, 2025 | Credit Activity tab, Cost Reference panel |
@@ -19,6 +20,19 @@
--- ---
## v1.1.1 - December 27, 2025
### Changed
- **Rules File Overhaul**: Simplified `.rules` file for AI agents
- Reduced from 300+ lines to ~120 lines
- Added clear Docker container names and correct exec commands
- Added one-line rules format for quick reading
- Added quick reference table pointing to INDEX.md
- Removed verbose code examples (agents should read actual codebase)
- Added changelog format with git reference requirement
---
## v1.1.0 - December 25, 2025 ## v1.1.0 - December 25, 2025
### Major Changes ### Major Changes

View File

@@ -1,867 +0,0 @@
# 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** | `<button>` with no onClick handler | 🔴 Critical |
| **Feature Request button does nothing** | Same - no functionality | 🔴 Critical |
| **3 of 4 help pages empty** | `/help/docs`, `/help/system-testing`, `/help/function-testing` are placeholders | 🟠 High |
| **No actual support channel** | No email, chat, or ticket system | 🔴 Critical |
#### Missing Documentation
| Module | Status | Coverage |
|--------|--------|----------|
| Thinker | Active | 1 FAQ only - no section |
| Linker | Optional | Not mentioned |
| Optimizer | Optional | Not mentioned |
| Publisher | Active | Not documented |
| Sites/Site Builder | Active | Not documented |
| Billing/Credits | Active | 1 FAQ only |
| Account Settings | Active | Not documented |
#### Workflow Issues
- **No search functionality** - Must scroll or use TOC
- **No contextual help** - No in-app tooltips or "?" icons
- **No help sub-navigation** - Routes exist but no tabs visible
- **Stale content risk** - Hardcoded in TSX, requires deployment to update
#### Recommendations
- [ ] 🔴 **CRITICAL:** Fix Support dropdown link (`/profile``/help` or support page)
- [ ] 🔴 **CRITICAL:** Implement Contact Support (mailto: or external support URL)
- [ ] 🔴 **CRITICAL:** Add WordPress setup guide
- [ ] Document missing modules (Sites, Publisher, Thinker)
- [ ] Create Troubleshooting guide
- [ ] Add search functionality
- [ ] Add credit cost documentation
- [ ] Remove or implement placeholder pages
---
## 6. Sidebar & Navigation
**File:** `layout/AppSidebar.tsx`
### Current Structure
```
Dashboard (standalone)
├─ SETUP
│ ├─ Add Keywords → /setup/add-keywords
│ ├─ Content Settings → /account/content-settings
│ ├─ Sites (if site_builder enabled) → /sites
│ └─ Thinker (admin only, if thinker enabled) → /thinker/prompts
├─ WORKFLOW
│ ├─ Planner (if planner enabled) → /planner/keywords
│ ├─ Writer (if writer enabled) → /writer/tasks
│ ├─ Automation (if automation enabled) → /automation
│ ├─ Linker (if linker enabled) → /linker/content
│ └─ Optimizer (if optimizer enabled) → /optimizer/content
├─ ACCOUNT
│ ├─ Account Settings → /account/settings
│ ├─ Plans & Billing → /account/plans
│ ├─ Usage → /account/usage
│ └─ AI Models (admin only) → /settings/integration
└─ HELP
└─ Help & Docs → /help
```
### Navigation Gaps
| Issue | Impact |
|-------|--------|
| **KeywordOpportunities not in navigation** | `/planner/keyword-opportunities` exists but not accessible |
| **Linker Dashboard not exposed** | `/linker/dashboard` exists but only `/linker/content` in sidebar |
| **Optimizer Dashboard not exposed** | `/optimizer/dashboard` exists but only `/optimizer/content` in sidebar |
| **Help sub-pages hidden** | `/help/docs`, `/help/system-testing`, `/help/function-testing` not navigable |
| **Credit purchase not in sidebar** | `/billing/credits` exists but not accessible from sidebar |
### Menu Order Issues
| Current Order | Recommended Order | Reason |
|---------------|-------------------|--------|
| Add Keywords first in SETUP | Sites first | User should create site before adding keywords |
| Content Settings before Sites | Content Settings last | Configure after site is set up |
| Planner before Writer | Planner before Writer ✓ | Correct - follows workflow |
### Missing Navigation Features
| Feature | Impact |
|---------|--------|
| **No breadcrumb navigation** | User can't see full path (Cluster → Idea → Task → Content) |
| **No "Next Step" guidance** | After completing action, user doesn't know where to go |
| **No active section highlighting** | Sidebar doesn't show which section is active |
| **No keyboard navigation** | Can't navigate sidebar with keyboard |
| **No recent pages** | Can't quickly return to recently visited pages |
### Recommendations
- [ ] Add KeywordOpportunities to Planner sub-navigation
- [ ] Consider reordering SETUP: Sites → Add Keywords → Content Settings → Thinker
- [ ] Add breadcrumb navigation component
- [ ] Add "What's Next?" suggestions after key actions
- [ ] Consider exposing Dashboard pages for Linker/Optimizer
---
## 7. Summary & Prioritization
### 🔴 CRITICAL - Must Fix Before Launch
| # | Issue | Module | Type |
|---|-------|--------|------|
| 1 | **Content Generation/Publishing settings NOT SAVED** | Content Settings | Data Loss |
| 2 | **Profile tab NOT connected to API** | Account Settings | Data Loss |
| 3 | **Password change does nothing** | Account Settings | Security |
| 4 | **API Activity data is HARDCODED fake** | Usage | Misleading Data |
| 5 | **Support buttons do nothing** | Help | No Support Channel |
| 6 | **Support dropdown goes to 404** | Help | Broken Link |
| 7 | **Fictional GPT model names (GPT-5.1, 5.2)** | AI Models | Data Integrity |
| 8 | **No bulk content generation** | Writer | Core Workflow Blocked |
| 9 | **No content editing capability** | Writer | Core Workflow Blocked |
| 10 | **Dashboard has hardcoded usage/activity data** | Dashboard | Misleading Data |
### 🟠 HIGH - Significant Impact on User Experience
| # | Issue | Module |
|---|-------|--------|
| 11 | No role assignment/editing for team members | Account Settings |
| 12 | No proration preview for plan changes | Plans & Billing |
| 13 | No cancellation confirmation dialog | Plans & Billing |
| 14 | KeywordOpportunities hidden from navigation | Planner |
| 15 | No cluster progress indicator (which have ideas) | Planner |
| 16 | No content regeneration capability | Writer |
| 17 | 3 of 4 help pages are empty placeholders | Help |
| 18 | No dashboard API endpoint (6+ sequential calls) | Dashboard |
| 19 | Published content count incorrect | Dashboard |
| 20 | No "Needs Attention" section | Dashboard |
| 21 | No usage alerts when approaching limits | Usage |
| 22 | Sites Dashboard shows mock/zero data | Sites |
| 23 | Thinker has 50% "Coming Soon" pages | Thinker |
| 24 | No integration audit logging | AI Models |
### 🟡 MEDIUM - Professional Polish Needed
| # | Issue | Module |
|---|-------|--------|
| 25 | No manual keyword entry | Add Keywords |
| 26 | No "Next Step" CTA after actions | Add Keywords, Planner |
| 27 | No pending invitation management | Account Settings |
| 28 | No 2FA option | Account Settings |
| 29 | No per-site/per-user usage breakdown | Usage |
| 30 | No search in Help | Help |
| 31 | Missing module documentation (Sites, Thinker, etc.) | Help |
| 32 | Automation has no stage-by-stage control | Automation |
| 33 | Linker has no content filtering | Linker |
| 34 | Optimizer has no score-based filtering | Optimizer |
| 35 | No cross-module notifications | All |
| 36 | No breadcrumb navigation | All |
| 37 | Quick Actions don't adapt to user state | Dashboard |
---
### Implementation Phases
#### Phase 1: Critical Fixes (Must Complete)
Focus: Data integrity, security, core functionality
- Fix Content Settings API (Content Gen + Publishing tabs)
- Fix Profile API connection
- Implement password change
- Remove/fix hardcoded API Activity data
- Implement support channel (mailto or external URL)
- Fix Support dropdown link
- Fix GPT model names
- Add bulk content generation
- Add inline content editing
#### Phase 2: Core Workflow Improvements
Focus: User workflow efficiency
- Add dashboard aggregated API endpoint
- Add "Needs Attention" widget
- Add KeywordOpportunities to navigation
- Add cluster progress indicators
- Add content regeneration
- Add team role management
- Add plan change proration preview
- Add cancellation confirmation
#### Phase 3: Professional Polish
Focus: Edge cases and advanced features
- Complete Help documentation
- Add usage alerts
- Add per-site usage breakdown
- Add stage controls to Automation
- Add filtering to Linker/Optimizer
- Add breadcrumb navigation
- Add cross-module notifications
---
### Quick Wins (< 1 hour each)
1. Fix Support dropdown link (`/profile``/help`)
2. Add mailto: to Contact Support button
3. Fix GPT model names (rename to actual models)
4. Add cancellation confirmation dialog
5. Remove/hide API Activity tab until implemented
6. Add KeywordOpportunities to Planner tabs
7. Fix profile save to show "Coming Soon" instead of fake save
---
### Files to Delete (Orphaned/Duplicate)
| File | Reason |
|------|--------|
| `pages/account/TeamManagement.tsx` | Orphaned, functionality in AccountSettingsPage |
| `pages/Sites/Manage.tsx` | Duplicate of List.tsx |
| `pages/Help/Documentation.tsx` | Empty placeholder |
| `pages/Help/SystemTesting.tsx` | Empty placeholder |
| `pages/Help/FunctionTesting.tsx` | Empty placeholder |
| `pages/Thinker/Strategies.tsx` | Empty "Coming Soon" |
| `pages/Thinker/ImageTesting.tsx` | Empty "Coming Soon" |
---
**Total Issues Identified:** 37
**Critical:** 10
**High:** 14
**Medium:** 13

View File

@@ -1,341 +0,0 @@
# Production Readiness Plan
**Created:** December 25, 2025
**Last Updated:** December 25, 2025
**Goal:** Ship to production with simplified UI while keeping backend unchanged
**Status:** ✅ CORE CHANGES COMPLETE
---
## Implementation Status
### ✅ Completed Changes
| File | Change | Status |
|------|--------|--------|
| `layout/AppLayout.tsx` | Header shows "Content: X/Y" | ✅ Done |
| `pages/Dashboard/Home.tsx` | Credit widget → "Content This Month" | ✅ Done |
| `pages/Help/Help.tsx` | FAQ updated | ✅ Done |
| `pages/Automation/AutomationPage.tsx` | Error messages updated | ✅ Done |
| `components/auth/SignUpForm*.tsx` | 3 files - removed credit text | ✅ Done |
| `pages/Settings/Plans.tsx` | Shows "Pages/Articles per month" | ✅ Done |
| `pages/account/PlansAndBillingPage.tsx` | Tabs simplified, Purchase Credits hidden | ✅ Done |
| `pages/Payment.tsx` | Updated pricing display | ✅ Done |
| `pages/Optimizer/Dashboard.tsx` | Removed credits card | ✅ Done |
| `pages/Settings/CreditsAndBilling.tsx` | Renamed to "Usage & Billing" | ✅ Done |
| `pages/Billing/Credits.tsx` | Renamed to "Content Usage" | ✅ Done |
| `components/billing/BillingBalancePanel.tsx` | "Usage Overview" | ✅ Done |
| `components/dashboard/CreditBalanceWidget.tsx` | "Content Usage" | ✅ Done |
| `components/dashboard/UsageChartWidget.tsx` | "Content Created" | ✅ Done |
| `components/ui/pricing-table/index.tsx` | "Content pieces/month" | ✅ Done |
| `marketing/pages/Pricing.tsx` | "Usage Dashboard" | ✅ Done |
| `docs/40-WORKFLOWS/CREDIT-SYSTEM.md` | Updated docs | ✅ Done |
### Hidden from Regular Users
| Feature | Status |
|---------|--------|
| Purchase Credits page | Hidden (commented out) |
| Credit Cost Breakdown | Hidden |
| Credit Packages grid | Hidden |
| Detailed credit analytics | Hidden |
---
## The Strategy: Abstraction Layer
```
┌─────────────────────────────────────────────────────────────────┐
│ WHAT CHANGES │
├─────────────────────────────────────────────────────────────────┤
│ │
│ BACKEND (NO CHANGES) FRONTEND (CHANGES) │
│ ────────────────────── ────────────────── │
│ • Credit deduction ✓ • Hide credit numbers ✅ │
│ • Usage tracking ✓ • Show "Content Pieces" ✅ │
│ • Plan limits ✓ • Simplify terminology ✅ │
│ • API responses ✓ • Remove purchase credits ✅ │
│ │
└─────────────────────────────────────────────────────────────────┘
```
**Key Insight:** Backend tracks `content_credits`. User sees this as "Content Pieces".
No conversion needed - just rename the display.
---
## Phase 1: Core Abstraction (billingStore)
### File: `frontend/src/store/billingStore.ts`
Add computed properties that translate credits → content pieces:
```typescript
// Add to BillingState interface
interface BillingState {
// ... existing ...
// Computed for simple UI
getContentPiecesRemaining: () => number;
getContentPiecesUsed: () => number;
getContentPiecesTotal: () => number;
}
// In the store
getContentPiecesRemaining: () => {
const balance = get().balance;
// content_credits = content pieces (1:1 mapping)
return balance?.credits_remaining ?? 0;
},
getContentPiecesUsed: () => {
const balance = get().balance;
return balance?.credits_used_this_month ?? 0;
},
getContentPiecesTotal: () => {
const balance = get().balance;
return balance?.plan_credits_per_month ?? 0;
},
```
---
## Phase 2: Header Metrics Update
### File: `frontend/src/layout/AppLayout.tsx`
**Current (line ~138):**
```typescript
{
label: 'Credits',
value: balance.credits.toLocaleString(),
// ...
}
```
**Change to:**
```typescript
{
label: 'Content',
value: `${balance.credits_remaining}/${balance.plan_credits_per_month}`,
tooltip: 'Content pieces remaining this month'
}
```
---
## Phase 3: Pages to Update
### Priority 1: Remove/Hide These Pages
| Page | File | Action |
|------|------|--------|
| Purchase Credits | `pages/account/PurchaseCreditsPage.tsx` | Hide from nav, keep for admin |
| Credits Tab | `pages/Billing/Credits.tsx` | Remove tab from billing |
| Credits & Billing | `pages/Settings/CreditsAndBilling.tsx` | Rename to "Usage" |
### Priority 2: Update Text/Labels
| Page | File | Changes |
|------|------|---------|
| Dashboard | `pages/Dashboard/Home.tsx` | "Credits" → "Content Pieces" |
| Plans & Billing | `pages/account/PlansAndBillingPage.tsx` | Remove Credits tab, simplify |
| Usage Analytics | `pages/account/UsageAnalyticsPage.tsx` | "Credits" → "Content" |
| Automation | `pages/Automation/AutomationPage.tsx` | "credits" → "content pieces" |
| Help | `pages/Help/Help.tsx` | Update FAQ text |
### Priority 3: Marketing Pages
| Page | File | Changes |
|------|------|---------|
| Pricing | `marketing/pages/Pricing.tsx` | Already updated per session |
| Waitlist | `marketing/pages/Waitlist.tsx` | Update copy |
---
## Phase 4: Components to Update
### High Priority
| Component | File | Changes |
|-----------|------|---------|
| CreditBalanceWidget | `components/dashboard/CreditBalanceWidget.tsx` | Rename to ContentBalanceWidget |
| BillingBalancePanel | `components/billing/BillingBalancePanel.tsx` | Remove "Purchase Credits" link |
| BillingUsagePanel | `components/billing/BillingUsagePanel.tsx` | Simplify display |
| CurrentProcessingCard | `components/Automation/CurrentProcessingCard.tsx` | "Credits Used" → "Content Generated" |
| RunHistory | `components/Automation/RunHistory.tsx` | Same |
### Medium Priority (Can ship with these unchanged)
| Component | File | Notes |
|-----------|------|-------|
| CreditCostBreakdownPanel | `components/billing/CreditCostBreakdownPanel.tsx` | Admin only, keep |
| CreditCostsPanel | `components/billing/CreditCostsPanel.tsx` | Admin only, keep |
| UsageChartWidget | `components/dashboard/UsageChartWidget.tsx` | Keep for analytics |
---
## Phase 5: Routes to Update
### File: `frontend/src/App.tsx`
**Remove from user routes:**
```typescript
// Remove or hide:
<Route path="/account/purchase-credits" element={<PurchaseCreditsPage />} />
<Route path="/billing/credits" element={<Credits />} />
```
**Keep for admin access only** (add admin check)
---
## Phase 6: Terminology Mapping
Use this mapping consistently:
| OLD (Backend/Internal) | NEW (User-Facing) |
|------------------------|-------------------|
| credits | content pieces |
| credit balance | content remaining |
| credits used | content generated |
| plan_credits_per_month | monthly content limit |
| credits_remaining | content pieces left |
| insufficient credits | content limit reached |
| purchase credits | upgrade plan |
---
## Phase 7: Error Messages
### File: Create `frontend/src/utils/userFriendlyMessages.ts`
```typescript
export const USER_MESSAGES = {
INSUFFICIENT_CREDITS: "You've reached your content limit for this month. Upgrade your plan for more.",
CREDIT_DEDUCTED: "Content piece generated successfully",
LOW_BALANCE: "You're running low on content pieces this month",
// Operation-specific
CLUSTERING_SUCCESS: "Keywords organized into topics",
IDEAS_SUCCESS: "Content ideas generated",
CONTENT_SUCCESS: "Article draft created",
IMAGES_SUCCESS: "Images generated",
};
```
---
## Implementation Order
### Day 1: Core Changes (Ship Blocker)
1. [ ] Update `billingStore.ts` with computed properties
2. [ ] Update `AppLayout.tsx` header metric
3. [ ] Update `PlansAndBillingPage.tsx` - remove Credits tab
4. [ ] Hide Purchase Credits route (don't delete)
### Day 2: Dashboard & Key Pages
5. [ ] Update `Dashboard/Home.tsx` labels
6. [ ] Update `UsageAnalyticsPage.tsx` labels
7. [ ] Update `AutomationPage.tsx` labels
8. [ ] Update `Help.tsx` FAQ content
### Day 3: Components & Polish
9. [ ] Rename CreditBalanceWidget → ContentBalanceWidget
10. [ ] Update BillingBalancePanel
11. [ ] Update CurrentProcessingCard
12. [ ] Update RunHistory
### Day 4: Marketing & Final
13. [ ] Verify Pricing page is correct
14. [ ] Update Waitlist/Tour pages
15. [ ] Update SignUp form text
16. [ ] Final QA pass
---
## What NOT to Change
Keep these exactly as-is:
1. **Backend API endpoints** - All `/v1/billing/*` endpoints
2. **Database models** - CreditBalance, CreditUsage, etc.
3. **Credit deduction logic** - In business services
4. **Admin pages** - Keep full credit visibility for admins
5. **API responses** - Backend still returns `credits`, frontend translates
---
## Backend Soft Limits (Already Implemented)
Per the pricing session, backend should enforce:
| Limit | Starter | Growth | Scale |
|-------|---------|--------|-------|
| Content pieces/mo | 50 | 200 | 500 |
| Keyword imports/mo | 500 | 2,000 | 5,000 |
| Clustering ops/mo | 100 | 400 | 1,000 |
| Idea generations/mo | 150 | 600 | 1,500 |
**If not implemented:** These are hidden from user but prevent abuse. Add backend validation in:
- `backend/igny8_core/business/billing/services.py`
---
## Quick Wins (Can Do Now)
### 1. Header Metric (5 min)
In `AppLayout.tsx`, change:
```typescript
label: 'Credits',
```
to:
```typescript
label: 'Content',
```
### 2. Help FAQ (5 min)
In `Help.tsx`, update the credits question to:
```
question: "How does content usage work?"
answer: "Each plan includes a monthly content allowance. Creating articles, generating ideas, and producing images all count toward your monthly limit. View your usage in Settings > Usage."
```
### 3. Hide Purchase Credits Link (5 min)
In `BillingBalancePanel.tsx`, remove or conditionally hide:
```typescript
<Link to="/account/purchase-credits">Purchase Credits</Link>
```
---
## Testing Checklist
Before production:
- [ ] User can see "47/50 Content" in header (not "835 Credits")
- [ ] Plans page shows content pieces, not credits
- [ ] No "Purchase Credits" visible to regular users
- [ ] Automation shows "Content Generated: 5" not "Credits Used: 5"
- [ ] Error on limit shows "Content limit reached" not "Insufficient credits"
- [ ] Dashboard shows simple progress bar with content count
- [ ] Help/FAQ explains content pieces, not credits
---
## Summary
**Total effort:** ~2-3 days of frontend work
**Backend changes:** Zero
**Risk:** Low (display-only changes)
**Rollback:** Easy (revert frontend only)
The system still tracks everything internally with credits. Users just see a simpler "content pieces" model that maps 1:1 to content credits.

View File

@@ -0,0 +1,242 @@
# Section 2: SETUP Modules - Audit & Action Plan
**Date:** December 27, 2025
**Status:** Finalized for Implementation
**Scope:** Add Keywords, Content Settings, Sites (Thinker excluded - admin only)
---
## 2.1 Add Keywords
**Route:** `/setup/add-keywords`
**File:** `pages/Setup/AddKeywords.tsx`
### Current Functionality
- Browse pre-populated seed keywords from global database (admin-imported CSV)
- Filter by active site's industry/sector
- Bulk select and add keywords to Planner workflow
- Tracks which keywords are already added
- Filters: Search, Country, Difficulty
### Important Clarification
- **This page:** Browse/select from global seed keyword database only
- **Manual keyword entry:** Available in Planner/Keywords page (user's own workflow), NOT here
- **Keyword imports:** Admin-only via backend admin panel
---
### Issues to Address
| # | Issue | Priority | Action |
|---|-------|----------|--------|
| 1 | Sector requirement unclear | High | Add tooltip/message explaining why buttons are disabled when no sector is selected |
| 2 | No "already added" filter | Medium | Add filter toggle: "Show not-yet-added only" |
| 3 | No "Next Step" CTA | High | Add button after keywords added: "Next: Plan Your Content →" linking to Planner |
| 4 | No keyword count summary | Medium | Display: "X keywords in your workflow • Y available to add" |
| 5 | Import/manual add buttons exist | High | Remove any UI elements for importing or manually adding keywords - this is global DB, read-only for users |
| 6 | No Keyword Research indication | Low | Add small teaser text: "Looking for more keywords? Keyword Research coming soon" (user-friendly, non-technical wording) |
---
### Implementation Notes
**For Issue #1 (Sector requirement):**
- When buttons are disabled, show tooltip: "Please select an industry and sector in your Site Settings to browse relevant keywords"
- Consider linking directly to Site Settings
**For Issue #3 (Next Step CTA):**
- Button should appear after user has added at least 1 keyword
- Route to `/planner/keywords`
**For Issue #5 (Remove import/add):**
- Audit the page for any "Import Keywords" or "Add Custom Keyword" buttons
- Remove from UI completely
- Keywords only come from admin-imported global database
---
## 2.2 Content Settings
**Route:** `/account/content-settings`
**File:** `pages/account/ContentSettingsPage.tsx`
**Tabs:** Content Generation, Publishing, Image Settings
### Current Functionality
- **Content Generation Tab:** Append to prompt, default tone, default length
- **Publishing Tab:** Auto-publish toggle, keep updated toggle
- **Image Settings Tab:** Quality, style, sizes, format (DALL-E 2/3/Runware)
### Current State
- ⚠️ **Content Generation:** Shows "saved" but does NOT persist (TODO in code)
- ⚠️ **Publishing:** Shows "saved" but does NOT persist (no backend API)
-**Image Settings:** Works correctly (has API integration)
---
### Issues to Address
| # | Issue | Priority | Action |
|---|-------|----------|--------|
| 1 | Content Generation NOT PERSISTED | 🔴 Critical | Implement backend API endpoint to save Content Generation settings |
| 2 | Publishing NOT PERSISTED | 🔴 Critical | Implement backend API endpoint - simple toggle for auto-publish (true/false) |
| 3 | False "saved" confirmation | 🔴 Critical | Fix after #1 and #2 - currently misleads users |
---
### Implementation Notes
**For Issue #1 (Content Generation API):**
- Fields to persist: append_to_prompt, default_tone, default_length
- Should save at account level (global, not per-site)
**For Issue #2 (Publishing API):**
- Simple boolean toggle: auto_publish (true/false)
- When true: content automatically publishes to WordPress after generation
- When false: content stays in Review status for manual publishing
**Not Needed for Launch:**
- Per-site content settings
- Thinker prompts connection explanation (handled via shortcodes in prompts)
---
## 2.3 Sites
**Route:** `/sites`
**Files:** `pages/Sites/List.tsx`, `pages/Sites/SiteSettings.tsx`, `pages/Sites/SiteDashboard.tsx`
**Tabs (Site Settings):** 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
### What Sites Module Should Be (Launch Scope)
- Connect/manage WordPress sites for content publishing
- Configure WordPress integration (API credentials)
- Set active site for content workflow
- Industry/sector selection (for keyword filtering)
---
### Issues to Address
#### A. Fix/Improve (From Audit)
| # | Issue | Priority | Action |
|---|-------|----------|--------|
| 1 | Dashboard stats are mock data | Medium | Implement real site statistics endpoint OR remove stats display |
| 2 | No inline editing | Low | Add inline edit for site name from list view |
| 3 | No site cloning | Low | Add "Duplicate Site" action to copy configuration |
| 4 | No bulk operations | Low | Add bulk activate/deactivate/delete |
| 5 | Complex site creation flow | High | Allow site creation without requiring industry/sector upfront |
| 6 | Integration tab default after creation | Medium | Default to General tab, not Integrations (less confusing for non-technical users) |
| 7 | No setup progress indicator | High | Add visual checklist showing what's configured vs pending (see below) |
#### B. Remove (Legacy Site Builder)
| # | Issue | Priority | Action |
|---|-------|----------|--------|
| 8 | Site Builder legacy pages | High | Remove all frontend pages/components related to site builder feature |
| 9 | WordPress content fetching | High | Remove code that fetches existing content FROM WordPress (only IGNY8-generated content should exist) |
| 10 | Duplicate Manage.tsx | High | Delete `pages/Sites/Manage.tsx` - redundant with List.tsx |
| 11 | Backend site builder code | High | Remove backend APIs/models related to site builder and external content fetching |
---
### Setup Completion Checklist (New Feature)
Display this checklist on Site card or Site Dashboard to guide users:
```
Site Setup Progress
───────────────────
☑ Site created
☐ Industry/Sectors selected
☐ WordPress integration configured (or skipped)
☐ Keywords added
☐ Content settings configured
[Complete Setup →]
```
**Implementation Notes:**
- Show on each site card in list view (compact version)
- Show expanded on Site Dashboard
- Each item links to relevant settings page
- "Complete Setup" button goes to first incomplete item
- When all complete, show "✓ Ready to create content"
---
## 2.4 SETUP Cross-Module Issues
| # | Issue | Priority | Action |
|---|-------|----------|--------|
| 1 | No guided flow | High | After completing setup tasks, guide user to start content workflow (link to Planner) |
| 2 | Scattered settings | Medium | Document where settings live; consider consolidation in future |
| 3 | No onboarding checklist | High | Implement Setup Completion Checklist (see 2.3 above) |
---
## Summary
### Total Issues by Section
| Section | Critical | High | Medium | Low | Total |
|---------|----------|------|--------|-----|-------|
| 2.1 Add Keywords | 0 | 3 | 2 | 1 | 6 |
| 2.2 Content Settings | 3 | 0 | 0 | 0 | 3 |
| 2.3 Sites | 0 | 6 | 2 | 3 | 11 |
| 2.4 Cross-Module | 0 | 2 | 1 | 0 | 3 |
| **TOTAL** | **3** | **11** | **5** | **4** | **23** |
### Critical Items (Must Fix)
1. **Content Settings - Content Generation tab not saving** → Implement backend API
2. **Content Settings - Publishing tab not saving** → Implement backend API
3. **Content Settings - False "saved" message** → Fix after APIs implemented
### High Priority Items
1. Add Keywords - Sector requirement tooltip
2. Add Keywords - Next Step CTA to Planner
3. Add Keywords - Remove import/manual add buttons
4. Sites - Allow simpler site creation flow
5. Sites - Add Setup Completion Checklist
6. Sites - Remove Site Builder legacy code (frontend)
7. Sites - Remove WordPress content fetching code
8. Sites - Delete duplicate Manage.tsx
9. Sites - Remove Site Builder backend code
10. Cross-Module - Guided flow after setup
11. Cross-Module - Onboarding checklist implementation
### Files to Delete
| File | Reason |
|------|--------|
| `pages/Sites/Manage.tsx` | Duplicate of List.tsx |
| Site Builder related pages | Legacy feature removed |
| Site Builder related components | Legacy feature removed |
### Files to Modify
| File | Changes |
|------|---------|
| `pages/Setup/AddKeywords.tsx` | Add tooltip, filter, CTA, count summary, remove import buttons, add teaser |
| `pages/account/ContentSettingsPage.tsx` | Connect to new backend APIs |
| `pages/Sites/List.tsx` | Add setup checklist, inline edit, bulk operations |
| `pages/Sites/SiteSettings.tsx` | Default to General tab |
| `pages/Sites/SiteDashboard.tsx` | Fix mock stats, add setup checklist |
### Backend Work Required
| Area | Work |
|------|------|
| Content Settings API | Create endpoints for Content Generation and Publishing settings |
| Site Statistics API | Implement real stats OR remove from frontend |
| Cleanup | Remove Site Builder and content fetching APIs/models |
---

View File

@@ -0,0 +1,313 @@
# Section 3: WORKFLOW Modules - Audit & Action Plan
**Date:** December 27, 2025
**Status:** Finalized for Implementation
**Scope:** Planner, Writer, Automation (Linker & Optimizer excluded - not active 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
### 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
---
### Issues to Address
| # | Issue | Priority | Action |
|---|-------|----------|--------|
| 1 | KeywordOpportunities page exists but orphaned | High | **DELETE** - Remove `pages/Planner/KeywordOpportunities.tsx` and all references to it. Add Keywords page is the source of truth for seed keywords |
| 2 | No "Add to Existing Cluster" | Medium | Add option to assign keywords to existing clusters (not just create new) |
| 3 | No cluster progress indicator | High | Show which clusters already have ideas generated (badge/indicator) |
| 4 | Ideas missing queued count | Medium | Add indicator showing how many ideas are pending vs processed |
| 5 | Cluster → Ideas transition unclear | Medium | Make it clear which clusters need ideas generated |
| 6 | No return path from Ideas to source cluster | Low | Make cluster name clickable on Ideas page to navigate back |
---
### Issues NOT Being Addressed (Per Discussion)
| Issue | Reason |
|-------|--------|
| No cluster merge/split | Risk of breaking functional workflow, complex implementation |
---
### Implementation Notes
**For Issue #1 (Remove KeywordOpportunities):**
- Delete file: `pages/Planner/KeywordOpportunities.tsx`
- Remove route from App.tsx or router config
- Remove any navigation links to `/planner/keyword-opportunities`
- Remove from sidebar if present
- The Add Keywords page (`/setup/add-keywords`) is the active workflow item for seed keywords
**For Issue #3 (Cluster progress indicator):**
- On Clusters table, show badge: "X ideas" or "No ideas yet"
- Visual distinction between clusters with/without ideas
- Consider color coding or icon
**For Issue #5 (Cluster → Ideas transition):**
- Add "Generate Ideas" button prominently on clusters without ideas
- Filter option: "Show clusters without ideas"
---
## 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 (Queue):** 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
---
### Issues to Address
| # | Issue | Priority | Action |
|---|-------|----------|--------|
| 1 | Status progression confusion | High | Streamline Draft → Review → Published flow - should not require navigating different pages for status changes |
| 2 | Images detached from content workflow | High | Integrate images into content workflow - show/manage images within content view |
| 3 | ContentView shows tags and categories twice | High | Fix template to display tags and categories only once |
---
### Issues NOT Being Addressed (Per Discussion)
| Issue | Reason |
|-------|--------|
| No bulk content generation | Not an issue per current workflow |
| No content editing | Not an issue per current workflow |
| No manual task creation | Not an issue per current workflow |
| No content regeneration | Not an issue per current workflow |
| Review → Published manual only | Not an issue per current workflow |
| ContentView missing actions bar | Not an issue per current workflow |
| No send_to_linker action | Linker not active module |
---
### Implementation Notes
**For Issue #1 (Status progression):**
- Allow status changes from any tab/view without forcing navigation
- Consider unified content list with status filter instead of separate pages
- Or add status change dropdown/buttons within each view
**For Issue #2 (Images integration):**
- Show image thumbnails within ContentView
- Allow image generation from ContentView
- Show image count on content list items
**For Issue #3 (Duplicate tags/categories):**
- Audit ContentView.tsx template
- Find and remove duplicate rendering of tags and categories
- Should display once in appropriate section
---
## 3.3 Automation
**Route:** `/automation`
**Files:** `pages/Automation/AutomationPage.tsx` (or 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
---
### Issues to Address
| # | Issue | Priority | Action |
|---|-------|----------|--------|
| 1 | No stage-by-stage control | Medium | Add toggles to enable/disable individual pipeline stages |
| 2 | No review gate config | Low | Add UI to configure review gate rules (Stage 7) |
| 3 | No error recovery | High | Add retry capability for failed items (per-item or per-stage) |
| 4 | No batch size config | Medium | Add setting to throttle items processed per run |
| 5 | No dry run/preview | Medium | Add preview mode to show what WOULD be processed before running |
| 6 | Activity log not filterable | Medium | Add filters: by stage, status, date |
| 7 | Credit estimation unclear | High | Clarify labeling - consistent terminology (credits vs content pieces) |
| 8 | Run history depth unknown | Low | Add pagination to run history |
| 9 | No indication of manual vs automated | Low | Show source indicator for processed items |
---
### Implementation Notes
**Critical Constraint:** All changes must NOT affect the actual AI functions that run on module pages. Automation uses the same functions - only UI/control changes, not function logic.
**For Issue #1 (Stage toggles):**
- Add on/off toggle for each of the 7 stages
- When stage is off, automation skips it
- Visual indicator showing which stages are active
**For Issue #3 (Error recovery):**
- Show failed items in activity log with "Retry" button
- Option to retry all failed items from a run
- Clear error messages explaining what failed
**For Issue #5 (Dry run/preview):**
- "Preview Run" button shows list of items that would be processed
- Shows count per stage
- User can then confirm or cancel
**For Issue #7 (Credit estimation):**
- Use consistent terminology matching the pricing simplification plan
- Show estimated cost before running
---
## 3.4 Linker
**Status:** ❌ NOT ACTIVE MODULE - Skipped
Not part of current phase. No issues to address.
---
## 3.5 Optimizer
**Status:** ❌ NOT ACTIVE MODULE - Skipped
Not part of current phase. No issues to address.
---
## 3.6 WORKFLOW Cross-Module Issues
### Issues to Address
| # | Issue | Priority | Action |
|---|-------|----------|--------|
| 1 | No Planner → Writer visibility | Medium | After queuing ideas to writer, provide clear feedback and link to Writer |
| 2 | No cross-module notifications | High | Log all AI runs in notification dropdown (bell icon) with correct end results |
| 3 | Progress modals have wrong texts | High | Fix placeholder text, wrong wording, inaccurate counts (showing "X" or placeholders) |
| 4 | Progress modal counts inaccurate | High | Ensure counts reflect actual items being processed |
| 5 | No breadcrumb navigation | Medium | Add breadcrumbs showing workflow path (Cluster → Idea → Task → Content) |
| 6 | No "Next Step" suggestions | Medium | After each action, suggest what to do next |
---
### Issues NOT Being Addressed (Per Discussion)
| Issue | Reason |
|-------|--------|
| No Writer → Linker integration | Linker not active module |
| No Writer → Optimizer integration | Optimizer not active module |
---
### Implementation Notes
**For Issue #2 (Notifications):**
- Bell icon dropdown should show log of all AI function runs
- Each entry shows: function type, status (success/failed/in-progress), timestamp
- Include runs from: Clustering, Idea Generation, Content Generation, Image Generation
- Show result: "Generated 5 ideas from Cluster X" or "Failed: insufficient credits"
- Link to relevant content/page
**For Issues #3 & #4 (Progress modals):**
- Audit all progress modals across modules
- Replace placeholder text ("X", "processing...", wrong labels)
- Ensure counts match actual items:
- "Processing 5 of 12 keywords" (not "Processing X of Y")
- "Generated 3 ideas" (actual count, not placeholder)
- Match text to actual AI function being performed
- Consistent terminology across all modals
**Progress Modals to Audit:**
- Keyword clustering modal
- Idea generation modal
- Content generation modal
- Image prompt extraction modal
- Image generation modal
- Any bulk operation modals
---
## Summary
### Total Issues by Section
| Section | High | Medium | Low | Total |
|---------|------|--------|-----|-------|
| 3.1 Planner | 2 | 3 | 1 | 6 |
| 3.2 Writer | 3 | 0 | 0 | 3 |
| 3.3 Automation | 2 | 5 | 2 | 9 |
| 3.4 Linker | - | - | - | Skipped |
| 3.5 Optimizer | - | - | - | Skipped |
| 3.6 Cross-Module | 2 | 4 | 0 | 6 |
| **TOTAL** | **9** | **12** | **3** | **24** |
---
### High Priority Items
1. **Planner** - Delete KeywordOpportunities page and all references
2. **Planner** - Add cluster progress indicator (which have ideas)
3. **Writer** - Fix status progression confusion
4. **Writer** - Integrate images into content workflow
5. **Writer** - Fix duplicate tags/categories in ContentView
6. **Automation** - Add error recovery/retry for failed items
7. **Automation** - Clarify credit/content terminology
8. **Cross-Module** - Fix progress modal texts and counts
9. **Cross-Module** - Implement notification logging for AI runs
---
### Files to Delete
| File | Reason |
|------|--------|
| `pages/Planner/KeywordOpportunities.tsx` | Orphaned page, Add Keywords is source of truth |
---
### Files to Modify
| File | Changes |
|------|---------|
| `pages/Planner/Keywords.tsx` | Remove any KeywordOpportunities references |
| `pages/Planner/Clusters.tsx` | Add ideas count badge, "Generate Ideas" prominence |
| `pages/Planner/Ideas.tsx` | Add queued count indicator, clickable cluster name |
| `pages/Writer/Tasks.tsx` | Streamline status changes |
| `pages/Writer/Drafts.tsx` | Streamline status changes |
| `pages/Writer/ContentView.tsx` | Fix duplicate tags/categories, integrate images |
| `pages/Writer/Images.tsx` | Better integration with content workflow |
| `pages/Writer/Review.tsx` | Streamline status changes |
| `pages/Automation/AutomationPage.tsx` | Stage toggles, batch size, preview, filters, error retry |
| All progress modal components | Fix placeholder text, counts, wording |
| Notification dropdown component | Add AI run logging |
| Router/App.tsx | Remove KeywordOpportunities route |
| Sidebar component | Remove KeywordOpportunities link if present |
---
### Backend Work Required
| Area | Work |
|------|------|
| Automation stage control | API to save stage enable/disable preferences |
| Automation batch size | API to save batch size setting |
| Error recovery | API to retry failed items |
| Notification logging | Ensure AI runs are logged for notification display |
---

View File

@@ -0,0 +1,363 @@
# Section 4: ACCOUNT Modules - Audit & Action Plan
**Date:** December 27, 2025
**Status:** Finalized for Implementation
**Scope:** Account Settings, Plans & Billing, Usage (AI Models excluded - admin only)
---
## 4.1 Account Settings
**Route:** `/account/settings`
**File:** `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
---
### Issues to Address
| # | Issue | Priority | Action |
|---|-------|----------|--------|
| 1 | Profile NOT connected to API | 🔴 Critical | Study existing backend - if profile API exists and is consistent with system, connect it. If not present, create consistent with existing API structure |
| 2 | Change Password does nothing | 🔴 Critical | Implement password change functionality |
| 3 | No role assignment on invite | High | Add role dropdown (Admin/Member) to invitation form |
| 4 | No role editing for members | High | Add ability to change member role after invitation |
| 5 | No email verification | High | Implement email verification flow when email is changed |
| 6 | Orphaned TeamManagement.tsx | High | Delete `pages/account/TeamManagement.tsx` - functionality exists in AccountSettingsPage |
| 7 | No 2FA option | Medium | Add two-factor authentication option in security section |
| 8 | No account deletion | Medium | Add account closure/deletion capability |
| 9 | No session management | Medium | Add view/revoke active sessions capability |
| 10 | No pending invitation management | Medium | Add ability to resend or cancel pending invitations |
| 11 | No team member limit display | Medium | Show "X of Y team members" based on plan limit |
| 12 | Inconsistent role system | Medium | Backend returns `is_admin` boolean but UI shows Admin/Member - align these |
---
### Implementation Notes
**For Issue #1 (Profile API):**
- First: Audit backend to check if profile endpoint exists
- If exists: Study implementation, verify consistency with other APIs, then connect frontend
- If not exists: Create new endpoint following existing API patterns in the codebase
- Fields to persist: first_name, last_name, email, phone, timezone, language, notification preferences
**For Issue #2 (Password change):**
- Implement secure password change requiring current password
- Validate new password meets requirements
- Consider session invalidation after password change
**For Issue #12 (Role consistency):**
- Decide on role system: boolean `is_admin` or role enum (admin/member/viewer)
- Align frontend display with backend data structure
---
## 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
### Payment Context
Currently using manual payment methods only (bank transfer, wallet). No automatic payment processing.
---
### Issues to Address
| # | Issue | Priority | Action |
|---|-------|----------|--------|
| 1 | No proration preview | High | Show prorated amount before plan upgrade/downgrade |
| 2 | Credit purchase not linked | Medium | Link to credit purchase from Plans & Billing page |
| 3 | Cancellation is immediate | High | Add confirmation dialog before plan cancellation |
| 4 | No downgrade proration display | Medium | Show calculation when downgrading plan |
| 5 | Throttling errors surface to users | Medium | Replace raw throttling messages with user-friendly spinner/message |
| 6 | No billing cycle visualization | Medium | Make renewal date prominent, show billing cycle clearly |
| 7 | No cancellation reason collection | Low | Add optional reason selection when cancelling |
---
### Issues NOT Being Addressed (Per Discussion)
| Issue | Reason |
|-------|--------|
| No payment failure retry | Manual payment only - no auto-retry needed |
| Payment method UI incomplete | Manual payment only - limited methods by design |
---
### Implementation Notes
**For Issue #1 (Proration preview):**
- Before confirming plan change, show:
- Current plan remaining value
- New plan cost
- Prorated amount due/credited
- Calculate based on days remaining in billing cycle
**For Issue #3 (Cancellation confirmation):**
- Modal dialog: "Are you sure you want to cancel?"
- Show what they'll lose (features, remaining credits)
- Require explicit confirmation
**For Issue #5 (Throttling messages):**
- Intercept throttling errors
- Show spinner with "Processing your request..." instead of technical error
- Implement proper retry logic behind the scenes
---
## 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
---
### Issues to Address
| # | Issue | Priority | Action |
|---|-------|----------|--------|
| 1 | API Activity is HARDCODED | 🔴 Critical | Implement real API activity tracking - replace fake values (1,234, 567, 342) |
| 2 | Success rate is fake | 🔴 Critical | Calculate and display real success rate from actual data |
| 3 | No usage alerts | High | Implement default alerts at usage thresholds (80%, 90%, 100%) - sent to all users automatically |
| 4 | No per-site usage | High | Add breakdown showing which site consumed what |
| 5 | No usage forecasting | Medium | Add "At current rate, you'll reach limit in X days" |
| 6 | No actionable insights | Medium | Suggest upgrade when approaching limits |
| 7 | Credit history lacks context | Medium | Add links from credit transactions to related content/operations |
---
### Issues NOT Being Addressed (Per Discussion)
| Issue | Reason |
|-------|--------|
| No per-user usage | Not needed for current phase |
| No usage export | Not needed for current phase |
---
### Implementation Notes
**For Issue #1 & #2 (Real API Activity):**
- Backend needs to log API calls (may already exist)
- Track: endpoint, timestamp, status (success/fail), response time
- Aggregate for display: total calls, success rate, calls by endpoint
- Replace hardcoded values with real calculated data
**For Issue #3 (Usage alerts):**
- Default behavior: all users receive alerts
- Trigger points: 80%, 90%, 100% of limits
- Delivery: in-app notification + email
- No user preferences needed - alerts go to everyone
**For Issue #4 (Per-site usage):**
- Break down credit usage by site
- Show: "Site A: 450 credits, Site B: 230 credits"
- Pie chart or table visualization
---
## 4.4 AI Models (Admin Only)
**Status:** ❌ SKIP ENTIRELY
Not part of user-facing modules. Admin only - no changes needed.
---
## 4.5 ACCOUNT Cross-Module Issues (MAJOR)
These are architectural issues requiring proper analysis and solutions.
### Issues to Address
| # | Issue | Priority | Action |
|---|-------|----------|--------|
| 1 | Multiple credit balance sources | 🔴 Critical | Establish ONE source of truth for credit balance. Analyze: Plans page, Usage page, billingStore - determine which is authoritative, remove others, refactor all references |
| 2 | Fragmented billing pages | High | **AI Agent Task:** Audit system to identify all billing-related pages/functions, find duplicates/redundancies, propose consolidation solution |
| 3 | Legacy routes still exist | High | Remove legacy routes (`/billing/overview`, `/team`, `/profile`), remove redirect code, refactor any references throughout codebase |
| 4 | No notification preferences | Low | Not needed - default alerts go to all users |
---
### Implementation Notes
**For Issue #1 (Single source of truth for balance):**
*Phase 1: Analysis*
- Identify all places that fetch/display credit balance:
- `billingStore.ts` (Zustand store)
- Plans & Billing page
- Usage page
- Dashboard (if applicable)
- Header component (if showing balance)
- Document how each fetches data (API endpoint, frequency)
*Phase 2: Decision*
- Determine which should be THE source:
- Likely `billingStore` as central state management
- Single API endpoint for balance data
- All components should read from this one source
*Phase 3: Implementation*
- Refactor all components to use single source
- Remove duplicate API calls
- Remove duplicate state management
- Ensure consistency across all views
**For Issue #2 (Fragmented billing pages):**
*AI Agent Audit Task:*
```
TASK: Billing Pages Consolidation Audit
1. DISCOVER all billing-related files:
- pages/account/PlansAndBillingPage.tsx
- pages/Billing/CreditPurchase.tsx
- pages/Billing/Credits.tsx (if exists)
- pages/Settings/CreditsAndBilling.tsx (if exists)
- Any other billing-related pages
2. ANALYZE each page:
- What functionality does it provide?
- What routes point to it?
- Is it actively used or orphaned?
- Does it duplicate functionality from another page?
3. IDENTIFY redundancies:
- Same functionality in multiple places
- Overlapping features
- Dead/orphaned pages
4. PROPOSE solution:
- Which pages to keep
- Which pages to merge
- Which pages to delete
- Final consolidated structure
5. DOCUMENT migration path:
- What routes need updating
- What references need changing
- What imports need refactoring
```
**For Issue #3 (Legacy routes removal):**
*Routes to remove:*
- `/billing/overview`
- `/team`
- `/profile`
*Process:*
1. Find route definitions in router/App.tsx
2. Remove route entries
3. Find and remove redirect logic
4. Search codebase for any links to these routes
5. Update or remove those links
6. Delete any orphaned components only used by these routes
---
## Summary
### Total Issues by Section
| Section | Critical | High | Medium | Low | Total |
|---------|----------|------|--------|-----|-------|
| 4.1 Account Settings | 2 | 4 | 6 | 0 | 12 |
| 4.2 Plans & Billing | 0 | 2 | 4 | 1 | 7 |
| 4.3 Usage | 2 | 2 | 3 | 0 | 7 |
| 4.4 AI Models | - | - | - | - | Skipped |
| 4.5 Cross-Module | 1 | 2 | 0 | 1 | 4 |
| **TOTAL** | **5** | **10** | **13** | **2** | **30** |
---
### Critical Items (Must Fix)
1. **Account Settings** - Profile tab not connected to API
2. **Account Settings** - Password change does nothing
3. **Usage** - API Activity tab shows hardcoded fake data
4. **Usage** - Success rate is fake (98.5%)
5. **Cross-Module** - Multiple credit balance sources causing inconsistency
---
### High Priority Items
1. Account Settings - Role assignment on invite
2. Account Settings - Role editing for members
3. Account Settings - Email verification
4. Account Settings - Delete orphaned TeamManagement.tsx
5. Plans & Billing - Proration preview
6. Plans & Billing - Cancellation confirmation dialog
7. Usage - Usage alerts at thresholds
8. Usage - Per-site usage breakdown
9. Cross-Module - Billing pages consolidation audit
10. Cross-Module - Legacy routes removal
---
### Files to Delete
| File | Reason |
|------|--------|
| `pages/account/TeamManagement.tsx` | Orphaned - functionality in AccountSettingsPage |
| Legacy route redirect handlers | After removing `/billing/overview`, `/team`, `/profile` |
| Duplicate billing pages | After consolidation audit determines which to remove |
---
### Files to Modify
| File | Changes |
|------|---------|
| `pages/account/AccountSettingsPage.tsx` | Connect profile API, implement password change, add role management, add invitation management |
| `pages/account/PlansAndBillingPage.tsx` | Add proration preview, cancellation confirmation, link credit purchase |
| `pages/account/UsageAnalyticsPage.tsx` | Implement real API activity, add per-site breakdown, add forecasting |
| `store/billingStore.ts` | Establish as single source of truth for balance |
| Router/App.tsx | Remove legacy routes |
| All components using credit balance | Refactor to use single source |
---
### Backend Work Required
| Area | Work |
|------|------|
| Profile API | Audit existing endpoint OR create new one consistent with API structure |
| Password change API | Implement secure password change endpoint |
| API Activity tracking | Ensure backend logs API calls, create endpoint to retrieve activity data |
| Usage alerts | Backend service to check thresholds and trigger notifications |
| Per-site usage | Endpoint to return credit usage broken down by site |
---
### AI Agent Specific Tasks
| Task | Description |
|------|-------------|
| Billing Pages Audit | Discover all billing pages, analyze functionality, identify redundancies, propose consolidation |
| Credit Balance Refactor | Identify all balance sources, determine single source, refactor all references |
| Legacy Routes Cleanup | Remove routes, remove redirects, update all references |
| Profile API Study | Check if endpoint exists, verify consistency, connect or create |
---

View File

@@ -0,0 +1,610 @@
# Section 5: HELP Module - Audit & Action Plan
**Date:** December 27, 2025
**Status:** Finalized for Implementation
**Scope:** Help Center, Documentation, Support Channels
---
## 5.1 Help & Docs
**Route:** `/help`
**File:** `pages/Help/HelpCenter.tsx`
### 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)
---
### Issues to Address
| # | Issue | Priority | Action |
|---|-------|----------|--------|
| 1 | Support dropdown link broken | 🔴 Critical | Fix link - currently goes to `/profile` which is 404 |
| 2 | Contact Support button does nothing | 🔴 Critical | Implement mailto: or external support URL |
| 3 | Feature Request button does nothing | 🔴 Critical | Implement mailto: or external feedback URL |
| 4 | No actual support channel | 🔴 Critical | Configure working support email/system |
| 5 | Placeholder pages exist | High | **DELETE** `/help/docs`, `/help/system-testing`, `/help/function-testing` pages |
| 6 | No search functionality | Medium | Add search within help content |
| 7 | No contextual help | Low | Consider adding in-app tooltips or "?" icons (future) |
| 8 | Stale content risk | Medium | Help content is hardcoded in TSX - document update process |
---
### Pages to Delete
| File | Route | Reason |
|------|-------|--------|
| `pages/Help/Documentation.tsx` | `/help/docs` | Empty placeholder - not needed |
| `pages/Help/SystemTesting.tsx` | `/help/system-testing` | Empty placeholder - not needed |
| `pages/Help/FunctionTesting.tsx` | `/help/function-testing` | Empty placeholder - not needed |
---
## 5.2 Documentation Requirements (NEW)
### Documentation Approach
Create detailed, step-by-step documentation for each module and flow. Documentation should be:
- **Easy to use** - Clear language, no technical jargon
- **Step-by-step** - Numbered instructions with expected outcomes
- **Visual** - Screenshots or diagrams where helpful
- **Current** - Matches exactly how the system is implemented
---
### Modules to Document
| Module | Status | Documentation Needed |
|--------|--------|---------------------|
| **Dashboard** | Active | Overview, metrics explanation, navigation |
| **Add Keywords** | Active | How to browse, filter, select, add keywords |
| **Content Settings** | Active | Content Generation, Publishing, Image Settings tabs |
| **Sites** | Active | Site creation, WordPress integration, site management |
| **Planner - Keywords** | Active | Adding, managing, clustering keywords |
| **Planner - Clusters** | Active | Understanding clusters, generating ideas |
| **Planner - Ideas** | Active | Managing ideas, queueing to writer |
| **Writer - Queue** | Active | Task management, content generation |
| **Writer - Drafts** | Active | Reviewing drafts, status management |
| **Writer - Images** | Active | Image generation, management |
| **Writer - Review** | Active | Review process, approval workflow |
| **Writer - Published** | Active | Published content, WordPress sync |
| **Automation** | Active | Pipeline setup, scheduling, monitoring |
| **Account Settings** | Active | Account, Profile, Team management |
| **Plans & Billing** | Active | Plans, upgrades, payment, invoices |
| **Usage** | Active | Understanding limits, credit usage, history |
| Linker | ❌ Not Active | Skip - not documenting |
| Optimizer | ❌ Not Active | Skip - not documenting |
| Sites/Site Builder | ❌ Not Active | Skip - legacy feature removed |
| Thinker | Admin Only | Skip - not user-facing |
---
### Documentation Structure
For each module, document:
```
## [Module Name]
### Overview
Brief description of what this module does and its purpose in the workflow.
### How to Access
- Navigation path to reach this module
- Direct URL
### Step-by-Step Guide
#### [Task 1 Name]
1. Step one with specific instruction
2. Step two with expected result
3. Step three...
#### [Task 2 Name]
1. Step one...
2. Step two...
### Key Features
- Feature 1: What it does
- Feature 2: What it does
### Tips & Best Practices
- Tip 1
- Tip 2
### Common Questions
Q: Question?
A: Answer
### Troubleshooting
- Problem: X
Solution: Y
```
---
### Detailed Documentation Outlines
#### Dashboard Documentation
```
## Dashboard
### Overview
Your command center showing workflow progress, key metrics, and quick actions.
### Metrics Explained
- Keywords: Total keywords in your workflow
- Articles: Content pieces created
- Images: Images generated
- Completion %: Overall workflow progress
### Workflow Progress
Visual pipeline showing: Sites → Keywords → Clusters → Ideas → Content → Published
### Quick Actions
- [Action 1]: What it does, when to use
- [Action 2]: What it does, when to use
### Setup Checklist
Understanding the setup completion indicator...
```
#### Add Keywords Documentation
```
## Add Keywords
### Overview
Browse and add keywords from our curated database to your content workflow.
### Prerequisites
- Active site with industry and sector selected
### Step-by-Step: Adding Keywords
1. Navigate to SETUP → Add Keywords
2. Browse available keywords filtered by your site's industry/sector
3. Use filters to narrow results:
- Search: Find specific keywords
- Country: Filter by target country
- Difficulty: Filter by SEO difficulty
4. Select keywords by clicking checkboxes
5. Click "Add to Workflow" button
6. Keywords are now in your Planner
### After Adding Keywords
Click "Next: Plan Your Content →" to proceed to the Planner module.
### Tips
- Start with 10-20 keywords to test your workflow
- Mix high and low difficulty keywords
- Focus on your core topics first
```
#### Planner Documentation
```
## Planner
### Overview
Organize keywords into topic clusters and generate content ideas.
### The Planner Flow
Keywords → Clusters → Ideas → Writer Queue
---
### Keywords Tab
#### Adding Keywords Manually
1. Click "Add Keyword" button
2. Enter keyword text
3. Set initial status
4. Save
#### Clustering Keywords
1. Select keywords to cluster (checkboxes)
2. Click "Auto-Cluster" button
3. AI analyzes and groups related keywords
4. Review created clusters in Clusters tab
---
### Clusters Tab
#### Understanding Clusters
Clusters group related keywords by topic for focused content creation.
#### Generating Ideas from Clusters
1. Select cluster(s) to generate ideas for
2. Click "Generate Ideas" button
3. AI creates content ideas based on cluster keywords
4. Review ideas in Ideas tab
#### Cluster Progress
- Badge shows "X ideas" for clusters with generated ideas
- "No ideas yet" indicates pending clusters
---
### Ideas Tab
#### Reviewing Ideas
Each idea shows: title, target keyword, cluster source
#### Sending Ideas to Writer
1. Select ideas to write (checkboxes)
2. Click "Queue to Writer" button
3. Ideas become tasks in Writer Queue
```
#### Writer Documentation
```
## Writer
### Overview
Generate, review, and publish AI-created content.
### The Writer Flow
Queue → Drafts → Review → Published
---
### Queue Tab (Tasks)
#### Understanding Tasks
Tasks are content pieces waiting to be generated.
#### Generating Content
1. Find task in queue
2. Click "Generate Content" action
3. AI writes the article
4. Content moves to Drafts
---
### Drafts Tab
#### Reviewing Drafts
1. Click on draft to view full content
2. Review AI-generated article
3. Check content quality and accuracy
#### Moving to Review
1. Select draft(s)
2. Change status to "Review"
3. Content moves to Review tab
---
### Images Tab
#### Generating Images
1. Select content needing images
2. Click "Generate Images"
3. AI creates images based on content
4. Images attach to content
---
### Review Tab
#### Final Review Process
1. Review content and images together
2. Make any final adjustments
3. Approve for publishing
#### Publishing to WordPress
1. Select reviewed content
2. Click "Publish" button
3. Content syncs to WordPress
4. Moves to Published tab
---
### Published Tab
#### Viewing Published Content
- See all published articles
- WordPress sync status
- Publication dates
```
#### Automation Documentation
```
## Automation
### Overview
Automate your entire content pipeline from keywords to published articles.
### Pipeline Stages
1. Keywords → Clustering
2. Clusters → Idea Generation
3. Ideas → Task Creation
4. Tasks → Content Generation
5. Content → Image Prompt Extraction
6. Prompts → Image Generation
7. Review Gate
---
### Setting Up Automation
#### Configure Schedule
1. Set frequency (daily, weekly, etc.)
2. Set preferred run time
3. Enable/disable automation
#### Stage Controls
Enable or disable individual stages as needed.
#### Batch Size
Set how many items process per run.
---
### Running Automation
#### Manual Run
Click "Run Now" to start pipeline immediately.
#### Monitoring Progress
- Real-time progress display
- Stage-by-stage status
- Activity log
#### Handling Errors
- Failed items shown in log
- Click "Retry" to reprocess failed items
---
### Best Practices
- Start with small batch sizes
- Monitor first few runs closely
- Review automation output regularly
```
#### Account Settings Documentation
```
## Account Settings
### Overview
Manage your account, profile, and team.
---
### Account Tab
- Organization name
- Billing email
- Billing address
- Tax ID/VAT number
---
### Profile Tab
- Personal information (name, email, phone)
- Timezone and language preferences
- Notification settings
- Security settings (password, 2FA)
#### Changing Password
1. Go to Profile tab
2. Click "Change Password"
3. Enter current password
4. Enter and confirm new password
5. Save changes
---
### Team Tab
#### Inviting Team Members
1. Click "Invite Member"
2. Enter email address
3. Select role (Admin or Member)
4. Send invitation
#### Managing Members
- View all team members
- Change member roles
- Remove members
#### Team Limits
Your plan allows X team members. Currently using Y.
```
#### Plans & Billing Documentation
```
## Plans & Billing
### Overview
Manage your subscription, view invoices, and track payments.
---
### Current Plan Tab
- Plan name and features
- Credit balance
- Renewal date
- Usage summary
---
### Upgrade Plan Tab
#### Changing Plans
1. Review available plans
2. Compare features
3. Click "Upgrade" on desired plan
4. Review proration (credit for remaining time)
5. Confirm change
#### Cancelling Plan
1. Click "Cancel Plan"
2. Review what you'll lose
3. Confirm cancellation
---
### History Tab
- Invoice history with PDF download
- Payment records
- Payment method management
```
#### Usage Documentation
```
## Usage
### Overview
Track your credit usage, limits, and activity.
---
### Your Limits & Usage Tab
#### Understanding Limits
- **Hard Limits:** Maximum allowed (sites, users, keywords)
- **Monthly Limits:** Reset each billing cycle
#### Credit Balance
- Credits remaining
- Credits used this month
- Monthly allocation
---
### Credit History Tab
Transaction log showing all credit activity:
- Credit additions (plan, purchases)
- Credit usage (content, images, etc.)
---
### API Activity Tab
- Total API calls
- Success rate
- Activity by endpoint
---
### Usage Alerts
Automatic alerts at 80%, 90%, and 100% of limits.
```
---
## 5.3 FAQ Updates
### Current FAQ Topics (~20 questions)
Review and update existing FAQ to ensure accuracy.
### Additional FAQ Topics Needed
| Topic | Questions to Add |
|-------|------------------|
| Credits | How credits work, what uses credits, credit costs |
| Automation | How to set up, troubleshooting, best practices |
| WordPress | Integration setup, sync issues, troubleshooting |
| Content | Generation tips, quality settings, editing |
| Images | Generation options, formats, sizes |
| Billing | Payment methods, invoices, plan changes |
---
## Summary
### Total Issues
| Category | Critical | High | Medium | Low | Total |
|----------|----------|------|--------|-----|-------|
| Support/Links | 4 | 0 | 0 | 0 | 4 |
| Pages to Delete | 0 | 1 | 0 | 0 | 1 |
| Features | 0 | 0 | 2 | 1 | 3 |
| Documentation | 0 | 1 | 0 | 0 | 1 |
| **TOTAL** | **4** | **2** | **2** | **1** | **9** |
---
### Critical Items (Must Fix)
1. Fix Support dropdown link (currently 404)
2. Implement Contact Support button (mailto: or support URL)
3. Implement Feature Request button (mailto: or feedback URL)
4. Configure working support channel
---
### High Priority Items
1. Delete placeholder pages (`/help/docs`, `/help/system-testing`, `/help/function-testing`)
2. Create comprehensive step-by-step documentation for all active modules
---
### Files to Delete
| File | Reason |
|------|--------|
| `pages/Help/Documentation.tsx` | Empty placeholder |
| `pages/Help/SystemTesting.tsx` | Empty placeholder |
| `pages/Help/FunctionTesting.tsx` | Empty placeholder |
---
### Files to Modify
| File | Changes |
|------|---------|
| `pages/Help/HelpCenter.tsx` | Fix support link, implement button handlers, add comprehensive documentation, update FAQ |
| Router/App.tsx | Remove routes for deleted help pages |
---
### Documentation Modules (Do NOT Document)
| Module | Reason |
|--------|--------|
| Linker | Not active |
| Optimizer | Not active |
| Sites/Site Builder | Legacy feature removed |
| Thinker | Admin only - not user-facing |
---
### Documentation Deliverables
Create detailed step-by-step documentation for:
1. ✅ Dashboard
2. ✅ Add Keywords
3. ✅ Content Settings
4. ✅ Sites (WordPress integration focus, not site builder)
5. ✅ Planner - Keywords
6. ✅ Planner - Clusters
7. ✅ Planner - Ideas
8. ✅ Writer - Queue/Tasks
9. ✅ Writer - Drafts
10. ✅ Writer - Images
11. ✅ Writer - Review
12. ✅ Writer - Published
13. ✅ Automation
14. ✅ Account Settings
15. ✅ Plans & Billing
16. ✅ Usage
---

View File

@@ -0,0 +1,464 @@
# Section 6: Sidebar & Navigation - Audit & Action Plan
**Date:** December 27, 2025
**Status:** Finalized for Implementation
**Scope:** Sidebar structure, navigation restructure (tabs → sidebar dropdowns)
---
## 6.1 Current Navigation Structure
**File:** `layout/AppSidebar.tsx`
```
Dashboard (standalone)
├─ SETUP
│ ├─ Add Keywords → /setup/add-keywords
│ ├─ Content Settings → /account/content-settings
│ ├─ Sites → /sites
│ └─ Thinker (admin only) → /thinker/prompts
├─ WORKFLOW
│ ├─ Planner → /planner/keywords
│ ├─ Writer → /writer/tasks
│ ├─ Automation → /automation
│ ├─ Linker → /linker/content [NOT ACTIVE - REMOVE]
│ └─ Optimizer → /optimizer/content [NOT ACTIVE - REMOVE]
├─ ACCOUNT
│ ├─ Account Settings → /account/settings
│ ├─ Plans & Billing → /account/plans
│ ├─ Usage → /account/usage
│ └─ AI Models (admin only) → /settings/integration
└─ HELP
└─ Help & Docs → /help
```
### Current In-Page Navigation (TO BE REMOVED)
| Module | Current Tabs/Buttons | Location |
|--------|---------------------|----------|
| **Planner** | Keywords, Clusters, Ideas | Tab buttons in page header |
| **Writer** | Queue, Drafts, Images, Review, Published | Tab buttons in page header |
| **Account Settings** | Account, Profile, Team | Tabs in page |
| **Plans & Billing** | Current Plan, Upgrade Plan, History | Tabs in page |
| **Usage** | Your Limits & Usage, Credit History, API Activity | Tabs in page |
| **Content Settings** | Content Generation, Publishing, Image Settings | Tabs in page |
---
## 6.2 Issues to Address
| # | Issue | Priority | Action |
|---|-------|----------|--------|
| 1 | Linker in navigation | High | **REMOVE** - not active module |
| 2 | Optimizer in navigation | High | **REMOVE** - not active module |
| 3 | KeywordOpportunities reference | High | **REMOVE** - page being deleted |
| 4 | Help sub-pages in routes | High | **REMOVE** - pages being deleted |
| 5 | Menu order incorrect | High | Reorder SETUP: Sites → Add Keywords → Content Settings → Thinker |
| 6 | Tabs/buttons clutter page headers | High | **MOVE to sidebar dropdowns** |
| 7 | No breadcrumb navigation | Medium | Add breadcrumbs (space now available in header) |
| 8 | No "Next Step" guidance | Medium | Add contextual next step (space now available in header) |
| 9 | No active section highlighting | Medium | Highlight current section/page in sidebar |
| 10 | Credit purchase not in sidebar | Low | Accessible from Plans & Billing |
---
## 6.3 New Navigation Structure: Sidebar Dropdowns
### Decision: Move All Sub-Navigation to Sidebar
**Rationale:**
- New app launch - no existing user patterns to unlearn
- Desktop-only app - no mobile concerns
- Same number of clicks - active dropdown stays expanded automatically
- Cleaner page headers - space for breadcrumbs and "Next Step" CTAs
- Better discoverability - all navigation visible in one place
- Scalable - easy to add new sub-pages in future
- Consistent pattern across all modules
### New Sidebar Structure
```
Dashboard
SETUP
├─ Sites ▼
│ ├─ All Sites → /sites
│ └─ Site Settings → /sites/:id/settings (contextual)
├─ Add Keywords → /setup/add-keywords
├─ Content Settings ▼
│ ├─ Content Generation → /account/content-settings/generation
│ ├─ Publishing → /account/content-settings/publishing
│ └─ Image Settings → /account/content-settings/images
└─ Thinker (admin only) ▼
├─ Prompts → /thinker/prompts
└─ Author Profiles → /thinker/author-profiles
WORKFLOW
├─ Planner ▼
│ ├─ Keywords → /planner/keywords
│ ├─ Clusters → /planner/clusters
│ └─ Ideas → /planner/ideas
├─ Writer ▼
│ ├─ Queue → /writer/tasks
│ ├─ Drafts → /writer/drafts
│ ├─ Images → /writer/images
│ ├─ Review → /writer/review
│ └─ Published → /writer/published
└─ Automation → /automation
ACCOUNT
├─ Account Settings ▼
│ ├─ Account → /account/settings/account
│ ├─ Profile → /account/settings/profile
│ └─ Team → /account/settings/team
├─ Plans & Billing ▼
│ ├─ Current Plan → /account/plans/current
│ ├─ Upgrade Plan → /account/plans/upgrade
│ └─ History → /account/plans/history
├─ Usage ▼
│ ├─ Limits & Usage → /account/usage/limits
│ ├─ Credit History → /account/usage/credits
│ └─ API Activity → /account/usage/api
└─ AI Models (admin only) → /settings/integration
HELP
└─ Help & Docs → /help
```
---
## 6.4 Sidebar Behavior Specification
### Dropdown Behavior
1. **Active Page Detection:**
- When user navigates to any page, its parent dropdown auto-expands
- Current page is highlighted within the dropdown
- Active dropdown stays expanded - does NOT collapse
2. **Click Behavior:**
- Click on dropdown parent (if not expanded) → expands dropdown
- Click on dropdown parent (if expanded) → collapses dropdown
- Click on sub-item → navigates to that page, dropdown stays open
- Only active page's dropdown auto-opens on page load
3. **Visual States:**
```
Planner ▼ ← Parent: expanded indicator
Keywords ← Normal sub-item
Clusters ● ← Active page: highlighted
Ideas ← Normal sub-item
Writer ▶ ← Collapsed (not active)
```
4. **Persistence:**
- Active dropdown remains expanded during navigation within that module
- On direct URL access or refresh, opens dropdown containing current page
- Non-active dropdowns default to collapsed state
### Example Flow
User is on `/planner/clusters`:
```
WORKFLOW
├─ Planner ▼ [EXPANDED - contains active page]
│ ├─ Keywords [clickable]
│ ├─ Clusters ● [ACTIVE - highlighted]
│ └─ Ideas [clickable]
├─ Writer ▶ [COLLAPSED]
└─ Automation [no dropdown - single page]
```
User clicks "Ideas":
- Navigates to `/planner/ideas`
- Planner dropdown stays expanded
- "Ideas" becomes highlighted
- "Clusters" returns to normal state
User clicks "Writer":
- Writer dropdown expands
- Planner dropdown can stay expanded or collapse (design choice)
- Shows Writer sub-items
---
## 6.5 Page Header Structure (After Tabs Removal)
### Before (Current)
```
┌─────────────────────────────────────────────────────────────────────┐
│ [Keywords] [Clusters] [Ideas] [+ Add] [Bulk ▼] [Filter] [Search] │
├─────────────────────────────────────────────────────────────────────┤
│ Content area... │
```
### After (New)
```
┌─────────────────────────────────────────────────────────────────────┐
│ Planner > Clusters [+ Add] [Bulk ▼] [Next: Ideas →] │
├─────────────────────────────────────────────────────────────────────┤
│ [Filter] [Search...] │
├─────────────────────────────────────────────────────────────────────┤
│ Content area... │
```
### Header Components
| Component | Position | Purpose |
|-----------|----------|---------|
| Breadcrumb | Left | Shows: Section > Page (e.g., "Planner > Clusters") |
| Primary Actions | Center-Right | Add, Bulk actions |
| Next Step CTA | Right | Contextual "Next: [Action] →" button |
| Filters/Search | Below header or inline | Data filtering |
---
## 6.6 Breadcrumb Implementation
### Breadcrumb Pattern
```
[Section] > [Page]
[Section] > [Page] > [Detail]
```
### Examples
| Route | Breadcrumb Display |
|-------|-------------------|
| `/planner/keywords` | Planner > Keywords |
| `/planner/clusters` | Planner > Clusters |
| `/planner/clusters/:id` | Planner > Clusters > [Cluster Name] |
| `/writer/drafts` | Writer > Drafts |
| `/writer/drafts/:id` | Writer > Drafts > [Content Title] |
| `/account/settings/team` | Account Settings > Team |
| `/account/plans/upgrade` | Plans & Billing > Upgrade Plan |
### Implementation
- Create reusable `<Breadcrumb />` component
- Each page defines its breadcrumb trail via props or route config
- Clickable links except for current page (last item)
---
## 6.7 "Next Step" CTA Implementation
### Contextual Next Steps
| Current Location | Condition | Next Step CTA |
|------------------|-----------|---------------|
| Sites | Site created | "Next: Add Keywords →" |
| Add Keywords | Keywords added (count > 0) | "Next: Plan Your Content →" |
| Planner > Keywords | Has unclustered keywords | "Next: Cluster Keywords →" |
| Planner > Clusters | Cluster selected/has clusters | "Next: Generate Ideas →" |
| Planner > Ideas | Has ideas | "Next: Queue to Writer →" |
| Writer > Queue | Has tasks | "Next: Generate Content →" |
| Writer > Drafts | Has drafts | "Next: Review Drafts →" |
| Writer > Review | Has reviewed content | "Next: Publish →" |
### Implementation
- Create `<NextStepCTA />` component
- Each page determines when to show and what action
- Button styled prominently but not intrusive
- Links to logical next step in workflow
---
## 6.8 Route Updates Required
### Routes to Add/Update
To support sidebar navigation, routes need restructuring:
| Current Route | New Route | Notes |
|---------------|-----------|-------|
| `/account/content-settings` | `/account/content-settings/generation` | Default to first sub-page |
| (same page, different tab) | `/account/content-settings/publishing` | Separate route |
| (same page, different tab) | `/account/content-settings/images` | Separate route |
| `/account/settings` | `/account/settings/account` | Default to first sub-page |
| (same page, different tab) | `/account/settings/profile` | Separate route |
| (same page, different tab) | `/account/settings/team` | Separate route |
| `/account/plans` | `/account/plans/current` | Default to first sub-page |
| (same page, different tab) | `/account/plans/upgrade` | Separate route |
| (same page, different tab) | `/account/plans/history` | Separate route |
| `/account/usage` | `/account/usage/limits` | Default to first sub-page |
| (same page, different tab) | `/account/usage/credits` | Separate route |
| (same page, different tab) | `/account/usage/api` | Separate route |
### Routes to Remove
| Route | Reason |
|-------|--------|
| `/linker/*` | Module not active |
| `/optimizer/*` | Module not active |
| `/planner/keyword-opportunities` | Page deleted |
| `/help/docs` | Page deleted |
| `/help/system-testing` | Page deleted |
| `/help/function-testing` | Page deleted |
| `/billing/overview` | Legacy route |
| `/team` | Legacy route |
| `/profile` | Legacy route |
---
## 6.9 Implementation Plan
### Phase 1: Sidebar Restructure
1. **Update `AppSidebar.tsx`:**
- Add dropdown functionality for multi-page modules
- Implement expand/collapse with active state detection
- Remove Linker and Optimizer
- Reorder SETUP: Sites → Add Keywords → Content Settings → Thinker
- Add visual indicators (▼ expanded, ▶ collapsed, ● active)
2. **Create dropdown data structure:**
```typescript
const sidebarConfig = [
{
section: 'SETUP',
items: [
{ label: 'Sites', path: '/sites', icon: Globe },
{ label: 'Add Keywords', path: '/setup/add-keywords', icon: Key },
{
label: 'Content Settings',
icon: Settings,
children: [
{ label: 'Content Generation', path: '/account/content-settings/generation' },
{ label: 'Publishing', path: '/account/content-settings/publishing' },
{ label: 'Image Settings', path: '/account/content-settings/images' },
]
},
// ... etc
]
},
// ... other sections
];
```
### Phase 2: Route Updates
1. **Update Router/App.tsx:**
- Add new sub-routes for tabbed pages
- Set up redirects from parent routes to default child
- Remove deleted/inactive routes
2. **Example route structure:**
```typescript
// Content Settings
<Route path="/account/content-settings" element={<Navigate to="/account/content-settings/generation" />} />
<Route path="/account/content-settings/generation" element={<ContentSettingsGeneration />} />
<Route path="/account/content-settings/publishing" element={<ContentSettingsPublishing />} />
<Route path="/account/content-settings/images" element={<ContentSettingsImages />} />
```
### Phase 3: Page Header Updates
1. **Remove tab components from all pages:**
- Planner (Keywords, Clusters, Ideas tabs)
- Writer (Queue, Drafts, Images, Review, Published tabs)
- Account Settings (Account, Profile, Team tabs)
- Plans & Billing (Current, Upgrade, History tabs)
- Usage (Limits, Credits, API tabs)
- Content Settings (Generation, Publishing, Images tabs)
2. **Add Breadcrumb component to each page**
3. **Add NextStepCTA component where applicable**
4. **Reorganize header layout:**
- Left: Breadcrumb
- Right: Actions + Next Step CTA
### Phase 4: Component Creation
1. **Create `components/navigation/Breadcrumb.tsx`**
2. **Create `components/navigation/NextStepCTA.tsx`**
3. **Create `components/navigation/SidebarDropdown.tsx`** (if not using existing UI library component)
---
## Summary
### Total Issues
| Category | High | Medium | Low | Total |
|----------|------|--------|-----|-------|
| Remove inactive modules | 2 | 0 | 0 | 2 |
| Remove deleted pages | 2 | 0 | 0 | 2 |
| Menu order | 1 | 0 | 0 | 1 |
| Navigation restructure | 1 | 0 | 0 | 1 |
| New features | 0 | 3 | 1 | 4 |
| **TOTAL** | **6** | **3** | **1** | **10** |
---
### High Priority Items
1. Remove Linker from sidebar navigation
2. Remove Optimizer from sidebar navigation
3. Remove KeywordOpportunities route references
4. Remove Help sub-page routes
5. Reorder SETUP menu: Sites → Add Keywords → Content Settings → Thinker
6. **Implement sidebar dropdown navigation (replace all tabs)**
---
### Medium Priority Items
1. Add breadcrumb navigation component
2. Add "Next Step" contextual guidance
3. Add active section highlighting in sidebar
---
### Files to Delete
| File | Reason |
|------|--------|
| Tab components in page headers | Replaced by sidebar navigation |
| Any standalone tab navigation components | No longer needed |
---
### Files to Create
| File | Purpose |
|------|---------|
| `components/navigation/Breadcrumb.tsx` | Reusable breadcrumb component |
| `components/navigation/NextStepCTA.tsx` | Contextual next step button |
| Possibly split page components | If current tabbed pages are single files, may need to split |
---
### Files to Modify
| File | Changes |
|------|---------|
| `layout/AppSidebar.tsx` | Complete restructure with dropdowns, remove inactive modules, reorder |
| `Router/App.tsx` | Add sub-routes, remove inactive routes, add redirects |
| `pages/Planner/*.tsx` | Remove tab navigation from header |
| `pages/Writer/*.tsx` | Remove tab navigation from header |
| `pages/account/AccountSettingsPage.tsx` | Split into separate route components OR remove tabs |
| `pages/account/PlansAndBillingPage.tsx` | Split into separate route components OR remove tabs |
| `pages/account/UsageAnalyticsPage.tsx` | Split into separate route components OR remove tabs |
| `pages/account/ContentSettingsPage.tsx` | Split into separate route components OR remove tabs |
| All page headers | Add Breadcrumb, reorganize layout, add NextStepCTA |
---
### Implementation Decision
**CONFIRMED: Implement sidebar-based navigation with dropdowns**
- Remove all tab/button navigation from page headers
- All sub-navigation moves to sidebar as expandable dropdowns
- Active dropdown stays expanded (same click count as current tabs)
- Page headers gain space for breadcrumbs and "Next Step" CTAs
- Clean, consistent navigation pattern across all modules
---

View File

@@ -0,0 +1,406 @@
# Section 1: Dashboard - Audit & Action Plan
**Date:** December 27, 2025
**Status:** Finalized for Implementation (To be done LAST after all other sections complete)
**Scope:** Main dashboard page - metrics, workflow visualization, quick actions
---
## 1.1 Current Functionality
**Route:** `/`
**Files:** `pages/Dashboard/Home.tsx`, `components/dashboard/*`
### What Dashboard Currently Shows
- **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
---
## 1.2 Critical Gaps
| # | Issue | Impact | Priority |
|---|-------|--------|----------|
| 1 | No aggregated API endpoint | Performance - makes 6+ sequential API calls with 120ms delays | 🔴 Critical |
| 2 | Published content count incorrect | Data accuracy - cannot distinguish published vs draft | 🔴 Critical |
| 3 | Usage Summary is hardcoded | Misleading - shows fake "547 credits / $0.34" data | 🔴 Critical |
| 4 | Recent Activity is hardcoded | Misleading - static mock activity that never updates | 🔴 Critical |
| 5 | No real-time updates | Stale data - only refreshes on manual action | High |
---
## 1.3 Missing Professional Features
| # | Feature | Why Important | Priority |
|---|---------|---------------|----------|
| 6 | Needs Attention section | Users don't know what requires action | High |
| 7 | Recent content activity | No real list of recently created/published content | High |
| 8 | Error/warning alerts | No indication of failed syncs, low credits, config issues | High |
| 9 | Pipeline queue depth | No visibility into items waiting at each stage | Medium |
| 10 | Automation status | No run status, last run time, or items processed | Medium |
| 11 | Site health/sync status | No WordPress sync health indicator | Medium |
---
## 1.4 Workflow Issues
| # | Issue | Priority |
|---|-------|----------|
| 12 | Quick Actions don't adapt to user state | Medium - shows same 5 actions regardless of workflow stage |
| 13 | Workflow Completion % is misleading | Medium - formula doesn't reflect real content-from-keywords ratio |
| 14 | Modules Guide not dismissible | Low - 8 large cards always shown, no way to hide |
| 15 | Chart widget code exists but unused | Low - dead code, no trend visualization |
---
## 1.5 Issues to Address
### Critical (Must Fix)
| # | Issue | Action |
|---|-------|--------|
| 1 | No aggregated API endpoint | Create `/v1/dashboard/summary/` endpoint that returns all dashboard data in single call |
| 2 | Published content count incorrect | Fix query to separate published vs draft status |
| 3 | Usage Summary is hardcoded | Replace with real billing data from billingStore |
| 4 | Recent Activity is hardcoded | Implement real activity log OR remove section entirely |
### High Priority
| # | Issue | Action |
|---|-------|--------|
| 5 | No real-time updates | Add polling or websocket for live updates |
| 6 | No "Needs Attention" section | Add widget showing: pending reviews, failed syncs, low credits, incomplete setup |
| 7 | No recent content activity | Show real list of recently created/updated content |
| 8 | No error/warning alerts | Display alerts for: failed WordPress syncs, approaching limits, config issues |
### Medium Priority
| # | Issue | Action |
|---|-------|--------|
| 9 | No pipeline queue depth | Show count of items at each workflow stage |
| 10 | No automation status | Display: last run time, items processed, next scheduled run |
| 11 | No site health indicator | Show WordPress connection status per site |
| 12 | Quick Actions don't adapt | Make contextual based on user's workflow state |
| 13 | Completion % misleading | Revise formula to reflect actual workflow progress |
### Low Priority
| # | Issue | Action |
|---|-------|--------|
| 14 | Modules Guide not dismissible | Add dismiss/hide option, remember preference |
| 15 | Dead chart widget code | Either implement trend visualization or remove dead code |
---
## 1.6 Dashboard Revamp Specification
### New Dashboard Layout
```
┌─────────────────────────────────────────────────────────────────────────────┐
│ DASHBOARD │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ NEEDS ATTENTION (if any) │ │
│ │ ⚠ 3 content pieces pending review [View →] │ │
│ │ ⚠ WordPress sync failed for Site A [Retry] [Fix] │ │
│ │ ⚠ Credit usage at 85% [Upgrade →] │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Keywords │ │ Articles │ │ Images │ │ Completion │ │
│ │ 156 │ │ 43 │ │ 127 │ │ 68% │ │
│ │ +12 this mo │ │ +8 this mo │ │ +24 this mo │ │ ↑ from 52% │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ WORKFLOW PIPELINE │ │
│ │ Sites(2) → Keywords(156) → Clusters(23) → Ideas(67) → Content(43) → Published(38) │
│ │ ✓ ✓ ✓ 12 pending 5 pending │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────┐ ┌────────────────────────────────────┐ │
│ │ CONTENT USAGE │ │ QUICK ACTIONS │ │
│ │ ████████████░░░░ 68/100 │ │ [+ Add Keywords] │ │
│ │ 68 used this month │ │ [Generate Content] ← contextual │ │
│ │ Resets in 12 days │ │ [Review Drafts] (5) │ │
│ └────────────────────────────┘ │ [View Published] │ │
│ └────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ RECENT ACTIVITY │ │
│ │ • Generated 5 articles from "Product Reviews" cluster 2 hours ago │ │
│ │ • Published "Best Running Shoes 2025" to Site A 3 hours ago │ │
│ │ • Created 12 ideas from keyword clustering Yesterday │ │
│ │ • Automation run completed: 8 articles generated Yesterday │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ AUTOMATION STATUS │ │
│ │ Status: ● Active Last run: 2 hours ago Next: Tomorrow 9:00 AM │ │
│ │ Last run: Processed 15 keywords → 3 clusters → 12 ideas → 8 articles │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
```
### Dashboard Components
| Component | Purpose | Data Source |
|-----------|---------|-------------|
| Needs Attention | Actionable alerts requiring user action | Aggregated from all modules |
| Key Metrics | Overview counts | Aggregated API endpoint |
| Workflow Pipeline | Visual progress through stages | Aggregated API endpoint |
| Content Usage | Credit/content piece usage | billingStore (single source of truth) |
| Quick Actions | Contextual navigation shortcuts | Based on workflow state |
| Recent Activity | Real activity log | Activity tracking system |
| Automation Status | Automation module summary | Automation service |
---
## 1.7 Aggregated API Endpoint
### Endpoint: `GET /v1/dashboard/summary/`
**Response Structure:**
```json
{
"metrics": {
"keywords_total": 156,
"keywords_this_month": 12,
"articles_total": 43,
"articles_this_month": 8,
"articles_draft": 5,
"articles_published": 38,
"images_total": 127,
"images_this_month": 24,
"completion_percentage": 68
},
"pipeline": {
"sites": 2,
"keywords": 156,
"clusters": 23,
"ideas": 67,
"ideas_pending": 12,
"content": 43,
"content_pending": 5,
"published": 38
},
"usage": {
"credits_used": 68,
"credits_total": 100,
"reset_days": 12
},
"alerts": [
{
"type": "pending_review",
"message": "3 content pieces pending review",
"action_url": "/writer/review",
"action_label": "View"
},
{
"type": "sync_failed",
"message": "WordPress sync failed for Site A",
"action_url": "/sites/1/settings",
"action_label": "Fix"
}
],
"recent_activity": [
{
"type": "content_generated",
"message": "Generated 5 articles from 'Product Reviews' cluster",
"timestamp": "2025-12-27T10:30:00Z"
}
],
"automation": {
"status": "active",
"last_run": "2025-12-27T08:00:00Z",
"next_run": "2025-12-28T09:00:00Z",
"last_run_summary": "15 keywords → 3 clusters → 12 ideas → 8 articles"
}
}
```
---
## 1.8 "Needs Attention" Widget Specification
### Alert Types
| Type | Trigger | Message | Action |
|------|---------|---------|--------|
| `pending_review` | Content in review status > 0 | "X content pieces pending review" | Link to Writer > Review |
| `sync_failed` | WordPress sync error | "WordPress sync failed for [Site]" | Link to Site Settings |
| `low_credits` | Usage > 80% | "Credit usage at X%" | Link to Upgrade |
| `credits_exhausted` | Usage = 100% | "Monthly content limit reached" | Link to Upgrade |
| `setup_incomplete` | Setup checklist incomplete | "Complete your setup" | Link to incomplete item |
| `automation_failed` | Last automation run had errors | "Automation encountered errors" | Link to Automation |
### Display Rules
- Show maximum 3-4 alerts at a time
- Prioritize by severity: errors > warnings > info
- Dismissible alerts (remember dismissal for session)
- Empty state: Hide section entirely when no alerts
---
## 1.9 Quick Actions - Contextual Logic
### Logic for Displaying Actions
```
IF no sites exist:
→ "Create Your First Site"
ELSE IF no keywords:
→ "Add Keywords"
ELSE IF keywords but no clusters:
→ "Cluster Keywords"
ELSE IF clusters but no ideas:
→ "Generate Ideas"
ELSE IF ideas but no content:
→ "Generate Content"
ELSE IF content in draft:
→ "Review Drafts (X)"
ELSE IF content in review:
→ "Publish Content (X)"
ALWAYS show:
→ "View Published" (if any published)
→ "Run Automation" (if automation configured)
```
### Default Actions (Always Available)
- Add Keywords
- View Planner
- View Writer
- Settings
---
## 1.10 Implementation Notes
### Data Flow
1. **On Dashboard Load:**
- Single API call to `/v1/dashboard/summary/`
- Populate all widgets from response
- No sequential calls, no delays
2. **Real-time Updates (Optional):**
- Poll every 60 seconds for updates
- OR use WebSocket for push updates
- Update only changed data
3. **Credit Usage:**
- Use billingStore as single source of truth
- Dashboard reads from store, doesn't fetch separately
### Performance Requirements
- Dashboard should load in < 2 seconds
- Single API call instead of 6+ sequential calls
- Lazy load Modules Guide (below fold)
- Cache dashboard data for 30 seconds
---
## Summary
### Total Issues
| Category | Critical | High | Medium | Low | Total |
|----------|----------|------|--------|-----|-------|
| Data Issues | 4 | 0 | 0 | 0 | 4 |
| Missing Features | 0 | 4 | 4 | 0 | 8 |
| UX Issues | 0 | 0 | 2 | 2 | 4 |
| **TOTAL** | **4** | **4** | **6** | **2** | **16** |
---
### Critical Items (Must Fix)
1. Create aggregated dashboard API endpoint
2. Fix published content count (distinguish published vs draft)
3. Replace hardcoded usage summary with real data
4. Replace hardcoded recent activity with real data OR remove
---
### High Priority Items
1. Add "Needs Attention" widget
2. Implement real recent activity log
3. Add error/warning alerts display
4. Add real-time or polling updates
---
### Medium Priority Items
1. Show pipeline queue depth (items at each stage)
2. Add automation status display
3. Add site health/sync indicator
4. Make Quick Actions contextual
5. Fix completion percentage formula
6. Integrate Setup Completion Checklist
---
### Files to Create
| File | Purpose |
|------|---------|
| `components/dashboard/NeedsAttention.tsx` | Alerts widget |
| `components/dashboard/AutomationStatus.tsx` | Automation summary widget |
| `components/dashboard/RecentActivity.tsx` | Real activity log |
| Backend: `api/views/dashboard.py` | Aggregated endpoint |
---
### Files to Modify
| File | Changes |
|------|---------|
| `pages/Dashboard/Home.tsx` | Complete revamp with new layout |
| `components/dashboard/CreditBalanceWidget.tsx` | Connect to billingStore single source |
| `components/dashboard/WorkflowProgress.tsx` | Add queue depth indicators |
| `components/dashboard/QuickActions.tsx` | Add contextual logic |
| `components/dashboard/KeyMetrics.tsx` | Connect to aggregated API |
---
### Backend Work Required
| Area | Work |
|------|------|
| Aggregated API | Create `/v1/dashboard/summary/` endpoint |
| Activity Logging | Ensure all actions are logged for activity feed |
| Alert Aggregation | Collect alerts from all modules |
| Pipeline Counts | Query for items at each workflow stage |
---
### Dependencies
**Dashboard should be implemented LAST because it depends on:**
- Section 2 (SETUP): Setup Completion Checklist
- Section 3 (WORKFLOW): Pipeline data, activity logging
- Section 4 (ACCOUNT): Credit balance single source of truth
- Section 6 (Navigation): Consistent navigation patterns
---