SVO CLI Design
Core Objective
SVO shape first. Required inputs as positional args. Mandatory options are exceptions only.
Decision Workflow
- •Semantic sentence:
verb object required-inputs - •Required inputs: Positional args by default
- •Options: Ancillary modifiers, output modes, safety flags only. Reject duplicates of required meaning.
- •Mandatory options allowed only when:
- •Order-independence needed
- •Repeated keyed input needed
- •Payload too large/externalized
- •Omission is normal (explicit toggle safer)
- •Command tree: Shallow depth, stable vocabulary, no synonyms
- •Aliases: Provide short forms for commands and options (e.g.,
init→i,update→u,--output→-o) - •Operational contracts:
- •
stdout: result data - •
stderr: warnings/logs/errors - •
--json: machine output when needed
- •
- •Destructive ops: Require confirmation/dry-run,
--yes/--forceoverride,stderrwarning, non-zero exit on failure
Existing CLI Rule
Current CLI is baseline. Propose deltas only. Redesign only if integration impossible.
Review Output
Return: Decision (apply/modify/reject), Reason (purpose-driven), Delta (concrete changes), Risk (compatibility/UX).