feat(feature-ideation): backlog enhancement sweep + dry-run + marker continuity (E1/E2/E3)#539
Conversation
…continuity Cross-repo prerequisite for the consolidation backfill epic (petry-projects/.github-private#934 / discussion #933) — restores the existing-backlog sweep that the standalone idea-enhancer provided before #872 folded it into feature-ideation. - E1 marker continuity: the enhancement idempotency check treats a Discussion as already-enhanced if it carries EITHER `<!-- feature-ideation:enhanced -->` OR the legacy `<!-- idea-enhancer:enhanced -->`; new comments emit the canonical marker. Prevents re-enhancing idea-enhancer's prior work on cutover. - E2 backlog sweep: new `enhance_backlog` workflow_call input → a mode that enumerates open, human-authored, not-yet-enhanced Ideas and posts exactly one additive enhancement comment each (bots + already-enhanced skipped). Single-idea mode (target_discussion) still wins when set. - E3 dry-run: the sweep honors dry_run — intended per-Discussion comments go to the JSONL artifact, nothing posted. - standards/workflows/feature-ideation.yml: expose + forward `enhance_backlog` (the verbatim-sync target for .github-private#935). Refs .github-private#934, #872, #817. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…y prompt logic (E1/E2/E3) The prior commit added only the input plumbing; this adds the actual behavior: - backlog enhancement mode branch (enumerate candidates, one comment each, dry-run-aware) - marker continuity: skip on EITHER feature-ideation:enhanced or legacy idea-enhancer:enhanced Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Warning Review limit reached
More reviews will be available in 42 minutes and 16 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThis PR adds an ChangesFeature Ideation Backlog Enhancement
Sequence Diagram(s)sequenceDiagram
participant CallerWF as "standards/workflows/feature-ideation.yml"
participant ReusableWF as ".github/workflows/feature-ideation-reusable.yml"
participant ClaudeStep as "Claude Code step"
participant Discussions as "GitHub Discussions"
participant CommentHelper as "comment_on_discussion helper"
CallerWF->>ReusableWF: forwards enhance_backlog
ReusableWF->>ClaudeStep: sets ENHANCE_BACKLOG
ClaudeStep->>Discussions: list open ideas discussions
ClaudeStep->>CommentHelper: post one enhancement comment per candidate
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related issues
Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 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 |
There was a problem hiding this comment.
Code Review
This pull request introduces a new 'enhance_backlog' boolean input to the 'feature-ideation.yml' workflow to enable backlog enhancement sweeps. The review feedback suggests changing the evaluation of the boolean input from 'inputs.enhance_backlog || false' to 'inputs.enhance_backlog == true' to prevent potential truthy coercion issues with string representations of booleans in GitHub Actions.
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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.
Inline comments:
In @.github/workflows/feature-ideation-reusable.yml:
- Line 337: The inline GraphQL query passed to gh api graphql is exceeding the
line-length limit, causing the lint failure. Refactor the query in this workflow
step by splitting it across multiple lines while keeping the same fields and
arguments, since GraphQL whitespace is ignored. Update the gh api graphql
invocation in feature-ideation-reusable.yml so the query remains functionally
identical but no single line exceeds the linter threshold.
In `@standards/workflows/feature-ideation.yml`:
- Around line 131-132: The feature-ideation workflow is forwarding
enhance_backlog before the reusable workflow at the current
v1/@897e4dede3518cdd7273b9dc63e607d0d05cbdda pin declares that workflow_call
input. Update the reusable-workflow reference in
standards/workflows/feature-ideation.yml to a commit/tag that includes
enhance_backlog, keeping the v1 tag aligned with that newer commit, so the
Feature Ideation workflow can pass the input without validation errors.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 9392e2f7-9231-44f7-8ecf-b048d92b8853
📒 Files selected for processing (2)
.github/workflows/feature-ideation-reusable.ymlstandards/workflows/feature-ideation.yml
|
@coderabbitai resolve |
Dev-Lead — review-changes (applied)Changes committed and pushed. |
✅ Action performedComments resolved and changes approved. |
Dev-Lead — review-changes (applied)Changes committed and pushed. |
Dev-Lead — review-changes (no-changes)No changes were needed for this PR. |
|
|
@donpetry-bot review |
|
@don-petry I'm on it — starting a fresh review now. Results will appear in a few minutes. |
|
@donpetry-bot review |
|
@don-petry I'm on it — starting a fresh review now. Results will appear in a few minutes. |
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: MEDIUM
Reviewed commit: 4d2dbba44a0b19bd3bc53450cb82a36c19237a33
Review mode: triage-approved (single reviewer)
Summary
Additive backlog-enhancement feature for feature-ideation: new optional enhance_backlog boolean input (default false) plumbed through the reusable workflow into the Claude Code prompt, plus marker-continuity idempotency (accepts both the canonical feature-ideation:enhanced and legacy idea-enhancer:enhanced markers) and dry-run support. +57/-7 across two workflow files. The change is backward-compatible — the default-false optional input does not break any of the 6 downstream consumers.
Linked issue analysis
No GitHub-native linked issues (closingIssuesReferences empty). The PR refs cross-repo tracking items (.github-private#934/#935/#936/#937, #872, #817) which are not resolvable from this repo; these are epic-coordination pointers rather than acceptance criteria. Nothing to verify against here.
Findings
- Prior bot feedback is resolved: gemini-code-assist suggested
inputs.enhance_backlog == trueover truthy coercion — applied verbatim in the caller (standards/workflows/feature-ideation.yml:131). CodeRabbit's two CHANGES_REQUESTED findings (GraphQL line-length lint; reusable-workflow pin predating the new input) were addressed and CodeRabbit subsequently APPROVED on the head SHA. - Verified the bumped pin: standards/workflows/feature-ideation.yml now pins the reusable workflow at
e20a8fac, which I confirmed contains theenhance_backloginput (line 77) and its env wiring (line 239) — so the caller's forwarded input resolves with no validation error. Note: the inline comment still reads# v1while pointing at an untagged branch commit; the author explicitly documents in the PR body that the v1/next channel is moved post-merge. This is an intentional, acknowledged sequencing step, not a defect. - No security smells: the new env value
ENHANCE_BACKLOG: ${{ inputs.enhance_backlog && '1' || '0' }}is derived from a typed boolean, and the prompt's${{ github.repository }}is a trusted context — no injection surface. The added GraphQL/prompt content is natural-language instruction to the agent, not executed shell. - Secret scanning: the run_secret_scanning MCP tool is not exposed in this environment; relied on the passing gitleaks CI check instead. No secrets present in the diff.
- Triage-tier low-risk assessment confirmed.
CI status
All checks green or skipped: CI (Lint, ShellCheck, Agent Security Scan, gitleaks), CodeQL, Feature Ideation Tests, SonarCloud (Quality Gate passed — 0 new issues), AgentShield, Dependency audit, dev-lead all SUCCESS; dependabot/pnpm/govulncheck/etc. SKIPPED as expected. mergeStateStatus is BLOCKED only because org-leads human review is still required (reviewDecision REVIEW_REQUIRED) — not due to any failing check.
Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.
donpetry-bot
left a comment
There was a problem hiding this comment.
Automated review — APPROVED ✓
Risk: MEDIUM
Reviewed commit: 4d2dbba44a0b19bd3bc53450cb82a36c19237a33
Review mode: triage-approved (single reviewer)
Summary
Additive backlog-enhancement feature for feature-ideation. Adds an optional enhance_backlog boolean (default false) to the reusable workflow, plumbs it into the Claude Code step as ENHANCE_BACKLOG, and forwards it from the dispatch caller in standards/workflows/feature-ideation.yml. Also adds marker-continuity idempotency (accepts both the canonical feature-ideation:enhanced and legacy idea-enhancer:enhanced markers) and a dry-run-aware backlog-sweep prompt branch. +57/-7 across two workflow files. Backward-compatible: the default-false optional input leaves all 6 downstream consumers unaffected.
Linked issue analysis
No GitHub-native linked issues (closingIssuesReferences empty). The PR refs cross-repo tracking items (.github-private#934/#935/#936/#937, #872, #817) that are not resolvable from this repo — epic-coordination pointers rather than acceptance criteria. Nothing to verify against here.
Findings
- Triage-tier low-risk assessment confirmed; this is a brief confirmation review.
- Prior bot feedback resolved: gemini-code-assist's suggestion to use
inputs.enhance_backlog == true(over truthy coercion) is applied verbatim at standards/workflows/feature-ideation.yml:131. CodeRabbit's two CHANGES_REQUESTED items (GraphQL line-length lint; reusable pin predating the new input) were addressed, and CodeRabbit subsequently APPROVED on the head SHA. - Verified the bumped pin: standards/workflows/feature-ideation.yml now pins the reusable workflow at
e20a8fac. I confirmed via the GitHub API that this SHA contains theenhance_backloginput (line 77) and its env wiring (line 239), so the caller's forwarded input resolves with no validation error. The inline comment still reads# v1while pointing at an untagged branch commit; the PR body explicitly documents that the v1/next channel is moved post-merge — an intentional, acknowledged sequencing step, not a defect. - No security smells:
ENHANCE_BACKLOG: ${{ inputs.enhance_backlog && '1' || '0' }}derives from a typed boolean; the prompt's GraphQL OWNER/REPO come from the trusted${{ github.repository }}context — no injection surface. The added GraphQL/prompt content is natural-language instruction to the agent, not executed shell. - Downstream impact: 6 consumers pin the reusable workflow; the optional default-false input is backward-compatible and cannot break them.
- Secret scanning: the run_secret_scanning MCP tool is not exposed in this environment; relied on the passing gitleaks CI check. No secrets in the diff.
CI status
All checks green or skipped: CI (Lint, ShellCheck, Agent Security Scan, gitleaks), CodeQL, Feature Ideation Tests, SonarCloud (Quality Gate passed — 0 new issues), AgentShield, Dependency audit, dev-lead all SUCCESS; dependabot/pnpm/govulncheck/pip-audit/cargo-audit SKIPPED as expected. CodeRabbit status SUCCESS. mergeStateStatus reflects required human review (org-leads), not any failing check.
Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.



Summary
The cross-repo prerequisite for the consolidation backfill epic (
petry-projects/.github-private#934, dogfooded from Discussion #933). Restores the existing-backlog sweep that the standaloneidea-enhancerprovided before #872 folded it into feature-ideation — the planner flagged it as an untracked prerequisite that dev-lead in.github-privatecan't author.feature-ideation-reusable.yml<!-- feature-ideation:enhanced -->or the legacy<!-- idea-enhancer:enhanced -->; new comments emit the canonical marker. Prevents re-enhancing idea-enhancer's prior work on cutover (the exact failure #875's Dev Notes warn against).enhance_backlogworkflow_callinput → a mode that enumerates open, human-authored, not-yet-enhanced Ideas and posts exactly one additive enhancement comment each (bots + already-enhanced skipped).target_discussionsingle-idea mode still wins when set.dry_run— intended per-Discussion comments go to the JSONL artifact, nothing posted (makes #875/#937's enhancement dry-run real).standards/workflows/feature-ideation.ymlenhance_backlog— the verbatim-sync target for.github-private#935.After merge
The
feature-ideation/nextchannel needs to be moved to this commit so.github-private's pinned stub picks up the input; then #934's stories (#935 sync, #936 docs, #937 validate) can proceed, and #876 (deprecate idea-enhancer) unblocks.Refs
.github-private#934,#872,#817.🤖 Generated with Claude Code
Summary by CodeRabbit