signup: withdraw_signup — user cancels waitlist #2

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

🔵 State-Change Slice

Stream: signup-{email-hash}
Command: WithdrawSignup{Email}
Event: SignupWithdrawn{Email, WithdrawnAt}

Invariants

  • Must exist (submitted)
  • Not already withdrawn (idempotent)
  • Not already approved (can't withdraw after approval)

Tests

TestWithdrawSignup_Happy
TestWithdrawSignup_Idempotent
TestWithdrawSignup_NotFound → error
TestWithdrawSignup_AlreadyApproved → error

Agent assignment: builder-signup

## 🔵 State-Change Slice **Stream:** `signup-{email-hash}` **Command:** `WithdrawSignup{Email}` **Event:** `SignupWithdrawn{Email, WithdrawnAt}` ### Invariants - Must exist (submitted) - Not already withdrawn (idempotent) - Not already approved (can't withdraw after approval) ### Tests ``` TestWithdrawSignup_Happy TestWithdrawSignup_Idempotent TestWithdrawSignup_NotFound → error TestWithdrawSignup_AlreadyApproved → error ``` **Agent assignment:** builder-signup
ash closed this issue 2026-02-28 08:50:35 +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#2
No description provided.