C-US01CoreC01Pieter — club manager
As a manager, I want today's operational overview so I can prepare staff and resources.
- Reservations, participants, check-ins, balances and course status are current
- Portal entry opens the existing club dashboard; desktop/mobile menus retain dashboard and page assistant access without Overview or AI assistant destinations
- Club analytics show confirmed bookings and player places for today and the next seven local calendar days, with explicit dates, refresh time and independent unavailable states
- Planned UX-002 extension starts the club portal on its dashboard with today and next-seven-day statistics and analytics, without Overview or AI assistant menu entries; page assistant access remains
- WEATHER-001 uses manager-maintained club coordinates, staff-scoped weather and explicit dates/units/freshness; missing location and provider failure never imply another club's weather or automatic operational changes
REP-002REP-003BOOK-010PAY-005UX-002UX-003UX-004WEATHER-001
C-US02CoreC03Sofie — reception
As reception, I want to create a phone booking so I can serve players who do not book online.
- Availability and rental checks match online booking
- Source and actor are recorded
BOOK-001BOOK-006RENT-001
C-US03CoreC02Pieter — club manager
As a manager, I want to offer 9 and 18 holes so players can choose a suitable round.
- Route determines required start allocations
- Linked second-nine capacity cannot be oversold
BOOK-003BOOK-001BOOK-012
C-US04CoreC03Sofie — reception
As reception, I want to move or partially cancel a group so I can accommodate changes.
- A move reserves all new inventory atomically
- Cancellation shows price/refund impact before saving
BOOK-005BOOK-008BOOK-012PAY-001
C-US05CoreC04Pieter — club manager
As a manager, I want member and visitor rules so I can protect availability and apply correct rates.
- Booking windows and verified play-date membership use approved policy
- The applicable price category is shown before acceptance
- Rejected eligibility explains why without exposing private membership data
MEM-001PRICE-004COURSE-001
C-US06CoreC05Sofie — reception
As reception, I want to reserve carts and clubs so equipment is ready on arrival.
- Overlapping holds and bookings respect rental inventory
- Quantities and rental periods appear on the booking
- Round and rental allocation confirm atomically
RENT-001RENT-002
C-US07CoreC06Club marketing manager
As a CRM manager, I want a player timeline so I understand their relationship with our club.
- Club bookings, notes, tasks and preferences visible
- Private records from other clubs are absent
ACC-002CRM-005
C-US08CoreC10Club finance specialist
As finance, I want to take an approved deposit and track the balance so I can reconcile bookings.
- Deposit amount and collection policy require approval before launch
- Paid, refunded and remaining amounts are distinct and failed payments do not appear paid
- Exports reconcile to recorded club transactions without claiming payouts
PAY-009PAY-001PAY-010
C-US09CoreC09Jens — content editor
As an editor, I want to publish course pages and flyovers so visitors can explore before booking.
- Media links to the correct course/hole
- Unpublished media stays private
CMS-001CMS-002
C-US10CoreC02Pieter — club manager
As a manager, I want to close a course so no new bookings are accepted during disruption.
- Closure blocks affected inventory
- Impacted reservations are listed
BOOK-004
C-US11CoreC12Pieter — club manager
As a manager, I want staff permissions so each employee has suitable access.
- Reception cannot change subscriptions or platform settings
- Revoked access takes effect promptly
ACC-001ACC-003ACC-004
C-US12NextC11Club marketing manager
As marketing, I want consent-aware segments so I can contact appropriate players.
- Segments remain club-scoped
- Opted-out contacts are excluded from promotional sends at send time
- Audience preview shows eligible and excluded recipients
COMMS-001PRIV-001ACC-002
C-US13OptionalC13Coach and event organiser
As a coach, I want a lesson schedule so I can manage students and availability.
- Only assigned appointments and permitted participant details appear
- Overlapping lesson allocations are prevented
- Lesson terms require approval before booking opens
COACH-001
C-US14OptionalC14Coach and event organiser
As an event organiser, I want registrations linked to tee blocks so event demand does not conflict with ordinary bookings.
- Event capacity and blocked course inventory agree
- Only assigned participant records are visible
- Cancellation releases inventory according to approved event policy
EVENT-001
C-US15CoreC02Pieter — club manager
As a manager, I want a closure resolution worklist so existing customers are not lost during disruption.
- Affected reservations are retained and listed
- Staff track contact and resolution separately from closing inventory
- No automatic cancellation or refund occurs without approved action
BOOK-004COMMS-001
C-US16CoreC03Sofie — reception
As reception, I want participant details and attendance history so I can handle arrivals accurately.
- Participant and attendance edits stay in the reservation's club
- Counts remain within the active group capacity
- Actor and time are recorded; no-show policy is approved before use
BOOK-013BOOK-010ACC-001
C-US17CoreC03Sofie — reception
As reception, I want a searchable day and week tee sheet so I can find and change bookings quickly.
- Date, course and booking searches retain club-local times
- Moves preview the new start and fail without releasing old capacity
- Empty and closed starts are distinct from confirmed bookings
BOOK-001BOOK-008BOOK-011
C-US18CoreC04Pieter — club manager
As a manager, I want scheduled and eligible rates so the correct price is quoted.
- Date, time and membership conditions have approved precedence
- A quote explains the applied rate and party total
- Changing a rate does not rewrite held or historical quotes
PRICE-003PRICE-004BOOK-011
C-US19CoreC04Sofie — reception
As authorised reception staff, I want reasoned price overrides so exceptions remain accountable.
- Unauthorised staff cannot apply an override through the UI or direct calls
- An override records reason, actor and previous amount
- The customer sees the final price before acceptance
PRICE-002PRICE-001
C-US20CoreC04Pieter — club manager
As a manager, I want explicit payment and cancellation settings so checkout applies our accepted policy.
- Supported modes and cancellation hours are validated before saving
- Checkout shows and records the selected terms
- Deposits and additional pay-later collection remain unavailable until approved and implemented
PAY-002BOOK-011
C-US21CoreC05Pieter — club manager
As a manager, I want rental stock, buffers and prices so equipment can be offered without overselling.
- Stock and occupied intervals are configured per rental type
- Maintenance blocks reduce sellable stock for their interval
- Quantity and prices are shown before saving the catalog
RENT-001RENT-002
C-US22CoreC05Sofie — reception
As reception, I want to attach rentals to bookings so online and phone availability stay consistent.
- Overlapping bookings and holds consume the same stock
- Round and rental allocations confirm together or roll back together
- The accepted quote preserves rental quantity and price
RENT-001RENT-002BOOK-001
C-US23CoreC05Sofie — reception
As reception, I want issue and return tracking so I know which equipment is available.
- Issued and returned quantities cannot exceed the assigned quantity
- Actor and time are retained for handover changes
- Loss or deposit charges are not invented before policy approval
RENT-002
C-US24CoreC06Club marketing manager
As a club marketer, I want contact search, tags and a relationship timeline so follow-up stays club-local.
- Bookings, notes and tasks are shown only within our club
- Tags and filters find the intended contacts
- Another club's private notes are never displayed
ACC-002CRM-005
C-US25CoreC06Club marketing manager
As a club marketer, I want validated contact imports and duplicate review so our CRM stays reliable.
- Import preview lists invalid rows and duplicate candidates
- Authorised merging preserves contact activity history
- Imported email addresses do not claim reservations or invent consent
CRM-005PRIV-001
C-US26CoreC07Pieter — club manager
As a manager, I want membership types and benefits so booking eligibility matches club policy.
- Types specify validity and approved rate or booking benefits
- Expired and unverified memberships receive no implicit benefit
- Eligibility is evaluated for the booking date and club
MEM-001
C-US27CoreC07Sofie — reception
As authorised membership staff, I want assignments and renewals so membership status stays accurate.
- Assignment and ending retain effective dates and actor history
- Invalid or duplicate imports are previewed before commit
- Renewals do not rewrite prices accepted on existing reservations
MEM-002MEM-001
C-US28NextC07Club finance specialist
As club finance, I want membership renewal and billing discovery so dues have an agreed lifecycle.
- Renewal and payment responsibility are recorded as decisions before charging
- Membership history remains distinct from platform SaaS subscriptions
- The approved dues, cancellation and invoicing policy is attached to implementation work
MEM-002FIN-002
C-US29CoreC08Club marketing manager
As a club marketer, I want branded pages and navigation so visitors see a real club website.
- Pages, menus and languages are scoped to our club
- Private previews show the selected revision and branding
- Published booking links preserve club context
CMS-004BRAND-001
C-US30CoreC08Jens — content editor
As a club editor, I want course content embedded in website pages so our site reflects published course information.
- Only published course media appears publicly
- Content links to the correct club, course and hole
- Pages expose no member records or private booking details
CMS-004CMS-001
C-US31CoreC08Pieter — club manager
As a manager, I want domain readiness, SEO and rollback so our website can launch safely.
- Domain ownership and routing readiness are checked
- Each published page has locale-specific title and description
- Authorised rollback restores a recorded revision
CMS-004CRM-003CMS-008DOM-001
C-US32CoreC09Jens — content editor
As an editor, I want validated media and accessible alternatives so course content stays usable.
- Hole numbers are valid for the selected course
- Draft media remains absent from public discovery
- Media has an appropriate text alternative and a visible unavailable state
CMS-002CMS-001
C-US33CoreC09Jens — content editor
As an editor, I want ordered galleries and publication previews so I can curate course presentation.
- Ordering remains within the selected course or hole
- Preview shows draft media without making it public
- Published media can be withdrawn without losing unrelated content
CMS-001CMS-002
C-US34CoreC10Club finance specialist
As club finance, I want a transaction ledger and reconciliation worklist so collections are explainable.
- Capture, recorded refund and unresolved booking status remain distinct
- Filters and exports preserve club and currency context
- A ledger balance is never described as a payout
PAY-009PAY-005
C-US35CoreC10Club finance specialist
As authorised club finance, I want bounded refund records and provider-status tracking so customers receive accurate updates.
- Recorded refunds never exceed captured amounts
- A reason, actor and time accompany refund records
- Recording a refund does not claim the provider processed it
PAY-001PAY-009
C-US36CoreC10Club finance specialist
As club finance, I want to resolve payments without reservations so paid customers are not abandoned.
- Succeeded payments without a reservation appear on a worklist
- Staff inspect capacity and provider status before choosing an approved resolution
- Retries preserve original payment history and cannot duplicate bookings
PAY-004PAY-009OPS-003
C-US37CoreC11Club marketing manager
As club staff, I want booking confirmations, changes and reminders so players receive accurate information.
- Messages use recorded booking terms and club-local times
- Delivery attempts show success or failure without exposing secret tokens publicly
- Repeated events do not send duplicate operational messages
COMMS-001BOOK-011
C-US38CoreC11Club marketing manager
As a club marketer, I want template previews and consent-aware audiences so communications respect preferences.
- Preview shows the chosen language and required variables
- Marketing excludes contacts without the club-specific consent basis
- Operational delivery is not disabled by a marketing opt-out
COMMS-001PRIV-001
C-US39CoreC11Pieter — club manager
As a manager, I want delivery history and controlled retries so communication failures can be resolved.
- Authorised staff can inspect redacted attempts and failure state
- Retry is scoped to the intended message and recipient
- Retrying a delivered message does not silently duplicate it
COMMS-001OPS-003
C-US40CoreC12Pieter — club manager
As a manager, I want validated settings and import/export previews so configuration stays within our club.
- Timezone, supported currency and branding settings are validated
- Import preview shows errors and duplicates before saving
- Exports contain only authorised club data and no secrets
SET-001ACC-001BOOK-011
C-US41CoreC12Pieter — club manager
As a club manager, I want self-service platform subscription checkout so our club can activate and change its plan.
- Reception cannot manage subscriptions
- Provider confirmation activates access; the return page alone does not
- Cancellation retains access until period end and plan changes are immediate and pro-rated
PAY-006PAY-007PAY-008ACC-003
C-US42CoreC12Pieter — club manager
As a manager, I want an explicit club role action matrix so staff controls and direct calls agree.
- Approved permissions cover manager, reception, marketing, finance, editor and coach
- Each action checks both role and active club scope
- Revoked access fails on the next protected action and cannot grant platform roles
ACC-001ACC-003ACC-004OPS-001
C-US43OptionalC13Coach and event organiser
As a coach, I want assigned availability and lesson capacity so I can manage my schedule.
- Only assigned schedules and participants are visible
- Overlapping lesson or practice-resource allocations cannot oversell
- Lesson prices and cancellation policy are approved before checkout launches
COACH-001
C-US44OptionalC13Pieter — club manager
As a manager, I want practice resources and coach assignment so lessons use the correct facilities.
- Resources have explicit capacity and availability
- Assignments cannot expose unrelated club records
- Closures and conflicts block new lesson allocation
COACH-001
C-US45OptionalC14Coach and event organiser
As an organiser, I want events and registration limits so participants can book eligible places.
- Event pages show approved entry terms and remaining places
- Organisers see only assigned participant lists
- Eligibility and waitlist behaviour are defined before registration opens
EVENT-001
C-US46OptionalC14Pieter — club manager
As a manager, I want event tee blocks so competitions and ordinary rounds cannot oversell the same course.
- Reserved event starts consume the same course inventory
- Conflicting existing reservations are shown before blocking starts
- Cancellation releases inventory only according to approved event policy
EVENT-001BOOK-001BOOK-004
C-US47OptionalC15Pieter — club manager
As a manager, I want integrated clubhouse services so orders remain connected to our club.
- Supported providers and external order status are explicit
- Failures do not claim successful fulfilment
- Native POS and full accounting are not implied
SHOP-001SHOP-005SHOP-006SHOP-008
C-US48OptionalC15Club finance specialist
As club finance, I want voucher and loyalty discovery so sales and redemption have an agreed policy.
- Expiry, redemption limits and financial liability require approval
- Provider ownership of orders and funds is explicit
- No voucher checkout launches before approved rules and tests
SHOP-001
C-US49OptionalC12Sofie — reception
As club staff, I want a private club assistant so I can consult the club Brain without sharing conversations.
- Answers use club portal context and distinguish proposed requirements
- Only the thread owner can read or write its messages
- Conversation history remains available after reload
AI-001AI-002AI-003
C-US50CoreC01Sofie — reception
As reception, I want today's arrivals and check-in worklist so I can prepare the club.
- The worklist uses the selected club-local date
- Checked-in counts cannot exceed the confirmed group
- Refresh and empty states preserve club context
BOOK-010REP-006UX-004
C-US51CoreC01Club finance specialist
As club finance, I want daily money totals distinct from booked value so I can understand collections.
- Captured amounts and recorded refunds are shown separately
- Currencies are never summed into a misleading combined balance
- Figures link to their club ledger records and show freshness
PAY-005REP-006
C-US52CoreC02Pieter — club manager
As a manager, I want to maintain courses and generate tee availability so scheduling matches our operation.
- Course holes, interval, capacity and booking window are validated
- Availability preview shows the generated starts
- Changes that conflict with held or confirmed capacity cannot silently oversell
COURSE-001BOOK-001
C-US53CoreC08Club marketing manager
As a club marketer, I want a few base website templates and configurable options so I can start from an appropriate club design.
- Template choices have previews and create editable club-local drafts
- Suggested starting designs cover a traditional members club, a visitor-focused course and a modern resort
- Replacing an existing page requires confirmation and leaves the live revision unchanged
CMS-004CMS-006
C-US54CoreC08Jens — content editor
As a club editor, I want content block controls so I can compose and maintain website pages without coding.
- Block choices include cover, text, image, gallery, course content, booking link, news, FAQ and contact sections
- I can add, configure, reorder, duplicate, hide and remove blocks with keyboard-accessible controls
- Page previews use the selected draft and support wide and narrow screen checks
CMS-004CMS-007
C-US55CoreC08Club marketing manager
As a club marketer, I want page SEO and social sharing settings so visitors can find accurate club information.
- Each page has title, description, social preview, canonical URL and indexing fields with validation
- Sitemap and robots output reflect only published pages and the verified website address
- Private drafts are not indexed and publication preserves locale-specific metadata
CMS-004CMS-008
C-US56CoreC08Club marketing manager
As a club marketer, I want styling controls so the website reflects our club identity.
- Controls cover logo, colours, typography, spacing, section layouts and button appearance
- Validated changes are previewed and scoped to the club without rewriting platform defaults
- Corporate identity colours and fonts determine public website and widget presentation; large photographs and full-width sections are shared across club sites
- Custom CSS cannot affect the authenticated portal or other clubs
- CMS-013 previews Google Fonts in each selector and adds validated families to club-local settings; Save style applies immediately, independently of page publication
BRAND-001CMS-009CMS-013
C-US57CoreC08Pieter — club manager
As a manager, I want controlled code injection so approved website integrations can be added safely.
- Separate head and body injection fields require an approved publisher action permission
- Custom code previews are sandboxed and cannot access portal sessions or private data
- A separate club-scoped restaurant snippet uses only the widget ID and official TBLS loader directly on the restaurant page; that page hides floating golf booking, other pages hide restaurant controls, and public club sites omit the payment-test bar (CMS-012)
- Warnings, revision history, disable and rollback are available before script publication
- Production origin isolation and any tracking consent requirements are validated before enabling scripts
CMS-004CMS-009OPS-001
C-US58CoreC08Pieter — club manager
As a manager, I want Cloudflare-assisted domain linking and clear readiness status so our website uses the correct club address.
- Ownership and club assignment are verified before proposing changes for an accessible Cloudflare zone
- Confirmation lists exact record changes and preserves email and unrelated DNS records
- The interface distinguishes DNS readiness, hosting binding, HTTPS and live club routing
- An unsupported hosting binding stays blocked rather than reporting a domain as connected
- Club staff cannot use the workspace connection to browse or change unrelated zones
DOM-001CMS-004OPS-001
C-US59CoreC08Club marketing manager
As a website editor, I want fonts, button shape and membership questions so our website reflects the club and collects applications.
- Heading and body fonts and button rounding persist and preview without affecting other clubs
- Applications preserve the published required and optional questions
- Applications never grant membership or marketing consent
- CMS-013 adds validated Google Fonts with actual typeface previews and labelled unavailable fallback, consistent between private previews and published pages
CMS-012MEM-005CMS-007CMS-013
C-US60CoreC02Sofie — reception
As reception, I want dated course conditions so website visitors see our latest report for both courses.
- Managers and reception update only their club
- Scheduled closures override condition reports and unreported days are not labelled open
COURSE-002
C-US61CoreC13Coach and event organiser
As a coach, I want to publish open slots and manage my own agenda so players can book available lessons instantly.
- Coaches cannot manage another coach or see their participants
- Overlapping coach slots and oversold registrations are rejected
- Online and pay-at-club choices preserve price and entry terms
SERVICE-001
C-US62CoreC14Pieter — club manager
As a manager, I want event management and participant lists before exposing website registration.
- Only published future events accept registrations and full events reject them
- Signed provider confirmation is required for online-paid registration
- Shared golf tee blocks are separate work and never silently simulated
- Event co-creation composes a reviewed brief without participant data and retains private assistant conversations; operational records remain unchanged (EVENT-003)
- Shared event plans record offering, schedule, communication draft and an execution checklist with owner/due date; staff read, managers write, completion is stamped once and never reopens; no automatic publication, sending or inventory changes (EVENT-002)
SERVICE-002EVENT-002EVENT-003
C-US63CoreC07Sofie — reception
As reception, I want to read membership applications without accidentally activating a membership.
- Only managers and reception read their club applications
- Submitted answers and question snapshots survive later website edits
MEM-005
C-US64CoreC16Pieter — club manager
As a manager, I want to run our pro shop from the club portal so visitors can buy club merchandise on our website.
- Only managers edit the catalogue; only active products are publicly visible
- Orders snapshot names, variants and prices; stock never goes below zero
- Online payment only when the club enabled it, otherwise pay-at-pickup
- Staff mark orders collected or cancelled; buyers read back by reference and token
SHOP-009
A-US01CoreA01Mats — platform founder
As a platform owner, I want a customer and financial dashboard so I can monitor the business.
- Period filters work
- Recurring revenue, overdue invoices and club booking volume are distinctly labelled
- Metrics link to supporting records
- Portal entry opens the existing business dashboard; desktop/mobile menus retain dashboard and page assistant access without Overview or AI assistant destinations
- Today and next-seven-day confirmed booking/group-place totals aggregate each club's local date window; all-club or selected-club views show eight explicit dated rows per club including zero dates, freshness and unavailable/retry states, without customer identities or revenue forecasts
REP-001REP-004UX-002UX-003
A-US02CoreA03Lotte — sales & onboarding
As a salesperson, I want to move prospects through a pipeline so I can prioritise follow-up.
- A deal has organisation, owner and stage
- Activities and next task are visible
- Stage changes are recorded
CRM-001CRM-002CRM-004
A-US03CoreA02Lotte — sales & onboarding
As customer success, I want to onboard a won club so it can launch reliably.
- Existing CRM data is reused
- Setup steps have readiness statuses
- Duplicate customers are flagged
CRM-001CRM-003
A-US04CoreA04Platform finance specialist
As finance, I want to inspect subscriptions and invoices so I can follow up unpaid accounts.
- Plan, renewal date, invoice history and payment status visible
- Amounts and currency export correctly
- Platform administrators and finance staff manage the manual billing ledger; no automatic charging
- Invoices retain their recorded amounts when a plan changes
FIN-001FIN-002FIN-003REP-001
A-US05CoreA05Product and platform content manager
As a product manager, I want a Kanban roadmap so I can coordinate delivery.
- Items move through configured columns
- Owner and priority visible
- Customer requests stay linked
PROD-001BRAIN-001
A-US06CoreA06Product and platform content manager
As a content manager, I want to edit the platform website so I can publish without developers.
- Drafts stay private
- Preview works
- Authorised publishing and rollback
CMS-003
A-US07CoreA07Mats — platform founder
As an administrator, I want to configure branding so the platform has a consistent identity.
- Logos, colours and layout defaults apply
- Club overrides follow permissions
BRAND-001
A-US08CoreC12Pieter — club manager
As a club manager, I want to subscribe to a platform plan online so my club gets access without manual invoicing.
- Plan prices and billing period shown before paying
- Access activates when the provider confirms payment
- Cancellation keeps access until the paid period ends
- Plan changes apply immediately with pro-rated charging
PAY-006PAY-007PAY-008
A-US09CoreA01Mats — platform founder
As a platform owner, I want reporting periods and metric drilldowns so I can explain business changes.
- Changing the reporting period updates dependent figures using the declared timezone
- Each metric links to contributing records and labels estimates
- Unagreed churn definitions are shown as unavailable rather than invented
REP-005REP-004
A-US10CoreA02Mats — platform founder
As an administrator, I want searchable club account details so I can manage contacts and lifecycle.
- Search and lifecycle filters open the correct club record
- Contact and account edits record actor and time
- Potential duplicates are flagged before creating another club
CRM-003ACC-004
A-US11CoreA02Lotte — sales & onboarding
As customer success, I want onboarding readiness and domain checks so I can launch a club reliably.
- Converted prospect data and history are retained
- Setup steps have owner, status and visible blockers
- Domain ownership and website readiness are verified before marking launch complete
CRM-003CRM-001CRM-006
A-US12CoreA03Lotte — sales & onboarding
As sales staff, I want deal owners, follow-up tasks and activities so opportunities are not forgotten.
- Tasks show assignee, due date and completion
- Overdue and unassigned work can be filtered
- Activities and reassignment retain actor and timestamp
CRM-004CRM-002
A-US13CoreA04Platform finance specialist
As platform finance, I want an overdue worklist and exact exports so I can follow up collections.
- Only permitted finance staff can change invoice status
- Only unpaid invoices after the due date enter the overdue list
- Exports preserve exact EUR amounts and neutralise spreadsheet formulas
FIN-001FIN-002FIN-003
A-US14CoreA04Platform finance specialist
As platform finance, I want provider subscription reconciliation so I can explain access and billing differences.
- Provider state and manual invoice history remain visibly separate
- Current plan, period end and cancellation status are inspectable
- Plan changes never rewrite prior invoices and discrepancies are listed
FIN-002PAY-006PAY-007PAY-008
A-US15CoreA05Product and platform content manager
As a product manager, I want persistent roadmap changes linked to requests so prioritisation is traceable.
- Authorised changes persist after reload with actor and time
- Items link to customer requests, stories and rules
- Review and Released are distinct and release evidence remains attached
PROD-001PROD-002PROD-004BRAIN-001
A-US16CoreA05Product and platform content manager
As a product manager, I want screen and role coverage checks so missing requirements cannot disappear.
- Every portal module has stories with applicable rules
- Every declared role has a persona with stories
- Every story has acceptance criteria and at least one roadmap link
BRAIN-001
A-US17CoreA06Product and platform content manager
As a platform editor, I want localised pages and SEO previews so I can review changes before publication.
- Draft and published revisions remain separate
- Preview selects page and language
- Titles, descriptions and navigation are reviewed per language
CMS-003
A-US18CoreA06Product and platform content manager
As an authorised publisher, I want controlled publishing and rollback so I can correct platform content safely.
- Unpublished pages cannot be read publicly
- Publication checks publisher permission and records revision and actor
- Rollback restores a chosen revision without losing history
CMS-003
A-US19CoreA07Mats — platform founder
As an administrator, I want branding inheritance rules so club customisation cannot alter the platform.
- Invalid colours, logos and template settings cannot be published
- Preview distinguishes defaults from club overrides
- An override changes only its club and records who changed it
BRAND-001
A-US20CoreA07Product and platform content manager
As a content manager, I want branded email template previews so messages remain consistent across languages.
- Preview renders supported variables and locale
- Editing and publishing permissions are checked separately
- Missing required variables block publication
BRAND-001
A-US21CoreA08Mats — platform founder
As an administrator, I want platform staff access management so each role has only approved actions.
- An approved module and action matrix covers every platform role
- Only authorised administrators grant or revoke platform roles
- Direct calls obey the same restrictions and role changes are audited
- Administrators filter access history by action, role, account and UTC dates and can retrieve older records without changing history
OPS-001OPS-004ACC-004
A-US22CoreA08Customer support specialist
As support staff, I want approved temporary club access so I can diagnose issues without unrestricted access.
- Access requires a club scope, reason, approver and expiry
- Revocation or expiry prevents subsequent protected actions
- Every support action is traceable and billing access is not implied
OPS-002
A-US23CoreA08Mats — platform founder
As an operator, I want integration health and safe retries so failures can be resolved without duplicate charges.
- Failures show redacted status, last attempt and affected record
- Only authorised operators can retry supported actions
- Repeated notifications cannot create duplicate reservations or captures
OPS-003PAY-004
A-US24CoreA08Customer support specialist
As platform staff, I want private assistant conversations so I can consult the Brain safely.
- Answers use admin Brain context and identify proposed requirements as pending
- Threads and messages are visible only to their owner
- New thread titles are derived from the first question
AI-001AI-002AI-003
A-US25CoreA06Product and platform content manager
As a platform editor, I want to compose pages from visual sections so I can keep the marketing site clear and converting without a developer.
- Sections can be added, reordered, hidden and removed, with photos and buttons per language
- Drafts are previewed before publication; history and restore remain intact
- Menu and footer placement are set per page
CMS-014
A-US26CoreA06Lotte — sales & onboarding
As a sales lead, I want website demo requests in my pipeline so I can follow up interested clubs quickly.
- Each request appears as a new lead with contact and request details
- Consent text and language are recorded with the request
- Duplicate and spam submissions are refused
CMS-015
P-US01CoreP02Anne — club member
As a player, I want to see available rounds so I can choose a time and 9/18-hole format.
- Availability reflects group size and eligibility
- Price and required payment shown before confirming
BOOK-002BOOK-003BOOK-012PRICE-001PAY-002PAY-003
P-US02CoreP02Tom — visiting golfer
As a visitor, I want to book without becoming a member so I can try a club easily.
- Visitor rules apply
- Secure booking access is supplied
- Account creation is optional
GUEST-001GUEST-002
P-US03CoreP02Anne — club member
As a group organiser, I want to add companions and equipment so one booking covers our visit.
- Named participant rows match the confirmed group size
- Guest names are accepted only under approved club policy
- Equipment quantities are checked for the entire rental interval
BOOK-013RENT-001RENT-002
P-US04CoreP02Anne — club member
As a player, I want to pay the required approved deposit so my booking is secured.
- Deposit checkout remains unavailable until its amount and policy are approved
- Provider success confirms at most once and failure supports a fresh valid attempt
- Paid-after-expiry recovery follows the recorded payment and capacity outcome
PAY-004PAY-003PAY-010
P-US05CoreP03Anne — club member
As a player, I want upcoming and past reservations in one place so I can manage my golf plans.
- Only authorised reservations appear
- Club, local time, participants and financial status shown
GUEST-002BOOK-009BOOK-011PAY-004
P-US06CoreP03Anne — club member
As a player, I want to change or cancel a booking so I can handle changed plans.
- Ownership and accepted policy deadlines are enforced
- Any approved charge or refund effect is disclosed before acceptance
- Capacity and confirmation updates occur once
BOOK-014BOOK-011PAY-001
P-US07CoreP05Anne — club member
As a member, I want my club benefits recognised so I receive the right availability and price.
- Verified active entitlement applies for the play date
- Benefits do not leak to unrelated clubs
- Expired or pending entitlement does not silently grant a rate
MEM-003MEM-001PRICE-004
P-US08CoreP04Anne — club member
As a player, I want to update my profile and preferences so communications reach me correctly.
- Sensitive contact changes use approved verification
- Marketing choices remain club-specific
- Updates cannot alter historical invoice snapshots
PROF-001PRIV-001FIN-002
P-US09CoreP07Tom — visiting golfer
As a player, I want to view hole flyovers so I can prepare for my round.
- Published media works on mobile
- Text fallback is present
CMS-001CMS-002CMS-005
P-US10CoreP08Anne — club member
As a player, I want reminders and receipts so I have the details I need.
- Notices use club-local recorded time and booking reference
- Delivery failures remain visible to authorised staff
- Receipts match provider-confirmed payment records
COMMS-001PAY-010BOOK-011
P-US11OptionalP09Anne — club member
As a player, I want to register for lessons or events so I can use more club services.
- Only published enabled services appear
- Capacity and approved prices and cancellation terms are explicit
- Registration ownership protects participant details
COACH-002COACH-001EVENT-001
P-US12CoreP02Anne — club member
As a member, I want eligible club benefits reflected in checkout so my quote is accurate.
- Eligibility is verified for this club and booking date
- Applied member conditions are explained before acceptance
- Expired membership cannot silently grant a discount
MEM-001PRICE-004PRICE-001
P-US13CoreP02Tom — visiting golfer
As a visitor, I want to add rental equipment so the round has everything I need.
- Only available quantities for the full occupied interval can be chosen
- Rental and round allocations confirm together
- The accepted total includes each add-on and its terms
RENT-001RENT-002PRICE-001
P-US14CoreP02Tom — visiting golfer
As a visitor, I want accessible checkout and clear recovery states so I can finish without guessing.
- Keyboard-only selection and checkout have labelled controls and announced errors
- Expired holds require a fresh availability check
- Pending or failed payments never falsely show a confirmed paid booking
UX-001BOOK-002PAY-004
P-US15CoreP03Tom — visiting golfer
As a guest, I want secure lookup and optional account linking so I can manage my booking without mandatory registration.
- Reference alone reveals only non-personal booking fields
- A valid token authorises only its booking
- Claiming requires token proof and cannot transfer an already owned booking
GUEST-002BOOK-009
P-US16CoreP03Anne — club member
As a player, I want eligible self-service cancellation and changes so I can adjust my plans within accepted terms.
- Ownership and the recorded deadline determine available actions
- Price and approved refund effects are previewed before confirmation
- Failed moves keep old capacity and no automatic refund is invented
BOOK-014BOOK-011PAY-001
P-US17CoreP03Anne — club member
As a player, I want calendar files so all booked starts appear at the correct time.
- Exports use recorded instants and include each linked leg
- A stable booking identifier supports updates or cancellation
- Access tokens and private club notes are omitted
CAL-001BOOK-011BOOK-012
P-US18CoreP04Anne — club member
As a player, I want to edit my profile and language so my information stays accurate.
- Only my own permitted profile fields can be changed
- Language preference persists after reload
- Profile edits cannot assign roles, memberships or booking ownership
PROF-001
P-US19CoreP04Anne — club member
As a player, I want verified contact changes and account recovery so access remains secure.
- Contact changes follow the approved verification flow
- Recovery cannot claim bookings through email matching alone
- Failed or pending verification leaves existing verified contact status clear
PROF-001BOOK-009
P-US20CoreP05Anne — club member
As a member, I want club-by-club membership validity and benefits so I know where I can play.
- Only my memberships appear with club and effective dates
- Expired, pending and verified states remain distinct
- Displayed benefits match the club's approved membership rules
MEM-003MEM-001
P-US21CoreP05Anne — club member
As a member, I want renewal guidance and entitlement issue reporting so I can resolve access problems.
- Renewal options reflect approved club policy rather than platform SaaS plans
- Incorrect entitlement can be reported to the owning club
- A pending request does not silently extend membership validity
MEM-003MEM-002
P-US22CoreP06Anne — club member
As a player, I want payment history and receipts so I can prove what I paid.
- Only owned payments can be listed or downloaded
- Amounts, currency and provider-confirmed status are retained
- Receipts are not presented as legal invoices without approved issuance rules
PAY-010PAY-004
P-US23CoreP06Tom — visiting golfer
As a guest, I want booking-scoped balances and refund status so I know what remains unresolved.
- Access requires the valid booking token
- Recorded refunds are distinguished from provider-confirmed refunds
- Deposit or balance collection is shown only when approved and implemented
PAY-010PAY-009PAY-001
P-US24CoreP07Tom — visiting golfer
As a visitor, I want a real public club website with directions and booking links so I can plan a visit.
- Published pages identify the club and course clearly
- Directions and accessible course content are available without an account
- Booking links preserve selected club and course context
CMS-005CMS-004CMS-001
P-US25CoreP07Anne — club member
As a player, I want published course and hole details with media alternatives so I can prepare my round.
- Course and hole content matches its published revision
- Draft items never appear in discovery
- Unavailable video has meaningful text alternatives
CMS-005CMS-001CMS-002
P-US26CoreP08Anne — club member
As a player, I want per-club marketing and notification preferences so clubs respect my choices.
- Each club has an independent marketing preference
- Consent changes retain scope and timestamp
- Marketing opt-out does not suppress necessary booking messages
PRIV-001COMMS-001
P-US27CoreP08Anne — club member
As a player, I want verified data export and deletion requests so I can exercise privacy choices safely.
- Identity is verified before exporting authorised account data
- Other clubs' private notes are excluded
- Retention exceptions and request deadlines require approved policy before deletion
PRIV-002BOOK-009
P-US28OptionalP09Anne — club member
As a player, I want to reserve published lessons and practice places so I can plan coaching.
- Remaining eligible capacity is checked before confirming
- Price and approved cancellation terms are shown before acceptance
- Only my own registrations can be managed
COACH-002COACH-001
P-US29OptionalP09Anne — club member
As a player, I want event registration and status so I can join competitions with clear terms.
- Published events show eligibility, limits and approved entry terms
- Full events follow an approved waitlist policy or reject registration
- Changes and cancellation do not infer unapproved refunds
COACH-002EVENT-001
P-US30CoreP04Anne — club member
As a player, I want private assistant conversations so I can consult player rules and keep my questions.
- Answers use player Brain context and flag pending requirements
- Only I can read or write my thread messages
- Thread history persists without exposing another player's questions
AI-001AI-002AI-003
P-US31CoreP01Anne — club member
As a player, I want a personal upcoming-booking dashboard so I can see my next round.
- Only linked account-owned bookings appear
- Each card shows club, recorded local start and booking status
- Empty states never expose another account's bookings
- Today and seven following booking-local dates show confirmed owned reservation and group-place totals, with dated club/timezone series and honest failed-read states
- Portal entry opens the existing personal dashboard; desktop/mobile menus retain dashboard and page assistant access without Overview or AI assistant destinations
- Planned UX-002 extension starts the player portal on its dashboard with personal statistics and analytics for today and the next seven days; Overview and AI assistant menu entries are removed while page assistant access remains
PLAYER-001BOOK-009UX-002UX-003UX-005
P-US32CoreP01Anne — club member
As a player, I want notices, amounts due and book-again actions so I can plan my next visit.
- Notices and amounts belong only to my authorised bookings
- Payment state is distinct from booking confirmation
- Book again rechecks current availability and creates a new quote
PLAYER-001PAY-010
P-US33CoreP05Anne — club member
As a member, I want to link my club membership to my account myself so I see my benefits without waiting for staff.
- Linking needs the member number and a matching club-record email
- A membership linked to another account can never be taken over
- Linking never changes validity, benefits or accepted quotes
MEM-004MEM-001
P-US34CoreP09Tom — visiting golfer
As a visitor, I want to book an open lesson or event on the club website with the club's chosen payment method.
- Price and recorded entry terms are shown before acceptance
- At-club bookings confirm instantly while online bookings await verified payment
- Private registration readback requires its secret token
SERVICE-001SERVICE-002
P-US35CoreP01Anne — club member
As a player, I want my upcoming rounds on my dashboard with my post-round table so I can plan the whole visit.
- Only my own confirmed rounds for today and the next seven days appear, club-local
- A linked table shows its time and confirmation code
- A round without a table offers the same secure post-round booking as the guest flow
- A table flagged for staff attention is shown as such
SHOP-007SHOP-005PLAYER-001