warmbox/docs/17-agile-epics-backlog.md

4.9 KiB
Raw Blame History

Agile Epics & Backlog

Epic map

Epic ID Name Phase Priority
E1 Campaign & role model 1 P0
E2 Recipe engine 1 P0
E3 Campaign dispatcher 1 P0
E4 Reply rate engine 1 P0
E5 Statistics & reporting 1 P0
E6 AI content safety 1 P0
E7 Spam rescue v2 2 P0
E8 Web dashboard 2 P1
E9 DNS & deliverability checks 2 P1
E10 Job queue 2 P1
E11 Multi-tenant SaaS 3 P2
E12 Peer network (optional) 3 P3
E13 External integrations 34 P3

E1 — Campaign & role model

Stories

ID Story Points
E1-1 As an operator, I can mark a mailbox as primary or satellite 3
E1-2 As an operator, I can create a warmup campaign for a primary 5
E1-3 As an operator, I can assign/remove satellites from a campaign 3
E1-4 As an operator, I can run multiple campaigns for different primaries 5
E1-5 As a developer, migrate existing Inbox rows to new schema 3

Integration: Prisma migration + /api/campaigns routes


E2 — Recipe engine

Stories

ID Story Points
E2-1 As an operator, I can select Grow recipe with 30-day duration 5
E2-2 As an operator, I can select Flat recipe 3
E2-3 As an operator, I can select Randomized recipe 5
E2-4 As an expert, I can define Custom per-day schedule 8
E2-5 As an operator, I can preview ramp chart before starting 3
E2-6 System enforces min 1, max 50 emails/day 2
E2-7 System enforces 48h +20% volume cap 5

Integration: packages/recipe-engine or src/services/recipe.service.ts


E3 — Campaign dispatcher

Stories

ID Story Points
E3-1 Satellites send only to assigned primary 5
E3-2 Primary replies only to assigned satellites 5
E3-3 Sends respect daily schedule from recipe 5
E3-4 Sends distributed with jitter in send window 5
E3-5 Campaign auto-completes after durationDays 3
E3-6 Maintenance mode at 20% volume post-campaign 5

Integration: Replace dispatcher.job.ts with campaign-aware version


E4 — Reply rate engine

Stories

ID Story Points
E4-1 Operator sets reply rate 30% (default) 2
E4-2 System caps reply rate at 45% 1
E4-3 Rescuer samples replies probabilistically 8
E4-4 Non-replied messages still rescued and flagged 3
E4-5 Dashboard shows reply rate actual vs target 3

E5 — Statistics & reporting

Stories

ID Story Points
E5-1 API returns today's planned vs actual sends 5
E5-2 API returns daily time series for 30 days 5
E5-3 API returns spam detected/rescued counts 3
E5-4 API returns inbox placement rate 5
E5-5 Nightly rollup job materializes DailyStat 5
E5-6 Workspace overview endpoint for all primaries 5

E6 — AI content safety

Stories

ID Story Points
E6-1 Validator rejects bracket placeholders 3
E6-2 Validator rejects tier-1 spam words 3
E6-3 Auto-regenerate up to 3 times on failure 3
E6-4 Mailbox profile supplies real name/company 3
E6-5 Plain text only, no links in warmup body 2

E7 — Spam rescue v2

Stories

ID Story Points
E7-1 Match spam UID to single WarmupLog 5
E7-2 Track placement inbox vs spam 3
E7-3 Auto-discover spam folder per provider 5
E7-4 Auto-pause campaign on high spam rate 5

E8 — Web dashboard

Stories

ID Story Points
E8-1 Dashboard shows all active campaigns 5
E8-2 4-step campaign wizard 8
E8-3 Campaign detail with charts 8
E8-4 Add mailbox with provider presets 5
E8-5 Connection test from UI 3
E8-6 Global activity log view 3

Integration breakdown (build order)

flowchart TD
    E1[E1 Campaign model] --> E2[E2 Recipe engine]
    E2 --> E3[E3 Dispatcher]
    E1 --> E4[E4 Reply rate]
    E3 --> E5[E5 Statistics]
    E3 --> E6[E6 AI validator]
    E4 --> E7[E7 Spam rescue v2]
    E5 --> E8[E8 Web UI]
    E6 --> E8
    E7 --> E8

Suggested first sprint (2 weeks)

  1. E1-1, E1-2, E1-3 (campaign CRUD + roles)
  2. E2-1, E2-6 (Grow recipe + validation)
  3. E6-1 (placeholder validator)

Sprint goal: Create FillCare campaign via API; preview Grow schedule; no sends yet.

Story point scale

Points Meaning
12 Few hours
3 Half day
5 1 day
8 23 days

Backlog hygiene

  • Every story links to spec doc section
  • Acceptance criteria required before sprint commit
  • Demo: FillCare primary visible in stats after each epic