🎯

pr-feedback-classifier

🎯Skill

from dagster-io/erk

VibeIndex|
What it does

Classifies PR review feedback by actionability and complexity, generating structured JSON for targeted resolution.

πŸ“¦

Part of

dagster-io/erk(16 items)

pr-feedback-classifier

Installation

πŸ“‹ No install commands found in docs. Showing default command. Check GitHub for actual instructions.
Quick InstallInstall with npx
npx skills add dagster-io/erk --skill pr-feedback-classifier
1Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

>

Overview

# PR Feedback Classifier

Fetch and classify all PR review feedback for the current branch's PR.

Arguments

  • --pr : Target a specific PR by number (default: current branch's PR)
  • --include-resolved: Include resolved threads (for reference)

Check $ARGUMENTS for flags.

Steps

  1. Get current branch and PR info:

- If --pr specified in $ARGUMENTS:

```bash

gh pr view --json number,title,url -q '{number: .number, title: .title, url: .url}'

```

- If --pr not specified (use current branch):

```bash

git rev-parse --abbrev-ref HEAD

gh pr view --json number,title,url -q '{number: .number, title: .title, url: .url}'

```

  1. Fetch all comments:

```bash

# If --include-resolved in $ARGUMENTS:

erk exec get-pr-review-comments [--pr ] --include-resolved

# Otherwise:

erk exec get-pr-review-comments [--pr ]

erk exec get-pr-discussion-comments [--pr ]

```

Note: Pass --pr to both exec commands when specified in $ARGUMENTS.

  1. Classify each comment using the Comment Classification Model below.
  1. Group into batches by complexity.
  1. Output structured JSON (schema below).

Comment Classification Model

For each comment, determine:

Actionability

  • Actionable: Code changes requested, violations to fix, missing tests, documentation updates requested
  • Informational: Bot status updates, CI results, Graphite stack comments, acknowledgments, automated review summaries

Complexity (for actionable items)

  • local: Single line change at specified location
  • single_file: Multiple changes in one file
  • cross_cutting: Changes across multiple files
  • complex: Architectural changes or related refactoring needed

Batch Ordering

  1. Local Fixes (auto_proceed: true): Single-line changes
  2. Single-File (auto_proceed: true): Multi-location in one file
  3. Cross-Cutting (auto_proceed: false): Multiple files
  4. Complex (auto_proceed: false): Architectural changes

Output Format

Output ONLY the following JSON (no prose, no markdown, no code fences):

```json

{

"success": true,

"pr_number": 5944,

"pr_title": "Feature: Add new API endpoint",

"pr_url": "https://github.com/owner/repo/pull/5944",

"actionable_threads": [

{

"thread_id": "PRRT_kwDOPxC3hc5q73Ne",

"type": "review",

"path": "src/api.py",

"line": 42,

"is_outdated": false,

"action_summary": "Add integration tests for new endpoint",

"complexity": "local",

"original_comment": "This needs integration tests"

}

],

"discussion_actions": [

{

"comment_id": 12345678,

"action_summary": "Update API documentation",

"complexity": "cross_cutting",

"original_comment": "Please update the docs to reflect..."

}

],

"informational_count": 12,

"batches": [

{

"name": "Local Fixes",

"complexity": "local",

"auto_proceed": true,

"item_indices": [0]

},

{

"name": "Cross-Cutting",

"complexity": "cross_cutting",

"auto_proceed": false,

"item_indices": [0]

}

],

"error": null

}

```

Field notes:

  • thread_id: The ID needed for erk exec resolve-review-thread
  • comment_id: The ID needed for erk exec reply-to-discussion-comment
  • item_indices: References into actionable_threads (type=review) or discussion_actions (type=discussion)
  • original_comment: First 200 characters of the comment text

Error Case

If no PR exists for the branch or API fails:

```json

{

"success": false,

"pr_number": null,

"pr_title": null,

"pr_url": null,

"actionable_threads": [],

"discussion_actions": [],

"informational_count": 0,

"batches": [],

"error": "No PR found for branch feature-xyz"

}

```

No Comments Case

If PR exists but has no unresolved comments:

```json

{

"success": true,

"pr_number": 5944,

"pr_title": "Feature: Add new API endpoint",

"pr_url": "https://github.com/owner/repo/pull/5944",

"actionable_threads": [],

"discussion_actions": [],

"informational_count": 0,

"batches": [],

"error": null

}

```