3 parallel researchers: Reddit/web, GitHub repos, architecture patterns. 2026-04-02.
| Repo | Stars | What to steal |
|---|---|---|
| BloopAI/vibe-kanban | 23.6k | MCP dual-role (consume + expose), worktree per task, SQLite state |
| simple10/agents-observe | - | Claude Code hooks → WebSocket → React dashboard pipeline |
| hoangsonww/Claude-Code-Agent-Monitor | - | Kanban auto-moves via hooks, tool usage visualization |
| MeisnerDan/mission-control | - | ai-context.md condensed state file, Eisenhower matrix |
| 23blocks-OS/ai-maestro | 575 | Agent-to-agent messaging protocol (AMP), peer mesh |
| CronusL-1141/AI-company | 145 | Task Wall (shared read surface), Loop Engine |
| saltbo/agent-kanban | - | Cryptographic agent identity, multi-runtime support |
| BradGroux/veritas-kanban | - | YAML workflow pipelines, enforcement gates |
| madviking/headless-pm | - | Pull-based lock/claim queue pattern |
| jayminwest/overstory | - | Full agent OS: sling/stop/trace/costs CLI |
| Problem | Pattern | How to implement |
|---|---|---|
| No real-time visibility | Event bus (structured trace events) | agent_events table in vault.db + WebSocket stream to dashboard |
| Unstructured results | Output schema contracts | Each ticket type defines a Pydantic/TypedDict output schema |
| No follow-up tickets | spawn_ticket tool | Give agents a create_ticket API call |
| No priority queue | Numeric priority + age-based bump | Priority column on tickets, pickup sorts by priority DESC |
| No agent metrics | Three-layer measurement | agent_metrics table: duration, tokens, cost, quality score |
| No pause/cancel | Checkpoint-based interrupt | cancel_requested flag on ticket, agent polls between steps |
Events are the language, checkpoints are the safety net, schemas are the contract, and the bus decouples everything.
Our polling/cron model is sound for low-frequency work. The gaps are: missing event emission (hooks), output schemas, and cancel flags.