- 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
2.4 KiB
2.4 KiB
| brief | convoy | role | title | status | priority | slice_dependencies | recommended_model | model_tier | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 4 | second-brain-os-v01 | role-implementer | Plans tree — web CRUD for plans/ without CLI, Start→Convoy | ready | P0 |
|
qwen-coder | local |
Brief 4 — Plans tree (1w) — Epic 10
Goal
Web Plans is Obsidian-like tree — read/write plans/Plan-*/Epic-*/Task-*.md without pnpm import:markdown-backlog CLI; click Start → Convoy.
Files
apps/web/server/routers/backlog.ts:29— addlistTree(returns hierarchicalPlan → Epic → Taskwithstatus/priority/repoPath),createPlan/createEpic/createTask(slug/title/bodyMarkdown/agent_prompt→ writes.mdviajoin(repoRoot, repoPath)atomically.tmp→rename, then direct DB upsert orsyncMarkdownBacklogScan),updateTaskBody,getBacklogItemalready exists. Enforce slug^[a-z0-9-]+$,workspace_idfence,updated_atbump.apps/web/app/(app)/[workspaceSlug]/plans/page.tsxNEW — tree component (collapsibleRadix Collapsible+ScrollArea), status chips, search,New Plan/Epic/Taskdialogs,Startbutton → callsconvoys.createapps/web/server/routers/convoys.ts:173withplanSlug/epicSlug.- Reuse
resolveWorkflowPromptpreview in task detail drawer. docs/Glossary.md:50hierarchy respected;config/CursorSync.md:33export allow-list preserved (web writes go through same export path).
Acceptance
Planspage showsPlan-clarity → Epic-ai-tags → Task-local-tag-prompt [ready]from DB without CLI after DB seed.New Taskdialogtitle: Research promptslug: research-promptcreatesplans/Plan-clarity/Epic-ai-tags/Task-research-prompt.mdon disk + row inmarkdown_backlog_itemsvisible after refresh without manual import.Starton areadytask creates convoyclarity-research-promptatdraftand linksbriefFiles: [repoPath].MCP create-backlog-itembrief 1 and web create produce same file format (round-trip parse test).pnpm lint && pnpm type-checkpass.
Prompt
You are role-implementer brief 4. Read plans/README.md, packages/database/src/markdown-backlog/parse.ts, apps/web/server/routers/backlog.ts, docs/decisions/2026-08-25-second-brain-os-pivot.md. Follow existing tRPC patterns ai-models.ts. Keep UI to components/ui/* + Tailwind.
Depends
Briefs 1,3 — needs MCP tool shape + harness registry for Start.
Out of scope
Full Notion drag-n-drop, breadcrumb perf — keep tree simple.