Skip to content

Retro agent dedup check should search recently-closed issues, not just open ones #453

Description

@fullsend-ai-retro

What happened

The retro agent analyzing PR #131 filed issue #132 to clean up orphaned tests referencing deleted methods _extract_operator_version and _fetch_build_log_text. However, the identical problem had already been filed as issue #116 by the retro agent analyzing PR #114, just 3 days earlier. Issue #116 was closed by the maintainer on the same day #132 was filed (2026-07-19) with a note that the cleanup would be handled separately. The re-filing triggered a full triage + code pipeline (~14 min of Opus compute), producing PR #133, which sat unreviewed for 7 days before being closed without merge with "Closing — no longer needed." This was the second time the pipeline spent resources on the same rejected proposal.

What could go better

The retro agent's existing dedup check (per fullsend-ai/fullsend#1948 and fullsend-ai/agents#174) searches for related open issues before proposing. It does not search recently-closed issues. If it had, it would have found issue #116 — closed the same day with a maintainer explanation — and skipped the re-filing. This gap is distinct from existing issues: #1948 explicitly scopes to open issues, #5314 is about aggregate acceptance rates, #3426 is about cross-PR dedup, and #5570 is about concurrent filing races. None cover the scenario of re-proposing a topic that was recently closed by a human.

Confidence: High. The evidence is direct — issue #116 and #132 describe the identical problem, were filed 3 days apart, and both resulted in rejected PRs. The fix is well-scoped and low-risk.

Proposed change

Add a mandatory recently-closed-issue search step to the retro agent's proposal generation logic. Before including a proposal in the output, the retro agent should:

  1. Search for issues closed in the last 90 days with similar title keywords (using gh api search/issues with is:closed and relevant terms).
  2. For each match, check whether any linked PR was merged or closed without merge.
  3. If a recently-closed issue covers the same topic and its implementing PR was not merged (indicating the proposal was rejected or deferred), skip the proposal and note it in the summary instead.

The change should be made in the retro agent definition (agents/retro.md) and the retro-analysis skill (skills/retro-analysis/SKILL.md) in fullsend-ai/agents. Specifically, the "Before proposing: check for existing issues" section of the retro-analysis skill should add a second search pass for is:closed alongside the existing is:open search, with evaluation criteria for closed-issue matches.

Validation criteria

On the next 5 retro runs where a candidate proposal matches a recently-closed issue (within 90 days) whose implementing PR was not merged, the retro agent should skip the proposal and note the existing closed issue in the summary. Specifically, replaying the scenario from this PR (issue #116 closed 2026-07-19, retro runs same day on a different PR) should result in the retro agent detecting the overlap and not re-filing the same proposal.


Generated by retro agent from redhat-community-ai-tools/ci-failure-tracker#133

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions