plugins/linear-orchestrator/skills/linear-agents/SKILL.md
This skill should be used when building or registering an agent that operates inside Linear — agent signals, agent interaction, OAuth actor mode, AIG (Agent Intelligence Gateway). Activates on "linear agent", "agent signal", "agent interaction", "linear aig", "agents in linear".
npx skillsauth add markus41/claude Linear Agents (AIG, Signals, Interaction)Install 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.
References:
A Linear agent is an OAuth app with the agents:create and agents:signal scopes that:
Settings → API → Agents → New agent. Or via API once granted agents:create. Capture:
agentIdagent_oauth_token (long-lived)When a user assigns the agent to an issue:
Agent with action interactionissue.id, actor (user who triggered), kind (assigned, mentioned, replied)agentSignalCreate({ kind: "progress", message: "Working on it…" })agentSignalCreate({ kind: "completion", message: "Done — see comment" })Signals are lightweight status pings that render in the Linear UI as a small badge:
progress — "Running tests..." (yellow)completion — "Tests passed" (green)request_input — "Need approval" (blue, with button)error — "Failed: ..." (red)await client.agentSignalCreate({
agentId,
issueId,
kind: "progress",
message: "Compiling…",
metadata: { jobId: "..." }
});
Signals are NOT comments — they're ephemeral. Use them for in-progress updates; use comments for permanent results.
The AIG (https://linear.app/developers/aig) is Linear's gateway for agent-to-agent communication. Use cases:
The plugin's lib/aig.ts provides:
export async function aigPublish(channel: string, msg: AIGMessage): Promise<void>;
export function aigSubscribe(channel: string, handler: (msg: AIGMessage) => void): () => void;
When an agent posts on behalf of a user:
userId, 5-min expiry)Linear-Actor-Token headerconst headers = { "Linear-Actor-Token": actorToken };
await fetch("https://api.linear.app/graphql", {
method: "POST",
headers: { ...headers, Authorization: `Bearer ${agentToken}` },
body: JSON.stringify({ query, variables })
});
progress signal at least every 30s if the work is long-running, otherwise Linear shows "Agent unresponsive".agentSignalCreate({ kind: "error" }) AND post a comment with the failure details. Don't silently fail.admin scope unless you genuinely manage workflows.tools
Build Teams-native agents with the Teams SDK (formerly Teams AI Library v2) — App class, activity routing, adaptive cards, streaming, AI-generated labels, feedback, message extensions, Teams-as-MCP-server, and the bring-your-own-AI pattern with Agent Framework.
tools
Run agents on Microsoft Foundry (formerly Azure AI Foundry) Agent Service — prompt agents vs hosted agents, threads/runs and the Responses API, built-in tools (Bing grounding, code interpreter, file search, MCP, OpenAPI, A2A), connected agents, Entra agent identity, SDKs, and observability/evaluations.
tools
Build and host custom engine agents with the Microsoft 365 Agents SDK — AgentApplication, the Activity protocol, channel reach via Azure Bot Service, hosting Agent Framework or Semantic Kernel engines, and the Agents Toolkit/Playground workflow. Successor to the Bot Framework SDK.
tools
Design, govern, and extend Microsoft Copilot Studio agents — topics, generative orchestration, knowledge, tools and MCP, agent flows, autonomous triggers, publishing channels, Copilot Credits pricing, and solution-based ALM on Power Platform.