Story: CLI refactor and test
Table of Contents
This page documents a story in Sprint 02. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
The CLI grew up alongside the project's initial layout and no longer fits it. Restructure the CLI to follow the new project shape and add tests to the parser so future changes are caught.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 02 |
| Now | Story closed; CLI restructured under the new project layout, parser test suite green. |
| Waiting on | None. |
| Next | None. |
| Last touched | 2025-10-10 |
Acceptance
- CLI sources live under the new layout (
ores.cli). - CLI commands resolve through the new module structure.
- CLI parser has a Catch2 test suite covering the main flag and command paths.
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Refactor CLI to follow new project structure | DONE | 2025-10-10 | 2025-10-15 | Move CLI sources under the project's new module layout (ores.cli) and resolve commands through the new structure. |
| Add tests to CLI parser | DONE | 2025-10-16 | 2025-10-20 | Add Catch2 tests covering the CLI parser's main flag and command paths. |
Decisions
- Test the parser, not the commands
- command execution touches the full stack; the parser is the part with the most surface area for regression and the cheapest to test.
Out of scope
- A REPL for the CLI (was investigated, separate task).
- Tab completion (deferred).
See also
- ores.cli — the CLI component model.
- ores.testing — the testing infrastructure the parser tests use.
- Add command to dump currencies (this sprint) — the first user- facing command added on top of the restructured CLI.