File Browser User Stories

Project: File Browser TUI Application
Format: Mike Cohn’s User Stories Applied (2004)
Approach: Incremental delivery of value, starting with walking skeleton


Story -4: Project Setup

As a developer
I want to set up a new Ruby project with proper dependencies
So that I have a foundation to build the file browser

Acceptance Criteria

Notes


Story -3: Hello World + Quit

As a terminal user
I want to launch a minimal TUI application that I can quit
So that I can verify the application runs

Acceptance Criteria

Notes


Story -2: Static File List

As a terminal user
I want to see a list of example files displayed
So that I can understand the basic file browser interface

Acceptance Criteria

Notes


Story -1: Arrow Key Navigation

As a terminal user
I want to navigate through the file list with arrow keys
So that I can select different files

Acceptance Criteria

Notes


Story 0: Real Files

As a terminal user
I want to see my actual files instead of example data
So that the file browser is useful for real work

Acceptance Criteria

Notes


Story 1: Walking Skeleton - View Current Directory

Note: If you started with negative-numbered stories, this happened in Story 0.

As a terminal user
I want to see a list of files in my current directory
So that I know what files exist without using ls

Acceptance Criteria

Notes


Story 2: Basic Navigation - Move Through List

Note: If you started with negative-numbered stories, this happened in Story 0.

As a terminal user
I want to move up and down through the file list with arrow keys
So that I can select different files

Acceptance Criteria

Notes


Story 3: Enter Directories

As a terminal user
I want to press Enter on a directory to navigate into it
So that I can explore subdirectories

Acceptance Criteria

Notes


Story 4: Three-Pane Layout

As a terminal user
I want to see a directory tree, file list, and preview pane
So that I have better context while browsing

Acceptance Criteria

Notes


Story 5: File Metadata Display

As a terminal user
I want to see file sizes and modification dates
So that I can make informed decisions about files

Acceptance Criteria

Notes


Story 6: Text File Preview

As a terminal user
I want to see a preview of text files in the preview pane
So that I can verify file contents before opening

Acceptance Criteria

Notes


Story 7: Directory Tree Expansion

As a terminal user
I want to expand and collapse directories in the tree pane
So that I can see the directory structure at a glance

Acceptance Criteria

Notes


Story 8: Pane Focus Switching

As a terminal user
I want to switch focus between panes with Tab
So that I can navigate the tree or scroll the preview

Acceptance Criteria

Notes


Story 9: Sort Files

As a terminal user
I want to sort files by name, size, or date
So that I can find files more easily

Acceptance Criteria

Notes


Story 10: Filter Files by Name

As a terminal user
I want to filter the file list by typing a pattern
So that I can quickly find specific files

Acceptance Criteria

Notes


Story 11: Toggle Hidden Files

As a terminal user
I want to show or hide files starting with .
So that I can reduce clutter or see configuration files

Acceptance Criteria

Notes


Story 12: Create New Directory

As a terminal user
I want to create a new directory
So that I can organize files

Acceptance Criteria

Notes


Story 13: Rename Files and Directories

As a terminal user
I want to rename the selected file or directory
So that I can fix typos or improve organization

Acceptance Criteria

Notes


Story 14: Delete Files and Directories

As a terminal user
I want to delete the selected file or directory
So that I can remove unwanted items

Acceptance Criteria

Notes


Story 15: Copy Files and Directories

As a terminal user
I want to copy files to another location
So that I can duplicate content

Acceptance Criteria

Notes


Story 16: Move Files and Directories

As a terminal user
I want to move files to another location
So that I can reorganize my filesystem

Acceptance Criteria

Notes


Story 17: Open in External Editor

As a terminal user
I want to open the selected file in my $EDITOR
So that I can edit files

Acceptance Criteria

Notes


Story 18: Help Overlay

As a terminal user
I want to see a list of keyboard shortcuts
So that I can learn how to use the application

Acceptance Criteria

Notes


Story 19: Error Handling and Messages

As a terminal user
I want to see clear error messages when operations fail
So that I understand what went wrong and how to fix it

Acceptance Criteria

Notes


Story 20: Mouse Support

As a terminal user with mouse-enabled terminal
I want to use my mouse to click and scroll
So that I have an alternative to keyboard navigation

Acceptance Criteria

Notes


Story 21: Terminal Resize Handling

As a terminal user
I want to resize my terminal window
So that the application adapts to the new size

Acceptance Criteria

Notes


Story 22: Loading States for Large Directories

As a terminal user
I want to see a loading indicator for large directories
So that I know the application is working

Acceptance Criteria

Notes


Story 23: Visual Polish and Theming

As a terminal user
I want to see a polished, professional interface
So that the application is pleasant to use

Acceptance Criteria

Notes


Story 24: Performance Optimization

As a terminal user
I want to experience fast, responsive performance
So that the application doesn’t slow me down

Acceptance Criteria

Notes


Story 25: Comprehensive Test Coverage

As a developer
I want to have comprehensive test coverage
So that I can refactor confidently

Acceptance Criteria

Notes


Story 26: Configurable Color Schemes

As a user with color blindness
I want to configure the color scheme
So that I can distinguish different file types

Acceptance Criteria

Notes


Story 27: Configuration Management

As a power user
I want to save my preferences
So that my settings persist between sessions

Acceptance Criteria

Notes


Future Enhancements (Deferred)

As a product owner
I want to track future enhancement ideas
So that we have a roadmap for post-1.0 releases

Deferred Features

The following features are explicitly deferred to future versions:

Notes


Implementation Notes

Story Sequencing

Stories are ordered to: 1. Start with tutorial foundation (Stories -4 to 0) - teaches Rooibos concepts incrementally 2. Build walking skeleton (Story 1) - proves end-to-end integration with real files 3. Build core navigation (Stories 2-3) - essential functionality 4. Add UI structure (Stories 4-6) - professional appearance 5. Enable exploration (Stories 7-8) - power user features 6. Add organization (Stories 9-11) - finding and filtering 7. Enable modification (Stories 12-17) - file operations 8. Improve usability (Stories 18-19) - help and errors 9. Add enhancements (Stories 20-21) - mouse and resize 10. Optimize and polish (Stories 22-24) - performance and aesthetics 11. Ensure quality (Story 25) - testing and documentation 12. Advanced features (Stories 26-27) - color schemes and configuration 13. Future planning - deferred enhancements

Story Sizing

Dependencies