Issue
| This documentation was generated with the assistance of AI. Please report any inaccuracies. |
Take a tracked ticket — a GitHub issue or a Jira ticket — from "just filed" to "pull request open for review,
with review comments already left" in one pass. This skill orchestrates iru-explore, iru-plan, iru-code,
iru-pr-description, and iru-pr-review — it does not duplicate their logic, it sequences them around branch creation,
ticket triage, and PR creation.
Purpose
iru-issue is the top-level, end-to-end entry point for working a tracked ticket, auto-detecting whether it’s a
GitHub issue or a Jira key the same way iru-explore does. Unlike iru-explore and iru-plan, it requires a ticket id and
stops immediately if none is given. It fetches the ticket, classifies it as a feature or a hotfix, then works out
which branch the work should be based on: it detects whether the run is happening locally or in a Claude Code
cloud/web session (from a claude/ branch name and sandbox/environment markers), proposes the current branch as
the base for a local run and the repository’s default branch — never the throwaway claude/ session branch — for
a cloud run, and always asks the user to confirm that base before branching, since it is both the fork point and
the pull request’s eventual destination. It creates the matching branch off the confirmed base, runs iru-explore
and iru-plan to produce a reviewable implementation_plan.md — recording the confirmed base in the plan’s Task
summary as a Base branch: line, so that a later, separate /iru-pr-description session can recover the choice —
then — depending on
the user’s choice — either stops for manual review or hands implementation off to iru-code inside a sub-agent.
Once implementation finishes successfully, it attaches the archived implementation plan back onto the original
ticket — as a GitHub issue comment (via gh issue comment, since GitHub’s API has no generic file-attachment
endpoint) or a Jira attachment/comment (via connected Jira MCP tools) — so a future exploration of that same
ticket has the full plan as precedent, skipping this step entirely if iru-code never actually archived a plan.
It then pushes the branch, opens the pull request (as a draft, using whichever tooling matches the detected
repository host), drafts its description with iru-pr-description, and leaves an initial review on it with
iru-pr-review. If iru-code’s security gate (backed by `iru-check-security) ever fires during implementation — even if
iru-code goes on to resolve it and finish cleanly — this skill treats that as a hard stop distinct from an ordinary
blocker: it warns the user with the specifics and never attaches anything to the ticket, pushes the branch, or
opens a PR for that run.
Inputs
| Argument | Required | Description | Default |
|---|---|---|---|
|
Yes |
A GitHub issue number or a Jira key (e.g. |
None — no default; this is the one catalog skill that hard-stops without a ticket id. |
Outputs
-
A new local branch,
feature/<ticket-id>orhotfix/<ticket-id>depending on classification, created off the branch/iru-issuewas invoked from. -
implementation_plan.mdat the repository root (produced byiru-plan), ready for manual review, or already executed byiru-codeif the user chose automatic implementation. -
If implementation proceeded automatically and completed successfully, with
iru-code’s security gate never firing: the archived plan attached back onto the ticket (a GitHub comment or a Jira attachment/comment), or skipped with no error if `iru-codenever archived one; the branch pushed toorigin, a pull request opened as a draft back to the base branch (title"<ticket-title> (#<ticket-id>)"or"(<ticket-id>)"for Jira, body linking the ticket via the convention matching the detected host), its description filled in byiru-pr-description, and an initial review left on it byiru-pr-review. -
If the user chose manual review instead,
iru-codereports a blocker, or `iru-code’s security gate ever fired during the run, the skill stops short of attaching anything, pushing, or opening a PR, and reports exactly where it stopped — for the security-gate case, with an explicit warning naming what was flagged and reminding the user to verify the resolution themselves before pushing anything. -
A final summary: ticket id/title, classification and why, the branch and its base, and one of: manual review pending, the security gate fired (with the sub-agent’s implementation summary and what was flagged), or the full implementation/PR/review outcome — always noting the PR is a draft still needing the user’s own review.
Execution flow
Dependencies
Invokes
-
Explore — Step 5 runs
iru-explorescoped to the ticket id as the first step of the explore → plan → code → PR pipeline. -
Plan — Step 5 runs
iru-planscoped to the ticket id right afteriru-explore, producingimplementation_plan.md. -
Code — Step 6, when the user chooses automatic implementation over manual review, runs
iru-codevia theiru-isolated-skill-executoragent so the whole implementation run starts from a clean context rather than carrying the exploration/planning transcript into it. -
PR Description — Step 7 invokes it to draft the new pull request’s description from the actual diff, then re-checks its output still references the ticket.
-
PR Review — Step 7 invokes it, passing both the new PR’s id and the ticket id explicitly (rather than relying on its own auto-detection), to leave an initial review on the PR.
Invoked by
None — iru-issue is a top-level entry point; no other skill in this catalog invokes it, though
Create GitHub Issue and Create Jira Ticket each file a ticket meant to be
picked up by a subsequent, separate /iru-issue invocation.
Related agents
-
iru-isolated-skill-executor— wraps the entireiru-coderun in Step 6, so implementation happens in an isolated context and this skill can keep running afterward to open the pull request in Step 7.
Source
SKILL.md on GitHub — the file this page was generated from.