# Triage Linear or Jira issues in place

This agent comments on tickets you already filed. It classifies the
issue, writes a `Triage:` comment, sets bug priority, and links a
duplicate when titles match.

File the ticket however you already do. This template starts after the
ticket exists.

## Scaffold

```text
agent-sdk init ./triage-agent --template triage-linear
agent-sdk init ./triage-agent --template triage-jira
```

`agent-sdk init --template triage` selects `triage-linear`.

Pick the tracker you use. The agent is the same. The overlay is the
connection.

`init` writes the project, installs dependencies, and puts `agent-sdk`
on PATH.

## Log in

Model turns and Cursor MCP use your Cursor account.

```text
cd triage-agent
agent-sdk login
```

The command opens a browser if you have no stored credential.

## Connect the tracker

In the Cursor dashboard, open MCP and connect Linear or Jira.

The connection stays on the host. The model calls `record_triage`.
Linear and Jira tools stay off the model's tool list.

Linear or Jira MCP must be connected for comments, priority changes,
and duplicate links; queueing an issue can still classify it through
`record_triage` without that connection.

## First verdict

```text
agent-sdk dev
```

Open the playground. Run `/queue/issue` and paste an existing issue.

You can also POST:

```bash
curl -X POST http://127.0.0.1:3000/triage-agent/v1/channels/queue/issue \
  -H 'content-type: application/json' \
  -d '{
    "identifier": "ENG-142",
    "title": "CSV export returns 500",
    "description": "Export has returned 500 since this morning."
  }'
```

For create webhooks, set `LINEAR_WEBHOOK_SECRET` or
`JIRA_WEBHOOK_SECRET`. Point the provider at the deployed alias under
`/v1/channels/webhook`. Signed events start or resume triage for that issue.

`record_triage` comments on the issue that started the session, not
whatever identifier the model copies out of the ticket body.

## Rubric

Edit `bot/skills/triage-rubric.md` for kinds, tie-breakers, and what
`urgent` means on your team. The next turn reads the file.

`bot/instructions.md` is the procedure around the rubric: missing
details, when to call `record_triage`, how to reply.

## Evals

Use the three smoke cases, one per kind, as a local exercise after you
change the rubric.

```text
agent-sdk eval
```

Eval sessions skip tracker writes.

## Deploy

```text
agent-sdk deploy
```

Run it from the agent's git checkout. It infers repository, ref, path,
and slug, builds on Cursor-managed hosting, and prints the URL.
`agent-sdk deployment list` shows status.
