You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Officer impact: Officers need one online, read-only operational view for Shop obligations and club-hosted run registrations, plus narrowly scoped actions to record, verify, correct, and resolve in-person payment and pickup outcomes. This issue defines that trusted workflow before any editor or ledger becomes usable.
Officer documentation: Update OFFICER_START_HERE.md only if routing changes; update docs/officers/EVENTS_SHOP_MEMBERS.md, docs/officers/SYSTEM_MAPS.md, the data inventory/retention guide, and finance/recovery procedures when implementation begins.
Deployment evidence: This issue is design only. Source, tests, merge, website publication, runmprc.com, Firebase, provider configuration, production data, and production behavior remain unchanged and unverified.
Owner-approved input recorded 2026-07-29
MPRC Hat is USD 10.00 and MPRC Jacket is USD 25.00.
In-person payment methods are cash and Venmo.
Merchandise is picked up in person from the Treasurer at a club run.
Officers need to check who is settled for Shop items and for MPRC-hosted runs.
Officers currently share access to the club mailbox, but the owner accepts either a website-server or Google Sheets operational surface.
Atomic outcome
Approve one server-authoritative, append-oriented data and command contract for in-person obligations, payment evidence, corrections, and pickup/registration resolution. Define the minimum read model officers may use. Do not build the UI, mutate production data, or configure a provider in this issue.
Security and money invariants
Shared mailbox possession, a matching email string, a profile field, or a visible browser control grants nothing.
Every mutation is attributed to one individually authenticated officer account with one explicit scoped capability.
The browser never writes paid, price, method, balance, pickup, fulfillment, refund, or reconciliation truth directly.
Cash and Venmo evidence never fabricate a Stripe object or Stripe identifier.
Amounts use integer cents and explicit USD currency with an immutable item/event price snapshot.
Payment state and fulfillment/attendance state remain separate.
A correction appends a compensating command and audit record; it never overwrites or deletes history.
Every command has a stable idempotency key and exact retry behavior.
The operational table is a bounded projection, not editable ledger cells.
Access, exports, commands, failures, and corrections are audited with no raw notes, payment handles, contact details, promo codes, or provider secrets.
Shop and event obligations share infrastructure only where their owner-approved lifecycle is genuinely identical.
Owner decisions still required
Name the finance approver, backup, event approver, shop approver, privacy owner, and platform/security owner.
Approve the exact scoped capabilities for viewing, attesting, verifying, correcting, refunding/reversing, and resolving pickup or registration.
Approve what evidence is sufficient for cash and for Venmo without publishing a handle, transaction detail, or screenshot.
Officer impact: Officers need one online, read-only operational view for Shop obligations and club-hosted run registrations, plus narrowly scoped actions to record, verify, correct, and resolve in-person payment and pickup outcomes. This issue defines that trusted workflow before any editor or ledger becomes usable.
Officer documentation: Update
OFFICER_START_HERE.mdonly if routing changes; updatedocs/officers/EVENTS_SHOP_MEMBERS.md,docs/officers/SYSTEM_MAPS.md, the data inventory/retention guide, and finance/recovery procedures when implementation begins.Deployment evidence: This issue is design only. Source, tests, merge, website publication,
runmprc.com, Firebase, provider configuration, production data, and production behavior remain unchanged and unverified.Owner-approved input recorded 2026-07-29
Atomic outcome
Approve one server-authoritative, append-oriented data and command contract for in-person obligations, payment evidence, corrections, and pickup/registration resolution. Define the minimum read model officers may use. Do not build the UI, mutate production data, or configure a provider in this issue.
Security and money invariants
paid, price, method, balance, pickup, fulfillment, refund, or reconciliation truth directly.Owner decisions still required
Dependencies
Acceptance criteria for this design issue
Explicitly out of scope
Production records; real member, buyer, payment, or registration data; Google Sheets creation; Firebase/Stripe/Venmo configuration; role grants; browser editor; CSV export; cash counting; provider calls; checkout; refund execution; receipt delivery; deployment; live verification.