Skip to content

skill-pr-addresser: Improve feedback deduplication and batching #797

@aRustyDev

Description

@aRustyDev

Problem

The agent times out when processing PRs with many review comments because:

  1. No deduplication of similar feedback - "Move to examples" appearing at 4 different lines creates 4 separate work items
  2. Guidance mixed with actionable items - Meta-guidance reviews (e.g., "follow progressive delivery patterns") are treated as change requests
  3. Checkbox explosion - A single review with 6 checkboxes becomes 6 separate items
  4. No batching - All items processed in a single fixer run

Example from PR #795

Source Items Generated
Review 1 (6 checkboxes) 6 items
Review 2 (guidance) 1 item
Review 3 (guidance) 1 item
11 review threads 11 items
Total ~17-20 items

Many threads are actually the same feedback at different locations:

  • 4 threads say "move to examples/*"
  • 3 threads say "move to reference/*.md"
  • 3 threads say "keep high-level, point to references"

Proposed Solutions

1. Deduplication in Analyzer

Update feedback-analyzer prompt to consolidate similar feedback:

{
  "feedback_items": [
    {
      "id": "group-examples",
      "type": "change_request",
      "description": "Move code blocks to examples/",
      "locations": [
        {"file": "SKILL.md", "line": 671},
        {"file": "SKILL.md", "line": 733},
        {"file": "SKILL.md", "line": 398}
      ],
      "priority": "high"
    }
  ]
}

2. Separate Guidance from Actions

Add a guidance type that the fixer can use for context but not treat as individual work items:

{
  "guidance": [
    "SKILL.md MUST follow progressive delivery patterns",
    "Adopt best-practices & anti-patterns pattern"
  ],
  "feedback_items": [...]
}

3. Batch Processing

Instead of sending all items to fixer at once:

  1. Group by type (move-to-examples, move-to-references, etc.)
  2. Process one group at a time
  3. Commit after each batch

4. Priority Ordering

Process high-priority items first, skip lower priority if time/turn budget exhausted.

Related

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions