id: task-3
title: "CLI: Implement backlog init Command"
status: Done
assignee: @MrLesk
reporter: @MrLesk
created_date: 2025-06-04
labels: ["cli", "command"]
milestone: "M1 - CLI"
dependencies: ["task-2"]
Description
Implement the backlog init <project-name> command in the CLI. This command will set up the .backlog directory structure and a config.yml in the current Git repository.
Acceptance Criteria
- [x]
backlog init <project-name>command creates all necessary subdirectories within.backlog. - [x]
backlog init <project-name>creates an initial commit for the.backlogstructure. - [x] Command provides appropriate user feedback.
Implementation Summary
✅ CLI Implementation Recovered & Complete
Features Recovered
- Command Line Interface: Built with Commander.js for argument parsing
- Git Integration: Automatically detects git repositories and offers to initialize if missing
- Directory Structure: Creates complete
.backlogdirectory hierarchy - Configuration: Generates
config.ymlwith project name and default settings - Git Commit: Automatically commits the initial backlog structure
- User Feedback: Provides clear success messages and error handling
Technical Details
- Entry Point:
src/cli.tscontains the CLI implementation - Build System: Compiles to
cli/index.jsfor distribution - Package Scripts:
bun run cli- Run CLI from sourcebun run build- Build distributable CLI
- Testing: Comprehensive test suite with 5 integration tests
- Dependencies: Added
commander@14.0.0for CLI parsing
Usage
# From source
bun src/cli.ts init "My Project"
# Built version
./cli/index.js init "My Project"
# Help
bun src/cli.ts --help
Test Coverage
- ✅ Initializes backlog project in existing git repo
- ✅ Creates all required directories
- ✅ Handles project names with special characters
- ✅ Works when git repo exists
- ✅ Creates initial commit with backlog structure
All 62 tests passing including 5 CLI integration tests.