Skip to content
Rymflux Documentation
Esc
↑↓navigate↵open⌘Jpreview
On this page

v1 backlog — MoSCoW prioritization

Prioritized requirements for the Rymflux v1 release. Must = MVP. Won't = explicitly excluded from v1. Status column is the canonical snapshot, updated at each phase gate.

v1 backlog — MoSCoW prioritization

Must (MVP)

# Item Rationale FR / NFR Status
M1 Plugin manifest parsing and validation Without manifests, plugins cannot declare their identity or capabilities FR-PLUGIN-2 Not started
M2 Plugin filesystem discovery Without discovery, no plugin can be installed FR-PLUGIN-1 Not started
M3 Plugin process lifecycle (launch, request, timeout, crash recovery) Without lifecycle, plugins cannot be used FR-PLUGIN-3 Not started
M4 Plugin search capability (request/response protocol) Core value: finding content across sources FR-PLUGIN-4 Not started
M5 Plugin stream capability (URL mode) Core value: playing audio from plugins FR-PLUGIN-5 Not started
M6 Plugin metadata capability (get_track, get_album, get_artist) Required for browsing and displaying content FR-PLUGIN-6 Not started
M7 Standardized data models (Track, Album, Artist, SearchResult, StreamInfo) Without standard models, results from different plugins are incomparable FR-PLUGIN-4, FR-PLUGIN-5, FR-PLUGIN-6 Not started
M8 Source-agnostic playback engine (URL and file path) Cannot play audio without it FR-CORE-1 Not started
M9 Queue management (add, remove, reorder, persistent across rooms) Core user expectation FR-CORE-2 Not started
M10 Unified library with source-independent content IDs Core platform philosophy FR-CORE-3, FR-ID-1 Not started
M11 Parallel search manager with per-plugin timeout Core value: cross-source search FR-CORE-4 Not started
M12 Music Room — browse, search, player expansion The only room in v1; the entire user-facing experience FR-MUSIC-1, FR-MUSIC-2 Not started
M13 Home (Lobby) — continue listening, recently played, pinned rooms Landing page and navigation hub FR-HOME-1 Not started
M14 Room framework — registration and lifecycle Required for any room to exist FR-ROOM-1 Not started
M15 Reference local-files plugin Without it, the platform has no content at launch FR-REF-1 Not started
M16 Plugin debugging (stdout/stderr capture, plugin health) Required for plugin developers to diagnose issues Scope §1 Not started
M17 Plugin protocol specification (written) Required for anyone to write a plugin Scope §6 Not started

Should

# Item Rationale FR / NFR Status
S1 Room search integration (room-provided filters) Improves search relevance per room but not required for v1 Music Room FR-ROOM-2 Not started
S2 Room player expansion customization Music Room can ship with a hardcoded expansion; framework API can follow FR-ROOM-3 Not started
S4 Cross-platform support (macOS, Windows) Linux-first v1 is viable; additional platforms increase test surface NFR-COMPAT-1 Not started
S5 Queue durability across restarts Important but v1 can start with in-memory queue and add persistence later NFR-REL-3 Not started
S6 Library data integrity checks Important but not required for initial functional release NFR-REL-4 Not started
S7 Plugin idle timeout and resource limits Important for long-running sessions but not required for MVP NFR-RESC-3 Not started
S8 Keyboard navigation for core controls Important for accessibility but can be added post-MVP NFR-A11Y-1 Not started

Could

# Item Rationale Status
C1 Plugin lyrics capability (v2) Deferred. Protocol method, data model, and Tauri command cut from v1 scope. Revisit when a concrete plugin requests the capability. FR-MUSIC-2 lyrics scenario removed. Not started
C2 Plugin health dashboard — platform UI showing plugin logs, resource usage, and status CLI-based debugging suffices for v1; a GUI dashboard is polish Not started
C3 Content deduplication in search results Important for UX but complex; v1 can show duplicates and refine later Not started
C4 Screen reader support Important but v1 is a desktop app with limited a11y resources Not started
C5 Externalized UI strings for i18n v1 is English-only; externalization enables community translations Not started
C6 Conformance validator tool for plugin authors Important for developer experience but not required for first plugin Not started
C7 Versioning and changelog for plugin API Required before public API release but not for first internal plugin Not started

Won’t (v1)

# Item Rationale Revisit Status
W1 Additional rooms (Podcast, Audiobook, Radio, Meditation, Educational) Room framework must be stable first v2 Deferred
W2 Plugin hot-reload (detect new plugins without restart) Startup scan is sufficient for v1 v2 Deferred
W3 Plugin permissions system beyond capability declarations Trust model (user-installed) is acceptable for v1 v2 Deferred
W4 Official plugin SDKs (Go, Python, etc.) Protocol spec is sufficient; SDKs reduce friction but are not required v2 Deferred
W5 Event bus / event system Direct calls between core components are acceptable for v1 v2 Deferred
W6 User accounts, cloud sync, authentication v1 is local-first and single-user v2+ Deferred
W7 Mobile or web UIs v1 is desktop only v2+ Deferred
W8 Advanced playback (gapless, crossfade, audio normalization) Standard playback is sufficient v2+ Deferred
W9 Core-managed offline downloads Plugins may handle their own caching v2+ Deferred
W10 Plugin registry / app store Manual install via directory copy is v1 v2+ Deferred
W11 Extension points beyond plugins (search ranking plugins, recommendation plugins, widget plugins) Plugin system must be proven first v2+ Deferred
W12 Plugin streaming mode — pipe (raw bytes over IPC) Binary framing on stdin/stdout is risky for v1. ADR-006 demotes this; revisit when a concrete plugin author requests it. v2+ Deferred

Status

Value Meaning
Not started Backlog item is not being worked
In progress Actively being worked; owner set in the planning layer
Done Acceptance criteria met and verified
Blocked Work stopped pending an external dependency or decision
Deferred Excluded from the current v1 phase path (default for Won’t)

This table is the canonical status snapshot, updated at each phase gate. Live operational status (status, owner, sprint) is tracked in the Fibery planning layer and reconciled into this table at phase gates — see the sync policy.

Revisit cadence

  • Must and Won’t are re-evaluated at each phase gate.
  • Should and Could are reordered at each sprint planning.
  • Items can move between buckets only with Tech Lead + Product Owner agreement (see R6 in risk register).

Was this page helpful?