# Development Tasks for aki-stats

This checklist is based on the design document. Since the project is already implemented, tasks corresponding to existing functionality are marked as complete.

### Project Setup & Documentation
- [x] Configure `Cargo.toml` with project details and dependencies.
- [x] Create `README.md` with basic project information.
- [x] Set up CI workflows for testing on major platforms.
- [x] Create requirements document (`specs/0.requirements.md`).
- [x] Create acceptance criteria document (`specs/1.acceptance-criteria.md`).
- [x] Create design document (`specs/2.design.md`).
- [x] Create this development task list (`specs/3.tasks.md`).

### Module: `conf` (Configuration & CLI Parsing)
- [x] Define the data structure for CLI arguments.
- [x] Implement the logic to parse file path arguments.
- [x] Implement the logic to handle receiving input from standard input.

### Module: `util` (Utilities)
- [x] Set up a centralized error type using `anyhow`.
- [x] Create any necessary utility functions.

### Module: `run` (Core Logic)
- [x] Implement the main `run` function to orchestrate the application flow.
- [x] Implement input handling to read from either a file or stdin.
- [x] Implement line count statistic.
- [x] Implement word count statistic.
- [x] Implement character count statistic.
- [x] Format the output numbers for readability using `num-format`.
- [x] Print the final, formatted statistics to standard output.

### Module: `main` (Application Entry Point)
- [x] Implement the `main` function.
- [x] Call the CLI parser from the `conf` module.
- [x] Pass the parsed configuration to the `run` function.
- [x] Manage and display errors that bubble up to `main`.
