> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Linear audit profile, Vortex IQ

> What the Vortex IQ Linear health audit checks: Linear: Cycle Health, Capacity & Finding Lifecycle

**[Nerve Centre KPIs](/nerve-centre/kpi-cards/linear) · [Audit Profile](/nerve-centre/kpi-cards/linear/audit) · [Sentiment Settings](/nerve-centre/kpi-cards/linear/sentiment)**

Surfaces the daily ops questions an engineering-led ecommerce team lives with in Linear: is the API key still good, is the backlog drowning, are people overloaded, and (most importantly) are the audit findings we filed actually getting resolved inside the cycle or quietly rotting past 14 days?

## What this audit checks

### Authentication & access

* API key still valid (`POST /graphql { viewer { id } }`)
* Default outbound team exists and the key can create issues in it
* vortex-iq-finding label exists in the workspace (re-created on reconnect)
* Linear rate-limit / complexity headroom > 30%

### Backlog health

* Open issue count vs 30-day baseline (sudden growth = drowning signal)
* Blocked-issue count + change WoW
* Oldest open issue age (>90 days = backlog rot)
* Unassigned issues > 5 (work that nobody owns)
* Backlog-by-priority skew (mostly No-priority/Low = no one is grooming)

### VortexIQ findings lifecycle (the stickiness test)

* Abandoned findings - vortex-iq-finding issues, state.type not completed/canceled, updatedAt >14d
* Finding resolution rate over rolling 90d (Linear target >80%, alarm \<65%)
* Avg time-to-fix for resolved findings, by priority
* Findings closed `canceled` without a comment (silent won't-do dismissals)
* Regression rate - findings reopened from completed back to started

### Team capacity & cycle discipline

* Assignees with >10 open issues (overload signal)
* Assignees with zero completed issues in 14d (parked work)
* Cycle time degradation > 25% week-over-week
* Scope added to the active cycle after it started (mid-cycle scope creep)
* Stale Triage queue - issues sitting in `triage` state >24h (no owner decided)

### Cross-connector signals

* Critical findings from sibling connectors (shopify/bigcommerce/adobe/cybersource/datadog/newrelic) older than 7 days with no Linear issue - coverage gap
* Linear issues referencing decommissioned/archived integrations - stale work

## Severity thresholds

| Signal                             | Warn | Critical |
| ---------------------------------- | ---- | -------- |
| `vortexiq_findings_abandoned`      | 5    | 15       |
| `vortexiq_finding_resolution_rate` | 65   | 50       |
| `blocked_tickets`                  | 3    | 8        |
| `unassigned_tickets`               | 5    | 20       |
| `oldest_open_ticket_age_days`      | 60   | 90       |
| `cycle_time_change_pct`            | 25   | 50       |
| `rate_limit_headroom_pct`          | 30   | 10       |

## Data sources

* `POST https://api.linear.app/graphql` - viewer probe (token + account info)
* `POST https://api.linear.app/graphql` - teams query - default outbound team access + writability
* `POST https://api.linear.app/graphql` - workflowStates query - state name → state.type mapping
* `POST https://api.linear.app/graphql` - issues query - backlog reads (open count, blocked, abandoned, by-assignee, resolution)
* `POST https://api.linear.app/graphql` - cycles query - active-cycle progress + velocity history
