feat: implement issue #329 — Compliance: non-stub-feature-ideation.yml#406
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
📝 WalkthroughWalkthroughThis workflow now listens for created GitHub Discussions, limits ideation runs to Ideas-category discussions from non-bot authors, and passes the discussion number into the reusable ideation workflow while keeping schedule and manual dispatch paths unchanged. ChangesDiscussion-triggered ideation
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related issues
Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Dev-Lead — waiting on PR blockers (intent: review-changes)PR: #406 |
|
Note @don-petry I reviewed this PR and no code changes were needed, but it still has blocking checks or reviews (failing or cancelled checks, or changes-requested reviews), so I cannot mark it done yet. I'll re-check automatically. |
|
Dev-Lead — fix-bot-comment (no-changes)Agent reasoning |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
.github/workflows/feature-ideation.yml (1)
84-87: 🎯 Functional Correctness | 🔵 TrivialReplace
category.slugwithcategory.idto ensure workflow stability against category renamesThe current guard relies on
github.event.discussion.category.slug, which is a URL-friendly string generated from the category name. If the category name is updated in repository settings (e.g., "Ideas" to "Feature Requests"), the slug will change, causing this workflow condition to fail silently.The
user.typecheck ('Bot') correctly filters automated accounts as confirmed by GitHub webhook schemas, but theslugdependency poses a significant maintenance risk. Switch to the immutablecategory.idfor robustness:if: >- github.event_name != 'discussion' || (github.event.discussion.category.id == <FIND_CATEGORY_ID> && github.event.discussion.user.type != 'Bot')Retrieve the current category's numeric ID from the repository's Discussion settings or the GitHub API and replace
<FIND_CATEGORY_ID>.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/workflows/feature-ideation.yml around lines 84 - 87, The workflow guard in the discussion trigger logic still depends on github.event.discussion.category.slug, which can change when the category is renamed. Update the condition in the feature-ideation workflow to use github.event.discussion.category.id instead, keeping the github.event.discussion.user.type != 'Bot' check unchanged, and replace the slug comparison with the current immutable numeric category ID so the workflow stays stable across category name changes.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In @.github/workflows/feature-ideation.yml:
- Around line 84-87: The workflow guard in the discussion trigger logic still
depends on github.event.discussion.category.slug, which can change when the
category is renamed. Update the condition in the feature-ideation workflow to
use github.event.discussion.category.id instead, keeping the
github.event.discussion.user.type != 'Bot' check unchanged, and replace the slug
comparison with the current immutable numeric category ID so the workflow stays
stable across category name changes.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 97635b1c-c246-47a6-bc72-5d3b467cf0ad
📒 Files selected for processing (1)
.github/workflows/feature-ideation.yml
Dev-Lead — fix-reviews (no-changes)Agent reasoning |
Dev-Lead — review-changes (no-changes)No changes were needed for this PR. |
donpetry-bot
left a comment
There was a problem hiding this comment.
Automated review — APPROVED ✓
Risk: LOW
Reviewed commit: 4c9371d904d0b7a8c4e399248c305dbaa34c5ef2
Review mode: triage-approved (single reviewer)
Summary
Adds a discussion: created trigger (Ideas-category, non-bot guard) to feature-ideation.yml, passes target_discussion into the reusable workflow, and updates the reusable pin to 897e4de. Verified against the org canonical stub (standards/workflows/feature-ideation.yml@main): the trigger, if-guard, target_discussion input, and the exact pinned SHA all match verbatim. This is the correct remediation for compliance issue #329 (bring the non-stub workflow in line with the canonical @v1 stub).
Linked issue analysis
Issue #329 is a compliance finding (non-stub-feature-ideation.yml): the workflow must match the canonical stub that delegates to feature-ideation-reusable.yml@v1. The PR brings the repo copy in line with standards/workflows/feature-ideation.yml@main exactly — same trigger, same guard, same target_discussion wiring, same pinned SHA. Substantively addressed.
Findings
No blocking findings.
- Pin change 419c90f -> 897e4de initially looks like a downgrade (897e4de is a 33-commit ancestor of 419c90f), but it matches the org canonical stub verbatim, which is the source of truth per the org standard. Not guessed; correct.
if:guard is sound: non-discussion events (schedule/dispatch) always run; discussion events run only for category 'ideas' and non-Bot authors, preventing the bot's own enhancement comments from re-firing.target_discussion: ${{ github.event.discussion.number }}is empty on schedule/dispatch (reusable handles viainputs.target_discussion || '') and carries the new discussion number on the created trigger.- Note (by design, not introduced here): the discussion trigger + discussions:write + AI analyst processing user-authored discussion content is a prompt-injection surface, but this is inherent to the issue #329 feature and handled inside the reusable workflow; the category/non-bot guard limits exposure.
CI status
All required checks green: build-and-test, Node.js Tests, Playwright UI Tests, coverage, CodeQL (Analyze actions/javascript-typescript/python), SonarCloud (quality gate passed, 0 new issues), Secret scan (gitleaks), dependency-audit, agent-shield. Conditional jobs (dependabot-automerge, ci-relay, reconcile-discussion, etc.) correctly SKIPPED. No changes-requested reviews; coderabbit COMMENTED only; bot comments are rate-limit/status notes with no actionable blockers.
Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.
CI Failure: SonarCloud Code AnalysisStep: SonarCloud Quality Gate The PR modifies Suggested fix: Wrap the |



Closes #329
Implemented by dev-lead agent. Please review.
Summary by CodeRabbit
New Features
Bug Fixes