Example Sprint
How Guilde's sprint documents are formatted
install go
## Overview
Implement a centralized YAML-based configuration system to manage all git-forensics-demo settings, flags, and options.
This system will serve as the foundation for all configurable parameters across the application.
## Context
Currently, git-forensics-demo relies on command-line flags for configuration.
This approach limits flexibility and makes it difficult to maintain consistent settings across runs.
A YAML-based configuration system will provide a centralized, persistent, and flexible way to manage all application settings.
## Requirements
- YAML configuration file with sensible defaults at `~/.git-forensics-demo/config.yml`
- Support for environment variable override via `$CONFIG_FILE`
- Command-line flag `--config <file>` to specify custom config location
- All existing CLI flags should be configurable via YAML
- Configuration precedence: Config file > Defaults
- the CLI should no longer take in any positional arguments other than the repository name that we are analyzing
- Validate configuration on load with clear error messages
- the only flag argument that can be provided is the config file path --config <config>
## Approach
use TDD. Ensure that the requirements are covered by tests. If there are existing tests that have a similar scope
for old behavior, they should be modified. For a given incremental feature we should make the test, then make implement
i.e,. test1, impl1, test2, impl2, ..., test_n, impl_nLast updated