Story: CLI / REPL reshape
Table of Contents
This page documents a story in Sprint 05. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
1. Goal
Reshape the CLI and REPL surfaces from verb-first (ores.cli export
--entity currencies) to entity-first (ores.cli currencies
export). Pull every entity into the REPL with the same verb set so
the CLI and REPL are interchangeable. Rename client to repl along
the way.
2. Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 05 |
| Now | Completed 2025-11-25. |
| Waiting on | None. |
| Next | None. |
| Last touched | 2025-11-25 |
Continued in: CLI entity syntax follow-up (sprint 06) — argument- validation snags and top-level shell login/logout land there.
3. Acceptance
- Every CLI command available under
ores.cli <entity> <verb>. - REPL exposes the same verb set per entity.
- Synchronous socket operations in the REPL.
- Recipes updated to the new shape; legacy syntax removed.
4. Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Reorganise CLI structure by entity | DONE | 2025-11-25 | 2025-11-25 | Switch from import/export-first to entity-first: ./ores.cli currencies export rather than ./ores.cli export –entity currencies. |
| Update ores.shell with REPL commands for all entities | DONE | 2025-11-25 | 2025-11-25 | Expand the REPL so every domain entity has the standard verb set (list, add, delete, import, export). |
| REPL needs synchronous socket operations | DONE | 2025-11-25 | 2025-11-25 | Replace async socket calls in the REPL with synchronous ones to match the interactive command flow. |
5. Decisions
- Entity-first verb syntax
- reads naturally, scales to new entities, mirrors the REPL.
- Synchronous I/O in the REPL
- matches the interactive one-command-then-wait model. Async was overhead.
6. Out of scope
- A bespoke REPL command interpreter beyond what
readlineprovides.
7. See also
ores.cli— the CLI component.- ores.shell — the REPL/shell component.
- CLI refactor and test (sprint 02) — predecessor.