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.
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.
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.
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.
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. |
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.
Out of scope
- A bespoke REPL command interpreter beyond what
readlineprovides.
See also
- ores.cli — the CLI component.
- ores.shell — the REPL/shell component.
- CLI refactor and test (sprint 02) — predecessor.