diff --git a/MEMORY.md b/MEMORY.md index c665e60..a730275 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -60,6 +60,42 @@ --- +### 2.1. SHARED SUPABASE PATTERN FOR ALL VERCEL WEB APPS +❌ **FORBIDDEN:** Creating separate Supabase projects for each web app +✅ **REQUIRED:** All Vercel apps share the same Supabase project with prefixed tables + +**The Pattern:** +- **Shared Supabase Project:** `qnatchrjlpehiijwtreh` (qnatchrjlpehiijwtreh.supabase.co) +- **Table Naming:** `_tableName` format (e.g., `blog_messages`, `mission-control_tasks`) +- **Credentials:** Copy `.env.local` from existing project (blog-backup or gantt-board) +- **Auth:** Shared across all apps (same users table) + +**Why This Pattern:** +- Prevents table name collisions (gantt-board uses unprefixed tables - legacy) +- Single auth source (users can access all apps with one login) +- Easier management (one Supabase dashboard) +- Cost efficient (free tier covers all apps) + +**Example from blog-backup (CORRECT):** +```typescript +// Table name: blog_messages (prefixed) +supabase.from("blog_messages").select("*") +``` + +**Example from gantt-board (LEGACY - created before pattern):** +```typescript +// Table names: tasks, projects, sprints (NOT prefixed - problematic) +supabase.from("tasks").select("*") +``` + +**New Project Setup:** +1. Copy `.env.local` from blog-backup (same Supabase credentials) +2. Create tables with prefix: `_tablename` +3. Set up RLS policies for the prefixed tables +4. Document table names in project README + +--- + ### 2.5. CLI MUST STAY IN SYNC WITH WEB UI — ALWAYS ❌ **FORBIDDEN:** Web UI has features the CLI can't access ✅ **REQUIRED:** Every web API endpoint has a matching CLI command @@ -748,6 +784,70 @@ When creating documents for gantt board tasks: --- +## Specialized Agent Profiles + +**Created:** February 22, 2026 +**Location:** `~/.openclaw/agents//agent/agent.json` +**Documentation:** `/Users/mattbruce/.openclaw/workspace/SPECIALIZED_AGENTS.md` + +### Available Agents + +| Agent ID | Name | Emoji | Purpose | Auto-loaded Skills | +|----------|------|-------|---------|-------------------| +| `main` | Main (default) | 🎉 | General purpose | — | +| `ios-dev` | iOS Developer | 📱 | iOS/Swift/SwiftUI | ios-26-role, swiftui-expert-skill, swift-clean-architecture | +| `web-dev` | Web Developer | 🌐 | Next.js/React/Supabase | nextjs-expert, frontend-design, shadcn-ui, ui-ux-pro-max | +| `research` | Research Assistant | 🔍 | Research & analysis | browser-automation, session-logs | + +### When to Use Each + +**ios-dev:** +- Any iOS app development +- SwiftUI view creation +- Xcode project work +- App Store preparation + +**web-dev:** +- Next.js apps +- React components +- Supabase integration +- Vercel deployment +- **Follows shared Supabase pattern automatically** + +**research:** +- Information gathering +- Documentation compilation +- Best practices research +- Competitive analysis + +### How to Spawn + +```json +// iOS task +{ + "agentId": "ios-dev", + "task": "Build a habit tracker app..." +} + +// Web task +{ + "agentId": "web-dev", + "task": "Create a Next.js dashboard..." +} + +// Research task +{ + "agentId": "research", + "task": "Find OpenClaw best practices..." +} +``` + +### Key Benefit + +Each agent **automatically loads relevant skills** and follows **domain-specific patterns**. No more generic solutions — iOS work uses iOS patterns, web work uses web patterns. + +--- + ## Memory Maintenance — Critical Rule **Update memory files CONTINUOUSLY throughout the day, not at the end.**