Skip to content

Triage should suppress ready-to-code when issue proposes multiple approaches without clear priority #629

Description

@fullsend-ai-retro

What happened

Issue #626 proposed three potential solutions of varying complexity: (1) reviewer-facing documentation in CONTRIBUTING.md, (2) warning annotations in check-e2e-authorization.sh, and (3) making the functional-tests-complete consolidate job fail when tests are skipped. The issue phrased these as "Some combination of" without indicating which was primary. The triage agent applied ready-to-code and the code agent auto-dispatched within ~5 minutes. It implemented options 1 and 2 (the simpler, agent-implementable changes) and created PR #628. The review agent then spent 14 minutes reviewing. The maintainer then closed the PR without merging, stating that option 3 (the structural CI fix) was the right approach — the palliative measures alone were not valuable. Total wasted effort: ~6 min code agent + ~14 min review agent + human review time.

What could go better

The triage agent should detect when an issue proposes multiple candidate approaches with significantly different scope or complexity and no clear priority signal from the author. In such cases, auto-dispatching the code agent risks the agent picking the easiest approach rather than the most impactful one. This is a specific instantiation of a broader pattern: existing issues #605 (human-approval gate) and #259 (code agent surfacing approach) address related aspects but from different stages. #605 proposes a blanket configuration gate on all auto-dispatches. #259 proposes the code agent post a comment about its chosen approach. Neither addresses the triage agent's ability to internally detect multi-approach ambiguity and conditionally suppress dispatch. Confidence is medium-high: the issue's phrasing ('Some combination of') with three options of varying complexity was a clear signal of ambiguity that the triage could have detected. The uncertainty is whether a heuristic for detecting multi-approach issues would be reliable enough to avoid false positives on issues where the approach is actually clear despite listing alternatives.

Proposed change

In the triage agent definition (agents/triage.md) or the triage skill, add guidance for multi-approach detection. When the issue body contains multiple proposed solutions (heuristic: numbered lists of approaches, 'Option 1/2', 'Approach A/B', 'Some combination of', or 'Either X or Y'), the triage agent should assess whether there is a clear primary approach. If the approaches have significantly different complexity or scope (e.g., documentation vs. CI workflow changes), and the issue does not indicate which is preferred, the triage should: (a) apply triaged instead of ready-to-code, (b) note in its triage comment which approach it recommends and why, and (c) invite the issue author to confirm the approach before code dispatch. This complements #605 (which proposes a blanket gate) by making the triage agent's own dispatch decision smarter without requiring a global configuration change. It also complements #259 (which operates at the code agent level) by preventing the wasted code+review cycle entirely rather than surfacing the choice after work has begun.

Validation criteria

Over the next 10 issues where the body proposes 2+ distinct solution approaches of different complexity, the triage agent should either: (a) identify a clear primary approach and recommend it in its triage comment, applying ready-to-code with rationale, or (b) apply triaged instead of ready-to-code and note that the approach needs human confirmation. Success metric: zero code agent PRs closed by humans for 'wrong approach' on multi-approach issues within 30 days of the change. Secondary metric: no increase in triage-to-code latency on single-approach issues (the heuristic should not trigger false positives).


Generated by retro agent from #628

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions