- MCP create-backlog-item for natural language Plan/Epic/Task authoring - Worker non-code: optional worktree + per-harness allowlist + doc_review→published - Harness registry: harness_providers/role_harness_routes, WorkerAdapter (minimal|crewai|langgraph|remote-ag-ui), AG-UI POST /api/ag-ui, Settings → Harnesses with Test - Plans tree: backlog.listTree + createPlan/Epic/Task + Start→Convoy, web CRUD without CLI - Fleet: /fleet rollup across workspaces + SSE /api/fleet/events Decision: docs/decisions/2026-08-25-second-brain-os-pivot.md Convoy: .convoys/second-brain-os-v01 Co-authored-by: orchestrator
7.1 KiB
Decision Log 2026-08-25 — Second Brain OS Pivot
Date: 2026-08-25
Participants: solo operator + deep-dive analysis of Echodo (tasks repo) vs Grok Bot / OpenBot / Agents Squads / Agent Teams / OpenClaw
Status: Accepted
Scope: Product positioning, roadmap, and harness architecture for remaining epics.
TL;DR
Echodo stays homelab dogfooded, publishes as open MIT self-hosted "Obsidian for agent crews" — docker compose up, BYO LLMs (Ollama 11434 / MLX 8000 / NIM / LiteLLM), any harness via AG-UI/MCP. Do not chase Grok Bot SaaS ($300/mo Heavy) or clone LangChain/CrewAI/AutoGen frameworks. Win by being the file-first, gated control plane they lack.
Context
Full deep dive 2026-08-25 covered:
- What Echodo is:
tasksrepopackage.json:1,@tasks/*, DB/domainechodo,plans/Plan-*/Epic-*/Task-*.mdgit SoT →markdown_backlog_items+cursor_sync_mappings→ tRPC19 routers+ MCPclaim_task/complete_task+model_providers/role_model_routes+convoystate machine +orchestratorRedis tick +workerworktree+MinimalSession. - Current status: Epics 1-6
done, 7in_progress(draft PR + live E2E missing), 8-12draft. 14 migrations,apps/worker4-tool allowlist, uncommitted checkpoint/worktree code. - Market: $6-17B orchestration 2026 → $38-121B 2035, 23-25% CAGR. Human-in-loop hybrid 18% ($1B). Grok Bot has no standalone price (bundled Heavy/Cursor Ultra). OpenClaw 347k stars > React in 60 days. LangChain 97-135k, CrewAI 57k, AutoGen maintenance → Microsoft Agent Framework.
Examples walked: solo Maya Clarity offline notes + local tags (M4 Mac); small team Studio North RouteMap delivery planner (CrewAI crew + Nim). Both driven from web Mission control apps/web/app/(app)/[workspaceSlug]/mission-control/page.tsx:12 or via MCP claim_task in Cursor/OpenCode.
Decisions Made
1. Positioning: Open self-hosted second brain, not managed SaaS
- Internal tool first: Run for self, fleet of personal projects, dogfood every bead via
claim_task → complete_task. - Publish as open self-hosted Obsidian for agent crews:
git clone && cp .env.example .env && docker compose -f docker/docker-compose.yml upmust work without CT102 IPs. BYO LLM headline. - Monetize later as managed fleet (SSE, copilot hosting) if
>1k stars or 50 self-hosters or 3 agenciesin 30 days post-publish. Not per-seat SaaS.
Rejected: competing head-on with Grok Bot appliance; cloning LangChain/CrewAI (223M dl/mo ecosystem tax, No native policy gate gap already exists to fill).
2. Harness-agnostic execution (the big change)
- Add
WorkerAdapterinterfacepackages/shared/src/worker/executor.ts—handleOrchestratorJobapps/worker/src/handle-job.ts:40dispatches tominimal | crewai | langgraph | remote-ag-ui (AG-UI). - Add
harness_providers+role_harness_routes(mirrormodel_providersdocs/adr-model-routing.md:78),harness_type enum,auth_env_varwrite-only like OpenBot. - Job spec
packages/shared/src/orchestrator/job.tsaddsharnessAlias. AG-UI endpointapps/web/app/api/ag-ui/[workspace]/route.ts; MCP staysapps/mcp-server/src/index.ts:12. - One agent can author tasks (doc-writer), another harness implements them —
role-architect → claude-planning + langgraph,role-implementer → qwen-coder-mlx http://mac:8000/v1 + crewai.
3. Web-first, almost everything from UI
Goal: never leave echodo.stillwell.cloud.
- Fleet: new
/fleetrollup acrossworkspace_id+connected_repos+convoy_eventsSSE (Epic 9). - Plans: tree CRUD for
plans/*.mdpackages/database/src/markdown-backlog/sync.ts:38viabacklog.createPlan/createEpic/createTask+Start → Convoy(Epic 10). Replaces hand markdown +pnpm import:markdown-backlogloop. - Run:
CreateConvoyDialogapps/web/components/mission-control/create-convoy-dialog.tsx→convoys.createapps/web/server/routers/convoys.ts:173→ orchestrator fans out; gatesgateActionconvoys.ts:237+gateCopilotconvoys.ts:267in same panel; historyagent_runs/worker_checkpoints. - MCP remains shortcut for natural language ("OpenCode, add Epic with 3 tasks") via new
create-backlog-itemtool.
4. Non-code support (book/course/research/SOPs)
- Make worktree optional
apps/worker/src/git/worktree.ts:1— doc tasks write straight todocs//plans/no branch. - Make
allowlist.tsper-harness — research harness allows search, doc harness allows nopnpm. - Add
doc_review→publishedtransition alongsidepr_review→mergedpackages/shared/src/convoy-lifecycle/state-machine.ts. - Templates
Settings → Templatesapps/web/app/(app)/[workspaceSlug]/settings/templates/page.tsxfor research pipeline/book without migration.
5. What stays vs. what goes
Keep: workspace_id tenancy packages/database/src/schema/objects.ts:32, plans/ hierarchy docs/Glossary.md:50, markdown contentHash idempotency, claim_task/complete_task primitives Plan-agent-coordination.md:12, model routing resolveModel docs/adr-model-routing.md:63, gates/kanban apps/web/app/(app)/[workspaceSlug]/mission-control/page.tsx:12.
Add: harness registry, Plans tree, Fleet rollup, create-backlog-item.
Not building now: full Cursor API push/pull (config/CursorSync.md:5 modes doc-only), LiteLLM required, per-user model overrides adr-model-routing.md:354.
Examples Consolidated
- Maya solo
Clarity: starts from web Plans "local tag prompt Ready" →Start→Convoyclarity-tag-v1→ gateconvoy_review→ approve → workerqwen-coder+tag-crewworktree → checkpointtoolHistory→ draft PRfeat(tags)→pr_review→ merged. Or same via Cursorclaim_task repoPath:plans/...natural language. - Studio North
RouteMap: Ana triages Fleet → seesroutemap-optimize-v2 pr_review 2d Carlos, createsEpic-driver-offlinein Plans; Ben claims via Cursor; Carlos gateRequest changesviaGate co-pilotsummary.Ops copilotanswers "what needs me?".
Both show markdown as token-cheap second brain Plan-automation-foundation.md:222 "DB+UI are how agents query without dumping whole trees" — not Obsidian vault scan.
Roadmap Impact
Updates plans/Plan-automation-foundation/Plan-automation-foundation.md — see "2026-08-25 pivot" section. Priorities v0.1 for second-brain OS: (1) MCP create item (0.5d), (2) optional worktree + per-harness allowlist (1d), (3) harness registry + WorkerAdapter (2-3d), (4) Plans tree (1w), (5) Fleet rollup. Epics 9/10 remain draft but now unblock non-code. Epic 11/12 unchanged.
Go/no-go: 30 days post-open: >1k stars / 50 self-hosters / 3 managed inquiries else keep homelab-only.
Risks
- Mac Ollama unreachable from Coolify →
testProvider/testHarnesssurface LAN error; run web locally fallbackdocs/adr-model-routing.md:314. - Scope creep into framework — mitigate
WorkerAdapteris adapter, not framework.
Links
- Plan:
plans/Plan-automation-foundation/Plan-automation-foundation.md - ADR:
docs/adr-model-routing.md - Convoy lifecycle:
docs/convoy-lifecycle.md - Worker:
docs/worker.md - Plans layout:
plans/README.md,docs/Glossary.md,config/CursorSync.md