# Issues

> Manage issues from the command line — list, create with AI dedup, update, and status shortcuts.

```bash
getresolved issue <action> [...]
```

**Actions** *(aliases in parens)*: `list` (`ls`), `show` (`view`, `get`), `create` (`new`), `update` (`edit`), `start`, `done`, `dismiss`, `icebox` (`park`), `reopen`, `assign`, `help`.

`<id>` accepts either a shortcode (e.g. `GET-005`) or a UUID. Both work everywhere a single issue is addressed.

**Enums**

- `status`: `pending` → `in_progress` → `done` → `released` | `dismissed`. `released` is set automatically by the system when an issue is linked to a release — don't set it manually. Any non-terminal status can be parked into `icebox` and brought back.
- `priority`: `low` | `normal` | `high` | `urgent`

## List

```bash
getresolved issue list                                  # current product
getresolved issue list --status=pending,in_progress --priority=high,urgent
getresolved issue list --mine                           # only issues assigned to you
getresolved issue list --limit=20 --offset=40
getresolved issue list --json                           # for jq pipelines
```

**Filters**

- `--status=<csv>`, `--priority=<csv>` — comma-separated; values must match the enums above
- `--product=<id>` — override the linked product for this call
- `--mine` — client-side filter, only issues assigned to the API key's member
- `--limit=<n>` — default 50, max 200
- `--offset=<n>` — pagination offset (responses include `pagination.total`)

## Show

Returns the issue plus its linked conversations.

```bash
getresolved issue show GET-080
getresolved issue show GET-080 --json
```

## Create — deduplicates by default

`create` calls `POST /issues/maybe`, which runs AI duplicate detection against pending and in-progress issues for the product (matching across paraphrasing and translation). The response includes `matched_existing` (boolean) plus `data.shortcode`.

```bash
getresolved issue create --title="Fix signup redirect" --priority=high
getresolved issue create --title="…" --description="…" --priority=normal
getresolved issue create --title="…" --no-dedup        # alias: --raw — debugging only
```

**Fields**

- `--title="…"` *(required)* — short imperative title
- `--description="…"` — optional context; helps the dedup match across phrasings
- `--priority=low|normal|high|urgent`
- `--no-dedup` *(alias: `--raw`)* — bypass `/issues/maybe` and create blindly. Debugging only — produces duplicates silently.

## Update

Pass at least one field.

```bash
getresolved issue update GET-080 --status=in_progress --priority=urgent --comment="…"
getresolved issue update GET-080 --assignee=me
```

**Fields**

- `--status=<status>`
- `--priority=<priority>`
- `--assignee=<member-id|me|none|null>` *(also: `--assignee-id`)*
- `--comment="…"` *(also: `--resolution-comment`)* — writes `resolution_comment` (private; never shown to customers)

## Status shortcuts

Terse forms of `update` that read better in commits and Claude Code prompts. For `done`, `dismiss`, and `icebox`, the trailing positional becomes the resolution comment (or pass `--comment="…"`).

```bash
getresolved issue start    GET-080
getresolved issue done     GET-080 "Shipped in commit abc123"
getresolved issue dismiss  GET-080 "duplicate of GET-002"
getresolved issue icebox   GET-080 "blocked on vendor fix"
getresolved issue reopen   GET-080
getresolved issue assign   GET-080 me                   # also: <member-uuid>, none, null
```

