Parent roadmap: #127
Parent phase: #269
Parent epic: #270
Goal
Record concise counterfactual reasons in snapshots so a recommendation can explain why obvious alternatives were not selected.
Requirements
- Add counterfactual reason entries for common alternatives such as wait, close, replace, cleanup-first, or choose another issue.
- Keep reasons deterministic and grounded in available signals.
- Avoid payout claims, public score prediction, or private trust/reviewability language.
Acceptance criteria
-
Supported recommendation snapshots include ranked or grouped rejected alternatives.
-
Counterfactuals distinguish facts from assumptions.
-
Public summaries remain sanitized and advisory.
-
This is not autonomous PR creation, closure, labeling, or merging.
-
This is not an autonomous PR bot and not public scoring.
Validation expected
- Counterfactual fixture tests for at least wait, cleanup-first, and choose-another-issue cases.
- Public sanitizer coverage for counterfactual summaries.
- npm run test:ci.
Parent roadmap: #127
Parent phase: #269
Parent epic: #270
Goal
Record concise counterfactual reasons in snapshots so a recommendation can explain why obvious alternatives were not selected.
Requirements
Acceptance criteria
Supported recommendation snapshots include ranked or grouped rejected alternatives.
Counterfactuals distinguish facts from assumptions.
Public summaries remain sanitized and advisory.
This is not autonomous PR creation, closure, labeling, or merging.
This is not an autonomous PR bot and not public scoring.
Validation expected