A Ruby gem that syncs text lists of songs and artists to Spotify playlists, with future AI-powered music discovery capabilities.
Add this line to your application's Gemfile:
gem "groove"And then execute:
$ bundle installOr install it yourself as:
$ gem install groove- Go to Spotify Developer Dashboard
- Create a new app
- Note your Client ID and Client Secret
- Add
http://localhost:8080/callbackto your app's redirect URIs
Create a configuration file at ~/.config/groove/config.yaml:
spotify:
client_id: "your_spotify_client_id_here"
client_secret: "your_spotify_client_secret_here"
redirect_uri: "http://localhost:8080/callback"
app:
name: "groove"
version: "0.1.0"
debug: false
logging:
level: "info"Or set environment variables:
export SPOTIFY_CLIENT_ID="your_client_id"
export SPOTIFY_CLIENT_SECRET="your_client_secret"# Authenticate with Spotify
groove auth login
# Check authentication status
groove auth status
# Logout
groove auth logout# Show version
groove version
# Show help
groove help
# Sync songs from a text file
groove sync songs.txt --playlist "My Awesome Playlist"
# Sync songs from CSV
groove sync songs.csv --playlist "My Awesome Playlist" --format csv
# Sync songs from JSON
groove sync songs.json --playlist "My Awesome Playlist" --format jsonThis project uses the BMAD Method (Breakthrough Method of Agile AI-Driven Development) for development workflow and AI agent collaboration.
groove.rb/
βββ lib/groove/ # Core Ruby gem code
βββ spec/ # RSpec test suite
βββ docs/ # Project documentation
β βββ epics/ # Epic definitions
β βββ stories/ # User stories
β βββ tech-specs/ # Technical specifications
β βββ bmm-workflow-status.md # BMAD workflow tracking
βββ BMAD-METHOD/ # BMAD framework (git submodule)
βββ bmad/ # Installed BMAD modules
βββ update-bmad.sh # BMAD update script
| Epic | Status | Description |
|---|---|---|
| Epic 1 | π§ In Development | Core Playlist Sync (MVP) |
| Epic 2 | π Future Planning | AI Music Discovery |
| Epic 3 | β Ready for Development | Code Quality & Testing Pipeline |
| Epic 4 | π Future Planning | Deployment Pipeline |
Current Focus: Epic 3 - Code Quality & Testing Pipeline (RuboCop, Overcommit, GitHub Actions, Brakeman, Test Suite Optimization)
This project uses the BMAD Method v6-alpha for AI-driven development workflow.
BMAD (Breakthrough Method of Agile AI-Driven Development) is a framework that provides:
- Specialized AI Agents (Analyst, PM, Architect, Developer, Scrum Master)
- Structured Workflows (Analysis β Planning β Solutioning β Implementation)
- Context-Engineered Development (Detailed stories with full context)
- @bmad/bmm/agents/analyst - Requirements analysis and research
- @bmad/bmm/agents/pm - Product management and planning
- @bmad/bmm/agents/architect - Technical architecture and design
- @bmad/bmm/agents/dev - Development and implementation
- @bmad/bmm/agents/sm - Scrum Master and story management
Activate agents in Cursor chat:
# Activate specific agent
@bmad/bmm/agents/dev develop
# Activate team
@bmad/bmm/teams/team-all
# Party mode (all agents)
@bmad/core/agents/bmad-master *party-modeBMAD is managed as a git submodule and can be easily updated:
# Update BMAD to latest version
./update-bmad.shThis script will:
- Pull the latest BMAD source from the git submodule
- Copy updated modules to the
bmad/directory - Show version information
- Complete the update
# Update git submodule
git submodule update --remote BMAD-METHOD
# Copy updated modules
cp -r BMAD-METHOD/src/modules/bmm/* bmad/bmm/
cp -r BMAD-METHOD/src/modules/bmb/* bmad/bmb/
cp -r BMAD-METHOD/src/modules/cis/* bmad/cis/- BMAD-METHOD/ - Source code (git submodule, v6-alpha branch)
- bmad/ - Installed modules (auto-generated from source)
- bmad/config.json - Configuration file
β
Easy Updates - One command to update everything
β
Version Control - Track BMAD versions in git
β
Clean Separation - Source vs installed files
β
No Duplication - Single source of truth
β
Maintainable - Clear file organization
- Ruby 3.0+
- Bundler 2.0+
- Git 2.0+
# Clone the repository
git clone https://github.com/dneighbors/groove.rb.git
cd groove.rb
# Install dependencies
bundle install
# Run tests
bundle exec rspec
# Start interactive console
bundle exec bin/console# Run all tests
bundle exec rspec
# Run specific test file
bundle exec rspec spec/groove/authentication_spec.rb
# Run with coverage
COVERAGE=true bundle exec rspecThis project uses several tools for code quality:
- RuboCop - Ruby style guide enforcement
- Overcommit - Pre-commit hooks
- GitHub Actions - CI/CD pipeline
- Brakeman - Security scanning
- RSpec - Testing framework
- Project Overview - Complete project status
- Documentation Structure - File organization guide
- BMAD Setup Guide - BMAD installation and management
- Epic Definitions - Project epics and features
- User Stories - Detailed development stories
- Technical Specs - Technical architecture and implementation
We welcome contributions! This project uses BMAD Method for development workflow.
- Epic Planning - Use BMAD PM agent for epic planning
- Story Creation - Use BMAD SM agent for story creation
- Development - Use BMAD Dev agent for implementation
- Code Quality - Follow RuboCop and testing standards
- Fork the repository
- Create a feature branch
- Use BMAD agents for development workflow
- Ensure all tests pass
- Submit a pull request
# Start with PM agent for planning
@bmad/bmm/agents/pm plan
# Use SM agent for story creation
@bmad/bmm/agents/sm create-story
# Use Dev agent for implementation
@bmad/bmm/agents/dev developThe gem is available as open source under the terms of the MIT License.
- BMAD Method - AI-driven development framework
- Spotify Web API - Music streaming and playlist management
- Ruby Community - Excellent ecosystem and tools
Built with β€οΈ using BMAD Method v6-alpha# Test comment