Motivation
When the Plan detects conflicts, users provide ApplyDecision entries (override or skip) but can't see a diff, can't resolve per-file interactively, and don't know which module is causing the conflict. This makes conflict resolution a leap of faith, especially for composed outcomes where multiple operations merge into existing files.
Inspiration
- Yeoman: Per-file conflict resolution with options: overwrite, skip, diff, overwrite-all, abort. Shows unified diff on request
- git: Three-way merge with conflict markers and external merge tool support
User Story
As a developer adding modules to an existing project, I want to see exactly what will change in my files before accepting, and resolve conflicts one at a time with full context.
Notes
Current model: PlanConflict[] -> ApplyDecision[] (path + override/skip). Enriching this needs diff generation between current files and planned outcomes, plus a richer interactive UI. Worth considering whether ApplyDecision should support more granular choices or stay simple.
Motivation
When the Plan detects conflicts, users provide
ApplyDecisionentries (override or skip) but can't see a diff, can't resolve per-file interactively, and don't know which module is causing the conflict. This makes conflict resolution a leap of faith, especially for composed outcomes where multiple operations merge into existing files.Inspiration
User Story
As a developer adding modules to an existing project, I want to see exactly what will change in my files before accepting, and resolve conflicts one at a time with full context.
Notes
Current model:
PlanConflict[]->ApplyDecision[](path + override/skip). Enriching this needs diff generation between current files and planned outcomes, plus a richer interactive UI. Worth considering whetherApplyDecisionshould support more granular choices or stay simple.