58 lines
2.5 KiB
Markdown
58 lines
2.5 KiB
Markdown
---
|
|
name: polish-dag-tiers-cost
|
|
classification: server-only
|
|
success_metric: Cost caps + DAG viz + tiers + preflight + checks panel ship; Epic 7 and model-provider follow-ons close
|
|
skip:
|
|
- ia
|
|
- a11y
|
|
- visual
|
|
- smoke
|
|
status: merged
|
|
created: 2026-08-25
|
|
model_policy:
|
|
roles:
|
|
role-conductor: claude-planning
|
|
role-architect: claude-planning
|
|
role-implementer: qwen-coder
|
|
role-doc-writer: qwen-coder
|
|
role-reviewer: qwen-coder
|
|
escalate_to: claude-planning
|
|
---
|
|
|
|
# Polish — DAG + tiers + cost caps + preflight + checks (closing follow-ons)
|
|
|
|
## Why
|
|
|
|
Second-brain v0.1 + worker-closeout + owner-cockpit left `draft` follow-ons that block a clean `Plan-automation-foundation` `done`: `Task-cost-budget-ui-and-caps` Epic 1, `Task-repo-setup-preflight` Epic 3, `Task-pr-checks-recovery-panel` Epic 8, `Task-convoy-dag-visualization` + `Task-automation-tiers` Epic 5. This convoy closes them with `role-doc-writer` for SOPs.
|
|
|
|
Per `plans/Plan-automation-foundation/Plan-automation-foundation.md:332` Polish section and `docs/decisions/2026-08-25-second-brain-os-pivot.md`.
|
|
|
|
## Scope
|
|
|
|
1. **Cost budget caps** `Task-cost-budget-ui-and-caps` — month-to-date spend per `model_providers.metadata.tier`, `Budget caps` table `workspace_id` + `cap_usd` + `period: monthly`, dispatch pause when exceeded, tRPC `getSpend` + UI `Settings → AI → Budgets`.
|
|
2. **DAG visualization** `Task-convoy-dag-visualization` — `components/mission-control/convoy-dag.tsx` small DAG for `ready/in_progress` brief `sliceDependencies`, `GET /mission-control?dag=1` panel.
|
|
3. **Automation tiers** `Task-automation-tiers` — `automation_tier enum: manual|assist|auto` per convoy or workspace, `convoys.create` adds `tier`, Mission control badge.
|
|
4. **Repo preflight** `Task-repo-setup-preflight` — `POST /api/connected-repos/preflight` checks `git ls-remote` + `worktree` writability before clone, UI shows result.
|
|
5. **PR checks recovery panel** `Task-pr-checks-recovery-panel` — reuses webhook `prUrl`, shows checks status + `Retry` button (calls forge adapter `getChecks` stub).
|
|
|
|
Out of scope: Epic 11 screenshot capture (needs browser), full LiteLLM.
|
|
|
|
## Roles invoked
|
|
|
|
Conductor → Architect (5 briefs) → Implementer per brief (disjoint) → Doc-writer (SOP for caps/tiers) → Reviewer.
|
|
|
|
## Todos
|
|
|
|
- [ ] Brief 1 cost caps
|
|
- [ ] Brief 2 DAG viz
|
|
- [ ] Brief 3 tiers
|
|
- [ ] Brief 4 preflight
|
|
- [ ] Brief 5 checks panel
|
|
|
|
## IA
|
|
|
|
Skipped (`ia` in skip). New table only for budget caps; DAG/tiers reuse `objects.content`.
|
|
|
|
## UX
|
|
|
|
Partial — `ux` not skipped for DAG: simple SVG, not full canvas.
|