# Rig Issue

> Create, view, move, or manage tickets in the project's issue tracker (Linear, GitHub Issues, or none). Triggers on: 'ticket', 'create ticket', 'move ticket', 'ticket board', 'show tickets', 'list tickets'.

- **Type:** Skill
- **Install:** `agentstack add skill-agent-rig-rig-rig-issue`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [agent-rig](https://agentstack.voostack.com/s/agent-rig)
- **Installs:** 0
- **Category:** [Developer Tools](https://agentstack.voostack.com/c/developer-tools)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [agent-rig](https://github.com/agent-rig)
- **Source:** https://github.com/agent-rig/rig/tree/main/skills/rig-issue

## Install

```sh
agentstack add skill-agent-rig-rig-rig-issue
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Ticket Manager

Manage tickets in whatever issue tracker the project is bound to. The
tracker is **config-driven** — read `.rig/config.json` first and
dispatch on `tracker.provider`. Never hardcode a team or project name.

## Configuration

Reads `.rig/config.json` (missing keys → defaults):

| Key | Default | Used for |
|---|---|---|
| `tracker.provider` | `none` | `linear` \| `github` \| `none`. Selects the backend. |
| `tracker.team` | — | Linear team name/key, or GitHub org, scoping list/create. |
| `tracker.project` | — | Linear project name for list/create. |
| `tracker.ticketPrefix` | — | Identifier prefix (e.g. `ABC-`) to recognize IDs. |
| `tracker.labelMapFile` | `.claude/label-mapping.md` | Label source-of-truth for create. |
| `tracker.githubIntegration` | `false` | If true, do NOT manually move states (see below). |

**If `tracker.provider` is `none`:** this skill can't run. Explain that
ticket management needs a tracker, and point the user at
`.rig/config.json` → set `tracker.provider` to `linear` or `github`
(with `team`/`project`). Stop there.

## Arguments

The user invoked this with: $ARGUMENTS

## Actions

Parse the user's request as one of the actions below. Each action lists
the Linear and GitHub form — use the one matching `tracker.provider`.

### `board` or `list` (default if no args)

- **Linear:** `mcp__claude_ai_Linear__list_issues` with `project` =
  `tracker.project`, `team` = `tracker.team`, `limit: 100`.
- **GitHub:** `gh issue list --limit 100 --json number,title,state,labels`
  (add `--repo ` from `project.repo` if not in-repo).
  - **If `tracker.board` is configured, prefer the tracker adapter** so you get
    the real board columns (Status), which `gh issue list` can't see: run
    ` select --limit 100` (and `--status ` / `--dispatchable` to
    filter), where `` = `.rig/rig-tracker` if executable else
    `/scripts/rig-tracker.sh`. It returns `{number,title,url,status,labels,…}`
    JSON. See [`docs/tracker-adapter.md`](../../docs/tracker-adapter.md).

Display results grouped by status (Backlog, Todo, In Progress, In
Review, Done — or GitHub's open/closed with labels). If the result is
truncated (a full cursor page came back), say so and offer to page
rather than silently showing a partial board.

### `show `

- **Linear:** `mcp__claude_ai_Linear__get_issue` with the identifier
  (e.g. `18`).
- **GitHub:** `gh issue view  --json ...`.

### `create ` or `new `

- **Linear:** `mcp__claude_ai_Linear__save_issue` with
  `team` = `tracker.team`, `project` = `tracker.project`, `title` = the
  provided title, `state: "Backlog"`, `priority: 3` (Normal).
- **GitHub:** `gh issue create --title ""` (with `--repo` if
  needed).

**Labels:** if `tracker.labelMapFile` exists, read it and apply the
mapping — typically one **type** label (feature/bug/chore, from the
work's intended conventional-commit type) **plus any area** labels the
work will touch. This is the same mapping a deterministic PR labeler
would apply to the eventual PR, so the ticket and PR agree. If the file
is **absent, skip label logic gracefully** — create the ticket without
labels and note that no label map was found.

Then ask the user if they want to add a description. If yes, update the
issue (Linear: `save_issue` with `id` + `description`; GitHub:
`gh issue edit  --body ...`).

### `move  `

**Guard — `tracker.githubIntegration`:** if true, a GitHub integration
auto-transitions tracker state from branch/PR events. In that case do
**NOT** move states manually — explain that state is driven by GitHub
activity (open a branch/PR to advance it) and skip the transition. This
preserves the origin's "don't move states by hand" rule behind the flag.

Otherwise, map the requested status:
- backlog → "Backlog"
- todo/ready → "Todo"
- in-progress → "In Progress"
- review → "In Review"
- done → "Done"
- canceled → "Canceled"

- **Linear:** `mcp__claude_ai_Linear__save_issue` with `id` + `state`.
- **GitHub:** GitHub Issues have only open/closed —
  `gh issue close`/`gh issue reopen`, and reflect finer status via
  labels/project fields if the repo uses them.
  - **If `tracker.board` is configured, move the board column via the adapter**
    (`gh issue edit` can't touch a ProjectV2 Status field): run
    ` set-status  ""` (resolver as in `board` above).
    Still `close`/`reopen` the underlying issue for the open/closed transition.

### `edit `

Fetch the issue, show it to the user, let them describe changes, then
update (Linear: `save_issue`; GitHub: `gh issue edit`).

### `deps `

Fetch the issue and show its blocking/blocked-by relations. (Linear
exposes these natively; on GitHub, surface any "blocked by #N" text or
task-list references.)

## Priority Mapping

When setting priority (Linear numeric priority):
- critical/urgent → 1
- high → 2
- medium/normal → 3
- low → 4

On GitHub, express priority via labels if the repo defines them; skip
otherwise.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [agent-rig](https://github.com/agent-rig)
- **Source:** [agent-rig/rig](https://github.com/agent-rig/rig)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-agent-rig-rig-rig-issue
- Seller: https://agentstack.voostack.com/s/agent-rig
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
