feat: Add openrag-dev plugin with QA handoff and backport skills#2080
feat: Add openrag-dev plugin with QA handoff and backport skills#2080edwinjosechittilappilly wants to merge 6 commits into
Conversation
New sibling plugin for internal contributor/QA workflow skills (separate from the end-user-facing openrag plugin). First skill generates a QA handoff message for a release branch: per-commit fix summary, PR link, and grounded test steps within a date range, rendered from a bundled standard template. Includes a plugin README covering install/usage (Claude Code marketplace, Agent SDK, generic, and the third-party `npx skills` CLI), and updates the top-level plugin docs accordingly.
--skill matches against the frontmatter name (openrag_dev_qa_handoff), not the skill's directory name (qa-handoff) -- confirmed by running the CLI against this repo, which listed the skill under its frontmatter name.
WalkthroughAdds the internal ChangesOpenRAG developer workflow plugin
Estimated code review effort: 3 (Moderate) | ~20 minutes Suggested labels: Suggested reviewers: Sequence Diagram(s)QA handoff generationsequenceDiagram
participant Contributor
participant QAHandoffSkill
participant Git
participant GitHub
participant QAHandoffTemplate
Contributor->>QAHandoffSkill: Provide release branch and date range
QAHandoffSkill->>Git: Enumerate commits and read diffs
QAHandoffSkill->>GitHub: Resolve PR links and testing notes
QAHandoffSkill->>QAHandoffTemplate: Render structured handoff
QAHandoffTemplate-->>Contributor: Return QA handoff
Backport workflowsequenceDiagram
participant Contributor
participant BackportSkill
participant Git
participant GitHub
Contributor->>BackportSkill: Provide source and target branches
BackportSkill->>Git: Select, order, and cherry-pick commits
BackportSkill->>Git: Verify changes and prepare branches
BackportSkill->>GitHub: Open one PR per backported commit
GitHub-->>Contributor: Return backport PR results
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 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.
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 @.claude-plugin/marketplace.json:
- Around line 11-14: Add the missing plugin manifest at the openrag-dev plugin
directory referenced by the marketplace entry, using the expected plugin.json
filename and a valid JSON object containing at least name and version. Ensure
the manifest identifies the openrag-dev plugin consistently with the marketplace
entry.
In `@plugins/README.md`:
- Around line 99-107: Add the missing .claude/skills/qa-handoff symlink,
targeting ../../plugins/openrag-dev/skills/qa-handoff, so local Option 1 skill
discovery matches the repository documentation.
🪄 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: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: aa123b0c-cf95-47a0-9654-43354d94531f
📒 Files selected for processing (7)
.claude-plugin/marketplace.jsonAGENTS.mdfrontend/.husky/pre-commitplugins/README.mdplugins/openrag-dev/README.mdplugins/openrag-dev/skills/qa-handoff/SKILL.mdplugins/openrag-dev/skills/qa-handoff/TEMPLATE.md
💤 Files with no reviewable changes (1)
- frontend/.husky/pre-commit
| { | ||
| "name": "openrag-dev", | ||
| "source": "./plugins/openrag-dev", | ||
| "description": "Developer/QA workflow skills for OpenRAG contributors." |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check for the plugin manifest
fd -t f 'plugin.json' plugins/openrag-dev/.claude-plugin/ 2>/dev/null && cat plugins/openrag-dev/.claude-plugin/plugin.json || echo "NOT FOUND"Repository: langflow-ai/openrag
Length of output: 167
Add plugins/openrag-dev/.claude-plugin/plugin.json. The marketplace entry points at ./plugins/openrag-dev, but that directory does not contain the plugin manifest Claude Code expects for installs. Add a valid manifest with at least name and version.
🤖 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 @.claude-plugin/marketplace.json around lines 11 - 14, Add the missing plugin
manifest at the openrag-dev plugin directory referenced by the marketplace
entry, using the expected plugin.json filename and a valid JSON object
containing at least name and version. Ensure the manifest identifies the
openrag-dev plugin consistently with the marketplace entry.
- Add plugins/openrag-dev/skills/backport: automates backporting commits/PRs from a source branch into a target branch (e.g. a release branch into main) -- lists missing commits, skips ones already applied under a different SHA, resolves cross-commit ordering, resolves conflicts, verifies, and opens one PR per commit. - Add the openrag-dev plugin manifest (plugins/openrag-dev/.claude-plugin/plugin.json) and the .claude/skills/qa-handoff symlink, both referenced by existing docs but missing from the branch -- without them the plugin wasn't actually installable/discoverable. - Wire the new skill into AGENTS.md and the plugins READMEs alongside qa-handoff. Also restores frontend/.husky/pre-commit, which commit 589e367 deleted as collateral damage. Its content now matches main's exactly (cd frontend && npx lint-staged). The other three files that commit removed (post-checkout, post-commit, post-merge) were never on main -- they were transient artifacts of running `npx skills` locally in an earlier commit on this branch -- so their removal was correct and is left as-is.
|
React Doctor skipped this pull request — it changed no React files. Reviewed by React Doctor for commit |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
plugins/README.md (1)
29-32: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueFix alignment in the directory tree.
The
sdksymlink has one extra space before the arrow, causing it to misalign with the other entries.🛠️ Proposed fix
-│ ├── sdk -> ../../plugins/openrag/skills/sdk +│ ├── sdk -> ../../plugins/openrag/skills/sdk🤖 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 `@plugins/README.md` around lines 29 - 32, Adjust the spacing before the arrow on the sdk entry in the directory tree so its arrow aligns with the install, qa-handoff, and backport entries; leave the symlink targets unchanged.plugins/openrag-dev/skills/backport/SKILL.md (1)
16-16: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winEnsure commits are listed in chronological order.
git logoutputs commits in reverse chronological order by default (newest first). Since Step 4 instructs the agent to apply commits chronologically, listing them in reverse increases the risk of the agent applying them in the wrong order and causing spurious conflicts. Adding--reverseand--no-merges(to skip PR merge commits) will make the list naturally top-down for the agent.💡 Proposed change
- - Fetch both branches, then list commits reachable on source but not target: `git log <target>..<source> --oneline`. + - Fetch both branches, then list commits reachable on source but not target: `git log <target>..<source> --oneline --reverse --no-merges`.🤖 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 `@plugins/openrag-dev/skills/backport/SKILL.md` at line 16, Update the commit-listing command in the backport instructions to include --reverse and --no-merges, so source-only commits are displayed oldest first and merge commits are excluded. Preserve the existing target/source range and oneline output.
🤖 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 `@plugins/openrag-dev/skills/backport/SKILL.md`:
- Line 38: Update the empty-result handling in the backport procedure to
explicitly abort the active cherry-pick before deleting the branch or processing
the next commit. Preserve recording the commit as skipped and continuing
afterward, ensuring the Git sequencer is cleared first.
---
Nitpick comments:
In `@plugins/openrag-dev/skills/backport/SKILL.md`:
- Line 16: Update the commit-listing command in the backport instructions to
include --reverse and --no-merges, so source-only commits are displayed oldest
first and merge commits are excluded. Preserve the existing target/source range
and oneline output.
In `@plugins/README.md`:
- Around line 29-32: Adjust the spacing before the arrow on the sdk entry in the
directory tree so its arrow aligns with the install, qa-handoff, and backport
entries; leave the symlink targets unchanged.
🪄 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: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 951a01e9-e95c-44e2-865f-5e3bbd0850aa
📒 Files selected for processing (8)
.claude/skills/backport.claude/skills/qa-handoffAGENTS.mdplugins/README.mdplugins/openrag-dev/.claude-plugin/plugin.jsonplugins/openrag-dev/README.mdplugins/openrag-dev/skills/backport/SKILL.mdplugins/openrag-dev/skills/backport/TEMPLATE.md
🚧 Files skipped from review as they are similar to previous changes (1)
- AGENTS.md
|
|
||
| 1. Create a branch (naming: `backport/<PR#>-<short-desc>`) off target, or off the predecessor's backport branch if it's part of a dependency chain. | ||
| 2. Cherry-pick the commit. | ||
| - **Empty result** → already present on target (Step 3 confirmed this can happen) — delete the branch, record it as skipped, move to the next commit. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Abort the cherry-pick before switching branches to avoid breaking Git state.
When git cherry-pick fails because a commit is empty (already applied), Git halts and leaves the cherry-pick sequencer active. If the agent merely deletes the branch and moves on, the active sequencer state will cause all subsequent cherry-picks to fail with a cherry-pick is already in progress error, permanently blocking the rest of the automation.
Instruct the agent to explicitly abort the cherry-pick before cleaning up the branch.
🛡️ Proposed fix
- - **Empty result** → already present on target (Step 3 confirmed this can happen) — delete the branch, record it as skipped, move to the next commit.
+ - **Empty result** → already present on target (Step 3 confirmed this can happen) — abort the cherry-pick (`git cherry-pick --abort`), switch off the branch, delete it, record it as skipped, and move to the next commit.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - **Empty result** → already present on target (Step 3 confirmed this can happen) — delete the branch, record it as skipped, move to the next commit. | |
| - **Empty result** → already present on target (Step 3 confirmed this can happen) — abort the cherry-pick (`git cherry-pick --abort`), switch off the branch, delete it, record it as skipped, and move to the next commit. |
🤖 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 `@plugins/openrag-dev/skills/backport/SKILL.md` at line 38, Update the
empty-result handling in the backport procedure to explicitly abort the active
cherry-pick before deleting the branch or processing the next commit. Preserve
recording the commit as skipped and continuing afterward, ensuring the Git
sequencer is cleared first.


This pull request introduces a new
openrag-devplugin to the repository, providing internal developer and QA workflow skills for OpenRAG contributors. It updates documentation and symlinks to support this new plugin, and clarifies the plugin/skill system for both end users and contributors. The most important changes are grouped below:New plugin and skills for contributors:
openrag-devplugin underplugins/openrag-dev/, including a plugin manifest (.claude-plugin/plugin.json) and a dedicatedREADME.mdexplaining its purpose and usage. [1] [2]openrag_dev_qa_handofffor generating QA handoff messages, andopenrag_dev_backportfor automating cross-branch backports, each with detailedSKILL.mdand template files. [1] [2] [3]Repository configuration and integration:
openrag-devin.claude-plugin/marketplace.jsonso it can be installed via the Claude Code marketplace..claude/skills/forqa-handoffandbackportto point to the new skills inplugins/openrag-dev/skills/. [1] [2]Documentation improvements:
plugins/README.mdandAGENTS.mdto describe the new plugin, clarify the distinction between end-user and contributor skills, and document all five supported ways to consume skills (including thenpx skillsCLI). [1] [2] [3]These changes make it easier for OpenRAG contributors to automate common workflows and for all users to discover and install the appropriate set of agent skills.This pull request introduces a new internal plugin,
openrag-dev, focused on developer and QA workflow skills for OpenRAG contributors. It updates documentation to clarify the distinction between end-user skills and contributor skills, explains new installation and usage methods, and refines the overall plugin/skill directory structure. It also adds a new skill,openrag_dev_qa_handoff, with detailed implementation and usage instructions.New plugin and skill for contributor workflows:
openrag-devplugin underplugins/openrag-dev/, targeting internal contributors with workflow skills not meant for end users. [1] [2]openrag_dev_qa_handoffskill, which generates a QA handoff message for release branches, including commit summaries, PR links, and test steps. Detailed instructions and a rendering template are provided. [1] [2] [3]Documentation updates and improvements:
AGENTS.mdandplugins/README.mdto document the new plugin, explain its purpose, and list its skills. Clarified the difference between user-facing and contributor-facing plugins/skills. [1] [2]README.mdforopenrag-devwith installation, usage, and requirements for the new skill.npx skillsCLI as an agent-agnostic way to install skills, and updated all examples and symlink instructions to support multiple plugins. [1] [2]Other changes:
pre-commitlint-staged hook fromfrontend/.husky/pre-commit(possibly to simplify local dev workflows).Summary by CodeRabbit
New Features
openrag-devplugin with a QA handoff workflow for release branches.Documentation
Chores
Summary by CodeRabbit
New Features
openrag-devplugin for contributor and QA workflows.Documentation