--- id: TASK-13 title: Build the audit and outreach review workspace status: Done assignee: [] created_date: '2026-06-03 19:14' updated_date: '2026-06-10 19:27' labels: - mvp - review - workflow dependencies: - TASK-11 - TASK-12 references: - PRD.md priority: high ordinal: 13000 --- ## Description Create the internal review workspace where Matthias can inspect and edit the final audit summary, public audit link, email subject, email body, contact strategy, phone script, follow-up draft, sources, and used skills before any publication or sending happens. ## Acceptance Criteria - [x] #1 Review workspace shows lead details, contact sources, priority reason, contact strategy, audit summary, used skills, and raw/source detail toggles - [x] #2 Audit content can be edited and manually approved before the public page shows customer-facing content - [x] #3 Email subject and body are editable and generated as exactly one recommended version by default - [x] #4 Phone script is available for Erst anrufen and Kontakt fehlt leads when a phone number exists - [x] #5 Freigabe offen state clearly separates Audit veröffentlichen from E-Mail freigeben und senden ## Implementation Plan 1. Orchestrator updates TASK-13 plan and coordinates only; no direct feature coding. 2. Worker A (gpt-5.5 medium) uses TDD to add Convex outreach review contracts: listReviewWorkspace, saveReviewDraft, approveEmailDraft. 3. Worker B (gpt-5.5 medium) uses TDD to replace /dashboard/outreach placeholder with the review workspace UI using the new contracts. 4. Worker C (gpt-5.5 medium) uses TDD to separate Audit veröffentlichen from E-Mail freigeben and keep sending out of TASK-13. 5. Worker D (gpt-5.5 medium) uses TDD to cover phone-script visibility and funnel/review state regressions. 6. Spec and code-quality reviewer agents review each worker output before the next dependent slice proceeds. 7. Orchestrator runs final verification: pnpm test, pnpm exec tsc --noEmit, pnpm lint, pnpm build; then updates Backlog notes and checked ACs without marking Done. ## Implementation Notes Starting TASK-13 with the missing PageSpeed-to-audit-generation handoff so generated audit content exists for the review workspace. Implemented first TASK-13 prerequisite: PageSpeed completion now queues audit_generation for the same lead via internal.auditGeneration.queueLeadAuditGeneration. Queue failures are logged as warnings and do not fail the PageSpeed run. Verified with pnpm test (245/245), pnpm exec tsc --noEmit, pnpm lint (0 errors, existing generated warnings), and pnpm build using .env.local. 2026-06-05: Expanded TASK-13 into subagent-driven, test-driven execution plan on branch codex-task-13-review-workspace. Orchestrator will not hand-code feature patches; workers use gpt-5.5 medium and RED/GREEN tests. 2026-06-05: Completed TASK-13 implementation subagent-driven and test-driven on branch codex-task-13-review-workspace. Worker A added authenticated Convex review workspace contracts, save/approve draft mutations, protected existing outreach create/list, audit ownership checks, sent-record protection, approval reset on regenerated copy, and combined review eligibility indexes. Worker B replaced /dashboard/outreach placeholder with the review workspace UI, editable audit/outreach drafts, raw/source toggles, used skills, phone-script gating, and save-before-approve/publish safeguards. Worker C fixed funnel regression so approved-but-unsent outreach remains in Freigabe offen. Reviews: backend spec approved, backend quality approved after fixes, UI spec approved, UI quality approved after fixes, funnel spec/quality approved, final TASK-13 spec approved. Verification passed: pnpm test (263/263), pnpm exec tsc --noEmit, pnpm lint (0 errors; existing BetterAuth generated warnings only), pnpm build with network escalation for Google Fonts. ## Final Summary Closed per explicit user request while switching project tracking to pitchfast.