Skip to content

Add staleness check before code agent works on aged issues #987

@fullsend-ai-retro

Description

@fullsend-ai-retro

What happened

Issue #644 was labeled ready-to-code on 2026-05-05. The code agent didn't successfully produce a PR until 2026-05-11 (6 days later, due to a failed first run). During that window, the installation guide (docs/guides/admin/installation.md) was being reworked by other PRs, making the original problem obsolete. The code agent produced a correct fix (PR #800) that received two approvals but was closed without merge because the fix was no longer needed.

This wasted approximately: 2 code agent runs, 1 review agent run, and one human reviewer's time (ralphbean spent effort writing 3 thoughtful inline comments on a PR that would never merge).

What could go better

When a ready-to-code issue has been sitting for multiple days, the code agent (or a pre-flight check in the dispatch layer) should verify the issue is still relevant before investing compute. Possible signals:

  • File-level change detection: If the files mentioned in the triage summary have been modified on main since the triage ran, flag potential staleness.
  • Issue comment recency: If no human has interacted with the issue recently and other PRs have landed touching the same area, prompt for re-triage.
  • Triage expiry: Treat triage summaries as having a TTL (e.g., 7 days). If the code agent is dispatched after the TTL, re-run triage first to confirm the problem still exists.

Confidence: Medium. This specific case is clear-cut (6-day delay + install process overhaul), but designing a general staleness heuristic that doesn't add false-positive friction is hard. The file-change-detection signal is the most concrete and least likely to produce false positives.

This pattern may recur: the repo has active development on installation/setup flows, and issues in that area can become obsolete quickly.

Proposed change

Add a pre-flight staleness check to the code dispatch pipeline (likely in post-triage.sh or the code dispatch workflow). Before dispatching the code agent:

  1. Check if the files referenced in the triage summary have been modified on main since the triage timestamp.
  2. If yes, post a comment on the issue noting that referenced files have changed and suggest re-triaging (/triage) before coding.
  3. Optionally, skip the code dispatch and wait for human confirmation.

This could also be implemented as a TTL on triage summaries: if the triage is older than N days (suggest 5), auto-re-triage before dispatching the code agent.

Related issues: #281 (triage agent lacks 'already-fixed' action), #576 (triage agent lacks 'superseded' close reason).

Validation criteria

Over the next 20 code agent dispatches on issues where the triage summary is >3 days old, measure: (1) how many would have been flagged by the staleness check, and (2) of those flagged, how many resulted in PRs that were ultimately merged vs. closed. Success = at least 50% of flagged cases would have been correctly identified as stale, with a false-positive rate under 20%.


Generated by retro agent from #800

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions