cx-cases — Claude Code skill: triage Coralogix Cases
Drives Coralogix Cases through the cx cases CLI: assign, acknowledge, resolve, close, re-prioritize, and read the event timeline.
npx skills add coralogix/cx-cli --skill cx-cases -a claude-codeWhat cx-cases does
This skill gives the agent the cx cases command set. A case bundles related alert events into one unit with a status, priority, category and assignee. The agent can fetch a case by ID, assign it to an email, acknowledge it, drop a comment on the timeline, and pull the event and notification history.
The lifecycle is strict. ACTIVE moves to ACKNOWLEDGED, RESOLVED or CLOSED. RESOLVED only goes to CLOSED — there is no way back. That is why resolve demands a reason via --reason, and in non-interactive mode also --yes; without it the command refuses and has to be handed to the user. A false alarm is cheaper to close straight from ACTIVE, skipping resolve.
Priorities run P1 to P5, categories are AVAILABILITY and SECURITY. You can override the computed priority only while the case is open. There are no bulk endpoints, so acting on many cases means piping IDs through a loop. Assign by email, never by user ID.
What it helps with
- pull a case by ID and see its groupings and impacted entities
- assign a case to an engineer and acknowledge that work started
- leave a root-cause note on the case timeline
- close a false alarm without going through resolve
- check which notifications went out and through which connector
Example prompts for the agent
- show me the case by ID and its event timeline
- assign the case to [email protected] and acknowledge it
- close this case as a false alarm
How to install cx-cases
1Skills CLI (Vercel)
npx skills add coralogix/cx-cli --skill cx-cases -a claude-code2Manually: put the files in place
~/.claude/skills/cx-cases/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/cx-cases/
1Skills CLI (Vercel)
npx skills add coralogix/cx-cli --skill cx-cases -a codex2Manually: put the files in place
.agents/skills/cx-cases/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add coralogix/cx-cli --skill cx-cases -a cursor2Manually: put the files in place
.cursor/skills/cx-cases/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install coralogix/cx-cli cx-cases2Manually: put the files in place
.github/skills/cx-cases/SKILL.md1Skills CLI (Vercel)
npx skills add coralogix/cx-cli --skill cx-cases -a gemini-cli2Platform CLI
gemini skills install https://github.com/coralogix/cx-cli --path skills/cx-casesManually: put the files in place
.devin/skills/cx-cases/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add coralogix/cx-cli --skill cx-cases -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about cx-cases
How do I install cx-cases in Claude?
Run npx skills add coralogix/cx-cli --skill cx-cases -a claude-code. The skill lands in ~/.claude/skills/cx-cases/SKILL.md.
What does cx-cases do?
It hands the agent the cx cases commands for Coralogix cases: reading, assigning, commenting, acknowledging, resolving, closing, changing priority, and inspecting events and notification deliveries.
Can a resolve be undone?
No. A RESOLVED case can only move to CLOSED. If you are unsure, stay in ACKNOWLEDGED — unacknowledge returns it to ACTIVE.
Source text
SKILL.md · Apache-2.0
---
name: cx-cases
description: >
Triage and manage Coralogix Cases with the `cx cases` CLI — e.g. acknowledge,
assign, resolve, or re-prioritize a case, or inspect its event timeline or
notification deliveries.
metadata:
version: "0.1.0"
---
# Cases Management Skill
A **Case** groups related alert events into one investigation unit with a status,
priority, category, and assignee. Use this skill to inspect cases and drive them
through their lifecycle (active → acknowledged → resolved → closed).
## CLI Commands
| Command | Purpose |
|---|---|
| `cx cases get <id>` | Get a single case by ID |
| `cx cases update <id> [--title] [--resolution-reason]` | Update mutable fields |
| `cx cases comment <id> --text <text>` | Add a comment to the case timeline |
| `cx cases assign <id> --user <email>` | Assign a case (email, or raw user ID) |
| `cx cases unassign <id>` | Remove the assignee |
| `cx cases acknowledge <id>` | Acknowledge (signals you're working it; stops re-notification) |
| `cx cases unacknowledge <id>` | Remove the acknowledgment |
| `cx cases resolve <id> --reason <text>` | Resolve a case (irreversible — see below) |
| `cx cases close <id>` | Close a case (terminal) |
| `cx cases set-priority <id> --priority <P1..P5>` | Override the computed priority |
| `cx cases clear-priority <id>` | Remove a priority override |
| `cx cases events list <case-id>` | Event timeline (status changes, comments, assignments) |
| `cx cases events get <event-id>` | A single event — drill in, e.g. to expand a comment thread |
| `cx cases notifications <case-id> [<case-id> ...]` | Notification deliveries (connector, status, time) |
## Case Lifecycle
```
PENDING_ACTIVATION ──► ACTIVE ◄────────► ACKNOWLEDGED
│ ╲ │ ╲
│ ╲ │ ╲
▼ ╲ ▼ ╲
CLOSED ╲──► RESOLVED ◄─── (from ACK)
│
▼
CLOSED (terminal)
```
| From state | Allowed transitions | Notes |
|---|---|---|
| `PENDING_ACTIVATION` | → `ACTIVE` | System-driven activation; not user-controllable |
| `ACTIVE` | → `ACKNOWLEDGED`, `RESOLVED`, `CLOSED` | Ack is optional; for a false alarm, `close` directly (skip `resolve`) |
| `ACKNOWLEDGED` | → `ACTIVE`, `RESOLVED`, `CLOSED` | The only "back" transition: `unacknowledge` returns it to `ACTIVE` |
| `RESOLVED` | → `CLOSED` only | **Irreversible** — cannot reopen to `ACTIVE`/`ACKNOWLEDGED` |
| `CLOSED` | (none) | **Terminal** |
Categories: `AVAILABILITY` or `SECURITY`. Priorities: `P1` (highest) → `P5`.
## Triage Workflow
1. **Inspect** — `cx cases get <id>`. The payload includes `groupings`,
`labels`, `impactedEntities`, `kpiBreaches`, `aiSummary`, and both
`priorityDetails.system` (computed) and `priorityDetails.override` (user-set).
2. **Investigate** — Pull the underlying telemetry by querying the alert's DataPrime / PromQL to find root cause before acting.
Optionally export the investigation via `cx olly` or pull the case's `impactedEntities` / `groupings` to confirm the impact.
See the `cx-telemetry-querying` skill.
3. **Claim** — `cx cases assign <id> --user [email protected]` then
`cx cases acknowledge <id>`.
4. **Record findings** — `cx cases comment <id> --text "<note>"` to leave
investigation notes on the timeline (root cause, links, next steps) as you go.
Comments appear as `comment` events in `cx cases events list`.
5. **Resolve or close** — see below.
6. **Re-prioritize** if impact differs from the computed value —
`cx cases set-priority <id> --priority P1` / `clear-priority`. Only possible
while the case is still open; priority cannot be overridden once a case is
`RESOLVED` or `CLOSED`.
### Resolving
Resolution is **irreversible** (a `RESOLVED` case can only move to `CLOSED`), so
the CLI requires both a reason and a confirmation:
- Pass `--reason "<text>"` — a one-line postmortem (root cause, what fixed it,
follow-up) visible to teammates in the timeline. Use `--no-reason` only when a
reason genuinely doesn't apply.
- In agent / non-interactive mode, also pass `--yes`; without it the command
refuses and must be handed to the user to run interactively.
If uncertain, stay in `ACKNOWLEDGED` (reversible via `unacknowledge`) until
confident. For non-resolution edits (title, post-hoc postmortem link), use
`cx cases update`.
## Bulk Operations
There are no bulk endpoints. To act on many cases, pipe IDs through a loop, e.g.
`... | jq -r '.[].id' | xargs -I {} cx cases acknowledge {}`.
## Key Principles
- **Use emails, never user IDs** — for `assign --user` and in all output.
- **`resolve` is irreversible and `close` is terminal** — confirm before resolving;
for false alarms `close` from `ACTIVE` directly.
- **Always supply a resolution reason** unless `--no-reason` truly applies.
- **`P1`-style shorthand** is accepted anywhere a priority/status/category is expected.
- **Multi-profile fan-out** with `-p <profile>` (repeatable) for cross-environment triage.
- **Link to a specific case** — build `<base>/cases?id=<case_id>`, where
`<base>` is the console URL already seen in a `View in Coralogix:
<base>/...` line printed by any `cx cases` command this session — never
fabricate `<base>` yourself.
## References
- Case analytics: [`references/case-analytics.md`](references/case-analytics.md)
- Single case investigation: [`references/single-case.md`](references/single-case.md)
## Related Skills
- **`cx-alerts`** — the alert definitions behind the events grouped into a case.
- **`cx-slos`** — the SLO definitions whose breaches drive reliability cases.
- **`cx-telemetry-querying`** — pivot from a case's impacted entities into logs/spans/metrics.
© coralogix · Apache-2.0 · coralogix/cx-cli