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 readline provides.

See also

Emacs 29.1 (Org mode 9.6.6)