Submatter/.convoys/second-brain-os-v01/brief-2-worker-non-code.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

2 KiB

brief convoy role title status priority slice_dependencies recommended_model model_tier
2 second-brain-os-v01 role-implementer Worker non-code — optional worktree + per-harness allowlist + doc_review→published ready P0
qwen-coder local

Brief 2 — Worker non-code (1d)

Goal

book/course/research/SOPs docs don't need git worktree or pnpm. Worker must handle doc tasks writing straight to docs//plans/ no branch, with allowlist per harness.

Files

  • apps/worker/src/git/worktree.ts:1 — add needsWorktree: boolean param; when false skip ensureWorktree, use monorepoRoot directly. Keep existing path for code briefs job.briefId present.
  • apps/worker/src/tools/allowlist.ts:1 — make allowlist configurable per harness harness.config.allowedCommands (or minimal: [read,write,grep] only). Pass allowedCommands into runCommandTool.
  • packages/shared/src/convoy-lifecycle/state-machine.ts:1 — add doc_review → published transition (mirror pr_review → merged), allow human-gate-2 analogue doc-approver.
  • apps/worker/src/handle-job.ts:40 — thread harness.needsWorktree + harness.allowlist through; log harnessAlias to convoy_events.
  • docs/worker.md:1 document optional worktree.

Acceptance

  • Task-write-manifesto.md (doc task) with harness: doc-writer creates docs/manifesto.md via write_file tool without worktree directory under /tmp/echodo-worker-worktrees.
  • Code task Task-fix-lint still creates worktree per prior behavior.
  • transition_convoy_status doc_review → published succeeds; existing pr_review → merged still works.
  • pnpm lint && pnpm type-check && pnpm --filter @tasks/worker test pass.

Prompt

You are role-implementer brief 2. Read docs/convoy-lifecycle.md, packages/shared/src/convoy-lifecycle/state-machine.ts, apps/worker/src/handle-job.ts, docs/decisions/2026-08-25-second-brain-os-pivot.md. Implement small, gated.

Depends

None — can run in parallel with brief 1.