Skip to content

Conversation

@marcusquinn
Copy link
Owner

Summary

  • Adds coderabbit-task-creator-helper.sh that reads CodeRabbit findings from both the collector SQLite DB (PR reviews) and review-pulse JSON (CLI reviews), filters false positives, reclassifies severity, deduplicates, and generates TODO-compatible task lines with #auto-dispatch tags
  • Updates review-pulse-helper.sh to delegate its tasks command to the new script, with fallback to basic generation
  • Adds tasks command to coderabbit-collector-helper.sh for direct DB-to-task creation

Key Capabilities

Feature Description
False positive detection Walkthrough summaries, bot meta-comments, empty bodies (start-of-body vs anywhere distinction)
Severity reclassification Upgrades based on content patterns (rm -rf, path traversal, injection) and CodeRabbit emoji markers
Deduplication Same path + description matching
Manual verification verify <id> --valid|--false-positive
Supervisor integration --dispatch flag triggers auto-pickup
Dual source Collector DB (PR reviews) + pulse JSON (CLI reviews)

Testing

Tested against real CodeRabbit data (7 comments from PRs #762, #763):

  • 2 walkthrough summaries correctly filtered as false positives
  • 4 findings had severity reclassified (e.g., info -> critical for rm -rf on empty variable)
  • 5 valid findings generated accurate task descriptions with file paths and PR references
  • ShellCheck: zero violations on all modified files

Commands

# Scan findings and show actionable items
coderabbit-task-creator-helper.sh scan

# Create tasks (dry run first)
coderabbit-task-creator-helper.sh create --dry-run
coderabbit-task-creator-helper.sh create --dispatch

# View stats
coderabbit-task-creator-helper.sh stats

# Manual verification
coderabbit-task-creator-helper.sh verify 42 --false-positive

Note

The GitHub Actions workflow update (.github/workflows/review-pulse.yml) was reverted from this PR due to OAuth token scope limitations. It can be applied separately by a user with workflow scope.

Closes #727

…filtering (t166.3)

Add coderabbit-task-creator-helper.sh that reads findings from both the
collector SQLite DB (PR reviews) and review-pulse JSON (CLI reviews),
filters false positives, reclassifies severity using CodeRabbit's emoji
markers, deduplicates, and generates TODO-compatible task lines with
#auto-dispatch tags for supervisor pickup.

Key capabilities:
- False positive detection: walkthrough summaries, bot meta-comments,
  empty bodies (start-of-body vs anywhere-in-body distinction)
- Severity reclassification: upgrades based on content patterns (rm -rf,
  path traversal, injection) and CodeRabbit emoji markers
- Deduplication: same path + description matching
- Manual verification: mark findings as valid or false positive
- Supervisor integration: --dispatch flag triggers auto-pickup
- Dual source: collector DB (PR reviews) + pulse JSON (CLI reviews)

Tested against real data: 7 comments -> 2 FP filtered, 4 severity
reclassified, 5 valid findings with accurate task descriptions.

Also updates:
- review-pulse-helper.sh: delegates tasks command to new script
- coderabbit-collector-helper.sh: adds tasks command
- coderabbit.md: documents auto-task creation workflow
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 9, 2026

Warning

Rate limit exceeded

@marcusquinn has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 10 minutes and 28 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/t166.3

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist
Copy link

Summary of Changes

Hello @marcusquinn, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly upgrades the automated handling of CodeRabbit review findings by introducing a dedicated task creation helper. It focuses on refining the quality of generated tasks by implementing sophisticated false positive filtering, intelligent severity reclassification, and deduplication. This ensures that development teams receive a cleaner, more accurate, and actionable list of tasks derived from code reviews, ultimately improving efficiency in addressing identified issues.

Highlights

  • Automated Task Creation Script: Introduced a new script, coderabbit-task-creator-helper.sh, designed to automatically generate TODO-compatible tasks from CodeRabbit findings, enhancing the workflow for addressing code review feedback.
  • Intelligent Finding Processing: The new task creator includes advanced logic for filtering false positives (e.g., bot meta-comments, walkthrough summaries), reclassifying severity based on content patterns and emoji markers, and deduplicating findings to ensure only actionable and unique issues become tasks.
  • Dual Source Integration: The system can process CodeRabbit findings from two sources: the collector SQLite database (for PR reviews) and review-pulse JSON files (for CLI reviews), providing comprehensive coverage.
  • Delegation and Command Integration: Existing helper scripts (coderabbit-collector-helper.sh and review-pulse-helper.sh) have been updated to delegate their task creation functionality to the new coderabbit-task-creator-helper.sh, centralizing and improving the task generation process. New commands (scan, create, verify, stats) are available for managing findings.
  • Supervisor Dispatch Capability: Generated tasks are tagged with #auto-dispatch and can optionally be dispatched via the supervisor auto-pickup mechanism, streamlining the assignment and tracking of review-generated tasks.
Changelog
  • .agents/scripts/coderabbit-collector-helper.sh
    • Added a new cmd_tasks function that delegates task creation to the coderabbit-task-creator-helper.sh script.
    • Integrated the tasks command into the script's command-line interface and help documentation.
  • .agents/scripts/coderabbit-task-creator-helper.sh
    • New script added to enable automated task creation from CodeRabbit findings.
    • Implements false positive detection using regex patterns for bot comments, walkthroughs, and empty bodies.
    • Includes severity reclassification logic based on content patterns (e.g., security vulnerabilities) and CodeRabbit's emoji markers.
    • Features deduplication of findings based on path and description to avoid redundant tasks.
    • Generates TODO-compatible task lines with severity, category, description, file path, PR reference, and #auto-dispatch tags.
    • Manages processed findings and task logs in a dedicated SQLite database (task-creator.db).
    • Provides scan, create, verify, and stats commands for managing the task creation process.
    • Supports optional dispatch of created tasks via supervisor-helper.sh.
  • .agents/scripts/review-pulse-helper.sh
    • Modified the create_tasks_from_findings function to delegate to coderabbit-task-creator-helper.sh for more advanced task generation.
    • Added a fallback mechanism to the previous basic task generation if the new helper script is not found or executable.
    • Removed redundant task description building and dispatch logic, as it is now handled by the dedicated task creator.
  • .agents/tools/code-review/coderabbit.md
    • Added a new section 'Auto-Task Creation (t166.3)' detailing the functionality of the coderabbit-task-creator-helper.sh script.
    • Provided usage examples for the scan, create, verify, and stats commands.
    • Documented the false positive detection and severity reclassification capabilities of the new system.
Activity
  • No human activity (comments, reviews, or progress updates) has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions
Copy link

github-actions bot commented Feb 9, 2026

🔍 Code Quality Report

�[0;35m[MONITOR]�[0m Code Review Monitoring Report

�[0;34m[INFO]�[0m Latest Quality Status:
SonarCloud: 0 bugs, 0 vulnerabilities, 53 code smells

�[0;34m[INFO]�[0m Recent monitoring activity:
Mon Feb 9 16:01:18 UTC 2026: Code review monitoring started
Mon Feb 9 16:01:19 UTC 2026: SonarCloud - Bugs: 0, Vulnerabilities: 0, Code Smells: 53

📈 Current Quality Metrics

  • BUGS: 0
  • CODE SMELLS: 53
  • VULNERABILITIES: 0

Generated on: Mon Feb 9 16:01:21 UTC 2026


Generated by AI DevOps Framework Code Review Monitoring

@sonarqubecloud
Copy link

sonarqubecloud bot commented Feb 9, 2026

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a significant new feature with the coderabbit-task-creator-helper.sh script, which automates the creation of TODO tasks from CodeRabbit findings. This is a great enhancement for streamlining the workflow of addressing code quality issues. The implementation is comprehensive, covering false positive filtering, severity reclassification, and deduplication. The delegation from existing scripts like review-pulse-helper.sh is well-handled with a fallback mechanism.

My review focuses on ensuring the new script adheres to the repository's shell scripting style guide. I've identified a few areas for improvement and left specific comments with suggestions. The main points are:

  • Temporary File Cleanup: Using trap for cleaning up temporary files to ensure cleanup happens even on script errors.
  • Function Duplication: Leveraging shared functions from shared-constants.sh instead of duplicating logging logic.
  • Error Output Redirection: Avoiding blanket suppression of stderr to aid in debugging.

These changes will improve the script's robustness and maintainability. Overall, this is a solid contribution.


# Write comments to temp file for process substitution (avoids subshell)
local tmp_file
tmp_file=$(mktemp)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

This script uses set -e, which will cause it to exit on an error. If an error occurs within the while loop on lines 382-464, the rm -f "$tmp_file" on line 466 will not be executed, leaving a temporary file in /tmp.

The repository style guide (line 33) requires using trap for temporary file cleanup to ensure it's robust. Please add a trap command after creating the temporary file. This issue also exists in scan_pulse_findings() (line 506) and cmd_create() (line 707).

Suggested change
tmp_file=$(mktemp)
tmp_file=$(mktemp); trap 'rm -f "$tmp_file"' RETURN EXIT
References
  1. Temporary files created with mktemp must have a trap for cleanup to ensure they are removed even if the script exits unexpectedly. (link)


# Write findings to temp file to avoid subshell variable loss
local tmp_file
tmp_file=$(mktemp)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

This script uses set -e, which will cause it to exit on an error. If an error occurs within the while loop on lines 509-544, the rm -f "$tmp_file" on line 546 will not be executed, leaving a temporary file in /tmp.

The repository style guide (line 33) requires using trap for temporary file cleanup to ensure it's robust. Please add a trap command after creating the temporary file.

Suggested change
tmp_file=$(mktemp)
tmp_file=$(mktemp); trap 'rm -f "$tmp_file"' RETURN EXIT
References
  1. Temporary files created with mktemp must have a trap for cleanup to ensure they are removed even if the script exits unexpectedly. (link)


# Write findings to temp file to avoid subshell variable loss
local tmp_create
tmp_create=$(mktemp)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

This script uses set -e, which will cause it to exit on an error. If an error occurs within the while loop on lines 710-763, the rm -f "$tmp_create" on line 765 will not be executed, leaving a temporary file in /tmp.

The repository style guide (line 33) requires using trap for temporary file cleanup to ensure it's robust. Please add a trap command after creating the temporary file.

Suggested change
tmp_create=$(mktemp)
tmp_create=$(mktemp); trap 'rm -f "$tmp_create"' RETURN EXIT
References
  1. Temporary files created with mktemp must have a trap for cleanup to ensure they are removed even if the script exits unexpectedly. (link)

Comment on lines +85 to +88
log_info() { echo -e "${BLUE}[TASK-CREATOR]${NC} $*"; return 0; }
log_success() { echo -e "${GREEN}[TASK-CREATOR]${NC} $*"; return 0; }
log_warn() { echo -e "${YELLOW}[TASK-CREATOR]${NC} $*"; return 0; }
log_error() { echo -e "${RED}[TASK-CREATOR]${NC} $*" >&2; return 0; }

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

These logging functions are duplicates of the print_* functions available in shared-constants.sh, which is sourced on line 27. The repository style guide (line 19) advises against duplicating these functions to maintain consistency and reduce code duplication.

Consider refactoring these to wrap the shared print_* functions to include the [TASK-CREATOR] prefix.

Suggested change
log_info() { echo -e "${BLUE}[TASK-CREATOR]${NC} $*"; return 0; }
log_success() { echo -e "${GREEN}[TASK-CREATOR]${NC} $*"; return 0; }
log_warn() { echo -e "${YELLOW}[TASK-CREATOR]${NC} $*"; return 0; }
log_error() { echo -e "${RED}[TASK-CREATOR]${NC} $*" >&2; return 0; }
log_info() { print_info "[TASK-CREATOR] $*"; return 0; }
log_success() { print_success "[TASK-CREATOR] $*"; return 0; }
log_warn() { print_warning "[TASK-CREATOR] $*"; return 0; }
log_error() { print_error "[TASK-CREATOR] $*"; return 0; }
References
  1. Scripts should source shared-constants.sh and use its common functions like print_* instead of duplicating them. (link)

local repo_root
repo_root=$(git rev-parse --show-toplevel 2>/dev/null || echo ".")

if "$supervisor" auto-pickup --repo "$repo_root" 2>/dev/null; then

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The use of 2\u003e/dev/null here suppresses stderr output from the supervisor script. The repository style guide (line 50) states that 2\u003e/dev/null is only acceptable when redirecting to log files, not for blanket suppression.

The output from the supervisor could be valuable for debugging if it fails. It's better to redirect stderr to the script's log file.

Suggested change
if "$supervisor" auto-pickup --repo "$repo_root" 2>/dev/null; then
if "$supervisor" auto-pickup --repo "$repo_root" \u003e\u003e "$LOG_FILE" 2\u003e\u00261; then
References
  1. Redirecting stderr to /dev/null is only acceptable when redirecting to a log file, not for blanket suppression of errors. (link)

@marcusquinn marcusquinn merged commit c074aa8 into main Feb 9, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

t166.3: Auto-create tasks from valid CodeRabbit findings

1 participant