docs(agile): Creator Newsletter Platform PRD + initiative + Epic 1 structure#1
docs(agile): Creator Newsletter Platform PRD + initiative + Epic 1 structure#1wangkanai wants to merge 6 commits into
Conversation
Initial PRD for Creator Newsletter Platform — a 5%-take alternative to Substack targeting independent writers with 1K–100K subscribers. Captures all 13 brainstorm phases including: - Vision, problem, value prop, competitive landscape - 14 MVP features (F-001..F-014), 4 explicit Won't items - 8 risks with R-01 (50K-in-5-min email throughput) flagged dominant - Primary metric: platform take revenue ($) - 4 bounded contexts; 9 entities; 8 domain events - 4 epic candidates with email-delivery-worker sequenced first
5-expert panel review (Proposer, Challenger, Grounder, Reviewer, Critic) across 2 iterations (D1+D2+D3, then D4+D5). Major changes: - Status: Draft -> REVIEW -> REFINED - New MVP feature F-019 (creator suspension + content takedown) - F-009 demoted Must -> Should/V1; F-015 minimal V1 discovery primitive - 11 new risks (R-09..R-19) including bounce-loop runaway, CAN-SPAM via missing global suppression, SES quota ramp blocker, Stripe webhook reliability, AWS account suspension, creator content moderation, build-vs-buy adapter-pattern contingency - 6 new assumptions (A-06..A-11) including SES quota approval timing, paid-sub re-auth rate, Stripe Pattern A acceptance, design-partner representativeness, free-tier conversion floor, event-bus throughput - Sprint-0 SES quota deliverable on critical path; Week-12 load-test gate (one run on dedicated subdomain, per Grounder reputation-risk objection) - §1.3 Stripe pass-through clarification; §6.2 Pattern A declared; §8.1 take-vs-margin footnote ($250K gross -> ~$236K net contribution) - Tiered SLA in §6.4 (4 size classes); complaint-rate metric (<0.1%); recipient-list local cache mandatory (NOT REST) - Spring Boot 4.0.5 + JDK 21 tech stack mandated per MASTER:XXII; Deployment topology per WORKER:III; feature-flag naming per MASTER:XII - Phase 1.5 reputation warm-up window (Month 4-4.5) - Domain model: GlobalSuppression + SesQuotaState entities; SubscriberSuppressed + CreatorSuspended events; Audience -> Delivery via snapshot/replica (not REST) - "Engaged Open" renamed to "Engagement Event" - Glossary additions: Pattern A, Global Suppression, Email Spine, EmailSenderPort Grounder verdict on SES + Spring Batch feasibility for 50K-in-5-min SLA: PASS-WITH-CONDITIONS (5 conditions, all incorporated). Challenger build-vs-buy verdict: BUILD on SES + Spring Batch with EmailSenderPort adapter pattern for 2-sprint emergency BUY-pivot. Epic Candidates unchanged in shape: 4 epics, email-delivery-worker remains Seq=1 (now annotated ~50% of MVP engineering effort). Final Reviewer quality score: 95/100 (Excellent).
MVP-only initiative derived from PRD 001 (REFINED). Delivers the Creator Newsletter Platform MVP — 8-partner design launch by end of Month 4, reputation-warmed sending pool ramped to ~30 creators by end of Month 4.5. Scope: - 4 epics per PRD §11 with email-delivery-worker Seq=1 (~50% MVP effort) - 9 sprints (2-week cadence; Sprint 1-8 MVP, Sprint 9 Phase 1.5 warm-up) - 5 success criteria including Sprint-2 SES quota approval gate, Sprint-4 Email Spine milestone, Sprint-6 Week-12 load-test gate Out of scope (deferred to future creator-newsletter-v1-public-launch initiative): F-009 recurring tips, F-012 self-serve, F-015 V1 discovery primitive, deliverability/perf hardening, public-launch marketing. Initiative-level risks (C-1..C-6): Subscriber contract cascade, Epic 1 event-emission readiness, headcount below 4 FTE, SES quota denial, T&S staffing absent, design-partner attrition. Cross-epic coordination anchored to 6 sprint-end synchronization points.
First epic of initiative 001-creator-newsletter-mvp (Seq=1; ~50% MVP engineering effort). Carries the dominant R-01 throughput risk plus 5 list-cleanliness/quota risks (R-10..R-14) and the 5 Grounder PASS-WITH-CONDITIONS gates from the PRD refinement. Scope: - 7 features (001-01..001-07) - Send pipeline core + SES adapter via EmailSenderPort (R-19 BUY-pivot contained refactor preserved) - Recipient-list local cache (mandatory; REST in hot path prohibited per Grounder Condition C2) - F-012 custom domain auth with continuous 24h re-verification - Tracking endpoints + EmailOpened/EmailClicked emission (co-located in Delivery context per user direction to keep 4-epic structure) - Bounce+complaint feedback loop + tiered IP strategy with revenue-tied dedicated-IP promotion at \$500/mo - Graduated cohort first-send + concurrent-publish fair-share scheduling - Sprint-0 SES quota lifecycle + Week-12 load-test harness Architecture (per user choice from Option A): - Kafka MSK with per-creator partition key for fair-share scheduling - Single-region SES (us-east-1) at MVP; multi-region deferred to V1 - Revenue-tied dedicated-IP promotion threshold - Spring Boot 4.0.5 + Spring Batch 5.x + JDK 21 per MASTER:XXII/VIII - Kubernetes Deployment topology (NOT CronJob) per WORKER:III Success criteria gated to specific sprints: - Sprint 2: SES ≥200/sec quota approval letter on file (hard gate) - Sprint 4: Email Spine milestone - Sprint 6: Week-12 Load-Test Gate (50K <4:30; concurrent 2x25K) - Sprint 8: 8 design partners on concierge-configured custom domains - Sprint 9: Phase 1.5 reputation warm-up complete (zero quarantine) Dependencies: Subscriber + Tier contract from Epic 002 (parallel from Sprint 1; stub-then-reconcile if delayed); AWS SES production-access approval; Kafka MSK provisioning.
Generated via /agile:epic:plan from approved design.md. Artifacts (19 files, ~2,144 lines): - plan.md: strategic plan with 3 phases (A foundation, B Email Spine, C hardening), architecture decisions (Kafka MSK + single-region SES + revenue-tied dedicated-IP), Service Interaction Flow (9-step publish-to-deliver-to-analyze), Service Dataflow L1 - epic.md: 7 features in Epic Breakdown table with Feature Workflow ASCII DAG; dependency matrix; sprint timeline; 6 success criteria gates - checklist.md: cross-cutting verification gates (constitution compliance, sprint-anchored hard gates, build/quality/docs/observability) - 7x feature directories with spec.md (user stories + FRs + AC) and tasks.md (6-state markers + Tasks Workflow ASCII DAG + cross-feature deps) Coverage: 18 user stories, 67 functional requirements, 170 tasks across 7 features. Total story points: 100 across all user stories. design.md archived (status APPROVED -> ARCHIVED). Consistency analysis: 100% requirement-to-task coverage; 3 findings auto-remedied (1 medium cross-feature dep notation split; 2 low cosmetic). No CRITICAL findings. Next: /agile:epic:implement 001 (requires team creation + Sprint-0 SES quota ticket filed within first 3 days of Sprint 1).
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9b974e4882
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| | R-04 shared-IP reputation | High | 001-05 | Tiered IP strategy (shared → dedicated at $500/mo rev → quarantine) | | ||
| | R-10 cross-creator CAN-SPAM | High | 001-02, 001-05 | GlobalSuppression cross-check in recipient materialization; SubscriberSuppressed cache invalidation <5s | | ||
| | R-11 bounce-loop runaway | High | 001-05 | Hard-bounce classifier writes to suppression synchronously; soft-bounce DLQ with exponential backoff | | ||
| | R-12 complaint-rate trip wire | High | 001-05 | Alert at 0.05%; auto-pause at 0.3% before SES warning at 0.1% | |
There was a problem hiding this comment.
Lower auto-pause threshold below SES complaint warning
The mitigation defines auto-pause at 0.3% before SES warning at 0.1%, but 0.3% is higher than 0.1%, so the system would pause creators only after crossing the stated SES warning boundary. If this value is implemented as written, the trip-wire cannot prevent warning-level complaint rates and weakens the core R-12 safeguard.
Useful? React with 👍 / 👎.
Summary
Establishes the agile artifact chain for the Creator Newsletter Platform: PRD-001 (refined via 2-iteration 5-expert panel; final 95/100 score; Grounder verdict PASS-WITH-CONDITIONS on AWS SES + Spring Batch for the 50K-in-5-min SLA), Initiative 001 (MVP-only across 9 sprints with V1 deferred to a separate initiative), and Epic 001
email-delivery-worker(Seq=1, ~50% of MVP engineering effort, carries dominant R-01 throughput risk).21 new files (3,261 lines) including the REFINED PRD with 19 risks + 11 assumptions + 14 Must features, a refinement report, the initiative
design.md, and Epic 1's full breakdown —plan.md+epic.md(with Feature Workflow ASCII DAG) +checklist.md+ 7 feature directories withspec.md+tasks.md(18 user stories, 67 functional requirements, 170 tasks).Architecture: Kafka MSK with per-creator partition key, single-region SES (us-east-1) with multi-region deferred to V1, revenue-tied dedicated-IP promotion at $500/mo, Spring Boot 4.0.5 + Spring Batch 5.x per MASTER:XXII, mandatory
EmailSenderPortadapter (R-19 BUY-pivot contingency), and a local PostgreSQL replica of the Audience projection (no synchronous REST in the hot fanout path).Three sprint-anchored hard gates: Sprint 2 AWS SES ≥200/sec quota approval letter on file; Sprint 4 Email Spine milestone (F-005 happy path + F-012 verified for one domain end-to-end); Sprint 6 Week-12 Load-Test Gate (single 50K send <4:30 + concurrent 2× 25K co-publish + zero duplicates + zero permanent losses + <0.5% bounce).
Next steps after merge: file the AWS SES production-access ticket (longest external lead time), brainstorm Epic 2 in parallel for the Subscriber + Tier contract Epic 1 depends on, and run `/agile:team create` to spin up the 2-engineer-minimum Epic 1 team.
Test plan