signup: submit_signup — collect waitlist entry #1

Closed
opened 2026-02-28 08:39:57 +00:00 by ash · 0 comments
Owner

🔵 State-Change Slice

Stream: signup-{email-hash}
Command: SubmitSignup{Email, Name, Source}
Event: SignupSubmitted{Email, Name, Source, SubmittedAt}

Invariants

  • Email not already submitted (idempotent)
  • Email valid format
  • Name ≤100 chars
  • Source ≤50 chars (where they heard about us)

Tests

TestSubmitSignup_Happy
TestSubmitSignup_Idempotent (already submitted → no events)
TestSubmitSignup_EmptyEmail → error
TestSubmitSignup_InvalidEmail → error
TestSubmitSignup_EmptyName → error
TestSubmitSignup_NameTooLong → error

Agent assignment: builder-signup

## 🔵 State-Change Slice **Stream:** `signup-{email-hash}` **Command:** `SubmitSignup{Email, Name, Source}` **Event:** `SignupSubmitted{Email, Name, Source, SubmittedAt}` ### Invariants - Email not already submitted (idempotent) - Email valid format - Name ≤100 chars - Source ≤50 chars (where they heard about us) ### Tests ``` TestSubmitSignup_Happy TestSubmitSignup_Idempotent (already submitted → no events) TestSubmitSignup_EmptyEmail → error TestSubmitSignup_InvalidEmail → error TestSubmitSignup_EmptyName → error TestSubmitSignup_NameTooLong → error ``` **Agent assignment:** builder-signup
ash closed this issue 2026-02-28 08:43:51 +00:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ash/waitlist#1
No description provided.