Skip to content

[plan] Implement dedicated outcome evaluators for create_issue, add_comment, and add_labels #35038

@github-actions

Description

@github-actions

Objective

Implement type-specific outcome evaluators for create_issue, add_comment, and add_labels — the next highest-priority safe output types per issue #35033.

Context

Depends on the shared outcome model (step 1 of #35033). Issues, comments, and labels provide clear human-observable signals with well-defined lifecycle states.

Approach

create_issue evaluator

  • accepted (strong): Issue is open AND has been referenced in a merged PR, commit, or closing action
  • accepted (medium): Issue is open with at least one non-author comment or reaction
  • rejected (strong): Issue was closed immediately (within configurable window) by a non-author
  • rejected (medium): Issue was closed with no activity
  • pending: Issue is open with no engagement
  • unknown: fallback

add_comment evaluator

  • accepted (strong): Comment was reacted to, replied to, or quoted in another comment
  • accepted (medium): Comment still exists, thread was subsequently acted on
  • rejected (strong): Comment was deleted
  • pending: Comment exists with no reactions or follow-up
  • unknown: fallback

add_labels evaluator

Use persisted before-state label list to classify:

  • accepted (strong): Labels are still present after configurable retention window
  • rejected (strong): Labels were removed by a non-author within the retention window
  • pending: Retention window not yet elapsed
  • 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

  • create_issue evaluator uses engagement signals, not existence alone
  • add_comment evaluator detects deletion as rejection
  • add_labels evaluator detects label removal as rejection
  • No existence-only check counts as accepted
  • Tests cover all outcome branches for each evaluator
  • make agent-finish passes

Generated by 📋 Plan Command · sonnet46 949.9K ·

  • expires on May 28, 2026, 8:13 PM UTC

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions