The dx CLI is a thin surface over DevStackCore.
- CLI is NOT a separate product
- CLI does NOT own business logic
- CLI does NOT introduce new storage
- CLI does NOT fork runtime behavior
CLI is responsible only for:
- argument parsing
- terminal interaction (wizard / prompts)
- output formatting
All core logic must live in DevStackCore:
- profile management
- compose import and planning
- env validation and generation
- runtime orchestration
If logic exists in CLI but not in DevStackCore — it is a bug.
DevStack = Core + Surfaces
Surfaces:
- AppKit menu bar UI
- dx CLI
Both must use the same core.
- no full TUI
- no separate CLI-only features
- no duplication of compose/runtime logic