5.2 KiB
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 | Complete |
| 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 Phase 8 execution complete