Skip to content

feat: Add openrag-dev plugin with QA handoff and backport skills#2080

Open
edwinjosechittilappilly wants to merge 6 commits into
mainfrom
openrag-dev-plugin
Open

feat: Add openrag-dev plugin with QA handoff and backport skills#2080
edwinjosechittilappilly wants to merge 6 commits into
mainfrom
openrag-dev-plugin

Conversation

@edwinjosechittilappilly

@edwinjosechittilappilly edwinjosechittilappilly commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

This pull request introduces a new openrag-dev plugin 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:

  • Added the openrag-dev plugin under plugins/openrag-dev/, including a plugin manifest (.claude-plugin/plugin.json) and a dedicated README.md explaining its purpose and usage. [1] [2]
  • Introduced two new internal skills: openrag_dev_qa_handoff for generating QA handoff messages, and openrag_dev_backport for automating cross-branch backports, each with detailed SKILL.md and template files. [1] [2] [3]

Repository configuration and integration:

  • Registered openrag-dev in .claude-plugin/marketplace.json so it can be installed via the Claude Code marketplace.
  • Added symlinks in .claude/skills/ for qa-handoff and backport to point to the new skills in plugins/openrag-dev/skills/. [1] [2]

Documentation improvements:

  • Updated plugins/README.md and AGENTS.md to describe the new plugin, clarify the distinction between end-user and contributor skills, and document all five supported ways to consume skills (including the npx skills CLI). [1] [2] [3]
  • Clarified skill authoring and versioning instructions to support multiple plugins and contributor-focused workflows.

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:

  • Added the openrag-dev plugin under plugins/openrag-dev/, targeting internal contributors with workflow skills not meant for end users. [1] [2]
  • Introduced the openrag_dev_qa_handoff skill, 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:

  • Updated AGENTS.md and plugins/README.md to document the new plugin, explain its purpose, and list its skills. Clarified the difference between user-facing and contributor-facing plugins/skills. [1] [2]
  • Added a dedicated README.md for openrag-dev with installation, usage, and requirements for the new skill.
  • Enhanced installation instructions to include the npx skills CLI as an agent-agnostic way to install skills, and updated all examples and symlink instructions to support multiple plugins. [1] [2]

Other changes:

  • Removed the pre-commit lint-staged hook from frontend/.husky/pre-commit (possibly to simplify local dev workflows).

Summary by CodeRabbit

  • New Features

    • Added the openrag-dev plugin with a QA handoff workflow for release branches.
    • Added a standardized template for documenting fixes, pull requests, and testing steps.
  • Documentation

    • Expanded plugin installation, consumption, authoring, and versioning guidance.
    • Documented the new developer workflow and available installation options.
  • Chores

    • Updated repository plugin listings and contributor skill references.
    • Simplified frontend commit checks by removing the lint-staged pre-commit step.

Summary by CodeRabbit

  • New Features

    • Added the internal openrag-dev plugin for contributor and QA workflows.
    • Added workflows for generating release-branch QA handoffs and backporting changes across branches.
    • Added standardized templates for QA handoff messages and backport pull requests.
    • Registered the plugin for marketplace installation and documented supported usage paths.
  • Documentation

    • Expanded plugin layout, installation, authoring, and versioning guidance.
    • Documented workflow requirements, examples, testing steps, and edge-case handling.

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.
@github-actions github-actions Bot added the frontend 🟨 Issues related to the UI/UX label Jul 13, 2026
@edwinjosechittilappilly

Copy link
Copy Markdown
Collaborator Author
Screenshot 2026-07-13 at 1 11 42 PM

@github-actions github-actions Bot added the enhancement 🔵 New feature or request label Jul 13, 2026
@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Adds the internal openrag-dev plugin with QA handoff and backport skills, manifests, templates, documentation, marketplace registration, and Claude Code symlinks.

Changes

OpenRAG developer workflow plugin

Layer / File(s) Summary
Plugin registration and distribution
.claude-plugin/marketplace.json, plugins/README.md, plugins/openrag-dev/..., .claude/skills/*, AGENTS.md
Registers openrag-dev, adds its manifest and documentation, updates plugin authoring and consumption guidance, and links both skills for Claude Code discovery.
QA handoff skill workflow
plugins/openrag-dev/skills/qa-handoff/*
Defines date-range commit discovery, PR and diff evidence handling, edge cases, and the standardized QA handoff template.
Backporting skill workflow
plugins/openrag-dev/skills/backport/*
Defines candidate selection, dependency ordering, cherry-pick and conflict handling, verification, PR creation, edge cases, and the backport PR template.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Suggested labels: enhancement

Suggested reviewers: lucaseduoli

Sequence Diagram(s)

QA handoff generation

sequenceDiagram
  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
Loading

Backport workflow

sequenceDiagram
  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
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding the openrag-dev plugin with QA handoff and backport skills.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch openrag-dev-plugin

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.

@edwinjosechittilappilly

Copy link
Copy Markdown
Collaborator Author
Screenshot 2026-07-13 at 1 48 49 PM

@github-actions github-actions Bot added enhancement 🔵 New feature or request and removed enhancement 🔵 New feature or request labels Jul 13, 2026

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

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

📥 Commits

Reviewing files that changed from the base of the PR and between 89769ff and 59130ec.

📒 Files selected for processing (7)
  • .claude-plugin/marketplace.json
  • AGENTS.md
  • frontend/.husky/pre-commit
  • plugins/README.md
  • plugins/openrag-dev/README.md
  • plugins/openrag-dev/skills/qa-handoff/SKILL.md
  • plugins/openrag-dev/skills/qa-handoff/TEMPLATE.md
💤 Files with no reviewable changes (1)
  • frontend/.husky/pre-commit

Comment on lines +11 to +14
{
"name": "openrag-dev",
"source": "./plugins/openrag-dev",
"description": "Developer/QA workflow skills for OpenRAG contributors."

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.

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

Comment thread plugins/README.md
Comment thread frontend/.husky/pre-commit
- 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.
@github-actions github-actions Bot added enhancement 🔵 New feature or request and removed enhancement 🔵 New feature or request labels Jul 16, 2026
@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

React Doctor skipped this pull request — it changed no React files.

Reviewed by React Doctor for commit d9f145c.

@github-actions github-actions Bot added enhancement 🔵 New feature or request and removed enhancement 🔵 New feature or request labels Jul 16, 2026
@edwinjosechittilappilly edwinjosechittilappilly changed the title feat: Add openrag-dev plugin with QA handoff skill and documentation updates feat: Add openrag-dev plugin with QA handoff and backport skills Jul 16, 2026
@github-actions github-actions Bot added enhancement 🔵 New feature or request and removed enhancement 🔵 New feature or request labels Jul 16, 2026
@github-actions github-actions Bot added enhancement 🔵 New feature or request and removed enhancement 🔵 New feature or request labels Jul 16, 2026

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

Actionable comments posted: 1

🧹 Nitpick comments (2)
plugins/README.md (1)

29-32: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Fix alignment in the directory tree.

The sdk symlink 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 win

Ensure commits are listed in chronological order.

git log outputs 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 --reverse and --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

📥 Commits

Reviewing files that changed from the base of the PR and between 59130ec and d9f145c.

📒 Files selected for processing (8)
  • .claude/skills/backport
  • .claude/skills/qa-handoff
  • AGENTS.md
  • plugins/README.md
  • plugins/openrag-dev/.claude-plugin/plugin.json
  • plugins/openrag-dev/README.md
  • plugins/openrag-dev/skills/backport/SKILL.md
  • plugins/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.

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.

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

Suggested change
- **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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DO NOT MERGE enhancement 🔵 New feature or request frontend 🟨 Issues related to the UI/UX

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants