User sets goals. Claude orchestrates specialists. Quality over speed.
Updated: February 2026 | Architecture v3 (3-Prompt + Prompt Critic)
Types rough prompt in Launcher UI or browser
Haiku polishes prompt automatically at queue time
future_prompts table — GET /api/future-prompts
Reads queue, runs /build_prompt, manages worker lifecycle
Gates vague prompts
3-part: identity + task + tools
UI, dashboards
Deep research
Deploy, SSH
DB queries
Email processing
Cron jobs
Pipeline changes
Worker replies via send-prompt → orchestrator verifies → /clear → next task
prompt_original, improved in prompt_rawfuture_prompts table in Master_Claude.db. GET /api/future-prompts returns next prompt/build_prompt to create 3-part prompt: identity (who the worker is) + task (what to do) + tools (MCPs, skills, learnings from DB)add_to_grid: true). Prompt includes CLAUDE.md, skills, domain context from DBPOST /send-prompt/{orchestrator_id}. Messages arrive as system-reminders on next tool call/verify → /goodbye (capture learnings) → /clear → send next task to same worker sessionEvery worker receives a prompt assembled from three parts, pulled from Master_Claude.db:
| Part | Contains |
|---|---|
| Identity | Who the worker is, constraints, design principles, session ID |
| Task | The actual work, reply-back instructions, messaging protocol |
| Tools | Skills, MCPs, learnings, domain context, available commands |
# /build_prompt pulls from: - specialist_identities (who) - specialist_contexts (domain knowledge) - skills table (available skills) - learnings table (past experience) - mcp_configs (tool servers) - hooks (contextual hints)
Workers launch as split panes in the grid. After /clear, any worker becomes any specialist — the prompt defines the role, not the project directory.
| Component | Purpose | Location |
|---|---|---|
| Launcher API | Flask server — sessions, grid layout, prompt queue, messaging | localhost:5111 |
| /build_prompt | Assembles 3-part prompts from Master_Claude.db context | launcher.py |
| prompt_critic.py | Haiku-powered semantic validation — gates vague prompts | claudequeue/ |
| pipe_inbox.py | Inter-session messaging via named pipes | claudequeue/ |
| Contextual hints | Just-in-time reminders injected via hooks at tool-call time | ~/.claude/skills/contextual_hints/ |
| cls search / cls all | BM25 knowledge search across all FTS tables | Master_Claude.db |
| Grid layout | Orchestrator + workers in split panes (add_to_grid: true) |
launcher.py |
| Master_Claude.db | Central knowledge — skills, learnings, errors, hooks, contexts | D:/ClaudeQueue/ |
POST /launch | Launch new Claude session |
GET /sessions/active | List active sessions |
POST /send-prompt/{id} | Send message to session |
POST /complete/{id} | Mark session complete |
GET /api/future-prompts | Get queued prompts |
POST /api/future-prompts | Add prompt to queue |
DELETE /api/future-prompts/{id} | Remove from queue |
Prompt via /send-prompt
Autonomous work
Results to orchestrator
Check work quality
Recycle for next task
Key principle: Launch once, reuse forever. Max 2 panes: orchestrator + 1 worker. After /goodbye captures learnings and /clear resets context, the same session handles the next task as any specialist.
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────────┐
│ d_pc (Windows) │ │ Cloudflare Pages │ │ londonserver (VPS) │
│ │ │ │ │ │
│ launcher.py:5111 │───▶│ claudequeue.com │ │ /api/* via tunnel │
│ Master_Claude.db │ │ (static files) │───▶│ datasette, APIs │
│ Claude sessions │ │ │ │ │
└─────────────────┘ └──────────────────┘ └─────────────────────┘
│ │
│ Wrangler deploy Cloudflare tunnel
│ C:/Projects/ClaudeQueue/*.html (only /api/*)
▼
Static HTML → Cloudflare Pages → claudequeue.com