Objective
Implement type-specific outcome evaluators for create_pull_request and push_to_pull_request_branch — the highest-priority safe output types per issue #35033.
Context
Depends on the shared outcome model and metadata persistence (steps 1 and 2 of #35033). PRs and branch pushes provide the clearest human-check signals and highest research value.
Approach
create_pull_request evaluator
Check post-creation PR state to classify outcomes:
accepted (strong): PR merged into target branch
accepted (medium): PR has approved review and no requested changes
rejected (strong): PR closed without merge + closing comment or label
rejected (medium): PR closed without merge
pending: PR is open with no reviews
ignored: PR is open but stale (no activity for configurable threshold)
unknown: fallback
push_to_pull_request_branch evaluator
Use persisted before-state HEAD SHA to classify:
accepted (strong): PR merged, pushed commits included
accepted (medium): pushed commits are still HEAD on branch
rejected (strong): commits were force-pushed away or branch was reset
rejected (medium): PR closed without merge
pending: PR open, no review on pushed commits yet
unknown: fallback
Files to Modify
- Outcome evaluator module (likely
actions/setup/js/)
- Add dedicated evaluator functions for each type
- Add tests covering all outcome classifications for each type
Acceptance Criteria
Generated by 📋 Plan Command · sonnet46 949.9K · ◷
Objective
Implement type-specific outcome evaluators for
create_pull_requestandpush_to_pull_request_branch— the highest-priority safe output types per issue #35033.Context
Depends on the shared outcome model and metadata persistence (steps 1 and 2 of #35033). PRs and branch pushes provide the clearest human-check signals and highest research value.
Approach
create_pull_request evaluator
Check post-creation PR state to classify outcomes:
accepted(strong): PR merged into target branchaccepted(medium): PR has approved review and no requested changesrejected(strong): PR closed without merge + closing comment or labelrejected(medium): PR closed without mergepending: PR is open with no reviewsignored: PR is open but stale (no activity for configurable threshold)unknown: fallbackpush_to_pull_request_branch evaluator
Use persisted before-state HEAD SHA to classify:
accepted(strong): PR merged, pushed commits includedaccepted(medium): pushed commits are still HEAD on branchrejected(strong): commits were force-pushed away or branch was resetrejected(medium): PR closed without mergepending: PR open, no review on pushed commits yetunknown: fallbackFiles to Modify
actions/setup/js/)Acceptance Criteria
create_pull_requestevaluator classifies merged PRs asaccepted(strong)create_pull_requestevaluator classifies closed-without-merge PRs asrejectedpush_to_pull_request_branchevaluator detects retained vs reverted commitsacceptedmake agent-finishpasses