# CLAUDE.md - AI Assistant Guide for BlackRoad Operating System > **Last Updated**: 2025-11-18 > **Repository**: BlackRoad-Operating-System > **Primary Language**: Python (Backend), JavaScript (Frontend) > **Canonical Entry Point**: `backend/static/index.html` served by FastAPI --- ## Table of Contents 1. [Repository Overview](#repository-overview) 2. [Technology Stack](#technology-stack) 3. [Repository Structure](#repository-structure) 4. [Development Setup](#development-setup) 5. [Key Architectural Patterns](#key-architectural-patterns) 6. [Development Workflows](#development-workflows) 7. [Testing Practices](#testing-practices) 8. [Deployment](#deployment) 9. [Important Conventions](#important-conventions) 10. [Common Tasks](#common-tasks) 11. [Gotchas and Critical Notes](#gotchas-and-critical-notes) --- ## Repository Overview **BlackRoad Operating System** is a nostalgic Windows 95-inspired web-based operating system interface that brings together AI orchestration, blockchain technology, social media, video streaming, and gaming. The project represents a complete AI-powered ecosystem with 200+ autonomous agents, extensive third-party integrations, and a unique blend of retro UI design with modern architecture. ### Core Philosophy - **Agent-First**: Humans orchestrate, agents execute - **Memory-Conscious**: Everything is logged and retrievable - **Ledger-Aware**: Critical actions are provable and tamper-evident - **Zero-Dependency Frontend**: Vanilla JavaScript with no build process - **Cloud-Native**: Infrastructure as software with Railway deployment ### Project Vision The "Big Kahuna" vision (see `BLACKROAD_OS_BIG_KAHUNA_VISION.md`) outlines an ambitious roadmap that includes: - Multi-tier architecture with Lucidia (AI), Prism (orchestration), CloudWay (infra), RoadChain (blockchain), Vault (compliance), Quantum Lab (research), and MetaCity (worlds) - 7 core pillars: Create, Build, Operate, Trade, Govern, Dream, Explore - Complete suite of native applications replacing external tools --- ## Technology Stack ### Backend Stack **Core Framework**: - **FastAPI 0.104.1** - Modern async web framework - **Uvicorn 0.24.0** - ASGI server with WebSocket support - **Pydantic 2.5.0** - Data validation and settings management - **SQLAlchemy 2.0.23** - ORM with async support **Databases**: - **PostgreSQL** - Production database (via psycopg2-binary, asyncpg) - **SQLite** - Development/testing database (via aiosqlite) - **Alembic 1.12.1** - Database migrations **Caching & Sessions**: - **Redis 5.0.1** - Session store, caching - **Hiredis 2.2.3** - Redis performance optimization **Authentication & Security**: - **python-jose[cryptography] 3.3.0** - JWT handling - **passlib[bcrypt] 1.7.4** - Password hashing - **cryptography 41.0.7** - Encryption utilities - **ecdsa 0.18.0** - Elliptic curve cryptography **External Integrations**: - **httpx 0.25.2**, **aiohttp 3.9.1** - Async HTTP clients - **boto3 1.29.7** - AWS S3 - **stripe 7.8.0** - Payments - **sentry-sdk 1.39.1** - Error monitoring - **prometheus-client 0.19.0** - Metrics **Testing**: - **pytest 7.4.3** - Testing framework - **pytest-asyncio 0.21.1** - Async support - **pytest-cov 4.1.0** - Coverage reporting ### Frontend Stack **Primary Approach**: Vanilla JavaScript (ES6+) with zero dependencies **Key Characteristics**: - No build process required - No transpilation, bundling, or minification - ~200KB uncompressed bundle size - ~3,500 lines of well-documented code - WCAG 2.1 compliant accessibility **Browser Support**: Modern browsers (Chrome, Firefox, Safari, Edge) ### SDKs **Python SDK** (`sdk/python/`): - Python 3.8+ with type hints - httpx for async requests - Black, flake8, mypy for quality **TypeScript SDK** (`sdk/typescript/`): - TypeScript 5.3.3 - Axios 1.6.2 with retry logic - Jest 29.7.0 for testing - Dual CJS/ESM builds --- ## Repository Structure ``` /home/user/BlackRoad-Operating-System/ ├── backend/ # FastAPI backend services │ ├── app/ │ │ ├── main.py # Main FastAPI application (33+ routers) │ │ ├── config.py # Pydantic settings │ │ ├── database.py # Database session management │ │ ├── models/ # SQLAlchemy models │ │ ├── routers/ # 33+ API endpoint routers │ │ ├── services/ # Business logic layer │ │ └── utils/ # Shared utilities │ ├── static/ # **CANONICAL FRONTEND** served at / │ │ ├── index.html # Main OS interface │ │ ├── js/ # JavaScript modules │ │ └── assets/ # CSS, images, fonts │ ├── tests/ # Backend test suite │ ├── requirements.txt # Python dependencies │ ├── Dockerfile # Container definition │ ├── docker-compose.yml # Local dev stack │ └── .env.example # Environment template │ ├── blackroad-os/ # Legacy standalone UI (superseded by backend/static) │ ├── index.html │ ├── js/ │ └── assets/ │ ├── agents/ # 200+ AI agent ecosystem │ ├── base/ # Core agent framework │ │ ├── agent.py # Base agent class │ │ ├── executor.py # Execution engine │ │ └── registry.py # Agent discovery │ ├── categories/ # 10 agent categories │ │ ├── devops/ │ │ ├── engineering/ │ │ ├── data/ │ │ ├── security/ │ │ ├── finance/ │ │ ├── creative/ │ │ ├── business/ │ │ ├── research/ │ │ ├── web/ │ │ └── ai_ml/ │ ├── templates/ # Agent templates │ └── tests/ # Agent tests │ ├── sdk/ # Client SDKs │ ├── python/ # Python SDK (v0.1.0) │ └── typescript/ # TypeScript SDK (v0.1.0) │ ├── docs/ # Architecture documentation ├── infra/ # Infrastructure configs ├── ops/ # Operations scripts ├── scripts/ # Utility scripts │ ├── railway/ # Railway deployment helpers │ └── run_backend_tests.sh # Test runner │ ├── .github/workflows/ # CI/CD pipelines │ ├── ci.yml # HTML/JS validation │ ├── backend-tests.yml # Backend tests │ ├── deploy.yml # GitHub Pages deploy │ ├── railway-deploy.yml # Railway backend deploy │ └── railway-automation.yml # Env validation │ ├── railway.toml # Railway deployment config ├── railway.json # Railway service definitions └── [Documentation files] ├── README.md ├── BLACKROAD_OS_BIG_KAHUNA_VISION.md ├── CODEBASE_STATUS.md ├── SECURITY.md ├── API_INTEGRATIONS.md └── CLAUDE.md (this file) ``` ### Critical Path Files **Entry Points**: - Backend: `backend/app/main.py:8` (FastAPI app) - Frontend: `backend/static/index.html` (canonical UI) - Agents: `agents/base/agent.py:1` (base agent class) **Configuration**: - `backend/app/config.py:1` - All settings (Pydantic) - `backend/.env.example` - Environment template - `railway.toml` - Railway deployment settings **Database**: - `backend/app/database.py:1` - Session management - `backend/app/models/` - All ORM models --- ## Development Setup ### Local Backend Development ```bash # Navigate to backend directory cd backend # Create virtual environment python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate # Install dependencies pip install -r requirements.txt # Create .env file from template cp .env.example .env # Edit .env with your settings (SECRET_KEY, DATABASE_URL, etc.) # Run development server uvicorn app.main:app --reload # Server runs at http://localhost:8000 # Frontend UI at http://localhost:8000/ # API docs at http://localhost:8000/api/docs ``` ### Using Docker Compose (Recommended) ```bash cd backend # Start all services (Postgres, Redis, FastAPI, Adminer) docker-compose up # Run in background docker-compose up -d # View logs docker-compose logs -f # Stop services docker-compose down ``` **Services**: - FastAPI: http://localhost:8000 - PostgreSQL: localhost:5432 - Redis: localhost:6379 - Adminer (DB UI): http://localhost:8080 ### Frontend Development **Option 1: Via Backend** (Recommended) ```bash # Start backend as above # Visit http://localhost:8000/ # Frontend is served from backend/static/ ``` **Option 2: Direct File** ```bash cd backend/static # Open index.html in browser # Note: API calls will fail without backend running ``` ### SDK Development **Python SDK**: ```bash cd sdk/python pip install -e . pytest ``` **TypeScript SDK**: ```bash cd sdk/typescript npm install npm run build npm test ``` --- ## Key Architectural Patterns ### 1. Multi-Tier Architecture ``` ┌─────────────────────────────────┐ │ Frontend (Vanilla JS) │ │ Zero dependencies, event-driven│ └─────────────────────────────────┘ ↕ HTTP/WebSocket ┌─────────────────────────────────┐ │ Backend (FastAPI) │ │ REST API + WebSocket │ └─────────────────────────────────┘ ↕ ┌─────────────────────────────────┐ │ Agent Layer (200+ agents) │ │ Autonomous execution │ └─────────────────────────────────┘ ↕ ┌───────────┬──────────┬──────────┐ │ Postgres │ Redis │ External │ │ Database │ Cache │ APIs │ └───────────┴──────────┴──────────┘ ``` ### 2. Event-Driven Frontend **Event Bus** (`backend/static/js/os.js`): - Global event system for inter-app communication - Built-in events: `os:boot`, `window:created`, `theme:changed` - Custom event support for loose coupling **Example**: ```javascript // Emit event window.OS.emit('data:updated', { source: 'dashboard' }); // Listen for event window.OS.on('data:updated', (data) => { console.log('Data updated from:', data.source); }); ``` ### 3. Async-First Backend **All operations are async**: ```python # Database operations @router.get("/users") async def get_users(db: AsyncSession = Depends(get_db)): result = await db.execute(select(User)) return result.scalars().all() # External API calls async with httpx.AsyncClient() as client: response = await client.get(url) ``` ### 4. Repository Pattern **Separation of concerns**: - **Models** (`app/models/`): Database schema - **Routers** (`app/routers/`): API endpoints - **Services** (`app/services/`): Business logic - **Utils** (`app/utils/`): Shared helpers ### 5. Agent Pattern **Base agent with lifecycle hooks**: ```python class Agent: async def initialize(self): """Setup before execution""" async def execute(self): """Main execution logic""" async def cleanup(self): """Cleanup after execution""" async def on_error(self, error): """Error handling""" ``` ### 6. Component-Based Frontend **15 reusable UI components** in `backend/static/js/components.js`: - Factory pattern for consistent API - Accessibility built-in (WCAG 2.1) - No external dependencies **Example**: ```javascript // Create a card component const card = Components.Card({ title: 'Dashboard', content: 'Hello World', footer: 'Updated 5 min ago' }); document.body.appendChild(card); ``` --- ## Development Workflows ### Git Workflow **Branch Strategy**: - `main` - Production branch (protected) - `claude/*` - AI assistant branches (auto-created) - `codex/*`, `copilot/*` - Other AI branches - `feature/*`, `fix/*`, `docs/*` - Human developer branches **Current Branch**: `claude/claude-md-mi3wes6waq9fnfmt-012kKpHTPTV5D9YBFB7ufuwy` **Commit Guidelines**: ```bash # Good commit messages git commit -m "Add user authentication endpoint" git commit -m "Fix CORS issue in API middleware" git commit -m "Update README with Docker instructions" # Avoid git commit -m "updates" git commit -m "fix stuff" ``` ### CI/CD Pipeline **GitHub Actions** (7 workflows): 1. **CI** (`.github/workflows/ci.yml`): - HTML validation - JavaScript syntax checking - Security scanning - Runs on: push, PR to main 2. **Backend Tests** (`.github/workflows/backend-tests.yml`): - Python setup - Dependency installation - pytest with coverage - Runs on: push, PR to main 3. **Deploy to GitHub Pages** (`.github/workflows/deploy.yml`): - Bundles `backend/static/` - Deploys frontend to Pages - Runs on: push to main 4. **Railway Deploy** (`.github/workflows/railway-deploy.yml`): - Deploys backend to Railway - Runs migrations - Health check validation 5. **Railway Automation** (`.github/workflows/railway-automation.yml`): - Validates env template - Checks secret sync - Detects config drift ### Environment Management **Configuration Hierarchy**: 1. `.env` file (gitignored, highest priority) 2. Railway environment variables (production) 3. `backend/app/config.py` defaults (fallback) **Required Variables** (see `backend/.env.example`): ```bash # Core DATABASE_URL=postgresql+asyncpg://user:pass@host:5432/db REDIS_URL=redis://host:6379/0 SECRET_KEY=your-secret-key-here # JWT ACCESS_TOKEN_EXPIRE_MINUTES=30 REFRESH_TOKEN_EXPIRE_DAYS=7 # CORS ALLOWED_ORIGINS=http://localhost:8000,https://yourdomain.com # Blockchain WALLET_MASTER_KEY=your-wallet-master-key # AI OPENAI_API_KEY=sk-... # Cloud (optional) AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=... # Payment (optional) STRIPE_SECRET_KEY=sk_test_... STRIPE_PUBLISHABLE_KEY=pk_test_... # Communication (optional) SMTP_HOST=smtp.gmail.com TWILIO_ACCOUNT_SID=... SLACK_BOT_TOKEN=... ``` **Validation**: ```bash # Validate environment template python scripts/railway/validate_env_template.py ``` --- ## Testing Practices ### Backend Testing **Framework**: pytest with async support **Test Structure**: ``` backend/tests/ ├── conftest.py # Shared fixtures ├── test_auth.py # Authentication ├── test_blockchain.py # Blockchain ├── test_dashboard.py # Dashboard ├── test_miner.py # Mining ├── test_vscode_router.py # VSCode integration └── test_api_integrations.py # External APIs ``` **Running Tests**: ```bash # Via helper script (recommended) bash scripts/run_backend_tests.sh # Manual cd backend source .venv-tests/bin/activate pytest -v --maxfail=1 # With coverage pytest --cov=app --cov-report=html ``` **Test Configuration** (`backend/tests/conftest.py`): - Isolated SQLite test database - Automatic setup/teardown - Fixtures: `db_session`, `client`, `test_user`, `auth_headers` **Example Test**: ```python import pytest from httpx import AsyncClient @pytest.mark.asyncio async def test_create_user(client: AsyncClient): response = await client.post( "/api/auth/register", json={ "email": "test@example.com", "password": "secure123" } ) assert response.status_code == 200 data = response.json() assert data["email"] == "test@example.com" ``` ### Frontend Testing **Approach**: CI-based validation (no unit tests currently) **Validation Steps**: 1. DOCTYPE validation 2. Tag matching (html, head, body, script) 3. JavaScript syntax checking 4. Security checks (eval, innerHTML XSS) ### Agent Testing **Test Suite** (`agents/tests/test_agents.py`): - Base agent functionality - Execution lifecycle - Error handling - Retry logic - Hook system --- ## Deployment ### Railway (Backend) **Configuration** (`railway.toml`): ```toml [build] builder = "DOCKERFILE" dockerfilePath = "backend/Dockerfile" [deploy] startCommand = "cd backend && uvicorn app.main:app --host 0.0.0.0 --port $PORT" healthcheck.path = "/health" ``` **Deployment Steps**: 1. Push to main branch 2. GitHub Action triggers Railway deploy 3. Railway builds Docker image 4. Runs Alembic migrations 5. Starts FastAPI server 6. Health check validation 7. Traffic cutover **Manual Deploy**: ```bash # Install Railway CLI curl -fsSL https://railway.app/install.sh | sh # Login railway login # Deploy railway up ``` ### GitHub Pages (Frontend) **Deployment**: - Automatic on push to main - Workflow bundles `backend/static/` - Publishes to GitHub Pages - Frontend only (backend on Railway) **Manual Deploy**: ```bash # Copy static files mkdir -p dist cp -r backend/static/* dist/ # Upload to Pages (via GitHub UI or gh CLI) gh pages deploy dist/ ``` ### Docker **Build Image**: ```bash cd backend docker build -t blackroad-os:latest . ``` **Run Container**: ```bash docker run -p 8000:8000 \ -e DATABASE_URL=postgresql://... \ -e REDIS_URL=redis://... \ -e SECRET_KEY=... \ blackroad-os:latest ``` --- ## Important Conventions ### Code Style **Python**: - Follow PEP 8 - Use type hints - Async/await for I/O operations - Pydantic for validation - Docstrings for public functions **JavaScript**: - ES6+ syntax - No semicolons (consistent omission) - camelCase for variables - PascalCase for classes/components - 2-space indentation ### File Organization **Backend Router Pattern**: ```python # app/routers/example.py from fastapi import APIRouter, Depends from sqlalchemy.ext.asyncio import AsyncSession from ..database import get_db router = APIRouter(prefix="/api/example", tags=["Example"]) @router.get("/") async def get_items(db: AsyncSession = Depends(get_db)): """Get all items""" # Implementation ``` **Frontend App Pattern**: ```javascript // backend/static/js/apps/example.js window.Apps = window.Apps || {}; window.Apps.Example = { init() { // Initialize app }, render() { // Render UI }, handleEvent(event) { // Handle events } }; ``` ### Database Migrations **Create Migration**: ```bash cd backend alembic revision --autogenerate -m "Add user table" ``` **Run Migrations**: ```bash alembic upgrade head ``` **Rollback**: ```bash alembic downgrade -1 ``` ### API Design **RESTful Patterns**: - `GET /api/resource` - List all - `GET /api/resource/{id}` - Get one - `POST /api/resource` - Create - `PUT /api/resource/{id}` - Update - `DELETE /api/resource/{id}` - Delete **Response Format**: ```python # Success {"data": [...], "message": "Success"} # Error {"detail": "Error message"} # Pagination { "data": [...], "page": 1, "per_page": 20, "total": 100 } ``` ### Security **Authentication**: ```python from fastapi import Depends from ..utils.auth import get_current_user @router.get("/protected") async def protected_route( current_user = Depends(get_current_user) ): return {"user": current_user} ``` **Input Validation**: ```python from pydantic import BaseModel, EmailStr class UserCreate(BaseModel): email: EmailStr password: str @router.post("/users") async def create_user(user: UserCreate): # user is validated ``` **Avoid**: - eval() in JavaScript - innerHTML with user input - SQL string concatenation - Hardcoded secrets --- ## Common Tasks ### Adding a New API Endpoint 1. **Create router** (or add to existing): ```python # backend/app/routers/my_router.py from fastapi import APIRouter router = APIRouter(prefix="/api/myrouter", tags=["MyRouter"]) @router.get("/") async def my_endpoint(): return {"message": "Hello"} ``` 2. **Register in main.py**: ```python # backend/app/main.py from .routers import my_router app.include_router(my_router.router) ``` 3. **Add tests**: ```python # backend/tests/test_my_router.py @pytest.mark.asyncio async def test_my_endpoint(client): response = await client.get("/api/myrouter/") assert response.status_code == 200 ``` ### Adding a New Frontend App 1. **Create app file**: ```javascript // backend/static/js/apps/myapp.js window.Apps = window.Apps || {}; window.Apps.MyApp = { init() { console.log('MyApp initialized'); }, render() { return `

My App

`; } }; ``` 2. **Add to registry** (`backend/static/js/registry.js`): ```javascript { id: 'myapp', name: 'My App', icon: '🎨', category: 'create', component: Apps.MyApp } ``` 3. **Add desktop icon** (`backend/static/index.html`): ```html
🎨
My App
``` ### Adding a Database Model 1. **Create model**: ```python # backend/app/models/mymodel.py from sqlalchemy import Column, Integer, String from ..database import Base class MyModel(Base): __tablename__ = "mymodel" id = Column(Integer, primary_key=True) name = Column(String, nullable=False) ``` 2. **Import in models/__init__.py**: ```python from .mymodel import MyModel ``` 3. **Create migration**: ```bash alembic revision --autogenerate -m "Add mymodel table" alembic upgrade head ``` ### Adding an Agent 1. **Create agent file**: ```python # agents/categories/mycategory/my_agent.py from agents.base.agent import Agent class MyAgent(Agent): def __init__(self): super().__init__( name="MyAgent", version="1.0.0", category="mycategory" ) async def execute(self): # Agent logic return {"status": "success"} ``` 2. **Register in category __init__.py**: ```python from .my_agent import MyAgent ``` 3. **Add tests**: ```python # agents/tests/test_my_agent.py import pytest from agents.categories.mycategory.my_agent import MyAgent @pytest.mark.asyncio async def test_my_agent(): agent = MyAgent() result = await agent.execute() assert result["status"] == "success" ``` --- ## Gotchas and Critical Notes ### 🚨 Critical Issues 1. **Frontend Duplication**: - **Canonical**: `backend/static/index.html` (served by FastAPI) - **Legacy**: `blackroad-os/index.html` (superseded, may drift) - **Action**: Always edit `backend/static/`, not `blackroad-os/` 2. **Environment Variables**: - Missing `SECRET_KEY` will break JWT auth - Missing `DATABASE_URL` defaults to SQLite (may hide issues) - Missing `REDIS_URL` disables caching - **Action**: Always use `.env.example` as template 3. **Database Migrations**: - Startup auto-creates tables via `Base.metadata.create_all()` - This can cause schema drift with Alembic - **Action**: Use Alembic for all schema changes in production 4. **CORS Configuration**: - `ALLOWED_ORIGINS` must include frontend domain - Missing origins will block API calls - **Action**: Update `.env` for each environment 5. **Integration Routers**: - Some routers (Stripe, Twilio, etc.) may be stubs - Deployment without API keys will fail - **Action**: Validate integration status before use ### ⚠️ Common Pitfalls 1. **Async/Await**: - Forgetting `await` on async functions - Mixing sync/async code - **Fix**: All DB and HTTP calls must be awaited 2. **Database Sessions**: - Not closing sessions properly - Sharing sessions across requests - **Fix**: Use `Depends(get_db)` for automatic session management 3. **Frontend API Calls**: - Hardcoded localhost URLs - Not handling errors - **Fix**: Use relative URLs (`/api/...`), add error handling 4. **Agent Execution**: - Long-running agents blocking event loop - No timeout handling - **Fix**: Use timeouts, run in background tasks 5. **Static Files**: - Editing `blackroad-os/` instead of `backend/static/` - Caching issues after updates - **Fix**: Always edit canonical location, hard refresh browser ### 🔍 Debugging Tips **Backend Debugging**: ```python # Add logging import logging logger = logging.getLogger(__name__) logger.info("Debug message") # Use debugger import pdb; pdb.set_trace() # Check database # Visit http://localhost:8080 (Adminer) when using docker-compose ``` **Frontend Debugging**: ```javascript // Console logging console.log('Debug:', data); // Network tab (Chrome DevTools) // Check API calls, responses, timing // Event debugging window.OS.on('*', (event, data) => { console.log('Event:', event, data); }); ``` **Agent Debugging**: ```python # Enable debug logging agent.logger.setLevel(logging.DEBUG) # Check execution logs result = await agent.execute() print(agent.get_logs()) ``` ### 📝 Best Practices 1. **Always read before writing**: - Use Read tool before Edit/Write - Understand context before changes 2. **Test locally before pushing**: - Run backend tests: `bash scripts/run_backend_tests.sh` - Test frontend: Open in browser, check console - Validate env: `python scripts/railway/validate_env_template.py` 3. **Keep documentation updated**: - Update CLAUDE.md when patterns change - Document new integrations in API_INTEGRATIONS.md - Update README.md for user-facing changes 4. **Security first**: - Never commit `.env` files - Validate all user input - Use parameterized SQL queries - Sanitize HTML output 5. **Performance considerations**: - Use async for I/O operations - Cache expensive computations - Paginate large result sets - Monitor database query performance --- ## Quick Reference ### Key Files to Know | File | Purpose | Location | |------|---------|----------| | Main app | FastAPI application | `backend/app/main.py:8` | | Settings | Environment config | `backend/app/config.py:1` | | Database | Session management | `backend/app/database.py:1` | | Frontend | OS interface | `backend/static/index.html` | | OS core | Window manager | `backend/static/js/os.js` | | Components | UI library | `backend/static/js/components.js` | | Agent base | Agent framework | `agents/base/agent.py:1` | | Test runner | Backend tests | `scripts/run_backend_tests.sh` | ### Useful Commands ```bash # Start backend cd backend && uvicorn app.main:app --reload # Start with Docker cd backend && docker-compose up # Run tests bash scripts/run_backend_tests.sh # Create migration cd backend && alembic revision --autogenerate -m "message" # Run migration cd backend && alembic upgrade head # Validate environment python scripts/railway/validate_env_template.py # Deploy to Railway railway up # View logs (Railway) railway logs # Check API docs # Visit http://localhost:8000/api/docs ``` ### Getting Help - **Documentation**: Check `docs/` folder - **Vision**: Read `BLACKROAD_OS_BIG_KAHUNA_VISION.md` - **Status**: Check `CODEBASE_STATUS.md` - **Security**: Review `SECURITY.md` - **API Reference**: http://localhost:8000/api/docs (when running) --- ## Conclusion This guide provides the essential knowledge for AI assistants working on BlackRoad Operating System. The project combines nostalgic UI design with modern architecture, creating a unique web-based operating system experience. **Remember**: - Frontend lives in `backend/static/` (not `blackroad-os/`) - Backend is fully async with FastAPI - Zero-dependency frontend with vanilla JavaScript - 200+ agents in modular categories - Comprehensive testing with pytest - Railway for backend, GitHub Pages for frontend - Always validate environment variables - Security and accessibility are priorities **Happy coding! 🛣️** --- *This document is maintained by AI assistants working on the codebase. Keep it updated as patterns and practices evolve.*