ci: check Jira MCP availability before staging payload reverts - #384
Conversation
Add a preflight check (Step 1) in the stage-payload-reverts skill that verifies the Jira MCP server is working before launching subagents. If unavailable, the user is offered two options: fix the MCP config and retry, or continue without Jira (skipping issue creation). When running autonomously, defaults to continuing without Jira. Also generalizes hardcoded MCP tool names (mcp__jira__jira_search, etc.) to work with any Jira MCP server variant. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
WalkthroughVersion update from 0.0.30 to 0.0.31 across plugin manifests and docs. The stage-payload-reverts skill documentation was restructured to add a Step 1 Jira MCP availability preflight, renumber subsequent steps to Step 2–Step 5, replace specific Jira calls with generic MCP search/create tools, and update error-handling and reporting flows. Changes
Sequence Diagram(s)sequenceDiagram
rect rgba(220,220,255,0.5)
participant Orchestrator
end
rect rgba(200,255,200,0.5)
participant JiraMCP
end
rect rgba(255,220,220,0.5)
participant Subagents
end
rect rgba(255,255,200,0.5)
participant Repo
end
Orchestrator->>JiraMCP: Step 1 - Check MCP availability
JiraMCP-->>Orchestrator: Available / Unavailable
alt Available
Orchestrator->>Subagents: Launch subagents (Steps 2–3)
Subagents-->>Orchestrator: Candidate payloads
Orchestrator->>JiraMCP: Search MCP / Create issue (Step 3)
JiraMCP-->>Orchestrator: Issue key or failure
Orchestrator->>Repo: Create revert PR (Step 4)
Repo-->>Orchestrator: PR URL (Step 4/5)
Orchestrator->>Orchestrator: Report results / HTML report (Step 5)
else Unavailable
Orchestrator->>Orchestrator: Offer recovery (Fix & retry / Continue without Jira)
opt Continue without Jira
Orchestrator->>Subagents: Launch subagents (Steps 2–3)
Subagents-->>Orchestrator: Candidate payloads
Orchestrator->>Repo: Create revert PRs without Jira (Step 4)
Repo-->>Orchestrator: PR URLs
Orchestrator->>Orchestrator: Report results / HTML report (Step 5)
end
end
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 Pre-merge checks | ✅ 8✅ Passed checks (8 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
Comment |
When the user chooses to continue without Jira, print the issue details (project, type, summary, description, labels) for each candidate so the user can create them manually. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@plugins/ci/skills/stage-payload-reverts/SKILL.md`:
- Around line 60-62: The fenced code block containing the JQL query (the block
that begins with ``` and has the line 'jql: project = TRT AND labels =
"trt-incident" AND description ~ "{pr_url}" ORDER BY created DESC') is missing a
language identifier and triggers markdownlint MD040; update the opening fence to
include the language identifier by changing the opening triple backticks to
specify "jql" (i.e., use ```jql) so the block is annotated correctly and the
linter warning is resolved.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 94457907-6790-4d00-bdc7-f7fd49d6aac0
📒 Files selected for processing (4)
.claude-plugin/marketplace.jsondocs/data.jsonplugins/ci/.claude-plugin/plugin.jsonplugins/ci/skills/stage-payload-reverts/SKILL.md
| ``` | ||
| jql: project = TRT AND labels = "trt-incident" AND description ~ "{pr_url}" ORDER BY created DESC | ||
| ``` |
There was a problem hiding this comment.
Add a language identifier to the fenced JQL block.
Line 60 starts a fenced block without a language, which triggers markdownlint MD040.
Suggested fix
-```
+```jql
jql: project = TRT AND labels = "trt-incident" AND description ~ "{pr_url}" ORDER BY created DESC</details>
<details>
<summary>🧰 Tools</summary>
<details>
<summary>🪛 markdownlint-cli2 (0.21.0)</summary>
[warning] 60-60: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
</details>
</details>
<details>
<summary>🤖 Prompt for AI Agents</summary>
Verify each finding against the current code and only fix it if needed.
In @plugins/ci/skills/stage-payload-reverts/SKILL.md around lines 60 - 62, The
fenced code block containing the JQL query (the block that begins with and has the line 'jql: project = TRT AND labels = "trt-incident" AND description ~ "{pr_url}" ORDER BY created DESC') is missing a language identifier and triggers markdownlint MD040; update the opening fence to include the language identifier by changing the opening triple backticks to specify "jql" (i.e., usejql) so
the block is annotated correctly and the linter warning is resolved.
</details>
<!-- fingerprinting:phantom:poseidon:hawk -->
<!-- This is an auto-generated comment by CodeRabbit -->
There was a problem hiding this comment.
♻️ Duplicate comments (1)
plugins/ci/skills/stage-payload-reverts/SKILL.md (1)
60-62:⚠️ Potential issue | 🟡 MinorAdd a language identifier to the JQL fenced block.
Line 60 still uses an unlabeled fenced block; markdownlint MD040 expects a language tag (e.g.,
jql).🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@plugins/ci/skills/stage-payload-reverts/SKILL.md` around lines 60 - 62, The fenced JQL block that currently contains the text "jql: project = TRT AND labels = "trt-incident" AND description ~ "{pr_url}" ORDER BY created DESC" needs a language identifier; update the opening triple-backtick fence to include the language tag jql so the block becomes a labeled JQL code block (add the identifier to the fenced block that wraps the shown JQL).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In `@plugins/ci/skills/stage-payload-reverts/SKILL.md`:
- Around line 60-62: The fenced JQL block that currently contains the text "jql:
project = TRT AND labels = "trt-incident" AND description ~ "{pr_url}" ORDER BY
created DESC" needs a language identifier; update the opening triple-backtick
fence to include the language tag jql so the block becomes a labeled JQL code
block (add the identifier to the fenced block that wraps the shown JQL).
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 794e226b-34d5-4661-bf60-090113e9e0a0
📒 Files selected for processing (1)
plugins/ci/skills/stage-payload-reverts/SKILL.md
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: smg247, stbenjam The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/override ci/prow/images |
|
@stbenjam: Overrode contexts on behalf of stbenjam: ci/prow/images DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Summary
stage-payload-revertsskill before launching subagents🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Chores