Skip to content

feat(feature-ideation): backlog enhancement sweep + dry-run + marker continuity (E1/E2/E3)#539

Merged
don-petry merged 5 commits into
mainfrom
feat/feature-ideation-backfill
Jun 26, 2026
Merged

feat(feature-ideation): backlog enhancement sweep + dry-run + marker continuity (E1/E2/E3)#539
don-petry merged 5 commits into
mainfrom
feat/feature-ideation-backfill

Conversation

@don-petry

@don-petry don-petry commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

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 standalone idea-enhancer provided before #872 folded it into feature-ideation — the planner flagged it as an untracked prerequisite that dev-lead in .github-private can't author.

feature-ideation-reusable.yml

  • 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 (the exact failure #875's Dev Notes warn against).
  • 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). target_discussion single-idea mode still wins when set.
  • E3 — dry-run: the sweep honors 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.yml

  • Expose + forward enhance_backlog — the verbatim-sync target for .github-private#935.

After merge

The feature-ideation/next channel 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

  • New Features
    • Added an optional backlog enhancement mode for the feature ideation workflow.
    • Introduced a new run-time option to sweep existing Ideas and add one enhancement comment to each eligible discussion.
    • Updated the workflow to recognize both current and legacy enhancement markers for better idempotency.

don-petry and others added 2 commits June 26, 2026 16:37
…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>
@don-petry don-petry requested a review from a team as a code owner June 26, 2026 21:39
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@don-petry, we couldn't start this review because you've reached your PR review rate limit.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 508413ad-c6ae-4c22-9358-7a95236e0012

📥 Commits

Reviewing files that changed from the base of the PR and between bf63ccb and 4d2dbba.

📒 Files selected for processing (2)
  • .github/workflows/feature-ideation-reusable.yml
  • standards/workflows/feature-ideation.yml
📝 Walkthrough

Walkthrough

This PR adds an enhance_backlog workflow input, forwards it through the reusable feature ideation workflow, and updates the Claude Code prompt to support backlog enhancement mode with revised idempotency checks.

Changes

Feature Ideation Backlog Enhancement

Layer / File(s) Summary
Input wiring
.github/workflows/feature-ideation-reusable.yml, standards/workflows/feature-ideation.yml
enhance_backlog is added to the reusable workflow and dispatch workflow, and the caller forwards the dispatch value into the reusable workflow with a false default.
Environment flag plumbing
.github/workflows/feature-ideation-reusable.yml
ENHANCE_BACKLOG is passed into the Claude Code step and documented in the prompt environment variable block.
Backlog enhancement mode
.github/workflows/feature-ideation-reusable.yml
The prompt now switches to backlog enhancement when ENHANCE_BACKLOG=1 and TARGET_DISCUSSION is empty, scans open ideas discussions, skips discussions with the current or legacy enhancement markers, and posts one additive comment per candidate.

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
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related issues

  • petry-projects/.github-private issue 936 — documents the new enhance_backlog backlog-sweep behavior added here.
  • petry-projects/.github-private issue 935 — matches the added enhance_backlog input wiring through the reusable workflow path.
  • petry-projects/.github-private issue 937 — aligns with the backlog enhancement marker and idempotency handling changed in the reusable workflow.
  • petry-projects/.github-private issue 872 — touches the same feature-ideation enhancement path in feature-ideation-reusable.yml.

Possibly related PRs

  • petry-projects/.github#81 — introduces the workflow path that this PR extends with enhance_backlog and backlog-enhancement prompt handling.
  • petry-projects/.github#121 — adds the reusable feature-ideation workflow plumbing that this PR continues to use for comment_on_discussion.
  • petry-projects/.github#448 — modifies the same feature-ideation prompt mode-selection and enhancement idempotency behavior.

Suggested labels

needs-human-review

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main workflow changes: backlog enhancement sweep, dry-run handling, and marker continuity.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/feature-ideation-backfill

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.

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

Copy link
Copy Markdown
Contributor

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 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.

Comment thread standards/workflows/feature-ideation.yml Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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

📥 Commits

Reviewing files that changed from the base of the PR and between 9875777 and bf63ccb.

📒 Files selected for processing (2)
  • .github/workflows/feature-ideation-reusable.yml
  • standards/workflows/feature-ideation.yml

Comment thread .github/workflows/feature-ideation-reusable.yml Outdated
Comment thread standards/workflows/feature-ideation.yml Outdated
@don-petry

Copy link
Copy Markdown
Contributor Author

@coderabbitai resolve

@don-petry

Copy link
Copy Markdown
Contributor Author

Dev-Lead — review-changes (applied)

Changes committed and pushed.

@don-petry don-petry enabled auto-merge (squash) June 26, 2026 21:44
@don-petry don-petry disabled auto-merge June 26, 2026 21:44
coderabbitai[bot]
coderabbitai Bot previously approved these changes Jun 26, 2026
@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown
✅ Action performed

Comments resolved and changes approved.

@don-petry

Copy link
Copy Markdown
Contributor Author

Dev-Lead — review-changes (applied)

Changes committed and pushed.

@don-petry don-petry disabled auto-merge June 26, 2026 21:52
@don-petry

Copy link
Copy Markdown
Contributor Author

Dev-Lead — review-changes (no-changes)

No changes were needed for this PR.

@don-petry don-petry enabled auto-merge (squash) June 26, 2026 21:54
@don-petry don-petry disabled auto-merge June 26, 2026 21:57
@sonarqubecloud

Copy link
Copy Markdown

@don-petry

Copy link
Copy Markdown
Contributor Author

@donpetry-bot review

@donpetry-bot

Copy link
Copy Markdown
Contributor

@don-petry I'm on it — starting a fresh review now. Results will appear in a few minutes.

@don-petry

Copy link
Copy Markdown
Contributor Author

@donpetry-bot review

@donpetry-bot

Copy link
Copy Markdown
Contributor

@don-petry I'm on it — starting a fresh review now. Results will appear in a few minutes.

@don-petry

Copy link
Copy Markdown
Contributor Author

Dev-Lead — review-changes (no-changes)

No changes were needed for this PR.

@don-petry don-petry enabled auto-merge (squash) June 26, 2026 22:02

@donpetry-bot donpetry-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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 == true over 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 the enhance_backlog input (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 # v1 while 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.

@don-petry don-petry merged commit c60e75a into main Jun 26, 2026
22 checks passed
@don-petry don-petry deleted the feat/feature-ideation-backfill branch June 26, 2026 22:06

@donpetry-bot donpetry-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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 the enhance_backlog input (line 77) and its env wiring (line 239), so the caller's forwarded input resolves with no validation error. The inline comment still reads # v1 while 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.

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.

2 participants