- Add SWOT Analysis Expert direct access agent (free, JotForm integration) - Use existing 'analysis' category instead of creating new category - Remove 10+ redundant create_* management commands for cleaner codebase - Update CLAUDE.md with simplified JSON + populate_agents workflow - Emphasize using existing categories to avoid proliferation - Clean up agent creation architecture for Railway scalability - All agents now follow unified JSON config approach 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
17 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
Quantum Tasks AI is a Django-based AI agent marketplace platform. Users can access AI agent services through a web interface, with execution handled via two distinct systems: N8N webhook integrations and direct form access integrations.
Key Architecture:
- Django Framework: Main web application using Django 5.2.4
- Agent System: Database-driven agents app with dual integration systems:
- Webhook Agents: N8N integrations for complex processing
- Direct Access Agents: Form-based integrations (JotForm, etc.)
- Authentication: Custom user model with email verification
- Payments: Stripe integration with wallet system (supports free agents)
- Database: SQLite for development, PostgreSQL for production (Railway)
- Static Files: WhiteNoise for production static file serving
Development Commands
Environment Setup
# Use virtual environment
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt # Production
pip install -r requirements-dev.txt # Development
# Start development server
./run_dev.sh # Recommended - includes migration checks
# OR
python manage.py runserver # Direct Django server
Database Operations
# Make migrations
python manage.py makemigrations
# Apply migrations
python manage.py migrate
# Create superuser
python manage.py createsuperuser
# Database shell
python manage.py dbshell
# Check database configuration
python manage.py check_db
Testing
# Run Django tests
python manage.py test
# Run pytest (if configured)
pytest
# Run specific app tests
python manage.py test authentication
python manage.py test agents
python manage.py test wallet
# Custom test scripts
python tests/simple_test.py
python tests/check_agents.py
Code Quality (Development Dependencies)
# Format code
black .
# Sort imports
isort .
# Lint code
flake8
# Type checking (if available)
mypy .
Production Commands
# Collect static files
python manage.py collectstatic --noinput
# Production server (via Gunicorn)
gunicorn netcop_hub.wsgi:application
Core Architecture
Apps Structure
- authentication/: Custom user model, email verification, password reset
- core/: Homepage, error handlers, utility functions
- agents/: Database-driven agent system (marketplace, execution, models, REST API)
- wallet/: Stripe payments, wallet management, transactions
Agent System (agents app)
Key Files:
agents/models.py: Agent, AgentCategory, AgentExecution, ChatSession modelsagents/views.py: Dual integration systems and web interface viewsagents/templates/agents/: Dynamic agent templates and marketplaceagents/management/commands/: Agent creation and management commandstemplates/career_navigator.html: Direct access form template
Dual Integration Systems:
System 1: Webhook Agents (N8N Integration)
- User browses marketplace (
/agents/) - Clicks "Try Now" → Agent detail page (
/agents/{slug}/) - Fills dynamic form → Form submission calls
/agents/api/execute/ - N8N webhook processes request and returns response
- Results displayed with file upload support
System 2: Direct Access Agents (Form Integration)
- User browses marketplace (
/agents/) - Clicks special "Try Now" button → Direct access (
/agents/{slug}/access/) - Payment processed → Redirect to form page (
/agents/{slug}/) - Form displays embedded interface (JotForm, etc.)
- User interacts directly with external form system
Database Models
User Management:
authentication.User: Custom user model with email verificationauthentication.PasswordResetToken: Password reset tokensauthentication.EmailVerificationToken: Email verification tokens
Agents:
agents.Agent: Agent definitions with JSON form schemas and pricingagents.AgentCategory: Agent categories with icons and descriptionsagents.AgentExecution: Execution history and results tracking
Payments:
wallet.Wallet: User wallet with balance trackingwallet.WalletTransaction: Transaction history and Stripe integration
Settings Configuration
Environment Variables (Required for Production):
SECRET_KEY: Django secret keyALLOWED_HOSTS: Comma-separated list of allowed hostsEMAIL_HOST_USER,EMAIL_HOST_PASSWORD: SMTP credentialsSTRIPE_SECRET_KEY,STRIPE_WEBHOOK_SECRET: Stripe API keysDATABASE_URL: PostgreSQL connection string (Railway)
Current Agents: The platform supports both webhook-based agents (N8N integration) and direct access agents (embedded forms):
Webhook Agents (N8N Integration):
-
Social Ads Generator (social-ads-generator) - 6.00 AED
- Creates compelling social media advertisements
- Form fields: description, social_platform, include_emoji, language
- Webhook: N8N endpoint for social media ad generation
-
Job Posting Generator (job-posting-generator) - 10.00 AED
- Creates professional job postings
- Form fields: job_title, company_name, job_description, seniority_level, contract_type, location, language
- Webhook: N8N endpoint for job posting generation
-
PDF Summarizer (pdf-summarizer) - 8.00 AED
- Analyzes and summarizes PDF documents with file upload
- Form fields: pdf_file (file upload with drag-and-drop), summary_type
- Webhook: N8N endpoint for PDF processing with multipart file support
-
5 Whys Analyzer (5-whys-analyzer) - 15.00 AED
- Interactive chat-based root cause analysis using 5 Whys methodology
- Chat interface with real-time N8N webhook integration
- Session timeout: 2 hours
Direct Access Agents (Embedded Forms): 5. CyberSec Career Navigator (cybersec-career-navigator) - 0.00 AED
- JotForm-based career guidance consultation
- Embedded white-label interface with Quantum Tasks header
- Session duration: 2 hours
- Direct access URL:
/agents/career-navigator/
- AI Brand Strategist (ai-brand-strategist) - 0.00 AED
- JotForm-based brand strategy consultation
- Embedded white-label interface with Quantum Tasks header
- Session duration: 2 hours
- Direct access URL:
/agents/ai-brand-strategist/
URL Structure
/ # Homepage (core app)
/digital-branding/ # Digital branding services page
/auth/ # Authentication (login, register, etc.)
/agents/ # Agent marketplace (agents app)
/agents/{slug}/ # Individual agent pages (webhook agents)
/agents/career-navigator/ # Career navigator form page
/agents/career-navigator/access/ # Career navigator payment processing
/agents/ai-brand-strategist/ # AI Brand Strategist form page
/agents/ai-brand-strategist/access/ # AI Brand Strategist payment processing
/wallet/ # Wallet management
/admin/ # Django admin
Key Components
Agent Configuration (Database-driven):
- All agent metadata stored in database (pricing, descriptions, webhooks)
- JSON form schemas for dynamic form generation
- Easy to add new agents via management commands or admin interface
Templates:
templates/base.html: Main layout with navigationtemplates/components/: Reusable UI componentsagents/templates/agents/: Dynamic agent forms and marketplace pages
Adding New Agents
⚡ RECOMMENDED APPROACH: Use JSON configuration + populate_agents command for error-free, Railway-ready agent creation.
🏷️ Choose Existing Category First
IMPORTANT: Always use existing categories before creating new ones to avoid category proliferation.
Available Categories:
- 🧠
analysis- Problem-solving, SWOT analysis, strategic analysis tools - 🎓
career-education- Career guidance, educational resources, professional development - 📄
document-processing- PDF analysis, file processing, document tools - 💼
human-resources- Job postings, HR automation, talent management - 📢
marketing- Social ads, branding, content marketing, advertising - 💼
consulting- Business consultation, strategy services, expert advice
Only create new categories when absolutely necessary and logically distinct.
🚀 Agent Creation Workflow
The platform has TWO DISTINCT AGENT SYSTEMS:
System 1: Webhook Agents (N8N Integration)
- Use for: Dynamic forms, server-side processing, file uploads, complex workflows
- Examples: Social Ads Generator, PDF Summarizer, Job Posting Generator
- Flow: Marketplace → Agent detail page → Dynamic form → N8N webhook → Results
System 2: Direct Access Agents (External Forms)
- Use for: External form services (JotForm, Google Forms), consultation interfaces
- Examples: SWOT Analysis Expert, CyberSec Career Navigator, AI Brand Strategist
- Flow: Marketplace → Payment processing → Quantum Tasks header + embedded external form
📝 Implementation Steps (All Agent Types)
Step 1: Create JSON Configuration
Create a new file in agents/configs/agents/your-agent-name.json:
Webhook Agent Example:
{
"slug": "content-optimizer",
"name": "Content Optimizer",
"short_description": "AI-powered content optimization and enhancement",
"description": "Enhance your content for better engagement with AI-powered optimization suggestions, tone analysis, and improvement recommendations.",
"category": "marketing",
"price": 5.0,
"agent_type": "form",
"system_type": "webhook",
"form_schema": {
"fields": [
{
"name": "content",
"type": "textarea",
"label": "Content to Optimize",
"required": true
},
{
"name": "content_type",
"type": "select",
"label": "Content Type",
"required": true,
"options": [
{"value": "blog", "label": "Blog Post"},
{"value": "social", "label": "Social Media"},
{"value": "email", "label": "Email Marketing"}
]
}
]
},
"webhook_url": "http://localhost:5678/webhook/content-optimizer",
"access_url_name": "",
"display_url_name": ""
}
Direct Access Agent Example:
{
"slug": "business-strategist",
"name": "Business Strategist",
"short_description": "Expert business strategy consultation",
"description": "Get professional business strategy insights and recommendations from experienced consultants to grow your business effectively.",
"category": "consulting",
"price": 0.0,
"agent_type": "form",
"system_type": "direct_access",
"form_schema": {
"fields": []
},
"webhook_url": "https://agent.jotform.com/your-form-id",
"access_url_name": "agents:direct_access_handler",
"display_url_name": "agents:direct_access_display"
}
Step 2: Run populate_agents Command
# Development
source venv/bin/activate
python manage.py populate_agents
# Production (Railway)
python manage.py populate_agents # Runs automatically on deployment
Step 3: Additional Setup (Direct Access Agents Only)
For direct access agents that need custom templates or marketplace integration:
3a. Create Custom Template (optional):
<!-- templates/your_agent_name.html -->
{% extends 'base.html' %}
{% load static %}
{% block title %}Your Agent Name - Quantum Tasks AI{% endblock %}
{% block extra_css %}
<style>
.main-container { max-width: none; padding: 0; height: calc(100vh - 80px); }
.iframe-container { width: 100%; height: 100%; }
.iframe-container iframe { width: 100%; height: 100%; border: none; display: block; }
.footer { display: none !important; }
</style>
{% endblock %}
{% block content %}
<div class="iframe-container">
<iframe src="{{ form_url }}" frameborder="0" scrolling="auto" title="Your Agent Name"></iframe>
</div>
{% endblock %}
3b. Add Custom Views (if needed):
Add view functions to agents/views.py following the pattern of existing direct access agents.
3c. Add URL Routes (if needed):
Add routes to agents/urls.py following the pattern of existing direct access agents.
3d. Update Marketplace Template (if needed):
Add button logic to agents/templates/agents/marketplace.html for custom marketplace behavior.
Step 4: Setup External Services
For Webhook Agents:
- Create N8N workflow at the webhook URL
- Configure webhook to accept JSON payload with
sessionId,message, etc.
For Direct Access Agents:
- Create external form (JotForm, Google Forms, etc.)
- Ensure form URL is accessible and properly configured
✅ Benefits of This Approach
- ✅ Single source of truth - JSON configs define everything
- ✅ Railway-ready immediately - No manual database setup needed
- ✅ Error-free - No category creation mistakes or typos
- ✅ Consistent - All agents use same reliable creation process
- ✅ Scalable - Easy to add 100+ agents
- ✅ Version controlled - Configs are tracked in git
🔧 Supported Form Field Types (Webhook Agents)
text- Single-line text inputtextarea- Multi-line text inputselect- Dropdown with options arrayfile- File upload with drag-and-dropurl- URL input with validationcheckbox- Boolean checkbox
⚠️ Common Mistakes to Avoid
- Creating unnecessary categories - Use existing ones first
- Missing system_type - Include "webhook" or "direct_access"
- Wrong access_url_name - Empty for webhook agents, populated for direct access
- Forgetting populate_agents - Run after creating JSON config
- Complex custom commands - Use JSON + populate_agents instead
Production Deployment
Railway Configuration:
- Automatic deployment from git repository
- PostgreSQL database provided by Railway
- Environment variables configured in Railway dashboard
- Static files served via WhiteNoise
Security Features:
- CSRF protection enabled
- Rate limiting on sensitive endpoints
- Secure headers in production
- HTTPS redirect and HSTS headers
- Session and cookie security
Development Notes
- Database: Uses SQLite by default for development reliability
- Cache: Redis preferred, falls back to local memory cache
- Email: Console backend in development, SMTP in production
- Debug Tools: Debug toolbar and Django extensions available in development
- Static Files: Collected to
staticfiles/directory for production - Media Files: User uploads stored in
media/directory
Common Development Tasks
Adding new environment variables:
- Add to
settings.pywithconfig()call - Add to required_env_vars list if production-required
- Document in this file
Database changes:
- Make model changes
- Run
python manage.py makemigrations - Review migration file
- Run
python manage.py migrate
Testing agent webhooks locally:
- Use ngrok or similar to expose local server
- Update webhook URLs in agent database records
- Test agent execution flow
- Check AgentExecution records and results display
System Status
Current Status: ✅ STABLE COMPREHENSIVE SYSTEM
- 6 agents confirmed working and tested (4 webhook + 2 direct access)
- Dual integration architecture with clear separation and documentation
- Embedded form interfaces with Quantum Tasks headers working correctly
- Chat-based and form-based agent systems operational
- Scalable architecture ready for 100+ agents
Current Agents:
- Webhook Agents (4): Social Ads Generator, Job Posting Generator, PDF Summarizer, 5 Whys Analyzer
- Direct Access Agents (2): CyberSec Career Navigator, AI Brand Strategist
Latest Changes:
- Added AI Brand Strategist with embedded JotForm interface and Quantum Tasks header
- Documented complete agent creation process with clear system distinctions
- Established patterns for both webhook and direct access agent development
- Fixed architecture inconsistencies between different agent types
- Updated comprehensive documentation to prevent future agent creation issues
Architecture Clarity:
- Two distinct systems clearly documented with implementation examples
- Common mistakes section added to prevent development issues
- Step-by-step guides for both agent types with complete code examples
- Key differences table for quick reference during development
Future Development:
- New agents should follow documented patterns in "Adding New Agents" section
- Direct access agents require dedicated templates, views, and URL routes
- Webhook agents use generic dynamic form generation system
- No more architecture confusion - clear documentation prevents implementation issues
Last updated: 2025-08-04 20:00:00