xtablo-source/.planning/REQUIREMENTS.md
2026-05-15 20:16:20 +02:00

5.2 KiB

Requirements: Xtablo v2.0 Collaboration, Planning, and Social Sign-in

Defined: 2026-05-15 Core Value: A user can sign in and run the Tablos workflow - organize work, attach files, discuss, and plan scheduled events - without a JS framework or managed chat provider.

v2.0 Requirements

Requirements for milestone v2.0. Each requirement must map to exactly one roadmap phase.

Authentication

  • AUTH-08: User can start a Google sign-in flow from the login/signup page
  • AUTH-09: Google callback validates state, exchanges the authorization code, verifies the ID token, and creates or links a local Xtablo user
  • AUTH-10: User can start an Apple sign-in flow from the login/signup page
  • AUTH-11: Apple callback validates state/nonce, exchanges the authorization code, verifies the ID token, and creates or links a local Xtablo user
  • AUTH-12: Social sign-in issues the same server-managed Xtablo session cookie used by email/password login
  • AUTH-13: Existing email/password login, signup, logout, CSRF, and rate limiting continue to work after social sign-in is added

Chat

  • CHAT-01: Each tablo has a discussion view where authenticated authorized users can see persisted message history
  • CHAT-02: User can post a text message to a tablo discussion with validation and CSRF protection
  • CHAT-03: Messages are stored in Postgres with tablo, author, body, created timestamp, and deletion/edit metadata
  • CHAT-04: Open tablo discussion views receive new messages in real time without a manual refresh
  • CHAT-05: Real-time delivery uses Xtablo-owned infrastructure only; no managed chat or realtime provider is introduced
  • CHAT-06: Message rendering escapes user content and enforces a server-side maximum body length

Etapes

  • ETAPE-01: User can create an etape inside a tablo with a title and optional description
  • ETAPE-02: User can edit, delete, and reorder etapes inside a tablo
  • ETAPE-03: User can assign a task to zero or one etape
  • ETAPE-04: Deleting an etape unassigns its tasks by default rather than deleting the tasks
  • ETAPE-05: The task UI can show or filter tasks by etape while preserving existing kanban status and ordering behavior
  • ETAPE-06: The data model prevents nested etapes; an etape cannot have a parent etape

Events

  • EVENT-01: User can create a scheduled event attached to a tablo with title, start time, optional end time, optional description, and optional location
  • EVENT-02: User can edit and delete tablo events
  • EVENT-03: Tablo detail page includes an events view listing that tablo's scheduled events
  • EVENT-04: Event validation requires an end time to be empty or after the start time
  • EVENT-05: Event authorization follows tablo access rules so users cannot read or mutate events for inaccessible tablos

Planning

  • PLAN-01: Each authenticated user can open an individual planning page
  • PLAN-02: Planning page lists the user's scheduled events across tablos in chronological order
  • PLAN-03: Planning page links each event back to its tablo context
  • PLAN-04: Planning page supports a functional empty state and date navigation/filtering suitable for the first working version

Future Requirements

Deferred beyond v2.0.

Chat

  • CHAT-FUT-01: Typing indicators
  • CHAT-FUT-02: Read receipts
  • CHAT-FUT-03: Message reactions
  • CHAT-FUT-04: Threads or replies
  • CHAT-FUT-05: File previews in chat messages

Planning

  • PLAN-FUT-01: Recurring events
  • PLAN-FUT-02: Reminder notifications
  • PLAN-FUT-03: ICS import/export
  • PLAN-FUT-04: External calendar sync

Etapes

  • ETAPE-FUT-01: Etape progress rollups
  • ETAPE-FUT-02: Etape templates
  • ETAPE-FUT-03: Etape dependencies

Out of Scope

Feature Reason
Managed chat/realtime providers User explicitly does not want third-party chat
Managed auth platforms Google/Apple are identity providers only; Xtablo owns users and sessions
WebSocket-first chat protocol SSE receive + HTMX POST send is the recommended v2 path unless plan-phase proves WebSockets are needed
Nested etapes or arbitrary task hierarchy User requested one parent per task and no parent-of-parent
Notes / rich documents Not part of the requested v2 feature set
Billing / Stripe Still deferred until product loop is validated
Public booking widget Separate product surface, not part of this milestone
Client portal Separate product surface, not part of this milestone
Admin tooling Separate product surface, not part of this milestone
Mobile / Expo app Web rewrite remains the current product surface

Traceability

Populated during roadmap creation.

Requirement Phase Status
AUTH-08..13 Phase 8 Pending
ETAPE-01..06 Phase 9 Pending
EVENT-01..05 Phase 10 Pending
PLAN-01..04 Phase 11 Pending
CHAT-01..06 Phase 12 Pending

Coverage:

  • v2.0 requirements: 27 total
  • Mapped to phases: 27
  • Unmapped: 0

Requirements defined: 2026-05-15 Last updated: 2026-05-15 after v2.0 roadmap creation