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>
10 KiB
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