Submatter/.convoys/second-brain-os-v01.md
Randall Stillwell 6ccb060bea feat(second-brain): open self-hosted Obsidian for crews — harness-agnostic v0.1
- 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
2026-08-25 16:20:53 -05:00

3 KiB

name classification success_metric skip status created model_policy
second-brain-os-v01 server-only Web-first second brain OS publishable via docker compose up — any agent (OpenCode/Cursor) can create Plan/Epic/Task via MCP, Plans tree CRUD works without CLI, Fleet shows all workspaces, harness-agnostic worker runs doc + code tasks with BYO LLMs
ia
ux
design
a11y
visual
smoke
in-progress 2026-08-25
roles escalate_to
role-conductor role-architect role-implementer role-reviewer
claude-planning claude-planning qwen-coder qwen-coder
claude-planning

Second Brain OS v0.1 — open self-hosted Obsidian for crews

Why

Echodo pivots per docs/decisions/2026-08-25-second-brain-os-pivot.md from closed code-cockpit to open "Obsidian for agent crews": docker compose up, BYO LLMs (Ollama 11434 / MLX 8000 / NIM), any harness via AG-UI/MCP. Current plans/ is hand-edited markdown + CLI import; Fleet is per-workspace kanban only; worker is code-only with hard worktree + 4-tool allowlist. This convoy makes the homelab dogfoodable + publishable for stars.

See plans/Plan-automation-foundation/Plan-automation-foundation.md v0.1 order (2026-08-25 pivot).

Scope

  1. MCP create-backlog-item — natural language Plan/Epic/Task creation (0.5d)
  2. Worker non-code: optional worktree + per-harness allowlist + doc_review→published (1d)
  3. Harness registry + WorkerAdapter: harness_providers + role_harness_routes, AG-UI /api/ag-ui, Settings → Harnesses (2-3d)
  4. Plans tree: apps/web/app/(app)/[workspaceSlug]/plans/page.tsx + backlog.createPlan/createEpic/createTask + Start→Convoy (1w) — Epic 10
  5. Fleet rollup: /fleet + SSE convoy_events feed (3-4d) — Epic 9

Out of scope: Epic 8 webhooks, Epic 11 artifacts, Epic 12 copilot (post-v0.1); LiteLLM required, per-user overrides.

Roles invoked

Conductor → Architect (briefs = 5 above, 1:1 to roadmap) → Implementer per brief (sequential, each needs prior) → Reviewer (PR).

Todos

  • Brief 1 MCP create
  • Brief 2 worker non-code
  • Brief 3 harness registry — depends on 2
  • Brief 4 Plans tree — depends on 1,3
  • Brief 5 Fleet — depends on 3

IA

Skipped (ia in skip). No new IA — plans/ hierarchy docs/Glossary.md:50 + objects packages/database/src/schema/objects.ts:18 unchanged.

UX

Skipped (ux in skip). Reuses existing Mission control kanban apps/web/app/(app)/[workspaceSlug]/mission-control/page.tsx:12 + Settings patterns.

Architecture

See decision log + docs/adr-model-routing.md. Key new:

  • packages/database/src/schema/harness_providers.ts (mirror model_providers docs/adr-model-routing.md:78)
  • packages/shared/src/worker/executor.ts WorkerAdapter
  • apps/worker/src/handle-job.ts:40 dispatch via adapter
  • apps/web/app/api/ag-ui/[workspace]/route.ts AG-UI
  • apps/mcp-server/src/tools/create-backlog-item.ts
  • apps/web/server/routers/backlog.ts:29 add CRUD for plans/*.md