- Forge webhook POST /api/webhooks/forge HMAC sha256 verify, marker echodo-convoy → pr_review→merged as automation - Completion artifacts table 0017, deterministic summary template, gallery /artifacts - Ops copilot tRPC copilot + context tools (fleet, convoy, backlog) + panel + Draft Task → backlog.createTask - Doc-writer SOPs: webhook rotation, copilot prompt, published flow examples - Allow pr_review→merged as automation for webhook Convoy: .convoys/owner-cockpit-v02 Co-authored-by: orchestrator
39 lines
2 KiB
Markdown
39 lines
2 KiB
Markdown
---
|
|
brief: 3
|
|
convoy: owner-cockpit-v02
|
|
role: role-implementer
|
|
title: Ops copilot — context tools + UI + draft work from chat
|
|
status: ready
|
|
priority: P1
|
|
slice_dependencies: []
|
|
recommended_model: claude-planning
|
|
model_tier: premium
|
|
---
|
|
|
|
# Brief 3 — `Epic-ops-copilot` (Epic 12)
|
|
|
|
## Goal
|
|
|
|
`ops copilot` answers "what needs me?" with links, triages, and can draft a `Task` from chat. Uses `gate-copilot` routing but broader context.
|
|
|
|
## Files
|
|
|
|
- `apps/web/server/routers/copilot.ts` NEW — `opsCopilot.generateText` tRPC: `resolveModel(gate-copilot)` `packages/shared/src/model-routing/index.ts`, context tools: `fleetStatus()` (reuse `convoys.fleet` logic), `convoyGet(workspaceSlug, convoyId)`, `backlogListTree(workspaceSlug)` (reuse `backlog.listTree`), `backlogSearch` (grep `markdown_backlog_items`). Tools are read-only, workspace-scoped, bounded. System prompt: "You are ops copilot for second brain OS… respond with links [workspace/slug]."
|
|
- `apps/web/server/routers/harnesses.ts` — no change, just reuse `resolveModel`.
|
|
- `apps/web/components/copilot/ops-copilot-panel.tsx` NEW — chat panel (reuses `components/ui/*`, `ai` SDK `useChat` if available or plain `generateText` loop), shows `fleet → needs you` citations, button `Draft Task` → calls `backlog.createTask` via `create-backlog-item` shape.
|
|
- `apps/web/app/(app)/fleet/page.tsx` — add copilot FAB or sidebar embed.
|
|
|
|
## Acceptance
|
|
|
|
- "What needs me?" returns gate inbox items with `[fleet]` links to convoys.
|
|
- `Draft Task` from copilot creates `Task-*.md` via same path as Plans tree (tool `create-backlog-item` logic).
|
|
- Workspace-scoped — no cross-tenant leakage.
|
|
- `pnpm lint && pnpm type-check` pass.
|
|
|
|
## Prompt
|
|
|
|
You are `role-implementer` brief 3. Read `plans/Plan-automation-foundation/Epic-ops-copilot/Epic-ops-copilot.md`, `docs/adr-model-routing.md`, `apps/web/server/routers/convoys.ts:267` `gateCopilot` as reference, `docs/decisions/2026-08-25-second-brain-os-pivot.md`. Keep tools small (<3 tools), no secrets in prompt.
|
|
|
|
## Depends
|
|
|
|
None — can run parallel with 1,2.
|