Description
Implement internal/runner — a wrapper around exec.Command that provides:
- Structured command execution with stdout/stderr capture
--dry-run mode that logs commands without executing
- Fixture-driven testing support
Acceptance Criteria
Safety
This is the core safety abstraction. No real disk writes happen without going through Runner.
Description
Implement
internal/runner— a wrapper aroundexec.Commandthat provides:--dry-runmode that logs commands without executingAcceptance Criteria
Runnerinterface withRun(ctx, cmd, args) (Output, error)DryRunnerimplementation that records commands without executingRealRunnerimplementation that executes and captures outputprobe,install) useRunner— never rawexec.CommandSafety
This is the core safety abstraction. No real disk writes happen without going through Runner.