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
canceledwithout 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
triagestate >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
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 + writabilityPOST https://api.linear.app/graphql- workflowStates query - state name → state.type mappingPOST 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