|
| 1 | +# Product |
| 2 | + |
| 3 | +<!-- impeccable:product-schema 1 --> |
| 4 | + |
| 5 | +## Platform |
| 6 | + |
| 7 | +web |
| 8 | + |
| 9 | +## Stack |
| 10 | + |
| 11 | +Static HTML/CSS, no build step, single-page GTM landing in `GTM/`. Bilingual: 简体中文 primary + English, in-page language toggle (user chose both languages). Minimal vanilla JS allowed for the toggle only. |
| 12 | + |
| 13 | +## Users |
| 14 | + |
| 15 | +Chinese-speaking programmers (primary audience, per README and confirmed with user) plus international developers discovering the repo on GitHub. Situation: deep-focus coding sessions — algorithm practice, frontend/backend feature work, debugging marathons, meetings. Job: play background music that matches the current programming activity, without leaving the terminal, without copyright anxiety, without resource overhead. |
| 16 | + |
| 17 | +## Product Purpose |
| 18 | + |
| 19 | +Monkey Flow is a command-line music player for programmers built in pure Rust. It recommends and plays scene-matched background music (algorithm / frontend / backend / debugging / meeting / general), stores music locally offline-first (RocksDB index), and stays invisible in resource terms (<20MB memory, <0.1s startup, single binary). Success: a programmer adopts it into their daily coding ritual and stars / shares the repo. |
| 20 | + |
| 21 | +## Positioning |
| 22 | + |
| 23 | +The coding music player that is scenario-aware (music matched to the programming task), 100% CC-licensed (copyright-safe by construction), and a single offline Rust binary with negligible footprint. A GUI streaming app cannot truthfully claim "one terminal command tunes your session to the task." |
| 24 | + |
| 25 | +## Operating Context |
| 26 | + |
| 27 | +- Terminal-first usage: `monkey-flow play --scene algorithm`, `pause`, `next`, `volume 80`, `status`, `search "lofi beats" --play`, `scene list` |
| 28 | +- Install: `git clone` + `cargo build --release` / `cargo install --path .`; requires Rust 1.75+ |
| 29 | +- Music files placed manually in `~/.monkey-flow/music/`; config at `~/.monkey-flow/config.toml` |
| 30 | +- Formats: MP3, FLAC, Vorbis, WAV |
| 31 | +- Scene table (real, from README): algorithm→Lofi/纯音乐; frontend→电子/Chill; backend→环境音/爵士; debugging→白噪音/极简; meeting→轻音乐/古典; general→Lofi 混合 |
| 32 | +- Music sources: 网易云音乐 CC 协议专区, Free Music Archive; personal non-commercial use only |
| 33 | +- Repo: github.com/standup-coder/monkey-flow; MIT license |
| 34 | + |
| 35 | +## Capabilities and Constraints |
| 36 | + |
| 37 | +Confirmed capabilities: scene-based playback, playback controls (pause/resume/stop/next/prev/volume/status, sequential/loop/loopall/shuffle modes), search (title/artist/genre, --play), playlist CRUD, favorites, history + stats, scene list/info. |
| 38 | + |
| 39 | +Honest gaps the page must NOT fabricate around: |
| 40 | +- Auto-download of CC music is NOT implemented — music is added manually today |
| 41 | +- Metadata requires manual `.meta.json` per track today; index rebuild after adding music (功能待完善) |
| 42 | +- No published benchmarks beyond README claims (<20MB RAM, <0.1s startup), no user testimonials, no star/download counts — none may be invented |
| 43 | +- Music is personal non-commercial use (CC terms) |
| 44 | + |
| 45 | +## Brand Commitments |
| 46 | + |
| 47 | +- Name: Monkey Flow; CLI command `monkey-flow` |
| 48 | +- Pure Rust, terminal-first identity |
| 49 | +- MIT license; CC-licensed music catalog |
| 50 | + |
| 51 | +## Evidence on Hand |
| 52 | + |
| 53 | +- README.md — full command set, scene table, config examples, install steps (real) |
| 54 | +- EXAMPLES.md — real workflows and directory layout |
| 55 | +- No testimonials, no usage stats, no screenshots of the CLI — any terminal demo on the page must be authored as a faithful synthetic reproduction of real documented commands, labeled as illustrative, and listed for replacement with real captures |
| 56 | + |
| 57 | +## Product Principles |
| 58 | + |
| 59 | +1. Terminal-native: every action one command away, never leave the editor |
| 60 | +2. Legally calm: CC-licensed music only, zero copyright anxiety |
| 61 | +3. Invisible by design: offline, tiny, fast — the music is felt, the player is not |
| 62 | +4. Scene-matched: the programming task selects the sound |
0 commit comments