debate/.planning/REQUIREMENTS.md
Mikkel Georgsen 16b17ca2cf docs: create roadmap (9 phases)
Phases:
1. Core Infrastructure & Security: INFR-*, ISO-04
2. Overlay System Foundation: OVLY-01 to OVLY-07, OVLY-10
3. Build Queue & Workers: ISO-01 to ISO-07 (except ISO-04)
4. User Accounts: USER-01 to USER-15
5. Builder Interface (2D): BUILD-04 to BUILD-06, BUILD-09 to BUILD-11
6. Speeches & Community: SPCH-*, OVLY-11 to OVLY-14
7. 3D Visualization: BUILD-01 to BUILD-03, BUILD-07, BUILD-08
8. Advanced Dependency Resolution: OVLY-08, OVLY-09
9. Distribution Content: DIST-01 to DIST-10

All 70 v1 requirements mapped to phases.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 19:32:27 +00:00

10 KiB

Requirements: Debate

Defined: 2026-01-25 Core Value: Make Linux customization visual and accessible to non-experts

v1 Requirements

Requirements for initial release. Each maps to roadmap phases.

Builder Interface

  • BUILD-01: User can view configuration as interactive 3D stack of layers
  • BUILD-02: User can rotate and zoom the 3D visualization
  • BUILD-03: User can click a layer to select it and see details
  • BUILD-04: User can add layers from the layer panel
  • BUILD-05: User can remove layers by dragging off stack
  • BUILD-06: User can search and filter available overlays in the panel
  • BUILD-07: User sees smooth 60fps animations on mid-range hardware
  • BUILD-08: Conflicting layers pulse red and lift off stack
  • BUILD-09: User sees "Objection!" modal when conflicts arise
  • BUILD-10: User can resolve conflicts via Concede (remove), Rebut (swap), or Withdraw (undo)
  • BUILD-11: User can access 2D fallback interface on low-end devices

ISO Generation

  • ISO-01: User can initiate ISO build ("Deliver") when configuration is valid
  • ISO-02: User sees queue position and estimated wait time
  • ISO-03: User sees build progress with stages
  • ISO-04: ISO builds run in sandboxed environment (systemd-nspawn)
  • ISO-05: Identical configurations serve cached ISO immediately
  • ISO-06: User can download completed ISO ("Take the Floor")
  • ISO-07: Build failures report clear error messages to user

Speeches (Saved Configurations)

  • SPCH-01: User can save current configuration as named speech
  • SPCH-02: User can add description and topics (tags) to speech
  • SPCH-03: User can load saved speech into builder
  • SPCH-04: Non-authenticated users can save locally (browser storage)
  • SPCH-05: User can publish speech publicly
  • SPCH-06: Published speeches are searchable by title/description
  • SPCH-07: User can browse community speeches in grid view
  • SPCH-08: User can filter speeches by topics, base distribution, window manager, author
  • SPCH-09: User can sort speeches by popularity, rating, recent, trending
  • SPCH-10: Speech cards show mini preview, title, author, topics, stats
  • SPCH-11: User can load community speech into builder
  • SPCH-12: User can rate community speeches

User Accounts

  • USER-01: User can register with email and password
  • USER-02: User can log in with email and password
  • USER-03: User session persists across browser refresh
  • USER-04: User can log out
  • USER-05: User can register/login via GitHub OAuth
  • USER-06: User can register/login via Google OAuth
  • USER-07: User receives email verification after registration
  • USER-08: User can reset password via email link
  • USER-09: User can set unique username
  • USER-10: User can upload avatar image
  • USER-11: User can write bio
  • USER-12: User can view their saved speeches in dashboard
  • USER-13: User can view their published speeches in dashboard
  • USER-14: User can view build history in dashboard
  • USER-15: Other users can view public profile (username, avatar, bio, published speeches)

Overlay System

  • OVLY-01: Overlays defined via YAML manifest schema
  • OVLY-02: Manifests specify name, version, type, description, author, license
  • OVLY-03: Manifests specify requires (dependencies), conflicts, provides, replaces
  • OVLY-04: Manifests can define user-configurable options (toggle, select, text, number)
  • OVLY-05: System builds dependency graph from selected overlays
  • OVLY-06: System detects conflicts (objections) before build
  • OVLY-07: System detects missing requirements and shows warnings
  • OVLY-08: System suggests compatible alternatives when conflicts arise
  • OVLY-09: System topologically sorts overlays for correct application order
  • OVLY-10: Layer hierarchy enforced: Opening Statement → Platform → Rhetoric → Talking Points → Closing Argument
  • OVLY-11: Users can submit new overlays via GitHub PR workflow
  • OVLY-12: Submitted overlays undergo automated schema validation
  • OVLY-13: Submitted overlays undergo security scan
  • OVLY-14: Approved overlays appear in builder

Distribution Support

  • DIST-01: CachyOS available as Opening Statement
  • DIST-02: Omarchy opinions mapped to overlays (theming, apps, configs)
  • DIST-03: Hyprland available as Platform
  • DIST-04: Sway available as Platform
  • DIST-05: i3 available as Platform
  • DIST-06: KDE Plasma available as Platform
  • DIST-07: COSMIC available as Platform
  • DIST-08: GNOME available as Platform
  • DIST-09: Pure Arch available as Opening Statement
  • DIST-10: EndeavourOS available as Opening Statement

Infrastructure

  • INFR-01: API response time < 200ms (p95)
  • INFR-02: ISO build completes within 15 minutes
  • INFR-03: Platform available 99.9% uptime
  • INFR-04: User data protected and backed up daily
  • INFR-05: All traffic over HTTPS
  • INFR-06: Rate limiting on API endpoints
  • INFR-07: CSRF protection enabled

v2 Requirements

Deferred to future release. Tracked but not in current roadmap.

Enhanced Build Features

  • ISO-V2-01: Build size calculator shows real-time estimate
  • ISO-V2-02: Live log output visible during build (collapsible)
  • ISO-V2-03: Multi-format export (ISO, USB image, Ventoy-compatible)

Live Preview

  • PREV-01: User can boot generated ISO in browser via WebVM
  • PREV-02: Preview runs without downloading full ISO

Additional Distributions

  • DIST-V2-01: Fedora available as Opening Statement
  • DIST-V2-02: Ubuntu available as Opening Statement
  • DIST-V2-03: Cross-distro package mapping layer

Collaboration

  • COLLAB-01: Multiple users can edit same speech simultaneously
  • COLLAB-02: Speech version history with diff view

Moderation

  • MOD-01: Users can flag inappropriate speeches
  • MOD-02: Admin can review flagged content
  • MOD-03: Admin can remove/hide violating speeches
  • MOD-04: Admin can warn/ban users

Out of Scope

Explicitly excluded. Documented to prevent scope creep.

Feature Reason
Mobile application Web-first, desktop browser target; mobile can come later
Direct installation to hardware Users download ISO and install themselves
Paid/premium tiers v1 is free to establish user base
Enterprise features Focus on individual users and community
Cross-distribution support (Fedora/Ubuntu) Deep > wide; get Arch family working perfectly first
Full NixOS-style declarative config Too complex for target audience
Custom package repository hosting Infrastructure burden, security liability
Post-install configuration management Scope creep; link to Ansible/dotfiles instead
Secure Boot signing Nice to have but not critical for target audience

Traceability

Which phases cover which requirements. Updated during roadmap creation.

Requirement Phase Status
BUILD-01 Phase 7 Pending
BUILD-02 Phase 7 Pending
BUILD-03 Phase 7 Pending
BUILD-04 Phase 5 Pending
BUILD-05 Phase 5 Pending
BUILD-06 Phase 5 Pending
BUILD-07 Phase 7 Pending
BUILD-08 Phase 7 Pending
BUILD-09 Phase 5 Pending
BUILD-10 Phase 5 Pending
BUILD-11 Phase 5 Pending
ISO-01 Phase 3 Pending
ISO-02 Phase 3 Pending
ISO-03 Phase 3 Pending
ISO-04 Phase 1 Pending
ISO-05 Phase 3 Pending
ISO-06 Phase 3 Pending
ISO-07 Phase 3 Pending
SPCH-01 Phase 6 Pending
SPCH-02 Phase 6 Pending
SPCH-03 Phase 6 Pending
SPCH-04 Phase 6 Pending
SPCH-05 Phase 6 Pending
SPCH-06 Phase 6 Pending
SPCH-07 Phase 6 Pending
SPCH-08 Phase 6 Pending
SPCH-09 Phase 6 Pending
SPCH-10 Phase 6 Pending
SPCH-11 Phase 6 Pending
SPCH-12 Phase 6 Pending
USER-01 Phase 4 Pending
USER-02 Phase 4 Pending
USER-03 Phase 4 Pending
USER-04 Phase 4 Pending
USER-05 Phase 4 Pending
USER-06 Phase 4 Pending
USER-07 Phase 4 Pending
USER-08 Phase 4 Pending
USER-09 Phase 4 Pending
USER-10 Phase 4 Pending
USER-11 Phase 4 Pending
USER-12 Phase 4 Pending
USER-13 Phase 4 Pending
USER-14 Phase 4 Pending
USER-15 Phase 4 Pending
OVLY-01 Phase 2 Pending
OVLY-02 Phase 2 Pending
OVLY-03 Phase 2 Pending
OVLY-04 Phase 2 Pending
OVLY-05 Phase 2 Pending
OVLY-06 Phase 2 Pending
OVLY-07 Phase 2 Pending
OVLY-08 Phase 8 Pending
OVLY-09 Phase 8 Pending
OVLY-10 Phase 2 Pending
OVLY-11 Phase 6 Pending
OVLY-12 Phase 6 Pending
OVLY-13 Phase 6 Pending
OVLY-14 Phase 6 Pending
DIST-01 Phase 9 Pending
DIST-02 Phase 9 Pending
DIST-03 Phase 9 Pending
DIST-04 Phase 9 Pending
DIST-05 Phase 9 Pending
DIST-06 Phase 9 Pending
DIST-07 Phase 9 Pending
DIST-08 Phase 9 Pending
DIST-09 Phase 9 Pending
DIST-10 Phase 9 Pending
INFR-01 Phase 1 Pending
INFR-02 Phase 1 Pending
INFR-03 Phase 1 Pending
INFR-04 Phase 1 Pending
INFR-05 Phase 1 Pending
INFR-06 Phase 1 Pending
INFR-07 Phase 1 Pending

Coverage:

  • v1 requirements: 70 total
  • Mapped to phases: 70
  • Unmapped: 0

Phase Distribution:

  • Phase 1 (Infrastructure & Security): 8 requirements
  • Phase 2 (Overlay System Foundation): 8 requirements
  • Phase 3 (Build Queue & Workers): 6 requirements
  • Phase 4 (User Accounts): 15 requirements
  • Phase 5 (Builder Interface 2D): 7 requirements
  • Phase 6 (Speeches & Community): 16 requirements
  • Phase 7 (3D Visualization): 5 requirements
  • Phase 8 (Advanced Dependency Resolution): 2 requirements
  • Phase 9 (Distribution Content): 10 requirements

Requirements defined: 2026-01-25 Last updated: 2026-01-25 after roadmap creation