Skip to content

docs(agile): Creator Newsletter Platform PRD + initiative + Epic 1 structure#1

Open
wangkanai wants to merge 6 commits into
mainfrom
creator-newsletter-platform-prd
Open

docs(agile): Creator Newsletter Platform PRD + initiative + Epic 1 structure#1
wangkanai wants to merge 6 commits into
mainfrom
creator-newsletter-platform-prd

Conversation

@wangkanai
Copy link
Copy Markdown
Owner

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 with spec.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 EmailSenderPort adapter (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

  • Review PRD section 7 (Risks) and confirm all 19 risk rows have mitigation + contingency pairs
  • Review initiative `design.md` cross-epic coordination points are tied to specific sprint-ends
  • Review Epic 1 `epic.md` Feature Workflow DAG matches Epic Breakdown Dependencies column
  • Confirm each of the 7 feature `spec.md` files has 2–3 user stories with measurable acceptance criteria
  • Confirm each of the 7 feature `tasks.md` files has a Tasks Workflow DAG with User Story sequential gates

wangkanai added 6 commits May 14, 2026 12:08
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).
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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% |
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant