Files
automaker/docs/pr-comment-fix-agent.md
Cody Seibert 6733de9e0d refactor: encapsulate state management for spec and suggestions generation
- Made the generation status variables private and introduced getter functions for both spec and suggestions generation states.
- Updated relevant route handlers to utilize the new getter functions, improving encapsulation and reducing direct access to shared state.
- Enhanced code maintainability by centralizing state management logic.
2025-12-14 18:18:11 -05:00

153 lines
5.0 KiB
Markdown

# PR Comment Fix Agent Instructions
## Overview
This agent automatically reviews a GitHub Pull Request, analyzes all comments, and systematically addresses each comment by making the necessary code changes.
## Workflow
### Step 1: Fetch PR Information
1. Use the GitHub CLI command: `gh pr view <pr-number> --comments --json number,title,body,comments,headRefName,baseRefName`
2. Parse the JSON output to extract:
- PR number and title
- PR description/body
- All comments (including review comments and inline comments)
- Branch information (head and base branches)
### Step 2: Analyze Comments
For each comment, identify:
- **Type**: Review comment, inline comment, or general comment
- **File path**: If it's an inline comment, extract the file path
- **Line number**: If it's an inline comment, extract the line number(s)
- **Intent**: What change is being requested?
- Bug fix
- Code style/formatting
- Performance improvement
- Refactoring
- Missing functionality
- Documentation update
- Test addition/modification
- **Priority**: Determine if it's blocking (must fix) or non-blocking (nice to have)
### Step 3: Checkout PR Branch
1. Ensure you're in the correct repository
2. Fetch the latest changes: `git fetch origin`
3. Checkout the PR branch: `git checkout <headRefName>`
4. Pull latest changes: `git pull origin <headRefName>`
### Step 4: Address Each Comment Systematically
For each comment, follow this process:
#### 4.1 Read Relevant Files
- If the comment references a specific file, read that file first
- If the comment is general, read related files based on context
- Understand the current implementation
#### 4.2 Understand the Request
- Parse what specific change is needed
- Identify the root cause or issue
- Consider edge cases and implications
#### 4.3 Make the Fix
- Implement the requested change
- Ensure the fix addresses the exact concern raised
- Maintain code consistency with the rest of the codebase
- Follow existing code style and patterns
#### 4.4 Verify the Fix
- Check that the change resolves the comment
- Ensure no new issues are introduced
- Run relevant tests if available
- Check for linting errors
### Step 5: Document Changes
For each comment addressed:
- Add a comment or commit message referencing the PR comment
- If multiple comments are addressed, group related changes logically
### Step 6: Commit Changes
1. Stage all changes: `git add -A`
2. Create a commit with a descriptive message:
```
fix: address PR review comments
- [Brief description of fix 1] (addresses comment #X)
- [Brief description of fix 2] (addresses comment #Y)
- ...
```
3. Push changes: `git push origin <headRefName>`
## Comment Types and Handling
### Inline Code Comments
- **Location**: Specific file and line number
- **Action**: Read the file, locate the exact line, understand context, make targeted fix
- **Example**: "This function should handle null values" → Add null check
### Review Comments
- **Location**: May reference multiple files or general patterns
- **Action**: Read all referenced files, understand the pattern, apply fix consistently
- **Example**: "We should use async/await instead of promises" → Refactor all instances
### General Comments
- **Location**: PR-level, not file-specific
- **Action**: Understand the broader concern, identify affected areas, make comprehensive changes
- **Example**: "Add error handling" → Review entire PR for missing error handling
## Best Practices
1. **One Comment at a Time**: Address comments sequentially to avoid conflicts
2. **Preserve Intent**: Don't change more than necessary to address the comment
3. **Test Changes**: Run tests after each significant change
4. **Ask for Clarification**: If a comment is ambiguous, note it but proceed with best interpretation
5. **Group Related Fixes**: If multiple comments address the same issue, fix them together
6. **Maintain Style**: Follow existing code style, formatting, and patterns
7. **Check Dependencies**: Ensure fixes don't break other parts of the codebase
## Error Handling
- If a comment references a file that doesn't exist, note it and skip
- If a line number is out of range (file changed), search for similar code nearby
- If a fix introduces breaking changes, revert and try a different approach
- If tests fail after a fix, investigate and adjust the implementation
## Completion Criteria
The agent has successfully completed when:
1. All comments have been analyzed
2. All actionable comments have been addressed with code changes
3. All changes have been committed and pushed
4. A summary of addressed comments is provided
## Example Output Summary
```
PR #123 Review Comments - Addressed
✅ Comment #1: Fixed null handling in getUserData() (line 45)
✅ Comment #2: Added error handling for API calls
✅ Comment #3: Refactored to use async/await pattern
⚠️ Comment #4: Requires clarification - noted in commit message
✅ Comment #5: Fixed typo in documentation
Total: 5 comments, 4 addressed, 1 requires clarification
```