Skip to content

fix loop: no prioritization — issues picked FIFO regardless of severity #51

@ooloth

Description

@ooloth

Problem

The fix loop picks the next issue using oldest-first ordering among ready-for-agent issues. A P3 dead-code finding filed yesterday blocks a P1 CVE filed this morning from being picked up. There is no severity-aware scheduling.

This means the fix loop's throughput can be fully occupied by low-stakes work while high-stakes work waits, which defeats the purpose of autonomous prioritization.

Current behavior

# loops/fix.py
issue = github.get_next_ready_issue(project)  # oldest ready-for-agent first

What's needed

Pick the highest-priority ready issue, not the oldest. Priority signals available on every issue:

  • sev:high / sev:medium / sev:low labels (already in the label taxonomy)
  • Issue creation date (recency tiebreaker)
  • Scan type (e.g. scan:logs issues may warrant faster response than scan:codebase)

A simple approach: sort ready-for-agent issues by sev:high > sev:medium > sev:low > unlabeled, then by creation date descending within each tier.

Definition of Done

  • Fix loop picks the highest-severity ready issue, with creation date as tiebreaker
  • Tie-breaking and ordering logic is unit-tested
  • If no severity label is present, issue is treated as lowest priority

Out of Scope

  • Dynamic re-prioritization mid-run
  • Cross-project priority comparison
  • Human-configurable priority overrides beyond existing labels

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestscope:fixFix loop, implement, review, PR opening

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions