jeremylongshore/claude-code-plugins-plus-skills
linear-pack
plugins/saas-packs/linear-pack/skills/linear-incident-runbook/SKILL.md
January 22, 2026
Select agents to install to:
npx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/blob/main/plugins/saas-packs/linear-pack/skills/linear-incident-runbook/SKILL.md -a claude-code --skill linear-incident-runbookInstallation paths:
.claude/skills/linear-incident-runbook/# Linear Incident Runbook
## Overview
Step-by-step procedures for handling production incidents with Linear integrations.
## Prerequisites
- Production access credentials
- Monitoring dashboard access
- Communication channels configured
- Escalation paths defined
## Incident Classification
| Severity | Description | Response Time | Examples |
|----------|-------------|---------------|----------|
| SEV1 | Complete outage | < 15 minutes | API unreachable, auth broken |
| SEV2 | Major degradation | < 30 minutes | High error rate, slow responses |
| SEV3 | Minor issues | < 2 hours | Some features affected |
| SEV4 | Low impact | < 24 hours | Cosmetic issues, warnings |
## Immediate Actions
### Step 1: Confirm the Issue
```bash
# Check Linear API status
curl -s https://status.linear.app/api/v2/status.json | jq '.status'
# Quick health check
curl -s -H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { name } }"}' \
https://api.linear.app/graphql | jq
# Check your application health endpoint
curl -s https://yourapp.com/api/health | jq
```
### Step 2: Gather Initial Information
```typescript
// scripts/incident-info.ts
import { LinearClient } from "@linear/sdk";
async function gatherIncidentInfo() {
const client = new LinearClient({ apiKey: process.env.LINEAR_API_KEY! });
console.log("=== Linear Incident Information ===\n");
// 1. Test authentication
console.log("1. Authentication:");
try {
const viewer = await client.viewer;
console.log(` Status: OK (${viewer.name})`);
} catch (error) {
console.log(` Status: FAILED - ${error}`);
}
// 2. Check teams access
console.log("\n2. Team Access:");
try {
const teams = await client.teams();
console.log(` Accessible teams: ${teams.nodes.length}`);
} catch (error) {
console.log(` Status: FAILED - ${error}`);
}
// 3. Test issue creation (dry run)
console.log("\n3. Write Capability:");
try {
const teams =