plugins/linear-orchestrator/skills/linear-graphql/SKILL.md
This skill should be used when writing or reviewing GraphQL queries against the Linear API — selecting fragments, navigating connection types, batching, and avoiding deprecated fields. Activates on "linear graphql", "linear query", "linear api", "linear schema".
npx skillsauth add markus41/claude Linear GraphQL PatternsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Reference: https://studio.apollographql.com/public/Linear-API/variant/current/schema/reference
Every list query in Linear returns a Connection type:
{
issues(first: 50, after: $cursor, filter: {...}, orderBy: updatedAt) {
pageInfo { hasNextPage endCursor }
nodes { id identifier title state { name } }
}
}
Always select pageInfo { hasNextPage endCursor } for cursors. Use first: 50-100 typically; max 250.
Define re-usable fragments in lib/queries/fragments.graphql.ts:
fragment IssueCore on Issue {
id
identifier
title
priority
estimate
dueDate
url
state { id name type }
team { id key name }
assignee { id email displayName }
parent { id identifier }
cycle { id name }
project { id name }
labels { nodes { id name color } }
}
Mutations return a Payload with success + the entity:
mutation {
issueCreate(input: { ... }) {
success
issue { ...IssueCore }
lastSyncId
}
}
Always check success before treating the entity as created.
Each mutation returns lastSyncId. Pass on subsequent reads (syncId arg) to ensure consistency in eventual-consistency scenarios. Webhook payloads include dataSyncId you can match.
Use nodes connections aggressively to fetch labels/assignees in one query rather than per-issue resolves.
linear-graphql-expert agent inspects PRs touching lib/queries/ and warns on @deprecated fieldsarchivedAt (now trashed), state string (now state { id name type })X-Complexity)development
Enhanced plan-authoring skill with Pre-Writing context gathering, task metadata, non-TDD templates, Red Flags, telemetry, and an automated plan linter. Use when you have a spec or requirements for a multi-step task, before touching code.
tools
Documentation intelligence engine with graph-based API docs, algorithm library, and drift detection
tools
Ultraplan cloud planning — kick off a plan in the cloud from your terminal, review and revise in the browser, then execute remotely or send back to CLI
tools
--- name: mcp description: Configure MCP servers for Claude Code — stdio vs HTTP, authentication, Tools/Resources/Prompts distinction, channels (CI webhook, mobile relay, Discord bridge, fakechat), and cost of always-loaded tools. Use this skill whenever adding an MCP server, debugging connection issues, choosing between MCP Tools vs Prompts vs Resources, installing channel servers, or managing .mcp.json. Triggers on: "MCP server", "mcp config", "add Obsidian MCP", "install context7", "channels"