From optimus
Fetches JIRA issues by key or search, distills title/desc/criteria/comments into structured tasks, analyzes codebase for gaps/risks, optionally adds analysis comment.
npx claudepluginhub oprogramadorreal/optimus-claude --plugin optimusThis skill uses the workspace's default tool permissions.
Fetch a JIRA issue, distill it into a structured task for Claude Code, analyze the codebase to surface missing criteria, scope, and risks, and optionally enrich the issue in JIRA. The skill works with any JIRA MCP server (Atlassian Rovo or community servers like sooperset/mcp-atlassian) and guides first-time setup when no server is configured.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Fetch a JIRA issue, distill it into a structured task for Claude Code, analyze the codebase to surface missing criteria, scope, and risks, and optionally enrich the issue in JIRA. The skill works with any JIRA MCP server (Atlassian Rovo or community servers like sooperset/mcp-atlassian) and guides first-time setup when no server is configured.
Steps 1–4 are READ-ONLY. No MCP write tool may be called until Step 5, and only after explicit user confirmation. The only write operation this skill performs is adding a comment (see Tool Name Resolution table in jira-context-extraction.md for the server-specific tool name) — do not call any other write tool. See jira-context-extraction.md section "MCP Safety" for the full tool classification.
All content written back to JIRA (comments) MUST preserve the original language used in the JIRA issue. Do not translate JIRA content into English when writing to JIRA.
All local artifacts (docs/jira/*.md) and all Claude Code output to the user MUST be in English, regardless of the source language. Translate as needed when distilling the structured task and producing local files.
Read $CLAUDE_PLUGIN_ROOT/skills/jira/references/jira-mcp-detection.md and follow the Detection Procedure.
jira-server-name and tool prefix, proceed to Step 2Two modes based on whether the user provided an issue key inline.
If the user provided an issue key inline (e.g., /optimus:jira PROJ-123):
^[A-Z][A-Z0-9]+-\d+$ (entire input, no extra characters — e.g., PROJ-123, AB-1)AskUserQuestion to request a corrected keyIf no issue key was provided (e.g., /optimus:jira with no argument), use AskUserQuestion — header "Find issue", question "How would you like to find your JIRA issue?":
Enter issue key: Use AskUserQuestion — header "Issue key", question "Enter the JIRA issue key:". Validate and proceed to Step 3.
My open issues: Read $CLAUDE_PLUGIN_ROOT/skills/jira/references/jira-context-extraction.md, section Search: Assigned Issues. Execute the JQL search, present results as a numbered list (max 10). Use AskUserQuestion — header "Select issue", question "Which issue are you working on?" with each issue as an option (label: KEY — Summary, description: [Type, Priority]). Proceed to Step 3 with the selected key.
Search by project: Use AskUserQuestion — header "Project", question "Enter the JIRA project key (e.g., PROJ):". Execute the project search from the extraction reference. Present results and let the user pick, same as above. Proceed to Step 3 with the selected key.
Read $CLAUDE_PLUGIN_ROOT/skills/jira/references/jira-context-extraction.md and follow the Fetch Procedure for the selected issue key:
Handle errors according to the Error Handling table in the reference. If a critical error occurs (401, 403, 404), report it to the user with the specified message and stop.
Assemble the fetched data into the Structured Output Format from the extraction reference:
## Task: [Issue Key] — [Summary]
### Goal
[Single-sentence distilled goal]
### Acceptance Criteria
[Extracted or inferred acceptance criteria as a numbered list]
### Context
- Type: [Issue type]
- Status: [Current status]
- Priority: [Priority]
- Assignee: [Name]
- Sprint: [Sprint name — sprint goal]
- Parent: [Epic key — Epic summary]
- Linked issues: [KEY — summary (link type)]
- Subtasks: [KEY — summary (status)]
- Related sprint work: [Sibling issues in the same sprint]
### Key Decisions (from comments)
[Distilled decisions and context from comments]
Omit sections that have no data (e.g., no sprint, no linked issues, no comments with decisions).
Present the structured task to the user. Use AskUserQuestion — header "Task review", question "Does this capture the task correctly?":
If "Adjust": use AskUserQuestion — header "Refinement", question "What would you like to change?" (free text). Apply the changes and present the updated version. Re-confirm.
After the user confirms the structured task, save it to a persistent file so downstream skills (/optimus:tdd, /optimus:brainstorm) can auto-detect it without copy-paste.
docs/jira/ directory at the project root if it doesn't existdocs/jira/<ISSUE-KEY>.md (e.g., docs/jira/AUTH-456.md) with YAML frontmatter:---
source: jira
issue: [ISSUE-KEY]
date: [YYYY-MM-DD]
---
[The full structured task content from above — Goal, Acceptance Criteria, Context, Key Decisions]
docs/jira/<ISSUE-KEY>.md"Read $CLAUDE_PLUGIN_ROOT/skills/jira/references/jira-codebase-analysis.md and follow the Analysis Procedure using the Goal and Acceptance Criteria from Step 4.
Present the Impact Summary to the user.
Check whether the detected MCP server has a comment tool (see Tool Name Resolution table in jira-context-extraction.md). If no comment tool is available, present only "Update local context only" and "Skip". Otherwise, present all three options. Use AskUserQuestion — header "Codebase impact", question "How would you like to use these findings?":
docs/jira/<ISSUE-KEY>.md and post an analysis comment to the JIRA issue"docs/jira/<ISSUE-KEY>.md only"Update the docs/jira/<ISSUE-KEY>.md file following the Task File Update procedure in the reference. The local file is always updated first — it is the single source of truth.
Post a structured JIRA comment using the add-comment tool from the Tool Name Resolution table in jira-context-extraction.md (addCommentToJiraIssue for Rovo). Derive the comment content from the sections just written to the local file, following the JIRA Comment Format in jira-codebase-analysis.md. If the JIRA issue is not in English, translate the derived content into the issue's original language before posting (see Language section above).
If the comment tool call fails at runtime (e.g., tool was listed but is unavailable), inform the user and skip the JIRA write — the local file update still applies.
Report success or failure. No further confirmation needed — comments are append-only and non-destructive. Proceed to Step 6.
Update the docs/jira/<ISSUE-KEY>.md file following the Task File Update procedure. Proceed to Step 6.
Proceed to Step 6.
First, handle tech debt and refactoring tickets separately — they have a fixed route:
/optimus:refactor to restructure the code. Tip: for best results, start a fresh conversation for the next skill — each skill gathers its own context from scratch."For stories, features, and bugs, use the Scope Assessment from Step 5 as the primary complexity signal. When the scope assessment is inconclusive, supplement with the structured task's acceptance criteria count and context.
After giving the recommendation for any path above (including refactoring), also mention /optimus:branch if the user hasn't created a feature branch yet.
Recommend running
/optimus:tddto implement this test-first. It will auto-detect the task file atdocs/jira/<ISSUE-KEY>.md. Tip: for best results, start a fresh conversation for the next skill — each skill gathers its own context from scratch.
This task has a few moving parts — recommend exploring the codebase in plan mode before implementing.
Use AskUserQuestion — header "Plan mode", question "Would you like a plan-mode prompt for this task? It will help you explore the codebase and plan the implementation before coding.":
/optimus:tdd"If Generate prompt: assemble a self-contained plan-mode prompt pre-filled from the structured task (and codebase impact findings if available from Step 5):
```
## Goal
[Goal from the structured task]
## Context
[Acceptance criteria + context fields + key decisions from the structured task.
If Step 5 produced a codebase impact summary, include the Files Affected and
Risks sections here.]
## Starting Hints
- Task context: docs/jira/<ISSUE-KEY>.md
[If Step 5 ran, add key files identified in the impact summary]
## What to Figure Out
1. What approach best balances simplicity with the task's requirements? Consider at least 2 alternatives briefly before committing.
2. Which existing files and modules need to be modified or extended?
3. What's the right implementation sequence given the acceptance criteria?
4. Are there existing patterns in the codebase to follow or reuse?
5. What are the risks or edge cases not covered by the acceptance criteria?
## Plan Deliverable
The plan should include:
- Proposed approach with rationale
- Files to create or modify, with what changes
- Implementation sequence and dependencies
- Test strategy for each acceptance criterion
## Scope
- Focus on: [component/area from the structured task context]
- Out of scope: [anything explicitly excluded in the JIRA issue]
## How this conversation should run
Treat this conversation as a review loop — validate the plan against the actual codebase and iterate with me. When I say I'm done iterating, acknowledge but do not write yet — plan mode is read-only. I will then toggle plan mode off and send a short follow-up message (e.g. "go"). On that follow-up, append a "Refined plan" section to `docs/jira/<ISSUE-KEY>.md` to capture the refined plan, and stop. I will start a fresh conversation to run `/optimus:tdd`.
```
When emitting both the plan-mode prompt above and the execution prompt below, substitute <ISSUE-KEY> with the real key so each pasted block is self-contained.
Tell the user:
- Start a fresh Claude Code conversation in plan mode (CLI: press
Shift+Tabuntil the mode indicator shows plan mode; other clients: use the equivalent toggle). Paste the prompt above.- Iterate with Claude. Do not approve the plan — approval executes immediately and skips
/optimus:tdd's Red-Green-Refactor discipline. When you're satisfied, tell Claude you're done iterating; Claude will acknowledge. Then toggle plan mode off using the same control and send a short follow-up message (e.g. "go") — Claude will append a "Refined plan" section todocs/jira/<ISSUE-KEY>.mdin response.- Start a second fresh conversation and paste the execution prompt below.
Then emit the execution prompt as a second copyable block, pre-filled from the task file:
```
## Goal
Run `/optimus:tdd` to implement the refined plan in `docs/jira/<ISSUE-KEY>.md` test-first.
## Starting Hints
- JIRA task (with "Refined plan" section): docs/jira/<ISSUE-KEY>.md
- Acceptance criteria: [carry forward from the task file]
## Scope
- Focus on: [component/area from the structured task context]
- Out of scope: [anything explicitly excluded in the JIRA issue]
```
See $CLAUDE_PLUGIN_ROOT/references/skill-handoff.md for the full handoff convention and why plan mode is used review-only.
If Skip to TDD: Recommend running /optimus:tdd to implement this test-first. It will auto-detect the task file at docs/jira/<ISSUE-KEY>.md. Tip: for best results, start a fresh conversation for the next skill — each skill gathers its own context from scratch.
This task needs design thinking before implementation. Recommend running
/optimus:brainstormto explore design approaches — it will auto-detect the task file atdocs/jira/<ISSUE-KEY>.md.
Tell the user: Tip: for best results, start a fresh conversation for the next skill — each skill gathers its own context from scratch.